@taprootio/espalier 2.2.0 → 2.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/custom-elements.json +1373 -878
- package/dist/checkbox/esp-checkbox-group.js +4 -4
- package/dist/checkbox/esp-checkbox.js +3 -3
- package/dist/date-picker/esp-date-picker.js +17 -17
- package/dist/font-picker/esp-font-picker.js +3 -3
- package/dist/form-item/esp-form-item.d.ts +52 -0
- package/dist/form-item/esp-form-item.js +27 -7
- package/dist/input/esp-input.js +4 -4
- package/dist/pickers/esp-picker-base.js +1 -1
- package/dist/radio-button/esp-radio-button-group.js +3 -3
- package/dist/radio-button/esp-radio-button.js +4 -4
- package/dist/shared/form-field-description-controller.js +1 -0
- package/dist/slider/esp-slider.js +2 -2
- package/dist/switch/esp-switch.js +3 -3
- package/dist/textarea/esp-textarea.js +1 -1
- package/espalier.token-manifest.json +12 -0
- package/package.json +2 -1
package/custom-elements.json
CHANGED
|
@@ -8128,6 +8128,21 @@
|
|
|
8128
8128
|
"name": "itemsSlot",
|
|
8129
8129
|
"privacy": "private"
|
|
8130
8130
|
},
|
|
8131
|
+
{
|
|
8132
|
+
"kind": "field",
|
|
8133
|
+
"name": "formItemDescription",
|
|
8134
|
+
"type": {
|
|
8135
|
+
"text": "string | null"
|
|
8136
|
+
},
|
|
8137
|
+
"privacy": "private",
|
|
8138
|
+
"default": "null"
|
|
8139
|
+
},
|
|
8140
|
+
{
|
|
8141
|
+
"kind": "field",
|
|
8142
|
+
"name": "describedCheckboxes",
|
|
8143
|
+
"privacy": "private",
|
|
8144
|
+
"default": "new Set<EspalierCheckbox>()"
|
|
8145
|
+
},
|
|
8131
8146
|
{
|
|
8132
8147
|
"kind": "field",
|
|
8133
8148
|
"name": "name",
|
|
@@ -8247,6 +8262,21 @@
|
|
|
8247
8262
|
}
|
|
8248
8263
|
}
|
|
8249
8264
|
},
|
|
8265
|
+
{
|
|
8266
|
+
"kind": "method",
|
|
8267
|
+
"name": "applyFormItemDescription",
|
|
8268
|
+
"privacy": "private",
|
|
8269
|
+
"return": {
|
|
8270
|
+
"type": {
|
|
8271
|
+
"text": "void"
|
|
8272
|
+
}
|
|
8273
|
+
}
|
|
8274
|
+
},
|
|
8275
|
+
{
|
|
8276
|
+
"kind": "field",
|
|
8277
|
+
"name": "handleItemsSlotChange",
|
|
8278
|
+
"privacy": "private"
|
|
8279
|
+
},
|
|
8250
8280
|
{
|
|
8251
8281
|
"kind": "method",
|
|
8252
8282
|
"name": "handleChildChanged",
|
|
@@ -9048,6 +9078,12 @@
|
|
|
9048
9078
|
"privacy": "private",
|
|
9049
9079
|
"default": "new FormFieldController({ host: this, internals: this.internals, getFormValue: () => (this.checked ? this.value || \"on\" : null), getValidity: () => { if (this.required && !this.checked) { return { flags: { valueMissing: true }, message: this.requiredMessage || \"Please check this box to continue.\", }; } return null; }, onReset: () => { this.checked = false; this.indeterminate = false; }, onRestore: (state: string) => { this.checked = state === \"on\" || state === this.value; }, onDisabled: (isDisabled: boolean) => { this.disabled = isDisabled; }, })"
|
|
9050
9080
|
},
|
|
9081
|
+
{
|
|
9082
|
+
"kind": "field",
|
|
9083
|
+
"name": "formItemDescription",
|
|
9084
|
+
"privacy": "private",
|
|
9085
|
+
"default": "new FormFieldDescriptionController({ host: this, getTarget: () => this.shadowRoot?.querySelector<HTMLElement>(\".checkbox-control\"), })"
|
|
9086
|
+
},
|
|
9051
9087
|
{
|
|
9052
9088
|
"kind": "field",
|
|
9053
9089
|
"name": "checked",
|
|
@@ -10740,6 +10776,12 @@
|
|
|
10740
10776
|
"privacy": "private",
|
|
10741
10777
|
"default": "new FormFieldController({ host: this, internals: this.internals, getFormValue: () => this._value || null, getValidity: () => this._getValidityResult(), getValidationAnchor: (): HTMLElement => this.inputRef.value ?? this, onReset: () => { this._rangeAnchor = null; this._rangePreview = null; this._value = \"\"; this.requestUpdate(\"value\", \"\"); this._syncFromValue(); }, onRestore: (state: string) => { this.value = state; }, onDisabled: (isDisabled: boolean) => { this.disabled = isDisabled; }, })"
|
|
10742
10778
|
},
|
|
10779
|
+
{
|
|
10780
|
+
"kind": "field",
|
|
10781
|
+
"name": "formItemDescription",
|
|
10782
|
+
"privacy": "private",
|
|
10783
|
+
"default": "new FormFieldDescriptionController({ host: this, getTarget: () => this.inputRef.value, })"
|
|
10784
|
+
},
|
|
10743
10785
|
{
|
|
10744
10786
|
"kind": "field",
|
|
10745
10787
|
"name": "popoverCtrl",
|
|
@@ -15558,361 +15600,367 @@
|
|
|
15558
15600
|
},
|
|
15559
15601
|
{
|
|
15560
15602
|
"kind": "javascript-module",
|
|
15561
|
-
"path": "dist/
|
|
15603
|
+
"path": "dist/flyout/esp-flyout.js",
|
|
15562
15604
|
"declarations": [
|
|
15563
15605
|
{
|
|
15564
|
-
"kind": "
|
|
15565
|
-
"
|
|
15566
|
-
"
|
|
15567
|
-
|
|
15568
|
-
|
|
15569
|
-
|
|
15570
|
-
|
|
15571
|
-
|
|
15572
|
-
|
|
15573
|
-
|
|
15574
|
-
|
|
15575
|
-
|
|
15576
|
-
|
|
15606
|
+
"kind": "class",
|
|
15607
|
+
"description": "A transient panel for help, more-info, and preview content that\nclaims designed spare width before ever covering the page.\n\nPlace one `esp-flyout` in an `esp-page`'s `flyout` slot. The panel\nlives on the canvas, outside the content surface. The page decides\nwhere it goes, from widest viewport to narrowest:\n\n1. **Gutter** — the panel occupies the right canvas gutter. When the\n gutter already has room, it claims existing spare canvas and the\n main content does not move at all, on any alignment.\n2. **Shift** — when the gutter is not quite wide enough, the surface\n slides toward `start` by exactly the shortfall (no more) to free\n the difference.\n3. **Docked sidebar** — once the gutter is gone, the panel competes\n for width with the main well; content narrows but is never\n covered.\n4. **Overlay drawer** — below the mobile threshold (`50em`, the\n same one the `esp-menu` drawer uses) the panel becomes a fixed\n drawer over a vellum backdrop. Set `mode=\"overlay\"` to get this\n presentation at every width.\n\nThe panel is styled as a tear-off piece: a dotted perforation on\nits leading edge, rounded trailing corners, and no shadow — all\noverridable through the `--esp-flyout-*` tokens below.\n\nA11y follows the presentation. In the in-grid modes (1–3) the\nflyout is a non-modal `complementary` landmark named by its\n`heading`, and opening it never steals focus. In the overlay-drawer\nmode (4) it is a true modal: `role=\"dialog\"` + `aria-modal`, the\nbackground goes inert, scroll is locked, focus moves into the drawer\nand is trapped, and focus is restored on close. `Escape` closes it\nin every mode.\n\n```html\n<style>\nesp-page.flyout-demo {\n --esp-page-max-width: 420px;\n --esp-page-canvas-background: var(--esp-color-layer-1);\n &::part(wrapper) {\n min-height: 320px;\n height: 320px;\n }\n > div {\n padding: var(--esp-size-padding);\n }\n}\n</style>\n<esp-page class=\"flyout-demo\" align=\"center\">\n <esp-flyout slot=\"flyout\" heading=\"More info\" id=\"demo-flyout\" standalone>\n <p>Spare width claimed; the well shifted only enough to make room.</p>\n </esp-flyout>\n <div>\n <esp-button id=\"toggle-flyout\" label=\"Toggle flyout\" collapsed></esp-button>\n </div>\n</esp-page>\n<script>\n const flyout = findById(\"demo-flyout\");\n findById(\"toggle-flyout\").addEventListener(\"clicked\", () => flyout.toggle());\n</script>\n```\n\nBy default the panel is a tear-off — a dotted perforation on its\nleading edge, rounded trailing corners, no shadow. Add\n`match-surface` to lift the trailing edge with the page's surface\nedge shadow, so the flyout reads as a raised peer of the content it\nflies out from while staying attached at the leading perforation:\n\n```html\n<style>\nesp-page.flyout-match-demo {\n --esp-page-max-width: 420px;\n &::part(wrapper) {\n min-height: 320px;\n height: 320px;\n }\n > div {\n padding: var(--esp-size-padding);\n }\n}\n</style>\n<esp-page class=\"flyout-match-demo\" align=\"center\">\n <esp-flyout slot=\"flyout\" heading=\"More info\" id=\"match-flyout\" match-surface standalone>\n <p>Attached at the perforation, trailing edge raised like the surface.</p>\n </esp-flyout>\n <div>\n <esp-button id=\"toggle-match\" label=\"Toggle flyout\" collapsed></esp-button>\n </div>\n</esp-page>\n<script>\n const matchFlyout = findById(\"match-flyout\");\n findById(\"toggle-match\").addEventListener(\"clicked\", () => matchFlyout.toggle());\n</script>\n```\n\nWhen the page has no spare width to claim — a `kind=\"full\"` page,\nor a capped page on a viewport at the cap — the open flyout docks\nas a right sidebar and the content makes room:\n\n```html\n<style>\nesp-page.flyout-docked-demo {\n &::part(wrapper) {\n min-height: 320px;\n height: 320px;\n }\n > div {\n padding: var(--esp-size-padding);\n }\n}\n</style>\n<esp-page class=\"flyout-docked-demo\" kind=\"full\">\n <esp-flyout slot=\"flyout\" heading=\"Docked\" id=\"docked-flyout\" standalone>\n <p>No gutter to claim, so the content narrows instead.</p>\n </esp-flyout>\n <div>\n <p>A <code>kind=\"full\"</code> page has no canvas gutters at any\n width — the flyout squeezes the main well and never covers it.</p>\n <esp-button id=\"toggle-docked\" label=\"Toggle flyout\" collapsed></esp-button>\n </div>\n</esp-page>\n<script>\n const dockedFlyout = findById(\"docked-flyout\");\n findById(\"toggle-docked\").addEventListener(\"clicked\", () => dockedFlyout.toggle());\n</script>\n```\n\nBelow the `50em` viewport threshold every flyout becomes a fixed\noverlay drawer over a vellum — there is no room for a side-by-side\nsplit on a phone. `mode=\"overlay\"` forces that presentation at any\nwidth (try it here; `Escape` or the vellum closes it):\n\n```html\n<style>\nesp-page.flyout-overlay-demo {\n &::part(wrapper) {\n min-height: 160px;\n height: 160px;\n }\n > div {\n padding: var(--esp-size-padding);\n }\n}\n</style>\n<esp-page class=\"flyout-overlay-demo\">\n <esp-flyout slot=\"flyout\" heading=\"Overlay drawer\" mode=\"overlay\" id=\"overlay-flyout\" standalone>\n <p>A fixed drawer over a vellum — what every flyout becomes on\n small viewports.</p>\n </esp-flyout>\n <div>\n <esp-button id=\"open-overlay\" label=\"Open overlay flyout\" collapsed></esp-button>\n </div>\n</esp-page>\n<script>\n const overlayFlyout = findById(\"overlay-flyout\");\n findById(\"open-overlay\").addEventListener(\"clicked\", () => overlayFlyout.toggle());\n</script>\n```\n\nComponents that cannot know where the flyout lives can request it\nover the bus with `showFlyout()` — the same pattern `showToast()`\nuses. A second request swaps the content in place; it never\nstacks. Content passed as a string renders as plain text; pass a\n`Node` for rich content. Pass the triggering element as `anchor` to\nalign the in-grid panel with that control and keep both in the same\nscroll flow. If the panel would cross the visible viewport's bottom,\nit shifts up only far enough to fit and returns to its natural trigger\nalignment as the page scrolls. Content taller than the viewport\nscrolls inside the panel. Overlay drawers stay viewport-fixed.\n\nThe bus is a global broadcast, so every listening flyout on the\npage answers a `showFlyout()` call. The demos above are each driven\nby their own toggle button, so they are marked `standalone` to opt\nout of the bus — leaving this one flyout as the page's shared\nsurface. In a real app you typically have a single flyout and need\nno attribute at all.\n\n```html\n<style>\nesp-page.flyout-bus-demo {\n --esp-page-max-width: 420px;\n &::part(wrapper) {\n min-height: 320px;\n }\n > div {\n padding: var(--esp-size-padding);\n }\n .flyout-demo-copy {\n max-inline-size: 42ch;\n }\n}\n</style>\n<esp-page class=\"flyout-bus-demo\">\n <esp-flyout slot=\"flyout\"></esp-flyout>\n <div>\n <esp-button id=\"show-apples\" label=\"Apples\" collapsed></esp-button>\n <div class=\"flyout-demo-copy\">\n <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua.</p>\n <p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi\n ut aliquip ex ea commodo consequat.</p>\n <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum\n dolore eu fugiat nulla pariatur.</p>\n </div>\n <esp-button id=\"show-pears\" label=\"Pears\" collapsed></esp-button>\n <template id=\"pears-description\">\n <p>Ripen pears at room temperature until the neck yields gently to\n pressure, then refrigerate them to slow further ripening.</p>\n <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer\n nec odio. Praesent libero. Sed cursus ante dapibus diam.</p>\n <p>Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis\n sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper\n porta.</p>\n <p>Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent\n taciti sociosqu ad litora torquent per conubia nostra.</p>\n <p>Curabitur sodales ligula in libero. Sed dignissim lacinia nunc.\n Curabitur tortor. Pellentesque nibh. Aenean quam.</p>\n <p>In scelerisque sem at dolor. Maecenas mattis. Sed convallis\n tristique sem. Proin ut ligula vel nunc egestas porttitor.</p>\n <p>Morbi lectus risus, iaculis vel, suscipit quis, luctus non,\n massa. Fusce ac turpis quis ligula lacinia aliquet.</p>\n <p>Mauris ipsum. Nulla metus metus, ullamcorper vel, tincidunt sed,\n euismod in, nibh. Quisque volutpat condimentum velit.</p>\n </template>\n <div class=\"flyout-demo-copy\">\n <p>Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia\n deserunt mollit anim id est laborum.</p>\n <p>Curabitur pretium tincidunt lacus. Nulla gravida orci a odio, nullam\n varius, turpis et commodo pharetra.</p>\n </div>\n </div>\n</esp-page>\n<script>\n const applesButton = findById(\"show-apples\");\n applesButton.addEventListener(\"clicked\", () => {\n showFlyout({ heading: \"Apples\", content: \"Crisp. Store cold.\", anchor: applesButton });\n });\n const pearsButton = findById(\"show-pears\");\n const pearsDescription = findById(\"pears-description\");\n pearsButton.addEventListener(\"clicked\", () => {\n showFlyout({\n heading: \"Pears\",\n content: pearsDescription.content.cloneNode(true),\n anchor: pearsButton,\n });\n });\n</script>\n```",
|
|
15608
|
+
"name": "EspalierFlyout",
|
|
15609
|
+
"cssProperties": [
|
|
15610
|
+
{
|
|
15611
|
+
"description": "The background color of the panel. Defaults to `var(--esp-color-background)`.",
|
|
15612
|
+
"name": "--esp-flyout-background"
|
|
15613
|
+
},
|
|
15614
|
+
{
|
|
15615
|
+
"description": "The border on the panel's leading edge. Defaults to the tear-off perforation, `1px dotted var(--esp-color-border)`.",
|
|
15616
|
+
"name": "--esp-flyout-border"
|
|
15617
|
+
},
|
|
15618
|
+
{
|
|
15619
|
+
"description": "The radius of the panel's trailing corners. Defaults to `var(--esp-size-border-radius)`; the overlay drawer squares them.",
|
|
15620
|
+
"name": "--esp-flyout-radius"
|
|
15621
|
+
},
|
|
15622
|
+
{
|
|
15623
|
+
"description": "The panel's shadow. Defaults to `none` in the gutter/docked modes (the perforation does the separating) and to a drawer shadow in overlay mode.",
|
|
15624
|
+
"name": "--esp-flyout-shadow"
|
|
15625
|
+
},
|
|
15626
|
+
{
|
|
15627
|
+
"description": "Padding inside the panel's header and content regions. Defaults to `var(--esp-size-padding)`.",
|
|
15628
|
+
"name": "--esp-flyout-padding"
|
|
15629
|
+
},
|
|
15630
|
+
{
|
|
15631
|
+
"description": "Stack order of the overlay-drawer mode. Defaults to `3000` — above page chrome, below the dialog drop zone (4000). Set it on the `esp-page` (or an ancestor), not on the flyout itself: the page reads the same token to hoist the drawer's aside above its header.",
|
|
15632
|
+
"name": "--esp-flyout-z-index"
|
|
15633
|
+
},
|
|
15634
|
+
{
|
|
15635
|
+
"description": "Background color of the shared field shell. Defaults to `var(--esp-color-layer-2)`.",
|
|
15636
|
+
"name": "--esp-field-background",
|
|
15637
|
+
"inheritedFrom": {
|
|
15638
|
+
"name": "EspalierElementBase",
|
|
15639
|
+
"module": "dist/shared/esp-element-base.js"
|
|
15640
|
+
}
|
|
15641
|
+
},
|
|
15642
|
+
{
|
|
15643
|
+
"description": "Border color of the shared field shell. Defaults to `var(--esp-color-border)`.",
|
|
15644
|
+
"name": "--esp-field-border-color",
|
|
15645
|
+
"inheritedFrom": {
|
|
15646
|
+
"name": "EspalierElementBase",
|
|
15647
|
+
"module": "dist/shared/esp-element-base.js"
|
|
15648
|
+
}
|
|
15649
|
+
},
|
|
15650
|
+
{
|
|
15651
|
+
"description": "Border width of the shared field shell. Defaults to `1px`.",
|
|
15652
|
+
"name": "--esp-field-border-width",
|
|
15653
|
+
"inheritedFrom": {
|
|
15654
|
+
"name": "EspalierElementBase",
|
|
15655
|
+
"module": "dist/shared/esp-element-base.js"
|
|
15656
|
+
}
|
|
15657
|
+
},
|
|
15658
|
+
{
|
|
15659
|
+
"description": "Text color used inside the shared field shell. Defaults to `var(--esp-color-text)`.",
|
|
15660
|
+
"name": "--esp-field-text-color",
|
|
15661
|
+
"inheritedFrom": {
|
|
15662
|
+
"name": "EspalierElementBase",
|
|
15663
|
+
"module": "dist/shared/esp-element-base.js"
|
|
15664
|
+
}
|
|
15665
|
+
},
|
|
15666
|
+
{
|
|
15667
|
+
"description": "Hover background color of the shared field shell. Derived from `--esp-field-background`.",
|
|
15668
|
+
"name": "--esp-field-hover-bg",
|
|
15669
|
+
"inheritedFrom": {
|
|
15670
|
+
"name": "EspalierElementBase",
|
|
15671
|
+
"module": "dist/shared/esp-element-base.js"
|
|
15672
|
+
}
|
|
15673
|
+
},
|
|
15674
|
+
{
|
|
15675
|
+
"description": "Focus background color of the shared field shell. Derived from `--esp-field-background`.",
|
|
15676
|
+
"name": "--esp-field-focus-bg",
|
|
15677
|
+
"inheritedFrom": {
|
|
15678
|
+
"name": "EspalierElementBase",
|
|
15679
|
+
"module": "dist/shared/esp-element-base.js"
|
|
15680
|
+
}
|
|
15681
|
+
},
|
|
15682
|
+
{
|
|
15683
|
+
"description": "Shadow color used for shared field focus treatment. Defaults to `var(--esp-color-shadow)`.",
|
|
15684
|
+
"name": "--esp-field-focus-shadow",
|
|
15685
|
+
"inheritedFrom": {
|
|
15686
|
+
"name": "EspalierElementBase",
|
|
15687
|
+
"module": "dist/shared/esp-element-base.js"
|
|
15688
|
+
}
|
|
15577
15689
|
}
|
|
15578
|
-
|
|
15579
|
-
"
|
|
15580
|
-
|
|
15581
|
-
|
|
15582
|
-
|
|
15583
|
-
|
|
15584
|
-
|
|
15585
|
-
|
|
15586
|
-
"
|
|
15690
|
+
],
|
|
15691
|
+
"cssParts": [
|
|
15692
|
+
{
|
|
15693
|
+
"description": "The panel surface.",
|
|
15694
|
+
"name": "panel"
|
|
15695
|
+
},
|
|
15696
|
+
{
|
|
15697
|
+
"description": "The heading/close-button row.",
|
|
15698
|
+
"name": "header"
|
|
15699
|
+
},
|
|
15700
|
+
{
|
|
15701
|
+
"description": "The scrollable content region wrapping the slot.",
|
|
15702
|
+
"name": "content"
|
|
15587
15703
|
}
|
|
15588
|
-
|
|
15589
|
-
"
|
|
15704
|
+
],
|
|
15705
|
+
"slots": [
|
|
15590
15706
|
{
|
|
15591
|
-
"
|
|
15592
|
-
"
|
|
15593
|
-
"text": "string"
|
|
15594
|
-
}
|
|
15707
|
+
"description": "The flyout's content.",
|
|
15708
|
+
"name": ""
|
|
15595
15709
|
}
|
|
15596
15710
|
],
|
|
15597
|
-
"description": "Build the CSS `font-family` value used by picker items.\nConsumers should reference this when setting `styles.fontFamily`\non picker items to match the preview `@font-face` name."
|
|
15598
|
-
},
|
|
15599
|
-
{
|
|
15600
|
-
"kind": "class",
|
|
15601
|
-
"description": "Font picker component backed by the Google Fonts catalog by default.\n\nThe font catalog is loaded at runtime from a build-generated\n`font-definitions.json` file served alongside the individual font CSS\nfiles. Run `npm run build-fonts` to generate both assets.\n\nSet `font-source=\"web-safe\"` for email editors or other places where\nthe picker should offer only CSS font stacks that do not need font\ndownloads.\n\n**Required setup:**\n1. Serve the `css/fonts/` directory under a public path.\n2. Point `<esp-root font-css-root=\"/your/path/\">` at that path.\n\n```html\n<esp-root font-css-root=\"/css/fonts/\">\n <esp-form-item label=\"Pick a font\">\n <esp-font-picker></esp-font-picker>\n </esp-form-item>\n</esp-root>\n```\n\n```html\n<esp-form-item label=\"Email font\">\n <esp-font-picker font-source=\"web-safe\"></esp-font-picker>\n</esp-form-item>\n```",
|
|
15602
|
-
"name": "EspalierFontPicker",
|
|
15603
15711
|
"members": [
|
|
15604
15712
|
{
|
|
15605
15713
|
"kind": "field",
|
|
15606
|
-
"name": "
|
|
15607
|
-
"
|
|
15608
|
-
|
|
15714
|
+
"name": "open",
|
|
15715
|
+
"type": {
|
|
15716
|
+
"text": "boolean"
|
|
15717
|
+
},
|
|
15718
|
+
"privacy": "public",
|
|
15719
|
+
"default": "false",
|
|
15720
|
+
"description": "Whether the flyout is open. Reflected so the initial state can\nbe declared in markup; `esp-page` mirrors it (via the lifecycle\nevents and the slot) onto its own `flyout-open` attribute to\ndrive the grid.",
|
|
15721
|
+
"attribute": "open",
|
|
15722
|
+
"reflects": true
|
|
15609
15723
|
},
|
|
15610
15724
|
{
|
|
15611
15725
|
"kind": "field",
|
|
15612
|
-
"name": "
|
|
15726
|
+
"name": "heading",
|
|
15613
15727
|
"type": {
|
|
15614
|
-
"text": "
|
|
15728
|
+
"text": "string"
|
|
15615
15729
|
},
|
|
15616
|
-
"privacy": "
|
|
15617
|
-
"default": "
|
|
15618
|
-
"description": "
|
|
15730
|
+
"privacy": "public",
|
|
15731
|
+
"default": "\"\"",
|
|
15732
|
+
"description": "Heading text for the panel's header row. Also becomes the\nflyout's accessible name unless the author set an `aria-label`.\nAn open overlay without either uses the fallback name \"Flyout\" so\nits dialog is never exposed without an accessible name.",
|
|
15733
|
+
"attribute": "heading"
|
|
15619
15734
|
},
|
|
15620
15735
|
{
|
|
15621
15736
|
"kind": "field",
|
|
15622
|
-
"name": "
|
|
15737
|
+
"name": "mode",
|
|
15623
15738
|
"type": {
|
|
15624
|
-
"text": "
|
|
15739
|
+
"text": "\"auto\" | \"overlay\""
|
|
15625
15740
|
},
|
|
15626
|
-
"privacy": "
|
|
15627
|
-
"default": "
|
|
15628
|
-
"description": "
|
|
15741
|
+
"privacy": "public",
|
|
15742
|
+
"default": "\"auto\"",
|
|
15743
|
+
"description": "Placement behavior.\n\n- `\"auto\"` (default) — the page's placement ladder: gutter,\n docked sidebar, then overlay drawer below the `50em` viewport\n threshold.\n- `\"overlay\"` — always the fixed overlay drawer, at any width.\n The page never reserves a grid track for an overlay-mode\n flyout.",
|
|
15744
|
+
"attribute": "mode",
|
|
15745
|
+
"reflects": true
|
|
15629
15746
|
},
|
|
15630
15747
|
{
|
|
15631
15748
|
"kind": "field",
|
|
15632
|
-
"name": "
|
|
15749
|
+
"name": "anchor",
|
|
15633
15750
|
"type": {
|
|
15634
|
-
"text": "
|
|
15751
|
+
"text": "HTMLElement | undefined"
|
|
15635
15752
|
},
|
|
15636
|
-
"privacy": "
|
|
15637
|
-
"description": "
|
|
15753
|
+
"privacy": "public",
|
|
15754
|
+
"description": "Triggering element whose block-start edge the in-grid panel should\nalign with. Anchored panels stay in normal page flow, shift upward\nonly while needed to fit the visible scrollport, and return to their\nnatural alignment as the page scrolls. Oversized content scrolls\ninside the panel. Overlay drawers ignore this geometry and remain\nfixed to the viewport."
|
|
15638
15755
|
},
|
|
15639
15756
|
{
|
|
15640
15757
|
"kind": "field",
|
|
15641
|
-
"name": "
|
|
15758
|
+
"name": "matchSurface",
|
|
15642
15759
|
"type": {
|
|
15643
|
-
"text": "
|
|
15760
|
+
"text": "boolean"
|
|
15644
15761
|
},
|
|
15645
|
-
"privacy": "
|
|
15646
|
-
"default": "
|
|
15762
|
+
"privacy": "public",
|
|
15763
|
+
"default": "false",
|
|
15764
|
+
"description": "When set on a flyout slotted into an `esp-page`, the panel lifts\nits **trailing** edge with the page's surface edge shadow, so it\nreads as a raised peer of the content surface it flies out from\nrather than the shadowless tear-off. The **leading** edge keeps\nits dotted perforation and casts no shadow, so the panel stays\nattached at the tear line instead of floating over the content.\nThe trailing-corner radius is still `--esp-flyout-radius`. No\neffect on a standalone flyout — there is no page surface to match.",
|
|
15765
|
+
"attribute": "match-surface",
|
|
15766
|
+
"reflects": true
|
|
15647
15767
|
},
|
|
15648
15768
|
{
|
|
15649
15769
|
"kind": "field",
|
|
15650
|
-
"name": "
|
|
15770
|
+
"name": "standalone",
|
|
15651
15771
|
"type": {
|
|
15652
|
-
"text": "
|
|
15772
|
+
"text": "boolean"
|
|
15653
15773
|
},
|
|
15654
|
-
"
|
|
15655
|
-
"
|
|
15656
|
-
"
|
|
15774
|
+
"privacy": "public",
|
|
15775
|
+
"default": "false",
|
|
15776
|
+
"description": "Whether this flyout ignores the shared `showFlyout()` /\n`closeFlyout()` bus and is driven only through its own\n`show()` / `close()` / `toggle()` API.\n\nBy default a flyout services the bus, so a single flyout in a\npage \"just works\" as the target of `showFlyout()` — the same\nzero-config model as `<esp-toaster>` and `showToast()`. Because\nthe bus is a global broadcast, **every** listening flyout on the\npage answers a `showFlyout()` call; set `standalone` on any\nflyout you drive directly so only your one designated help\nsurface responds.",
|
|
15777
|
+
"attribute": "standalone",
|
|
15778
|
+
"reflects": true
|
|
15657
15779
|
},
|
|
15658
15780
|
{
|
|
15659
15781
|
"kind": "field",
|
|
15660
|
-
"name": "
|
|
15782
|
+
"name": "returnFocusTo",
|
|
15661
15783
|
"type": {
|
|
15662
|
-
"text": "
|
|
15784
|
+
"text": "HTMLElement | undefined"
|
|
15663
15785
|
},
|
|
15664
15786
|
"privacy": "public",
|
|
15665
|
-
"
|
|
15666
|
-
"description": "Source of fonts to display. `google` preserves the default Google\nFonts catalog behavior. `web-safe` shows email-safe/system CSS\nfont stacks and does not load Google font assets.\n\n```html\n<esp-box>\n <h2>Email-safe fonts</h2>\n <esp-form-item label=\"Pick a font stack\">\n <esp-font-picker font-source=\"web-safe\"></esp-font-picker>\n </esp-form-item>\n</esp-box>\n```",
|
|
15667
|
-
"attribute": "font-source"
|
|
15787
|
+
"description": "Element to return focus to when the flyout closes. In the in-grid\nmodes it is focused only if focus is inside the flyout at close;\nin the overlay-drawer mode it overrides the modal treatment's\nautomatic restore-to-opener. Usually supplied through\n`showFlyout({ returnFocusTo })`."
|
|
15668
15788
|
},
|
|
15669
15789
|
{
|
|
15670
15790
|
"kind": "field",
|
|
15671
|
-
"name": "
|
|
15791
|
+
"name": "overlayReturnFocusTo",
|
|
15672
15792
|
"type": {
|
|
15673
|
-
"text": "
|
|
15793
|
+
"text": "HTMLElement | undefined"
|
|
15674
15794
|
},
|
|
15675
|
-
"privacy": "
|
|
15676
|
-
"
|
|
15677
|
-
"description": "The selected font family or CSS font stack.\n\nIn the default Google Fonts mode this is the font family name, such\nas `\"Aclonica\"`. In `font-source=\"web-safe\"` mode this is the full CSS\nfont stack, such as `\"Arial, Helvetica, sans-serif\"`, so pre-selection\nvia the `value` attribute must use the stack value.\n\n```html\n<esp-box>\n <h2>Have Aclonica pre-selected</h2>\n <esp-form-item label=\"Pick a font\">\n <esp-font-picker value=\"Aclonica\"></esp-font-picker>\n </esp-form-item>\n</esp-box>\n```",
|
|
15678
|
-
"attribute": "value"
|
|
15795
|
+
"privacy": "private",
|
|
15796
|
+
"description": "`returnFocusTo` captured at close time for the overlay teardown,\nwhich runs after `close()` (in `updated()`): the modal treatment\nrestores focus to the pre-open element, and this explicit target\nmust win over that."
|
|
15679
15797
|
},
|
|
15680
15798
|
{
|
|
15681
15799
|
"kind": "field",
|
|
15682
|
-
"name": "
|
|
15800
|
+
"name": "lastGeneratedAriaLabel",
|
|
15683
15801
|
"type": {
|
|
15684
|
-
"text": "string"
|
|
15802
|
+
"text": "string | null"
|
|
15685
15803
|
},
|
|
15686
|
-
"privacy": "
|
|
15687
|
-
"default": "
|
|
15688
|
-
"description": "The
|
|
15689
|
-
"attribute": "placeholder"
|
|
15804
|
+
"privacy": "private",
|
|
15805
|
+
"default": "null",
|
|
15806
|
+
"description": "The last `aria-label` this component generated from `heading` or\nthe overlay fallback, or `null` if none. The flyout only rewrites\n`aria-label` when the current value is absent or still equals what\nit last generated, so a label the author sets at any time — in\nmarkup or later — wins."
|
|
15690
15807
|
},
|
|
15691
15808
|
{
|
|
15692
|
-
"kind": "
|
|
15693
|
-
"name": "
|
|
15694
|
-
"privacy": "
|
|
15695
|
-
"return": {
|
|
15696
|
-
"type": {
|
|
15697
|
-
"text": "void"
|
|
15698
|
-
}
|
|
15699
|
-
},
|
|
15700
|
-
"description": "Focus the picker input."
|
|
15809
|
+
"kind": "field",
|
|
15810
|
+
"name": "boundKeydown",
|
|
15811
|
+
"privacy": "private"
|
|
15701
15812
|
},
|
|
15702
15813
|
{
|
|
15703
|
-
"kind": "
|
|
15704
|
-
"name": "
|
|
15705
|
-
"privacy": "
|
|
15706
|
-
"return": {
|
|
15707
|
-
"type": {
|
|
15708
|
-
"text": "Promise<boolean>"
|
|
15709
|
-
}
|
|
15710
|
-
}
|
|
15814
|
+
"kind": "field",
|
|
15815
|
+
"name": "boundShowRequest",
|
|
15816
|
+
"privacy": "private"
|
|
15711
15817
|
},
|
|
15712
15818
|
{
|
|
15713
|
-
"kind": "
|
|
15714
|
-
"name": "
|
|
15715
|
-
"privacy": "private"
|
|
15716
|
-
"return": {
|
|
15717
|
-
"type": {
|
|
15718
|
-
"text": "Promise<void>"
|
|
15719
|
-
}
|
|
15720
|
-
},
|
|
15721
|
-
"parameters": [
|
|
15722
|
-
{
|
|
15723
|
-
"name": "family",
|
|
15724
|
-
"type": {
|
|
15725
|
-
"text": "string"
|
|
15726
|
-
}
|
|
15727
|
-
},
|
|
15728
|
-
{
|
|
15729
|
-
"name": "previousFamily",
|
|
15730
|
-
"optional": true,
|
|
15731
|
-
"type": {
|
|
15732
|
-
"text": "string"
|
|
15733
|
-
}
|
|
15734
|
-
}
|
|
15735
|
-
]
|
|
15819
|
+
"kind": "field",
|
|
15820
|
+
"name": "boundCloseRequest",
|
|
15821
|
+
"privacy": "private"
|
|
15736
15822
|
},
|
|
15737
15823
|
{
|
|
15738
|
-
"kind": "
|
|
15739
|
-
"name": "
|
|
15740
|
-
"privacy": "private"
|
|
15741
|
-
"return": {
|
|
15742
|
-
"type": {
|
|
15743
|
-
"text": "Promise<void>"
|
|
15744
|
-
}
|
|
15745
|
-
}
|
|
15824
|
+
"kind": "field",
|
|
15825
|
+
"name": "boundOverlayMediaChange",
|
|
15826
|
+
"privacy": "private"
|
|
15746
15827
|
},
|
|
15747
15828
|
{
|
|
15748
|
-
"kind": "
|
|
15749
|
-
"name": "
|
|
15829
|
+
"kind": "field",
|
|
15830
|
+
"name": "boundAnchorViewportChange",
|
|
15831
|
+
"privacy": "private"
|
|
15832
|
+
},
|
|
15833
|
+
{
|
|
15834
|
+
"kind": "field",
|
|
15835
|
+
"name": "anchorPositionRaf",
|
|
15836
|
+
"type": {
|
|
15837
|
+
"text": "number"
|
|
15838
|
+
},
|
|
15750
15839
|
"privacy": "private",
|
|
15751
|
-
"
|
|
15752
|
-
|
|
15753
|
-
|
|
15754
|
-
|
|
15840
|
+
"default": "0"
|
|
15841
|
+
},
|
|
15842
|
+
{
|
|
15843
|
+
"kind": "field",
|
|
15844
|
+
"name": "trackingAnchorPosition",
|
|
15845
|
+
"type": {
|
|
15846
|
+
"text": "boolean"
|
|
15755
15847
|
},
|
|
15756
|
-
"
|
|
15757
|
-
|
|
15758
|
-
"name": "range",
|
|
15759
|
-
"type": {
|
|
15760
|
-
"text": "{\n first: number;\n last: number;\n items: Array<{ value: string }>;\n }"
|
|
15761
|
-
}
|
|
15762
|
-
}
|
|
15763
|
-
]
|
|
15848
|
+
"privacy": "private",
|
|
15849
|
+
"default": "false"
|
|
15764
15850
|
},
|
|
15765
15851
|
{
|
|
15766
15852
|
"kind": "field",
|
|
15767
|
-
"name": "
|
|
15853
|
+
"name": "anchorResizeObserver",
|
|
15854
|
+
"type": {
|
|
15855
|
+
"text": "ResizeObserver | undefined"
|
|
15856
|
+
},
|
|
15768
15857
|
"privacy": "private"
|
|
15769
15858
|
},
|
|
15770
15859
|
{
|
|
15771
15860
|
"kind": "field",
|
|
15772
|
-
"name": "
|
|
15861
|
+
"name": "observedAnchorPanel",
|
|
15773
15862
|
"type": {
|
|
15774
|
-
"text": "
|
|
15863
|
+
"text": "HTMLElement | undefined"
|
|
15775
15864
|
},
|
|
15776
|
-
"privacy": "private"
|
|
15777
|
-
"default": "\"oklch(0.7 0.125 216)\"",
|
|
15778
|
-
"inheritedFrom": {
|
|
15779
|
-
"name": "EspalierElementBase",
|
|
15780
|
-
"module": "dist/shared/esp-element-base.js"
|
|
15781
|
-
}
|
|
15865
|
+
"privacy": "private"
|
|
15782
15866
|
},
|
|
15783
15867
|
{
|
|
15784
15868
|
"kind": "field",
|
|
15785
|
-
"name": "
|
|
15869
|
+
"name": "busSubscribed",
|
|
15786
15870
|
"type": {
|
|
15787
|
-
"text": "
|
|
15871
|
+
"text": "boolean"
|
|
15788
15872
|
},
|
|
15789
15873
|
"privacy": "private",
|
|
15790
|
-
"default": "
|
|
15791
|
-
"
|
|
15792
|
-
"name": "EspalierElementBase",
|
|
15793
|
-
"module": "dist/shared/esp-element-base.js"
|
|
15794
|
-
}
|
|
15874
|
+
"default": "false",
|
|
15875
|
+
"description": "Whether the bus handlers are currently registered. EspBus does\nnot dedupe subscriptions, so this guards against double-adds."
|
|
15795
15876
|
},
|
|
15796
15877
|
{
|
|
15797
15878
|
"kind": "field",
|
|
15798
|
-
"name": "
|
|
15879
|
+
"name": "panelRef",
|
|
15880
|
+
"privacy": "private"
|
|
15881
|
+
},
|
|
15882
|
+
{
|
|
15883
|
+
"kind": "field",
|
|
15884
|
+
"name": "overlay",
|
|
15799
15885
|
"privacy": "private",
|
|
15800
|
-
"
|
|
15801
|
-
"
|
|
15802
|
-
"inheritedFrom": {
|
|
15803
|
-
"name": "EspalierElementBase",
|
|
15804
|
-
"module": "dist/shared/esp-element-base.js"
|
|
15805
|
-
}
|
|
15886
|
+
"default": "new OverlayController({ host: this, getFocusTrapContainer: () => this.panelRef.value ?? null, getFocusFallback: () => this.panelRef.value ?? null, promote: false, })",
|
|
15887
|
+
"description": "Modal treatment for the overlay-drawer presentation only. It does\nnot promote out of the page slot, so the flyout keeps its grid\nplacement and `flyout-state-changed` sync; inert anchors on the\nflyout's own position, making its page siblings inert."
|
|
15806
15888
|
},
|
|
15807
15889
|
{
|
|
15808
15890
|
"kind": "field",
|
|
15809
|
-
"name": "
|
|
15891
|
+
"name": "overlayMediaQuery",
|
|
15810
15892
|
"type": {
|
|
15811
|
-
"text": "
|
|
15893
|
+
"text": "MediaQueryList | undefined"
|
|
15812
15894
|
},
|
|
15813
15895
|
"privacy": "private",
|
|
15814
|
-
"
|
|
15815
|
-
"inheritedFrom": {
|
|
15816
|
-
"name": "EspalierElementBase",
|
|
15817
|
-
"module": "dist/shared/esp-element-base.js"
|
|
15818
|
-
}
|
|
15896
|
+
"description": "Media query matching the overlay-drawer viewport range."
|
|
15819
15897
|
},
|
|
15820
15898
|
{
|
|
15821
15899
|
"kind": "field",
|
|
15822
|
-
"name": "
|
|
15900
|
+
"name": "overlayActive",
|
|
15823
15901
|
"type": {
|
|
15824
|
-
"text": "
|
|
15902
|
+
"text": "boolean"
|
|
15825
15903
|
},
|
|
15826
|
-
"privacy": "
|
|
15827
|
-
"default": "
|
|
15828
|
-
"
|
|
15829
|
-
"name": "EspalierElementBase",
|
|
15830
|
-
"module": "dist/shared/esp-element-base.js"
|
|
15831
|
-
}
|
|
15904
|
+
"privacy": "private",
|
|
15905
|
+
"default": "false",
|
|
15906
|
+
"description": "Whether the modal (overlay) treatment is currently applied."
|
|
15832
15907
|
},
|
|
15833
15908
|
{
|
|
15834
15909
|
"kind": "field",
|
|
15835
|
-
"name": "
|
|
15910
|
+
"name": "baseRole",
|
|
15836
15911
|
"type": {
|
|
15837
15912
|
"text": "string"
|
|
15838
15913
|
},
|
|
15839
|
-
"privacy": "
|
|
15840
|
-
"
|
|
15841
|
-
|
|
15842
|
-
"module": "dist/shared/esp-element-base.js"
|
|
15843
|
-
}
|
|
15914
|
+
"privacy": "private",
|
|
15915
|
+
"default": "\"complementary\"",
|
|
15916
|
+
"description": "The landmark role to restore when leaving the overlay treatment\n(the author's role, or the default `complementary`)."
|
|
15844
15917
|
},
|
|
15845
15918
|
{
|
|
15846
15919
|
"kind": "field",
|
|
15847
|
-
"name": "
|
|
15848
|
-
"
|
|
15849
|
-
|
|
15850
|
-
|
|
15851
|
-
|
|
15852
|
-
|
|
15920
|
+
"name": "effectiveOverlay",
|
|
15921
|
+
"type": {
|
|
15922
|
+
"text": "boolean"
|
|
15923
|
+
},
|
|
15924
|
+
"privacy": "private",
|
|
15925
|
+
"description": "Whether the flyout is presenting as an overlay drawer — either\nforced via `mode=\"overlay\"` or below the mobile threshold. The\nmodal a11y treatment applies exactly in this state; the in-grid\nmodes stay a non-modal `complementary` landmark.",
|
|
15926
|
+
"readonly": true
|
|
15853
15927
|
},
|
|
15854
15928
|
{
|
|
15855
15929
|
"kind": "method",
|
|
15856
|
-
"name": "
|
|
15857
|
-
"privacy": "
|
|
15930
|
+
"name": "syncBusSubscription",
|
|
15931
|
+
"privacy": "private",
|
|
15858
15932
|
"return": {
|
|
15859
15933
|
"type": {
|
|
15860
15934
|
"text": "void"
|
|
15861
15935
|
}
|
|
15862
15936
|
},
|
|
15863
|
-
"
|
|
15864
|
-
|
|
15865
|
-
|
|
15866
|
-
|
|
15867
|
-
|
|
15868
|
-
|
|
15869
|
-
|
|
15870
|
-
{
|
|
15871
|
-
"
|
|
15872
|
-
"optional": true,
|
|
15873
|
-
"type": {
|
|
15874
|
-
"text": "FocusOptions"
|
|
15875
|
-
}
|
|
15937
|
+
"description": "Subscribe to the shared bus unless `standalone`; idempotent so\nit is safe to call from both connect and a `standalone` change."
|
|
15938
|
+
},
|
|
15939
|
+
{
|
|
15940
|
+
"kind": "method",
|
|
15941
|
+
"name": "unsubscribeBus",
|
|
15942
|
+
"privacy": "private",
|
|
15943
|
+
"return": {
|
|
15944
|
+
"type": {
|
|
15945
|
+
"text": "void"
|
|
15876
15946
|
}
|
|
15877
|
-
],
|
|
15878
|
-
"inheritedFrom": {
|
|
15879
|
-
"name": "EspalierElementBase",
|
|
15880
|
-
"module": "dist/shared/esp-element-base.js"
|
|
15881
15947
|
}
|
|
15882
15948
|
},
|
|
15883
15949
|
{
|
|
15884
15950
|
"kind": "method",
|
|
15885
|
-
"name": "
|
|
15886
|
-
"privacy": "
|
|
15951
|
+
"name": "show",
|
|
15952
|
+
"privacy": "public",
|
|
15887
15953
|
"return": {
|
|
15888
15954
|
"type": {
|
|
15889
15955
|
"text": "void"
|
|
15890
15956
|
}
|
|
15891
15957
|
},
|
|
15892
|
-
"
|
|
15893
|
-
{
|
|
15894
|
-
"name": "selector",
|
|
15895
|
-
"type": {
|
|
15896
|
-
"text": "string"
|
|
15897
|
-
}
|
|
15898
|
-
},
|
|
15899
|
-
{
|
|
15900
|
-
"name": "options",
|
|
15901
|
-
"optional": true,
|
|
15902
|
-
"type": {
|
|
15903
|
-
"text": "FocusOptions"
|
|
15904
|
-
}
|
|
15905
|
-
}
|
|
15906
|
-
],
|
|
15907
|
-
"inheritedFrom": {
|
|
15908
|
-
"name": "EspalierElementBase",
|
|
15909
|
-
"module": "dist/shared/esp-element-base.js"
|
|
15910
|
-
}
|
|
15958
|
+
"description": "Open the flyout with its current content. In the in-grid modes it\ndoes not move focus; in the overlay-drawer mode it moves focus\ninto the drawer as a modal."
|
|
15911
15959
|
},
|
|
15912
15960
|
{
|
|
15913
15961
|
"kind": "method",
|
|
15914
|
-
"name": "
|
|
15915
|
-
"privacy": "
|
|
15962
|
+
"name": "close",
|
|
15963
|
+
"privacy": "public",
|
|
15916
15964
|
"return": {
|
|
15917
15965
|
"type": {
|
|
15918
15966
|
"text": "void"
|
|
@@ -15920,16 +15968,362 @@
|
|
|
15920
15968
|
},
|
|
15921
15969
|
"parameters": [
|
|
15922
15970
|
{
|
|
15923
|
-
"name": "
|
|
15971
|
+
"name": "reason",
|
|
15972
|
+
"default": "\"programmatic\"",
|
|
15924
15973
|
"type": {
|
|
15925
|
-
"text": "
|
|
15974
|
+
"text": "FlyoutCloseReason"
|
|
15926
15975
|
}
|
|
15927
15976
|
}
|
|
15928
15977
|
],
|
|
15929
|
-
"
|
|
15930
|
-
|
|
15931
|
-
|
|
15932
|
-
|
|
15978
|
+
"description": "Close the flyout. In the in-grid modes, if focus is inside the\nflyout it is returned to `returnFocusTo` when one was provided; in\nthe overlay-drawer mode the modal treatment restores focus to\nwherever it was when the drawer opened, unless `returnFocusTo`\nnames an explicit target — the explicit target wins."
|
|
15979
|
+
},
|
|
15980
|
+
{
|
|
15981
|
+
"kind": "method",
|
|
15982
|
+
"name": "toggle",
|
|
15983
|
+
"privacy": "public",
|
|
15984
|
+
"return": {
|
|
15985
|
+
"type": {
|
|
15986
|
+
"text": "void"
|
|
15987
|
+
}
|
|
15988
|
+
},
|
|
15989
|
+
"description": "Toggle the flyout between open and closed."
|
|
15990
|
+
},
|
|
15991
|
+
{
|
|
15992
|
+
"kind": "method",
|
|
15993
|
+
"name": "handleShowRequest",
|
|
15994
|
+
"privacy": "private",
|
|
15995
|
+
"return": {
|
|
15996
|
+
"type": {
|
|
15997
|
+
"text": "void"
|
|
15998
|
+
}
|
|
15999
|
+
},
|
|
16000
|
+
"parameters": [
|
|
16001
|
+
{
|
|
16002
|
+
"name": "config",
|
|
16003
|
+
"type": {
|
|
16004
|
+
"text": "FlyoutConfig"
|
|
16005
|
+
}
|
|
16006
|
+
}
|
|
16007
|
+
],
|
|
16008
|
+
"description": "Service a `\"show-flyout\"` bus request: swap in the requested\nheading/content (never stacking) and open."
|
|
16009
|
+
},
|
|
16010
|
+
{
|
|
16011
|
+
"kind": "method",
|
|
16012
|
+
"name": "handleKeydown",
|
|
16013
|
+
"privacy": "private",
|
|
16014
|
+
"return": {
|
|
16015
|
+
"type": {
|
|
16016
|
+
"text": "void"
|
|
16017
|
+
}
|
|
16018
|
+
},
|
|
16019
|
+
"parameters": [
|
|
16020
|
+
{
|
|
16021
|
+
"name": "ev",
|
|
16022
|
+
"type": {
|
|
16023
|
+
"text": "KeyboardEvent"
|
|
16024
|
+
}
|
|
16025
|
+
}
|
|
16026
|
+
]
|
|
16027
|
+
},
|
|
16028
|
+
{
|
|
16029
|
+
"kind": "method",
|
|
16030
|
+
"name": "focusIsInside",
|
|
16031
|
+
"privacy": "private",
|
|
16032
|
+
"return": {
|
|
16033
|
+
"type": {
|
|
16034
|
+
"text": "boolean"
|
|
16035
|
+
}
|
|
16036
|
+
}
|
|
16037
|
+
},
|
|
16038
|
+
{
|
|
16039
|
+
"kind": "method",
|
|
16040
|
+
"name": "syncAnchorGeometry",
|
|
16041
|
+
"privacy": "private",
|
|
16042
|
+
"return": {
|
|
16043
|
+
"type": {
|
|
16044
|
+
"text": "void"
|
|
16045
|
+
}
|
|
16046
|
+
},
|
|
16047
|
+
"description": "Position an anchored in-grid flyout at the trigger's natural\nblock-start, then shift it upward only enough to keep its bottom in\nthe visible scrollport. The shift is recalculated during scrolling,\nso it returns to zero when the panel fits at its natural top."
|
|
16048
|
+
},
|
|
16049
|
+
{
|
|
16050
|
+
"kind": "method",
|
|
16051
|
+
"name": "getVisibleBlockBounds",
|
|
16052
|
+
"privacy": "private",
|
|
16053
|
+
"return": {
|
|
16054
|
+
"type": {
|
|
16055
|
+
"text": "{ top: number; bottom: number }"
|
|
16056
|
+
}
|
|
16057
|
+
},
|
|
16058
|
+
"description": "Intersect the visual viewport with every scrolling ancestor. This\nkeeps the flyout usable both on the document and inside a bounded\nlive-example pane such as WTFM's demo container."
|
|
16059
|
+
},
|
|
16060
|
+
{
|
|
16061
|
+
"kind": "method",
|
|
16062
|
+
"name": "composedParent",
|
|
16063
|
+
"privacy": "private",
|
|
16064
|
+
"return": {
|
|
16065
|
+
"type": {
|
|
16066
|
+
"text": "Element | null"
|
|
16067
|
+
}
|
|
16068
|
+
},
|
|
16069
|
+
"parameters": [
|
|
16070
|
+
{
|
|
16071
|
+
"name": "element",
|
|
16072
|
+
"type": {
|
|
16073
|
+
"text": "Element"
|
|
16074
|
+
}
|
|
16075
|
+
}
|
|
16076
|
+
]
|
|
16077
|
+
},
|
|
16078
|
+
{
|
|
16079
|
+
"kind": "method",
|
|
16080
|
+
"name": "setGeometryProperty",
|
|
16081
|
+
"privacy": "private",
|
|
16082
|
+
"return": {
|
|
16083
|
+
"type": {
|
|
16084
|
+
"text": "void"
|
|
16085
|
+
}
|
|
16086
|
+
},
|
|
16087
|
+
"parameters": [
|
|
16088
|
+
{
|
|
16089
|
+
"name": "name",
|
|
16090
|
+
"type": {
|
|
16091
|
+
"text": "string"
|
|
16092
|
+
}
|
|
16093
|
+
},
|
|
16094
|
+
{
|
|
16095
|
+
"name": "value",
|
|
16096
|
+
"type": {
|
|
16097
|
+
"text": "string"
|
|
16098
|
+
}
|
|
16099
|
+
}
|
|
16100
|
+
]
|
|
16101
|
+
},
|
|
16102
|
+
{
|
|
16103
|
+
"kind": "method",
|
|
16104
|
+
"name": "clearAnchorGeometry",
|
|
16105
|
+
"privacy": "private",
|
|
16106
|
+
"return": {
|
|
16107
|
+
"type": {
|
|
16108
|
+
"text": "void"
|
|
16109
|
+
}
|
|
16110
|
+
}
|
|
16111
|
+
},
|
|
16112
|
+
{
|
|
16113
|
+
"kind": "method",
|
|
16114
|
+
"name": "scheduleAnchorGeometrySync",
|
|
16115
|
+
"privacy": "private",
|
|
16116
|
+
"return": {
|
|
16117
|
+
"type": {
|
|
16118
|
+
"text": "void"
|
|
16119
|
+
}
|
|
16120
|
+
}
|
|
16121
|
+
},
|
|
16122
|
+
{
|
|
16123
|
+
"kind": "method",
|
|
16124
|
+
"name": "syncAnchorTracking",
|
|
16125
|
+
"privacy": "private",
|
|
16126
|
+
"return": {
|
|
16127
|
+
"type": {
|
|
16128
|
+
"text": "void"
|
|
16129
|
+
}
|
|
16130
|
+
}
|
|
16131
|
+
},
|
|
16132
|
+
{
|
|
16133
|
+
"kind": "method",
|
|
16134
|
+
"name": "stopAnchorTracking",
|
|
16135
|
+
"privacy": "private",
|
|
16136
|
+
"return": {
|
|
16137
|
+
"type": {
|
|
16138
|
+
"text": "void"
|
|
16139
|
+
}
|
|
16140
|
+
}
|
|
16141
|
+
},
|
|
16142
|
+
{
|
|
16143
|
+
"kind": "method",
|
|
16144
|
+
"name": "syncOverlayModal",
|
|
16145
|
+
"privacy": "private",
|
|
16146
|
+
"return": {
|
|
16147
|
+
"type": {
|
|
16148
|
+
"text": "void"
|
|
16149
|
+
}
|
|
16150
|
+
},
|
|
16151
|
+
"description": "Apply modal a11y exactly when the flyout is open **and** presenting\nas an overlay drawer, and remove it otherwise. Called on open/mode\nchanges and when the viewport crosses the overlay threshold.\n\nModal treatment = background inert, scroll lock, `role=\"dialog\"` +\n`aria-modal`, focus moved into the drawer and trapped, and focus\nrestored on teardown — all via the (non-promoting) Overlay\ncontroller, so the flyout never leaves its page slot. The in-grid\nmodes stay a non-modal `complementary` landmark with no focus\nmanagement."
|
|
16152
|
+
},
|
|
16153
|
+
{
|
|
16154
|
+
"kind": "method",
|
|
16155
|
+
"name": "updateGeneratedAriaLabel",
|
|
16156
|
+
"privacy": "private",
|
|
16157
|
+
"return": {
|
|
16158
|
+
"type": {
|
|
16159
|
+
"text": "void"
|
|
16160
|
+
}
|
|
16161
|
+
},
|
|
16162
|
+
"description": "Mirror `heading` into `aria-label`, or apply a stable fallback\nwhile this is an overlay dialog, without clobbering a label the\nauthor controls (see lastGeneratedAriaLabel)."
|
|
16163
|
+
},
|
|
16164
|
+
{
|
|
16165
|
+
"kind": "field",
|
|
16166
|
+
"name": "seedColorBacker",
|
|
16167
|
+
"type": {
|
|
16168
|
+
"text": "string"
|
|
16169
|
+
},
|
|
16170
|
+
"privacy": "private",
|
|
16171
|
+
"default": "\"oklch(0.7 0.125 216)\"",
|
|
16172
|
+
"inheritedFrom": {
|
|
16173
|
+
"name": "EspalierElementBase",
|
|
16174
|
+
"module": "dist/shared/esp-element-base.js"
|
|
16175
|
+
}
|
|
16176
|
+
},
|
|
16177
|
+
{
|
|
16178
|
+
"kind": "field",
|
|
16179
|
+
"name": "espRoot",
|
|
16180
|
+
"type": {
|
|
16181
|
+
"text": "EspalierRoot | null"
|
|
16182
|
+
},
|
|
16183
|
+
"privacy": "private",
|
|
16184
|
+
"default": "null",
|
|
16185
|
+
"inheritedFrom": {
|
|
16186
|
+
"name": "EspalierElementBase",
|
|
16187
|
+
"module": "dist/shared/esp-element-base.js"
|
|
16188
|
+
}
|
|
16189
|
+
},
|
|
16190
|
+
{
|
|
16191
|
+
"kind": "field",
|
|
16192
|
+
"name": "variantTokenOriginalValues",
|
|
16193
|
+
"privacy": "private",
|
|
16194
|
+
"readonly": true,
|
|
16195
|
+
"default": "new Map< string, { generatedPriority: string; generatedValue: string; originalPriority: string; originalValue: string | null; } >()",
|
|
16196
|
+
"inheritedFrom": {
|
|
16197
|
+
"name": "EspalierElementBase",
|
|
16198
|
+
"module": "dist/shared/esp-element-base.js"
|
|
16199
|
+
}
|
|
16200
|
+
},
|
|
16201
|
+
{
|
|
16202
|
+
"kind": "field",
|
|
16203
|
+
"name": "rootEventSubscriptionsActive",
|
|
16204
|
+
"type": {
|
|
16205
|
+
"text": "boolean"
|
|
16206
|
+
},
|
|
16207
|
+
"privacy": "private",
|
|
16208
|
+
"default": "false",
|
|
16209
|
+
"inheritedFrom": {
|
|
16210
|
+
"name": "EspalierElementBase",
|
|
16211
|
+
"module": "dist/shared/esp-element-base.js"
|
|
16212
|
+
}
|
|
16213
|
+
},
|
|
16214
|
+
{
|
|
16215
|
+
"kind": "field",
|
|
16216
|
+
"name": "variantBacker",
|
|
16217
|
+
"type": {
|
|
16218
|
+
"text": "EspalierVariant"
|
|
16219
|
+
},
|
|
16220
|
+
"privacy": "protected",
|
|
16221
|
+
"default": "\"primary\"",
|
|
16222
|
+
"inheritedFrom": {
|
|
16223
|
+
"name": "EspalierElementBase",
|
|
16224
|
+
"module": "dist/shared/esp-element-base.js"
|
|
16225
|
+
}
|
|
16226
|
+
},
|
|
16227
|
+
{
|
|
16228
|
+
"kind": "field",
|
|
16229
|
+
"name": "seedColor",
|
|
16230
|
+
"type": {
|
|
16231
|
+
"text": "string"
|
|
16232
|
+
},
|
|
16233
|
+
"privacy": "public",
|
|
16234
|
+
"inheritedFrom": {
|
|
16235
|
+
"name": "EspalierElementBase",
|
|
16236
|
+
"module": "dist/shared/esp-element-base.js"
|
|
16237
|
+
}
|
|
16238
|
+
},
|
|
16239
|
+
{
|
|
16240
|
+
"kind": "field",
|
|
16241
|
+
"name": "correlationId",
|
|
16242
|
+
"privacy": "public",
|
|
16243
|
+
"inheritedFrom": {
|
|
16244
|
+
"name": "EspalierElementBase",
|
|
16245
|
+
"module": "dist/shared/esp-element-base.js"
|
|
16246
|
+
}
|
|
16247
|
+
},
|
|
16248
|
+
{
|
|
16249
|
+
"kind": "method",
|
|
16250
|
+
"name": "focusResolvedElementAfterUpdate",
|
|
16251
|
+
"privacy": "protected",
|
|
16252
|
+
"return": {
|
|
16253
|
+
"type": {
|
|
16254
|
+
"text": "void"
|
|
16255
|
+
}
|
|
16256
|
+
},
|
|
16257
|
+
"parameters": [
|
|
16258
|
+
{
|
|
16259
|
+
"name": "resolveTarget",
|
|
16260
|
+
"type": {
|
|
16261
|
+
"text": "() => HTMLElement | null | undefined"
|
|
16262
|
+
}
|
|
16263
|
+
},
|
|
16264
|
+
{
|
|
16265
|
+
"name": "options",
|
|
16266
|
+
"optional": true,
|
|
16267
|
+
"type": {
|
|
16268
|
+
"text": "FocusOptions"
|
|
16269
|
+
}
|
|
16270
|
+
}
|
|
16271
|
+
],
|
|
16272
|
+
"inheritedFrom": {
|
|
16273
|
+
"name": "EspalierElementBase",
|
|
16274
|
+
"module": "dist/shared/esp-element-base.js"
|
|
16275
|
+
}
|
|
16276
|
+
},
|
|
16277
|
+
{
|
|
16278
|
+
"kind": "method",
|
|
16279
|
+
"name": "focusShadowElementAfterUpdate",
|
|
16280
|
+
"privacy": "protected",
|
|
16281
|
+
"return": {
|
|
16282
|
+
"type": {
|
|
16283
|
+
"text": "void"
|
|
16284
|
+
}
|
|
16285
|
+
},
|
|
16286
|
+
"parameters": [
|
|
16287
|
+
{
|
|
16288
|
+
"name": "selector",
|
|
16289
|
+
"type": {
|
|
16290
|
+
"text": "string"
|
|
16291
|
+
}
|
|
16292
|
+
},
|
|
16293
|
+
{
|
|
16294
|
+
"name": "options",
|
|
16295
|
+
"optional": true,
|
|
16296
|
+
"type": {
|
|
16297
|
+
"text": "FocusOptions"
|
|
16298
|
+
}
|
|
16299
|
+
}
|
|
16300
|
+
],
|
|
16301
|
+
"inheritedFrom": {
|
|
16302
|
+
"name": "EspalierElementBase",
|
|
16303
|
+
"module": "dist/shared/esp-element-base.js"
|
|
16304
|
+
}
|
|
16305
|
+
},
|
|
16306
|
+
{
|
|
16307
|
+
"kind": "method",
|
|
16308
|
+
"name": "emitValueChanged",
|
|
16309
|
+
"privacy": "protected",
|
|
16310
|
+
"return": {
|
|
16311
|
+
"type": {
|
|
16312
|
+
"text": "void"
|
|
16313
|
+
}
|
|
16314
|
+
},
|
|
16315
|
+
"parameters": [
|
|
16316
|
+
{
|
|
16317
|
+
"name": "detail",
|
|
16318
|
+
"type": {
|
|
16319
|
+
"text": "T"
|
|
16320
|
+
}
|
|
16321
|
+
}
|
|
16322
|
+
],
|
|
16323
|
+
"inheritedFrom": {
|
|
16324
|
+
"name": "EspalierElementBase",
|
|
16325
|
+
"module": "dist/shared/esp-element-base.js"
|
|
16326
|
+
}
|
|
15933
16327
|
},
|
|
15934
16328
|
{
|
|
15935
16329
|
"kind": "field",
|
|
@@ -16227,12 +16621,32 @@
|
|
|
16227
16621
|
}
|
|
16228
16622
|
],
|
|
16229
16623
|
"events": [
|
|
16624
|
+
{
|
|
16625
|
+
"name": "flyout-opened",
|
|
16626
|
+
"type": {
|
|
16627
|
+
"text": "CustomEvent<{}>"
|
|
16628
|
+
},
|
|
16629
|
+
"description": "Fired by `show()` when the flyout opens."
|
|
16630
|
+
},
|
|
16631
|
+
{
|
|
16632
|
+
"name": "flyout-closed",
|
|
16633
|
+
"type": {
|
|
16634
|
+
"text": "CustomEvent<{reason: FlyoutCloseReason}>"
|
|
16635
|
+
},
|
|
16636
|
+
"description": "Fired by `close()` when the flyout closes. `reason` is `\"escape\"`, `\"vellum\"`, `\"button\"`, or `\"programmatic\"`."
|
|
16637
|
+
},
|
|
16638
|
+
{
|
|
16639
|
+
"name": "flyout-state-changed",
|
|
16640
|
+
"type": {
|
|
16641
|
+
"text": "CustomEvent<{}>"
|
|
16642
|
+
},
|
|
16643
|
+
"description": "Fired on every `open`, `mode`, or `anchor` change, including direct property assignment (not just `show()`/`close()`). `esp-page` uses it to keep its layout in sync; most consumers want `flyout-opened`/`flyout-closed` instead."
|
|
16644
|
+
},
|
|
16230
16645
|
{
|
|
16231
16646
|
"name": "value-changed",
|
|
16232
16647
|
"type": {
|
|
16233
16648
|
"text": "CustomEvent"
|
|
16234
16649
|
},
|
|
16235
|
-
"description": "Fired when the user selects a font",
|
|
16236
16650
|
"inheritedFrom": {
|
|
16237
16651
|
"name": "EspalierElementBase",
|
|
16238
16652
|
"module": "dist/shared/esp-element-base.js"
|
|
@@ -16241,40 +16655,49 @@
|
|
|
16241
16655
|
],
|
|
16242
16656
|
"attributes": [
|
|
16243
16657
|
{
|
|
16244
|
-
"name": "
|
|
16658
|
+
"name": "open",
|
|
16245
16659
|
"type": {
|
|
16246
|
-
"text": "
|
|
16660
|
+
"text": "boolean"
|
|
16247
16661
|
},
|
|
16248
|
-
"default": "
|
|
16249
|
-
"description": "
|
|
16250
|
-
"fieldName": "
|
|
16662
|
+
"default": "false",
|
|
16663
|
+
"description": "Whether the flyout is open. Reflected so the initial state can\nbe declared in markup; `esp-page` mirrors it (via the lifecycle\nevents and the slot) onto its own `flyout-open` attribute to\ndrive the grid.",
|
|
16664
|
+
"fieldName": "open"
|
|
16251
16665
|
},
|
|
16252
16666
|
{
|
|
16253
|
-
"name": "
|
|
16667
|
+
"name": "heading",
|
|
16254
16668
|
"type": {
|
|
16255
|
-
"text": "
|
|
16669
|
+
"text": "string"
|
|
16256
16670
|
},
|
|
16257
|
-
"default": "\"
|
|
16258
|
-
"description": "
|
|
16259
|
-
"fieldName": "
|
|
16671
|
+
"default": "\"\"",
|
|
16672
|
+
"description": "Heading text for the panel's header row. Also becomes the\nflyout's accessible name unless the author set an `aria-label`.\nAn open overlay without either uses the fallback name \"Flyout\" so\nits dialog is never exposed without an accessible name.",
|
|
16673
|
+
"fieldName": "heading"
|
|
16260
16674
|
},
|
|
16261
16675
|
{
|
|
16262
|
-
"name": "
|
|
16676
|
+
"name": "mode",
|
|
16263
16677
|
"type": {
|
|
16264
|
-
"text": "
|
|
16678
|
+
"text": "\"auto\" | \"overlay\""
|
|
16265
16679
|
},
|
|
16266
|
-
"default": "\"\"",
|
|
16267
|
-
"description": "
|
|
16268
|
-
"fieldName": "
|
|
16680
|
+
"default": "\"auto\"",
|
|
16681
|
+
"description": "Placement behavior.\n\n- `\"auto\"` (default) — the page's placement ladder: gutter,\n docked sidebar, then overlay drawer below the `50em` viewport\n threshold.\n- `\"overlay\"` — always the fixed overlay drawer, at any width.\n The page never reserves a grid track for an overlay-mode\n flyout.",
|
|
16682
|
+
"fieldName": "mode"
|
|
16269
16683
|
},
|
|
16270
16684
|
{
|
|
16271
|
-
"name": "
|
|
16685
|
+
"name": "match-surface",
|
|
16272
16686
|
"type": {
|
|
16273
|
-
"text": "
|
|
16687
|
+
"text": "boolean"
|
|
16274
16688
|
},
|
|
16275
|
-
"default": "
|
|
16276
|
-
"description": "The
|
|
16277
|
-
"fieldName": "
|
|
16689
|
+
"default": "false",
|
|
16690
|
+
"description": "When set on a flyout slotted into an `esp-page`, the panel lifts\nits **trailing** edge with the page's surface edge shadow, so it\nreads as a raised peer of the content surface it flies out from\nrather than the shadowless tear-off. The **leading** edge keeps\nits dotted perforation and casts no shadow, so the panel stays\nattached at the tear line instead of floating over the content.\nThe trailing-corner radius is still `--esp-flyout-radius`. No\neffect on a standalone flyout — there is no page surface to match.",
|
|
16691
|
+
"fieldName": "matchSurface"
|
|
16692
|
+
},
|
|
16693
|
+
{
|
|
16694
|
+
"name": "standalone",
|
|
16695
|
+
"type": {
|
|
16696
|
+
"text": "boolean"
|
|
16697
|
+
},
|
|
16698
|
+
"default": "false",
|
|
16699
|
+
"description": "Whether this flyout ignores the shared `showFlyout()` /\n`closeFlyout()` bus and is driven only through its own\n`show()` / `close()` / `toggle()` API.\n\nBy default a flyout services the bus, so a single flyout in a\npage \"just works\" as the target of `showFlyout()` — the same\nzero-config model as `<esp-toaster>` and `showToast()`. Because\nthe bus is a global broadcast, **every** listening flyout on the\npage answers a `showFlyout()` call; set `standalone` on any\nflyout you drive directly so only your one designated help\nsurface responds.",
|
|
16700
|
+
"fieldName": "standalone"
|
|
16278
16701
|
},
|
|
16279
16702
|
{
|
|
16280
16703
|
"name": "scheme",
|
|
@@ -16306,490 +16729,208 @@
|
|
|
16306
16729
|
"name": "EspalierElementBase",
|
|
16307
16730
|
"module": "dist/shared/esp-element-base.js"
|
|
16308
16731
|
},
|
|
16309
|
-
"tagName": "esp-font-picker",
|
|
16310
|
-
"customElement": true,
|
|
16311
16732
|
"docPageTitle": {
|
|
16312
|
-
"name": "
|
|
16313
|
-
"description": "
|
|
16733
|
+
"name": "Flyout",
|
|
16734
|
+
"description": ""
|
|
16314
16735
|
},
|
|
16315
16736
|
"docUrl": {
|
|
16316
|
-
"name": "/components/
|
|
16737
|
+
"name": "/components/flyout",
|
|
16317
16738
|
"description": ""
|
|
16318
16739
|
},
|
|
16319
16740
|
"menuGroup": {
|
|
16320
|
-
"name": "
|
|
16321
|
-
"description": "
|
|
16741
|
+
"name": "Structure",
|
|
16742
|
+
"description": ""
|
|
16743
|
+
},
|
|
16744
|
+
"menuOrder": {
|
|
16745
|
+
"name": "3",
|
|
16746
|
+
"description": ""
|
|
16322
16747
|
},
|
|
16323
16748
|
"menuLabel": {
|
|
16324
|
-
"name": "
|
|
16325
|
-
"description": "
|
|
16749
|
+
"name": "Flyout",
|
|
16750
|
+
"description": ""
|
|
16326
16751
|
},
|
|
16327
16752
|
"menuIcon": {
|
|
16328
|
-
"name": "
|
|
16753
|
+
"name": "layout",
|
|
16329
16754
|
"description": ""
|
|
16330
16755
|
},
|
|
16331
|
-
"
|
|
16332
|
-
|
|
16333
|
-
"description": "Background color of the shared field shell. Defaults to `var(--esp-color-layer-2)`.",
|
|
16334
|
-
"name": "--esp-field-background",
|
|
16335
|
-
"inheritedFrom": {
|
|
16336
|
-
"name": "EspalierElementBase",
|
|
16337
|
-
"module": "dist/shared/esp-element-base.js"
|
|
16338
|
-
}
|
|
16339
|
-
},
|
|
16340
|
-
{
|
|
16341
|
-
"description": "Border color of the shared field shell. Defaults to `var(--esp-color-border)`.",
|
|
16342
|
-
"name": "--esp-field-border-color",
|
|
16343
|
-
"inheritedFrom": {
|
|
16344
|
-
"name": "EspalierElementBase",
|
|
16345
|
-
"module": "dist/shared/esp-element-base.js"
|
|
16346
|
-
}
|
|
16347
|
-
},
|
|
16348
|
-
{
|
|
16349
|
-
"description": "Border width of the shared field shell. Defaults to `1px`.",
|
|
16350
|
-
"name": "--esp-field-border-width",
|
|
16351
|
-
"inheritedFrom": {
|
|
16352
|
-
"name": "EspalierElementBase",
|
|
16353
|
-
"module": "dist/shared/esp-element-base.js"
|
|
16354
|
-
}
|
|
16355
|
-
},
|
|
16356
|
-
{
|
|
16357
|
-
"description": "Text color used inside the shared field shell. Defaults to `var(--esp-color-text)`.",
|
|
16358
|
-
"name": "--esp-field-text-color",
|
|
16359
|
-
"inheritedFrom": {
|
|
16360
|
-
"name": "EspalierElementBase",
|
|
16361
|
-
"module": "dist/shared/esp-element-base.js"
|
|
16362
|
-
}
|
|
16363
|
-
},
|
|
16364
|
-
{
|
|
16365
|
-
"description": "Hover background color of the shared field shell. Derived from `--esp-field-background`.",
|
|
16366
|
-
"name": "--esp-field-hover-bg",
|
|
16367
|
-
"inheritedFrom": {
|
|
16368
|
-
"name": "EspalierElementBase",
|
|
16369
|
-
"module": "dist/shared/esp-element-base.js"
|
|
16370
|
-
}
|
|
16371
|
-
},
|
|
16372
|
-
{
|
|
16373
|
-
"description": "Focus background color of the shared field shell. Derived from `--esp-field-background`.",
|
|
16374
|
-
"name": "--esp-field-focus-bg",
|
|
16375
|
-
"inheritedFrom": {
|
|
16376
|
-
"name": "EspalierElementBase",
|
|
16377
|
-
"module": "dist/shared/esp-element-base.js"
|
|
16378
|
-
}
|
|
16379
|
-
},
|
|
16380
|
-
{
|
|
16381
|
-
"description": "Shadow color used for shared field focus treatment. Defaults to `var(--esp-color-shadow)`.",
|
|
16382
|
-
"name": "--esp-field-focus-shadow",
|
|
16383
|
-
"inheritedFrom": {
|
|
16384
|
-
"name": "EspalierElementBase",
|
|
16385
|
-
"module": "dist/shared/esp-element-base.js"
|
|
16386
|
-
}
|
|
16387
|
-
}
|
|
16388
|
-
]
|
|
16389
|
-
},
|
|
16390
|
-
{
|
|
16391
|
-
"kind": "function",
|
|
16392
|
-
"name": "resetFontCache",
|
|
16393
|
-
"return": {
|
|
16394
|
-
"type": {
|
|
16395
|
-
"text": "void"
|
|
16396
|
-
}
|
|
16397
|
-
},
|
|
16398
|
-
"description": "Reset the module-level font cache. Exposed for test cleanup so each\ntest starts with a fresh slate."
|
|
16756
|
+
"tagName": "esp-flyout",
|
|
16757
|
+
"customElement": true
|
|
16399
16758
|
}
|
|
16400
16759
|
],
|
|
16401
16760
|
"exports": [
|
|
16402
16761
|
{
|
|
16403
16762
|
"kind": "js",
|
|
16404
|
-
"name": "
|
|
16405
|
-
"declaration": {
|
|
16406
|
-
"name": "WEB_SAFE_FONTS",
|
|
16407
|
-
"module": "dist/font-picker/esp-font-picker.js"
|
|
16408
|
-
}
|
|
16409
|
-
},
|
|
16410
|
-
{
|
|
16411
|
-
"kind": "js",
|
|
16412
|
-
"name": "getGoogleFonts",
|
|
16413
|
-
"declaration": {
|
|
16414
|
-
"name": "getGoogleFonts",
|
|
16415
|
-
"module": "dist/font-picker/esp-font-picker.js"
|
|
16416
|
-
}
|
|
16417
|
-
},
|
|
16418
|
-
{
|
|
16419
|
-
"kind": "js",
|
|
16420
|
-
"name": "previewFontFamily",
|
|
16421
|
-
"declaration": {
|
|
16422
|
-
"name": "previewFontFamily",
|
|
16423
|
-
"module": "dist/font-picker/esp-font-picker.js"
|
|
16424
|
-
}
|
|
16425
|
-
},
|
|
16426
|
-
{
|
|
16427
|
-
"kind": "js",
|
|
16428
|
-
"name": "EspalierFontPicker",
|
|
16763
|
+
"name": "EspalierFlyout",
|
|
16429
16764
|
"declaration": {
|
|
16430
|
-
"name": "
|
|
16431
|
-
"module": "dist/
|
|
16765
|
+
"name": "EspalierFlyout",
|
|
16766
|
+
"module": "dist/flyout/esp-flyout.js"
|
|
16432
16767
|
}
|
|
16433
16768
|
},
|
|
16434
16769
|
{
|
|
16435
16770
|
"kind": "custom-element-definition",
|
|
16436
|
-
"name": "esp-
|
|
16437
|
-
"declaration": {
|
|
16438
|
-
"name": "EspalierFontPicker",
|
|
16439
|
-
"module": "dist/font-picker/esp-font-picker.js"
|
|
16440
|
-
}
|
|
16441
|
-
},
|
|
16442
|
-
{
|
|
16443
|
-
"kind": "js",
|
|
16444
|
-
"name": "resetFontCache",
|
|
16771
|
+
"name": "esp-flyout",
|
|
16445
16772
|
"declaration": {
|
|
16446
|
-
"name": "
|
|
16447
|
-
"module": "dist/
|
|
16773
|
+
"name": "EspalierFlyout",
|
|
16774
|
+
"module": "dist/flyout/esp-flyout.js"
|
|
16448
16775
|
}
|
|
16449
16776
|
}
|
|
16450
16777
|
]
|
|
16451
16778
|
},
|
|
16452
16779
|
{
|
|
16453
16780
|
"kind": "javascript-module",
|
|
16454
|
-
"path": "dist/
|
|
16781
|
+
"path": "dist/font-picker/esp-font-picker.js",
|
|
16455
16782
|
"declarations": [
|
|
16456
16783
|
{
|
|
16457
|
-
"kind": "
|
|
16458
|
-
"
|
|
16459
|
-
"
|
|
16460
|
-
|
|
16461
|
-
|
|
16462
|
-
|
|
16463
|
-
|
|
16464
|
-
|
|
16465
|
-
|
|
16466
|
-
|
|
16467
|
-
|
|
16468
|
-
|
|
16469
|
-
|
|
16470
|
-
"description": "The radius of the panel's trailing corners. Defaults to `var(--esp-size-border-radius)`; the overlay drawer squares them.",
|
|
16471
|
-
"name": "--esp-flyout-radius"
|
|
16472
|
-
},
|
|
16473
|
-
{
|
|
16474
|
-
"description": "The panel's shadow. Defaults to `none` in the gutter/docked modes (the perforation does the separating) and to a drawer shadow in overlay mode.",
|
|
16475
|
-
"name": "--esp-flyout-shadow"
|
|
16476
|
-
},
|
|
16477
|
-
{
|
|
16478
|
-
"description": "Padding inside the panel's header and content regions. Defaults to `var(--esp-size-padding)`.",
|
|
16479
|
-
"name": "--esp-flyout-padding"
|
|
16480
|
-
},
|
|
16481
|
-
{
|
|
16482
|
-
"description": "Stack order of the overlay-drawer mode. Defaults to `3000` — above page chrome, below the dialog drop zone (4000). Set it on the `esp-page` (or an ancestor), not on the flyout itself: the page reads the same token to hoist the drawer's aside above its header.",
|
|
16483
|
-
"name": "--esp-flyout-z-index"
|
|
16484
|
-
},
|
|
16485
|
-
{
|
|
16486
|
-
"description": "Background color of the shared field shell. Defaults to `var(--esp-color-layer-2)`.",
|
|
16487
|
-
"name": "--esp-field-background",
|
|
16488
|
-
"inheritedFrom": {
|
|
16489
|
-
"name": "EspalierElementBase",
|
|
16490
|
-
"module": "dist/shared/esp-element-base.js"
|
|
16491
|
-
}
|
|
16492
|
-
},
|
|
16493
|
-
{
|
|
16494
|
-
"description": "Border color of the shared field shell. Defaults to `var(--esp-color-border)`.",
|
|
16495
|
-
"name": "--esp-field-border-color",
|
|
16496
|
-
"inheritedFrom": {
|
|
16497
|
-
"name": "EspalierElementBase",
|
|
16498
|
-
"module": "dist/shared/esp-element-base.js"
|
|
16499
|
-
}
|
|
16500
|
-
},
|
|
16501
|
-
{
|
|
16502
|
-
"description": "Border width of the shared field shell. Defaults to `1px`.",
|
|
16503
|
-
"name": "--esp-field-border-width",
|
|
16504
|
-
"inheritedFrom": {
|
|
16505
|
-
"name": "EspalierElementBase",
|
|
16506
|
-
"module": "dist/shared/esp-element-base.js"
|
|
16507
|
-
}
|
|
16508
|
-
},
|
|
16509
|
-
{
|
|
16510
|
-
"description": "Text color used inside the shared field shell. Defaults to `var(--esp-color-text)`.",
|
|
16511
|
-
"name": "--esp-field-text-color",
|
|
16512
|
-
"inheritedFrom": {
|
|
16513
|
-
"name": "EspalierElementBase",
|
|
16514
|
-
"module": "dist/shared/esp-element-base.js"
|
|
16515
|
-
}
|
|
16516
|
-
},
|
|
16517
|
-
{
|
|
16518
|
-
"description": "Hover background color of the shared field shell. Derived from `--esp-field-background`.",
|
|
16519
|
-
"name": "--esp-field-hover-bg",
|
|
16520
|
-
"inheritedFrom": {
|
|
16521
|
-
"name": "EspalierElementBase",
|
|
16522
|
-
"module": "dist/shared/esp-element-base.js"
|
|
16523
|
-
}
|
|
16524
|
-
},
|
|
16525
|
-
{
|
|
16526
|
-
"description": "Focus background color of the shared field shell. Derived from `--esp-field-background`.",
|
|
16527
|
-
"name": "--esp-field-focus-bg",
|
|
16528
|
-
"inheritedFrom": {
|
|
16529
|
-
"name": "EspalierElementBase",
|
|
16530
|
-
"module": "dist/shared/esp-element-base.js"
|
|
16531
|
-
}
|
|
16532
|
-
},
|
|
16533
|
-
{
|
|
16534
|
-
"description": "Shadow color used for shared field focus treatment. Defaults to `var(--esp-color-shadow)`.",
|
|
16535
|
-
"name": "--esp-field-focus-shadow",
|
|
16536
|
-
"inheritedFrom": {
|
|
16537
|
-
"name": "EspalierElementBase",
|
|
16538
|
-
"module": "dist/shared/esp-element-base.js"
|
|
16539
|
-
}
|
|
16784
|
+
"kind": "variable",
|
|
16785
|
+
"name": "WEB_SAFE_FONTS",
|
|
16786
|
+
"type": {
|
|
16787
|
+
"text": "Array<WebSafeFont>"
|
|
16788
|
+
},
|
|
16789
|
+
"default": "[ { family: \"Arial / Helvetica\", stack: \"Arial, Helvetica, sans-serif\", category: \"sans-serif\", kind: \"web-safe\", }, { family: \"Georgia / Times New Roman\", stack: 'Georgia, \"Times New Roman\", Times, serif', category: \"serif\", kind: \"web-safe\", }, { family: \"Verdana / Geneva\", stack: \"Verdana, Geneva, sans-serif\", category: \"sans-serif\", kind: \"web-safe\", }, { family: \"Tahoma / Geneva\", stack: \"Tahoma, Geneva, sans-serif\", category: \"sans-serif\", kind: \"web-safe\", }, { family: \"Trebuchet MS\", stack: '\"Trebuchet MS\", Arial, sans-serif', category: \"sans-serif\", kind: \"web-safe\", }, { family: \"Courier New\", stack: '\"Courier New\", Courier, monospace', category: \"monospace\", kind: \"web-safe\", }, { family: \"System Sans\", stack: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif', category: \"sans-serif\", kind: \"web-safe\", }, { family: \"System Serif\", stack: 'ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif', category: \"serif\", kind: \"web-safe\", }, { family: \"System Monospace\", stack: 'ui-monospace, SFMono-Regular, Consolas, \"Liberation Mono\", \"Courier New\", monospace', category: \"monospace\", kind: \"web-safe\", }, ]"
|
|
16790
|
+
},
|
|
16791
|
+
{
|
|
16792
|
+
"kind": "function",
|
|
16793
|
+
"name": "getGoogleFonts",
|
|
16794
|
+
"return": {
|
|
16795
|
+
"type": {
|
|
16796
|
+
"text": "Promise<Array<GoogleFont>>"
|
|
16540
16797
|
}
|
|
16541
|
-
|
|
16542
|
-
"
|
|
16543
|
-
|
|
16544
|
-
|
|
16545
|
-
|
|
16546
|
-
|
|
16547
|
-
|
|
16548
|
-
|
|
16549
|
-
"
|
|
16550
|
-
},
|
|
16551
|
-
{
|
|
16552
|
-
"description": "The scrollable content region wrapping the slot.",
|
|
16553
|
-
"name": "content"
|
|
16798
|
+
},
|
|
16799
|
+
"description": "Load the font catalog from the build-generated `font-definitions.json`\nfile served alongside the font CSS files. The JSON is fetched from\n`{fontCSSRoot}font-definitions.json` where `fontCSSRoot` comes from\nthe nearest `<esp-root>` element's `font-css-root` attribute.\n\nResults are cached at the module level so only one fetch occurs per page."
|
|
16800
|
+
},
|
|
16801
|
+
{
|
|
16802
|
+
"kind": "function",
|
|
16803
|
+
"name": "previewFontFamily",
|
|
16804
|
+
"return": {
|
|
16805
|
+
"type": {
|
|
16806
|
+
"text": "string"
|
|
16554
16807
|
}
|
|
16555
|
-
|
|
16556
|
-
"
|
|
16808
|
+
},
|
|
16809
|
+
"parameters": [
|
|
16557
16810
|
{
|
|
16558
|
-
"
|
|
16559
|
-
"
|
|
16811
|
+
"name": "family",
|
|
16812
|
+
"type": {
|
|
16813
|
+
"text": "string"
|
|
16814
|
+
}
|
|
16560
16815
|
}
|
|
16561
16816
|
],
|
|
16817
|
+
"description": "Build the CSS `font-family` value used by picker items.\nConsumers should reference this when setting `styles.fontFamily`\non picker items to match the preview `@font-face` name."
|
|
16818
|
+
},
|
|
16819
|
+
{
|
|
16820
|
+
"kind": "class",
|
|
16821
|
+
"description": "Font picker component backed by the Google Fonts catalog by default.\n\nThe font catalog is loaded at runtime from a build-generated\n`font-definitions.json` file served alongside the individual font CSS\nfiles. Run `npm run build-fonts` to generate both assets.\n\nSet `font-source=\"web-safe\"` for email editors or other places where\nthe picker should offer only CSS font stacks that do not need font\ndownloads.\n\n**Required setup:**\n1. Serve the `css/fonts/` directory under a public path.\n2. Point `<esp-root font-css-root=\"/your/path/\">` at that path.\n\n```html\n<esp-root font-css-root=\"/css/fonts/\">\n <esp-form-item label=\"Pick a font\">\n <esp-font-picker></esp-font-picker>\n </esp-form-item>\n</esp-root>\n```\n\n```html\n<esp-form-item label=\"Email font\">\n <esp-font-picker font-source=\"web-safe\"></esp-font-picker>\n</esp-form-item>\n```",
|
|
16822
|
+
"name": "EspalierFontPicker",
|
|
16562
16823
|
"members": [
|
|
16563
16824
|
{
|
|
16564
16825
|
"kind": "field",
|
|
16565
|
-
"name": "
|
|
16566
|
-
"type": {
|
|
16567
|
-
"text": "boolean"
|
|
16568
|
-
},
|
|
16569
|
-
"privacy": "public",
|
|
16570
|
-
"default": "false",
|
|
16571
|
-
"description": "Whether the flyout is open. Reflected so the initial state can\nbe declared in markup; `esp-page` mirrors it (via the lifecycle\nevents and the slot) onto its own `flyout-open` attribute to\ndrive the grid.",
|
|
16572
|
-
"attribute": "open",
|
|
16573
|
-
"reflects": true
|
|
16574
|
-
},
|
|
16575
|
-
{
|
|
16576
|
-
"kind": "field",
|
|
16577
|
-
"name": "heading",
|
|
16578
|
-
"type": {
|
|
16579
|
-
"text": "string"
|
|
16580
|
-
},
|
|
16581
|
-
"privacy": "public",
|
|
16582
|
-
"default": "\"\"",
|
|
16583
|
-
"description": "Heading text for the panel's header row. Also becomes the\nflyout's accessible name unless the author set an `aria-label`.\nAn open overlay without either uses the fallback name \"Flyout\" so\nits dialog is never exposed without an accessible name.",
|
|
16584
|
-
"attribute": "heading"
|
|
16585
|
-
},
|
|
16586
|
-
{
|
|
16587
|
-
"kind": "field",
|
|
16588
|
-
"name": "mode",
|
|
16589
|
-
"type": {
|
|
16590
|
-
"text": "\"auto\" | \"overlay\""
|
|
16591
|
-
},
|
|
16592
|
-
"privacy": "public",
|
|
16593
|
-
"default": "\"auto\"",
|
|
16594
|
-
"description": "Placement behavior.\n\n- `\"auto\"` (default) — the page's placement ladder: gutter,\n docked sidebar, then overlay drawer below the `50em` viewport\n threshold.\n- `\"overlay\"` — always the fixed overlay drawer, at any width.\n The page never reserves a grid track for an overlay-mode\n flyout.",
|
|
16595
|
-
"attribute": "mode",
|
|
16596
|
-
"reflects": true
|
|
16597
|
-
},
|
|
16598
|
-
{
|
|
16599
|
-
"kind": "field",
|
|
16600
|
-
"name": "anchor",
|
|
16601
|
-
"type": {
|
|
16602
|
-
"text": "HTMLElement | undefined"
|
|
16603
|
-
},
|
|
16604
|
-
"privacy": "public",
|
|
16605
|
-
"description": "Triggering element whose block-start edge the in-grid panel should\nalign with. Anchored panels stay in normal page flow, shift upward\nonly while needed to fit the visible scrollport, and return to their\nnatural alignment as the page scrolls. Oversized content scrolls\ninside the panel. Overlay drawers ignore this geometry and remain\nfixed to the viewport."
|
|
16606
|
-
},
|
|
16607
|
-
{
|
|
16608
|
-
"kind": "field",
|
|
16609
|
-
"name": "matchSurface",
|
|
16610
|
-
"type": {
|
|
16611
|
-
"text": "boolean"
|
|
16612
|
-
},
|
|
16613
|
-
"privacy": "public",
|
|
16614
|
-
"default": "false",
|
|
16615
|
-
"description": "When set on a flyout slotted into an `esp-page`, the panel lifts\nits **trailing** edge with the page's surface edge shadow, so it\nreads as a raised peer of the content surface it flies out from\nrather than the shadowless tear-off. The **leading** edge keeps\nits dotted perforation and casts no shadow, so the panel stays\nattached at the tear line instead of floating over the content.\nThe trailing-corner radius is still `--esp-flyout-radius`. No\neffect on a standalone flyout — there is no page surface to match.",
|
|
16616
|
-
"attribute": "match-surface",
|
|
16617
|
-
"reflects": true
|
|
16618
|
-
},
|
|
16619
|
-
{
|
|
16620
|
-
"kind": "field",
|
|
16621
|
-
"name": "standalone",
|
|
16622
|
-
"type": {
|
|
16623
|
-
"text": "boolean"
|
|
16624
|
-
},
|
|
16625
|
-
"privacy": "public",
|
|
16626
|
-
"default": "false",
|
|
16627
|
-
"description": "Whether this flyout ignores the shared `showFlyout()` /\n`closeFlyout()` bus and is driven only through its own\n`show()` / `close()` / `toggle()` API.\n\nBy default a flyout services the bus, so a single flyout in a\npage \"just works\" as the target of `showFlyout()` — the same\nzero-config model as `<esp-toaster>` and `showToast()`. Because\nthe bus is a global broadcast, **every** listening flyout on the\npage answers a `showFlyout()` call; set `standalone` on any\nflyout you drive directly so only your one designated help\nsurface responds.",
|
|
16628
|
-
"attribute": "standalone",
|
|
16629
|
-
"reflects": true
|
|
16630
|
-
},
|
|
16631
|
-
{
|
|
16632
|
-
"kind": "field",
|
|
16633
|
-
"name": "returnFocusTo",
|
|
16634
|
-
"type": {
|
|
16635
|
-
"text": "HTMLElement | undefined"
|
|
16636
|
-
},
|
|
16637
|
-
"privacy": "public",
|
|
16638
|
-
"description": "Element to return focus to when the flyout closes. In the in-grid\nmodes it is focused only if focus is inside the flyout at close;\nin the overlay-drawer mode it overrides the modal treatment's\nautomatic restore-to-opener. Usually supplied through\n`showFlyout({ returnFocusTo })`."
|
|
16639
|
-
},
|
|
16640
|
-
{
|
|
16641
|
-
"kind": "field",
|
|
16642
|
-
"name": "overlayReturnFocusTo",
|
|
16643
|
-
"type": {
|
|
16644
|
-
"text": "HTMLElement | undefined"
|
|
16645
|
-
},
|
|
16826
|
+
"name": "loadedFonts",
|
|
16646
16827
|
"privacy": "private",
|
|
16647
|
-
"
|
|
16828
|
+
"default": "new Set<string>()"
|
|
16648
16829
|
},
|
|
16649
16830
|
{
|
|
16650
16831
|
"kind": "field",
|
|
16651
|
-
"name": "
|
|
16832
|
+
"name": "formItemDescription",
|
|
16652
16833
|
"type": {
|
|
16653
16834
|
"text": "string | null"
|
|
16654
16835
|
},
|
|
16655
16836
|
"privacy": "private",
|
|
16656
|
-
"default": "null"
|
|
16657
|
-
"description": "The last `aria-label` this component generated from `heading` or\nthe overlay fallback, or `null` if none. The flyout only rewrites\n`aria-label` when the current value is absent or still equals what\nit last generated, so a label the author sets at any time — in\nmarkup or later — wins."
|
|
16658
|
-
},
|
|
16659
|
-
{
|
|
16660
|
-
"kind": "field",
|
|
16661
|
-
"name": "boundKeydown",
|
|
16662
|
-
"privacy": "private"
|
|
16663
|
-
},
|
|
16664
|
-
{
|
|
16665
|
-
"kind": "field",
|
|
16666
|
-
"name": "boundShowRequest",
|
|
16667
|
-
"privacy": "private"
|
|
16668
|
-
},
|
|
16669
|
-
{
|
|
16670
|
-
"kind": "field",
|
|
16671
|
-
"name": "boundCloseRequest",
|
|
16672
|
-
"privacy": "private"
|
|
16673
|
-
},
|
|
16674
|
-
{
|
|
16675
|
-
"kind": "field",
|
|
16676
|
-
"name": "boundOverlayMediaChange",
|
|
16677
|
-
"privacy": "private"
|
|
16678
|
-
},
|
|
16679
|
-
{
|
|
16680
|
-
"kind": "field",
|
|
16681
|
-
"name": "boundAnchorViewportChange",
|
|
16682
|
-
"privacy": "private"
|
|
16837
|
+
"default": "null"
|
|
16683
16838
|
},
|
|
16684
16839
|
{
|
|
16685
16840
|
"kind": "field",
|
|
16686
|
-
"name": "
|
|
16841
|
+
"name": "_rangeGeneration",
|
|
16687
16842
|
"type": {
|
|
16688
16843
|
"text": "number"
|
|
16689
16844
|
},
|
|
16690
16845
|
"privacy": "private",
|
|
16691
|
-
"default": "0"
|
|
16846
|
+
"default": "0",
|
|
16847
|
+
"description": "Monotonically increasing counter used to detect stale\n`handleItemsInView` invocations. Each call bumps the\ncounter; after the async font-load loop the handler checks\nwhether a newer call has started and, if so, skips the\nunload phase so it doesn't remove fonts that the newer call\njust loaded."
|
|
16692
16848
|
},
|
|
16693
16849
|
{
|
|
16694
16850
|
"kind": "field",
|
|
16695
|
-
"name": "
|
|
16851
|
+
"name": "_initGeneration",
|
|
16696
16852
|
"type": {
|
|
16697
|
-
"text": "
|
|
16853
|
+
"text": "number"
|
|
16698
16854
|
},
|
|
16699
16855
|
"privacy": "private",
|
|
16700
|
-
"default": "
|
|
16701
|
-
|
|
16702
|
-
{
|
|
16703
|
-
"kind": "field",
|
|
16704
|
-
"name": "anchorResizeObserver",
|
|
16705
|
-
"type": {
|
|
16706
|
-
"text": "ResizeObserver | undefined"
|
|
16707
|
-
},
|
|
16708
|
-
"privacy": "private"
|
|
16856
|
+
"default": "0",
|
|
16857
|
+
"description": "Monotonically increasing counter used to detect stale `initFonts`\ninvocations when source/category changes while async catalog or\npreview-font work is in flight."
|
|
16709
16858
|
},
|
|
16710
16859
|
{
|
|
16711
16860
|
"kind": "field",
|
|
16712
|
-
"name": "
|
|
16861
|
+
"name": "_fontsReady",
|
|
16713
16862
|
"type": {
|
|
16714
|
-
"text": "
|
|
16863
|
+
"text": "Promise<void>"
|
|
16715
16864
|
},
|
|
16716
|
-
"privacy": "private"
|
|
16865
|
+
"privacy": "private",
|
|
16866
|
+
"description": "Promise that resolves once the async work kicked off in\n`firstUpdated` (font catalog fetch + initial CSS load)\nhas completed. Surfaced through `getUpdateComplete()` so\nthat `await el.updateComplete` waits for the full init."
|
|
16717
16867
|
},
|
|
16718
16868
|
{
|
|
16719
16869
|
"kind": "field",
|
|
16720
|
-
"name": "
|
|
16870
|
+
"name": "fonts",
|
|
16721
16871
|
"type": {
|
|
16722
|
-
"text": "
|
|
16872
|
+
"text": "Array<FontPickerFont>"
|
|
16723
16873
|
},
|
|
16724
16874
|
"privacy": "private",
|
|
16725
|
-
"default": "
|
|
16726
|
-
"description": "Whether the bus handlers are currently registered. EspBus does\nnot dedupe subscriptions, so this guards against double-adds."
|
|
16727
|
-
},
|
|
16728
|
-
{
|
|
16729
|
-
"kind": "field",
|
|
16730
|
-
"name": "panelRef",
|
|
16731
|
-
"privacy": "private"
|
|
16732
|
-
},
|
|
16733
|
-
{
|
|
16734
|
-
"kind": "field",
|
|
16735
|
-
"name": "overlay",
|
|
16736
|
-
"privacy": "private",
|
|
16737
|
-
"default": "new OverlayController({ host: this, getFocusTrapContainer: () => this.panelRef.value ?? null, getFocusFallback: () => this.panelRef.value ?? null, promote: false, })",
|
|
16738
|
-
"description": "Modal treatment for the overlay-drawer presentation only. It does\nnot promote out of the page slot, so the flyout keeps its grid\nplacement and `flyout-state-changed` sync; inert anchors on the\nflyout's own position, making its page siblings inert."
|
|
16875
|
+
"default": "[]"
|
|
16739
16876
|
},
|
|
16740
16877
|
{
|
|
16741
16878
|
"kind": "field",
|
|
16742
|
-
"name": "
|
|
16879
|
+
"name": "category",
|
|
16743
16880
|
"type": {
|
|
16744
|
-
"text": "
|
|
16881
|
+
"text": "FontCategory | null"
|
|
16745
16882
|
},
|
|
16746
|
-
"
|
|
16747
|
-
"description": "
|
|
16883
|
+
"default": "null",
|
|
16884
|
+
"description": "Category of fonts to display in the picker.\n\nIf not set, all font categories are displayed.\n\n```html\n<esp-box>\n <h2>Monospace Fonts</h2>\n <esp-form-item label=\"Pick a font\">\n <esp-font-picker category=\"monospace\"></esp-font-picker>\n </esp-form-item>\n</esp-box>\n```",
|
|
16885
|
+
"attribute": "category"
|
|
16748
16886
|
},
|
|
16749
16887
|
{
|
|
16750
16888
|
"kind": "field",
|
|
16751
|
-
"name": "
|
|
16889
|
+
"name": "fontSource",
|
|
16752
16890
|
"type": {
|
|
16753
|
-
"text": "
|
|
16891
|
+
"text": "FontSource"
|
|
16754
16892
|
},
|
|
16755
|
-
"privacy": "
|
|
16756
|
-
"default": "
|
|
16757
|
-
"description": "
|
|
16893
|
+
"privacy": "public",
|
|
16894
|
+
"default": "\"google\"",
|
|
16895
|
+
"description": "Source of fonts to display. `google` preserves the default Google\nFonts catalog behavior. `web-safe` shows email-safe/system CSS\nfont stacks and does not load Google font assets.\n\n```html\n<esp-box>\n <h2>Email-safe fonts</h2>\n <esp-form-item label=\"Pick a font stack\">\n <esp-font-picker font-source=\"web-safe\"></esp-font-picker>\n </esp-form-item>\n</esp-box>\n```",
|
|
16896
|
+
"attribute": "font-source"
|
|
16758
16897
|
},
|
|
16759
16898
|
{
|
|
16760
16899
|
"kind": "field",
|
|
16761
|
-
"name": "
|
|
16900
|
+
"name": "value",
|
|
16762
16901
|
"type": {
|
|
16763
16902
|
"text": "string"
|
|
16764
16903
|
},
|
|
16765
|
-
"privacy": "
|
|
16766
|
-
"default": "\"
|
|
16767
|
-
"description": "The
|
|
16904
|
+
"privacy": "public",
|
|
16905
|
+
"default": "\"\"",
|
|
16906
|
+
"description": "The selected font family or CSS font stack.\n\nIn the default Google Fonts mode this is the font family name, such\nas `\"Aclonica\"`. In `font-source=\"web-safe\"` mode this is the full CSS\nfont stack, such as `\"Arial, Helvetica, sans-serif\"`, so pre-selection\nvia the `value` attribute must use the stack value.\n\n```html\n<esp-box>\n <h2>Have Aclonica pre-selected</h2>\n <esp-form-item label=\"Pick a font\">\n <esp-font-picker value=\"Aclonica\"></esp-font-picker>\n </esp-form-item>\n</esp-box>\n```",
|
|
16907
|
+
"attribute": "value"
|
|
16768
16908
|
},
|
|
16769
16909
|
{
|
|
16770
16910
|
"kind": "field",
|
|
16771
|
-
"name": "
|
|
16911
|
+
"name": "placeholder",
|
|
16772
16912
|
"type": {
|
|
16773
|
-
"text": "
|
|
16913
|
+
"text": "string"
|
|
16774
16914
|
},
|
|
16775
|
-
"privacy": "
|
|
16776
|
-
"
|
|
16777
|
-
"
|
|
16915
|
+
"privacy": "public",
|
|
16916
|
+
"default": "\"Choose a font...\"",
|
|
16917
|
+
"description": "The placeholder text for the picker input.",
|
|
16918
|
+
"attribute": "placeholder"
|
|
16778
16919
|
},
|
|
16779
16920
|
{
|
|
16780
16921
|
"kind": "method",
|
|
16781
|
-
"name": "
|
|
16782
|
-
"privacy": "
|
|
16922
|
+
"name": "focus",
|
|
16923
|
+
"privacy": "public",
|
|
16783
16924
|
"return": {
|
|
16784
16925
|
"type": {
|
|
16785
16926
|
"text": "void"
|
|
16786
16927
|
}
|
|
16787
16928
|
},
|
|
16788
|
-
"description": "
|
|
16929
|
+
"description": "Focus the picker input."
|
|
16789
16930
|
},
|
|
16790
16931
|
{
|
|
16791
16932
|
"kind": "method",
|
|
16792
|
-
"name": "
|
|
16933
|
+
"name": "syncFormItemDescription",
|
|
16793
16934
|
"privacy": "private",
|
|
16794
16935
|
"return": {
|
|
16795
16936
|
"type": {
|
|
@@ -16799,218 +16940,71 @@
|
|
|
16799
16940
|
},
|
|
16800
16941
|
{
|
|
16801
16942
|
"kind": "method",
|
|
16802
|
-
"name": "
|
|
16803
|
-
"privacy": "
|
|
16804
|
-
"return": {
|
|
16805
|
-
"type": {
|
|
16806
|
-
"text": "void"
|
|
16807
|
-
}
|
|
16808
|
-
},
|
|
16809
|
-
"description": "Open the flyout with its current content. In the in-grid modes it\ndoes not move focus; in the overlay-drawer mode it moves focus\ninto the drawer as a modal."
|
|
16810
|
-
},
|
|
16811
|
-
{
|
|
16812
|
-
"kind": "method",
|
|
16813
|
-
"name": "close",
|
|
16814
|
-
"privacy": "public",
|
|
16815
|
-
"return": {
|
|
16816
|
-
"type": {
|
|
16817
|
-
"text": "void"
|
|
16818
|
-
}
|
|
16819
|
-
},
|
|
16820
|
-
"parameters": [
|
|
16821
|
-
{
|
|
16822
|
-
"name": "reason",
|
|
16823
|
-
"default": "\"programmatic\"",
|
|
16824
|
-
"type": {
|
|
16825
|
-
"text": "FlyoutCloseReason"
|
|
16826
|
-
}
|
|
16827
|
-
}
|
|
16828
|
-
],
|
|
16829
|
-
"description": "Close the flyout. In the in-grid modes, if focus is inside the\nflyout it is returned to `returnFocusTo` when one was provided; in\nthe overlay-drawer mode the modal treatment restores focus to\nwherever it was when the drawer opened, unless `returnFocusTo`\nnames an explicit target — the explicit target wins."
|
|
16830
|
-
},
|
|
16831
|
-
{
|
|
16832
|
-
"kind": "method",
|
|
16833
|
-
"name": "toggle",
|
|
16834
|
-
"privacy": "public",
|
|
16943
|
+
"name": "getUpdateComplete",
|
|
16944
|
+
"privacy": "protected",
|
|
16835
16945
|
"return": {
|
|
16836
16946
|
"type": {
|
|
16837
|
-
"text": "
|
|
16947
|
+
"text": "Promise<boolean>"
|
|
16838
16948
|
}
|
|
16839
|
-
}
|
|
16840
|
-
"description": "Toggle the flyout between open and closed."
|
|
16949
|
+
}
|
|
16841
16950
|
},
|
|
16842
16951
|
{
|
|
16843
16952
|
"kind": "method",
|
|
16844
|
-
"name": "
|
|
16953
|
+
"name": "ensureFontLoaded",
|
|
16845
16954
|
"privacy": "private",
|
|
16846
16955
|
"return": {
|
|
16847
16956
|
"type": {
|
|
16848
|
-
"text": "void"
|
|
16957
|
+
"text": "Promise<void>"
|
|
16849
16958
|
}
|
|
16850
16959
|
},
|
|
16851
16960
|
"parameters": [
|
|
16852
16961
|
{
|
|
16853
|
-
"name": "
|
|
16962
|
+
"name": "family",
|
|
16854
16963
|
"type": {
|
|
16855
|
-
"text": "
|
|
16964
|
+
"text": "string"
|
|
16856
16965
|
}
|
|
16857
|
-
}
|
|
16858
|
-
],
|
|
16859
|
-
"description": "Service a `\"show-flyout\"` bus request: swap in the requested\nheading/content (never stacking) and open."
|
|
16860
|
-
},
|
|
16861
|
-
{
|
|
16862
|
-
"kind": "method",
|
|
16863
|
-
"name": "handleKeydown",
|
|
16864
|
-
"privacy": "private",
|
|
16865
|
-
"return": {
|
|
16866
|
-
"type": {
|
|
16867
|
-
"text": "void"
|
|
16868
|
-
}
|
|
16869
|
-
},
|
|
16870
|
-
"parameters": [
|
|
16966
|
+
},
|
|
16871
16967
|
{
|
|
16872
|
-
"name": "
|
|
16968
|
+
"name": "previousFamily",
|
|
16969
|
+
"optional": true,
|
|
16873
16970
|
"type": {
|
|
16874
|
-
"text": "
|
|
16971
|
+
"text": "string"
|
|
16875
16972
|
}
|
|
16876
16973
|
}
|
|
16877
16974
|
]
|
|
16878
16975
|
},
|
|
16879
16976
|
{
|
|
16880
16977
|
"kind": "method",
|
|
16881
|
-
"name": "
|
|
16978
|
+
"name": "initFonts",
|
|
16882
16979
|
"privacy": "private",
|
|
16883
16980
|
"return": {
|
|
16884
16981
|
"type": {
|
|
16885
|
-
"text": "
|
|
16982
|
+
"text": "Promise<void>"
|
|
16886
16983
|
}
|
|
16887
16984
|
}
|
|
16888
16985
|
},
|
|
16889
16986
|
{
|
|
16890
16987
|
"kind": "method",
|
|
16891
|
-
"name": "
|
|
16892
|
-
"privacy": "private",
|
|
16893
|
-
"return": {
|
|
16894
|
-
"type": {
|
|
16895
|
-
"text": "void"
|
|
16896
|
-
}
|
|
16897
|
-
},
|
|
16898
|
-
"description": "Position an anchored in-grid flyout at the trigger's natural\nblock-start, then shift it upward only enough to keep its bottom in\nthe visible scrollport. The shift is recalculated during scrolling,\nso it returns to zero when the panel fits at its natural top."
|
|
16899
|
-
},
|
|
16900
|
-
{
|
|
16901
|
-
"kind": "method",
|
|
16902
|
-
"name": "getVisibleBlockBounds",
|
|
16903
|
-
"privacy": "private",
|
|
16904
|
-
"return": {
|
|
16905
|
-
"type": {
|
|
16906
|
-
"text": "{ top: number; bottom: number }"
|
|
16907
|
-
}
|
|
16908
|
-
},
|
|
16909
|
-
"description": "Intersect the visual viewport with every scrolling ancestor. This\nkeeps the flyout usable both on the document and inside a bounded\nlive-example pane such as WTFM's demo container."
|
|
16910
|
-
},
|
|
16911
|
-
{
|
|
16912
|
-
"kind": "method",
|
|
16913
|
-
"name": "composedParent",
|
|
16914
|
-
"privacy": "private",
|
|
16915
|
-
"return": {
|
|
16916
|
-
"type": {
|
|
16917
|
-
"text": "Element | null"
|
|
16918
|
-
}
|
|
16919
|
-
},
|
|
16920
|
-
"parameters": [
|
|
16921
|
-
{
|
|
16922
|
-
"name": "element",
|
|
16923
|
-
"type": {
|
|
16924
|
-
"text": "Element"
|
|
16925
|
-
}
|
|
16926
|
-
}
|
|
16927
|
-
]
|
|
16928
|
-
},
|
|
16929
|
-
{
|
|
16930
|
-
"kind": "method",
|
|
16931
|
-
"name": "setGeometryProperty",
|
|
16988
|
+
"name": "handleItemsInView",
|
|
16932
16989
|
"privacy": "private",
|
|
16933
16990
|
"return": {
|
|
16934
16991
|
"type": {
|
|
16935
|
-
"text": "void"
|
|
16992
|
+
"text": "Promise<void>"
|
|
16936
16993
|
}
|
|
16937
16994
|
},
|
|
16938
16995
|
"parameters": [
|
|
16939
16996
|
{
|
|
16940
|
-
"name": "
|
|
16941
|
-
"type": {
|
|
16942
|
-
"text": "string"
|
|
16943
|
-
}
|
|
16944
|
-
},
|
|
16945
|
-
{
|
|
16946
|
-
"name": "value",
|
|
16997
|
+
"name": "range",
|
|
16947
16998
|
"type": {
|
|
16948
|
-
"text": "string"
|
|
16999
|
+
"text": "{\n first: number;\n last: number;\n items: Array<{ value: string }>;\n }"
|
|
16949
17000
|
}
|
|
16950
17001
|
}
|
|
16951
17002
|
]
|
|
16952
17003
|
},
|
|
16953
17004
|
{
|
|
16954
|
-
"kind": "
|
|
16955
|
-
"name": "
|
|
16956
|
-
"privacy": "private"
|
|
16957
|
-
"return": {
|
|
16958
|
-
"type": {
|
|
16959
|
-
"text": "void"
|
|
16960
|
-
}
|
|
16961
|
-
}
|
|
16962
|
-
},
|
|
16963
|
-
{
|
|
16964
|
-
"kind": "method",
|
|
16965
|
-
"name": "scheduleAnchorGeometrySync",
|
|
16966
|
-
"privacy": "private",
|
|
16967
|
-
"return": {
|
|
16968
|
-
"type": {
|
|
16969
|
-
"text": "void"
|
|
16970
|
-
}
|
|
16971
|
-
}
|
|
16972
|
-
},
|
|
16973
|
-
{
|
|
16974
|
-
"kind": "method",
|
|
16975
|
-
"name": "syncAnchorTracking",
|
|
16976
|
-
"privacy": "private",
|
|
16977
|
-
"return": {
|
|
16978
|
-
"type": {
|
|
16979
|
-
"text": "void"
|
|
16980
|
-
}
|
|
16981
|
-
}
|
|
16982
|
-
},
|
|
16983
|
-
{
|
|
16984
|
-
"kind": "method",
|
|
16985
|
-
"name": "stopAnchorTracking",
|
|
16986
|
-
"privacy": "private",
|
|
16987
|
-
"return": {
|
|
16988
|
-
"type": {
|
|
16989
|
-
"text": "void"
|
|
16990
|
-
}
|
|
16991
|
-
}
|
|
16992
|
-
},
|
|
16993
|
-
{
|
|
16994
|
-
"kind": "method",
|
|
16995
|
-
"name": "syncOverlayModal",
|
|
16996
|
-
"privacy": "private",
|
|
16997
|
-
"return": {
|
|
16998
|
-
"type": {
|
|
16999
|
-
"text": "void"
|
|
17000
|
-
}
|
|
17001
|
-
},
|
|
17002
|
-
"description": "Apply modal a11y exactly when the flyout is open **and** presenting\nas an overlay drawer, and remove it otherwise. Called on open/mode\nchanges and when the viewport crosses the overlay threshold.\n\nModal treatment = background inert, scroll lock, `role=\"dialog\"` +\n`aria-modal`, focus moved into the drawer and trapped, and focus\nrestored on teardown — all via the (non-promoting) Overlay\ncontroller, so the flyout never leaves its page slot. The in-grid\nmodes stay a non-modal `complementary` landmark with no focus\nmanagement."
|
|
17003
|
-
},
|
|
17004
|
-
{
|
|
17005
|
-
"kind": "method",
|
|
17006
|
-
"name": "updateGeneratedAriaLabel",
|
|
17007
|
-
"privacy": "private",
|
|
17008
|
-
"return": {
|
|
17009
|
-
"type": {
|
|
17010
|
-
"text": "void"
|
|
17011
|
-
}
|
|
17012
|
-
},
|
|
17013
|
-
"description": "Mirror `heading` into `aria-label`, or apply a stable fallback\nwhile this is an overlay dialog, without clobbering a label the\nauthor controls (see lastGeneratedAriaLabel)."
|
|
17005
|
+
"kind": "field",
|
|
17006
|
+
"name": "handleItemsInViewEvent",
|
|
17007
|
+
"privacy": "private"
|
|
17014
17008
|
},
|
|
17015
17009
|
{
|
|
17016
17010
|
"kind": "field",
|
|
@@ -17472,32 +17466,12 @@
|
|
|
17472
17466
|
}
|
|
17473
17467
|
],
|
|
17474
17468
|
"events": [
|
|
17475
|
-
{
|
|
17476
|
-
"name": "flyout-opened",
|
|
17477
|
-
"type": {
|
|
17478
|
-
"text": "CustomEvent<{}>"
|
|
17479
|
-
},
|
|
17480
|
-
"description": "Fired by `show()` when the flyout opens."
|
|
17481
|
-
},
|
|
17482
|
-
{
|
|
17483
|
-
"name": "flyout-closed",
|
|
17484
|
-
"type": {
|
|
17485
|
-
"text": "CustomEvent<{reason: FlyoutCloseReason}>"
|
|
17486
|
-
},
|
|
17487
|
-
"description": "Fired by `close()` when the flyout closes. `reason` is `\"escape\"`, `\"vellum\"`, `\"button\"`, or `\"programmatic\"`."
|
|
17488
|
-
},
|
|
17489
|
-
{
|
|
17490
|
-
"name": "flyout-state-changed",
|
|
17491
|
-
"type": {
|
|
17492
|
-
"text": "CustomEvent<{}>"
|
|
17493
|
-
},
|
|
17494
|
-
"description": "Fired on every `open`, `mode`, or `anchor` change, including direct property assignment (not just `show()`/`close()`). `esp-page` uses it to keep its layout in sync; most consumers want `flyout-opened`/`flyout-closed` instead."
|
|
17495
|
-
},
|
|
17496
17469
|
{
|
|
17497
17470
|
"name": "value-changed",
|
|
17498
17471
|
"type": {
|
|
17499
17472
|
"text": "CustomEvent"
|
|
17500
17473
|
},
|
|
17474
|
+
"description": "Fired when the user selects a font",
|
|
17501
17475
|
"inheritedFrom": {
|
|
17502
17476
|
"name": "EspalierElementBase",
|
|
17503
17477
|
"module": "dist/shared/esp-element-base.js"
|
|
@@ -17506,49 +17480,40 @@
|
|
|
17506
17480
|
],
|
|
17507
17481
|
"attributes": [
|
|
17508
17482
|
{
|
|
17509
|
-
"name": "
|
|
17510
|
-
"type": {
|
|
17511
|
-
"text": "boolean"
|
|
17512
|
-
},
|
|
17513
|
-
"default": "false",
|
|
17514
|
-
"description": "Whether the flyout is open. Reflected so the initial state can\nbe declared in markup; `esp-page` mirrors it (via the lifecycle\nevents and the slot) onto its own `flyout-open` attribute to\ndrive the grid.",
|
|
17515
|
-
"fieldName": "open"
|
|
17516
|
-
},
|
|
17517
|
-
{
|
|
17518
|
-
"name": "heading",
|
|
17483
|
+
"name": "category",
|
|
17519
17484
|
"type": {
|
|
17520
|
-
"text": "
|
|
17485
|
+
"text": "FontCategory | null"
|
|
17521
17486
|
},
|
|
17522
|
-
"default": "
|
|
17523
|
-
"description": "
|
|
17524
|
-
"fieldName": "
|
|
17487
|
+
"default": "null",
|
|
17488
|
+
"description": "Category of fonts to display in the picker.\n\nIf not set, all font categories are displayed.\n\n```html\n<esp-box>\n <h2>Monospace Fonts</h2>\n <esp-form-item label=\"Pick a font\">\n <esp-font-picker category=\"monospace\"></esp-font-picker>\n </esp-form-item>\n</esp-box>\n```",
|
|
17489
|
+
"fieldName": "category"
|
|
17525
17490
|
},
|
|
17526
17491
|
{
|
|
17527
|
-
"name": "
|
|
17492
|
+
"name": "font-source",
|
|
17528
17493
|
"type": {
|
|
17529
|
-
"text": "
|
|
17494
|
+
"text": "FontSource"
|
|
17530
17495
|
},
|
|
17531
|
-
"default": "\"
|
|
17532
|
-
"description": "
|
|
17533
|
-
"fieldName": "
|
|
17496
|
+
"default": "\"google\"",
|
|
17497
|
+
"description": "Source of fonts to display. `google` preserves the default Google\nFonts catalog behavior. `web-safe` shows email-safe/system CSS\nfont stacks and does not load Google font assets.\n\n```html\n<esp-box>\n <h2>Email-safe fonts</h2>\n <esp-form-item label=\"Pick a font stack\">\n <esp-font-picker font-source=\"web-safe\"></esp-font-picker>\n </esp-form-item>\n</esp-box>\n```",
|
|
17498
|
+
"fieldName": "fontSource"
|
|
17534
17499
|
},
|
|
17535
17500
|
{
|
|
17536
|
-
"name": "
|
|
17501
|
+
"name": "value",
|
|
17537
17502
|
"type": {
|
|
17538
|
-
"text": "
|
|
17503
|
+
"text": "string"
|
|
17539
17504
|
},
|
|
17540
|
-
"default": "
|
|
17541
|
-
"description": "
|
|
17542
|
-
"fieldName": "
|
|
17505
|
+
"default": "\"\"",
|
|
17506
|
+
"description": "The selected font family or CSS font stack.\n\nIn the default Google Fonts mode this is the font family name, such\nas `\"Aclonica\"`. In `font-source=\"web-safe\"` mode this is the full CSS\nfont stack, such as `\"Arial, Helvetica, sans-serif\"`, so pre-selection\nvia the `value` attribute must use the stack value.\n\n```html\n<esp-box>\n <h2>Have Aclonica pre-selected</h2>\n <esp-form-item label=\"Pick a font\">\n <esp-font-picker value=\"Aclonica\"></esp-font-picker>\n </esp-form-item>\n</esp-box>\n```",
|
|
17507
|
+
"fieldName": "value"
|
|
17543
17508
|
},
|
|
17544
17509
|
{
|
|
17545
|
-
"name": "
|
|
17510
|
+
"name": "placeholder",
|
|
17546
17511
|
"type": {
|
|
17547
|
-
"text": "
|
|
17512
|
+
"text": "string"
|
|
17548
17513
|
},
|
|
17549
|
-
"default": "
|
|
17550
|
-
"description": "
|
|
17551
|
-
"fieldName": "
|
|
17514
|
+
"default": "\"Choose a font...\"",
|
|
17515
|
+
"description": "The placeholder text for the picker input.",
|
|
17516
|
+
"fieldName": "placeholder"
|
|
17552
17517
|
},
|
|
17553
17518
|
{
|
|
17554
17519
|
"name": "scheme",
|
|
@@ -17580,49 +17545,145 @@
|
|
|
17580
17545
|
"name": "EspalierElementBase",
|
|
17581
17546
|
"module": "dist/shared/esp-element-base.js"
|
|
17582
17547
|
},
|
|
17548
|
+
"tagName": "esp-font-picker",
|
|
17549
|
+
"customElement": true,
|
|
17583
17550
|
"docPageTitle": {
|
|
17584
|
-
"name": "
|
|
17585
|
-
"description": ""
|
|
17551
|
+
"name": "Font",
|
|
17552
|
+
"description": "Picker"
|
|
17586
17553
|
},
|
|
17587
17554
|
"docUrl": {
|
|
17588
|
-
"name": "/components/
|
|
17555
|
+
"name": "/components/font-picker",
|
|
17589
17556
|
"description": ""
|
|
17590
17557
|
},
|
|
17591
17558
|
"menuGroup": {
|
|
17592
|
-
"name": "
|
|
17593
|
-
"description": ""
|
|
17594
|
-
},
|
|
17595
|
-
"menuOrder": {
|
|
17596
|
-
"name": "3",
|
|
17597
|
-
"description": ""
|
|
17559
|
+
"name": "Form",
|
|
17560
|
+
"description": "Controls"
|
|
17598
17561
|
},
|
|
17599
17562
|
"menuLabel": {
|
|
17600
|
-
"name": "
|
|
17601
|
-
"description": ""
|
|
17563
|
+
"name": "Font",
|
|
17564
|
+
"description": "Picker"
|
|
17602
17565
|
},
|
|
17603
17566
|
"menuIcon": {
|
|
17604
|
-
"name": "
|
|
17567
|
+
"name": "typography",
|
|
17605
17568
|
"description": ""
|
|
17606
17569
|
},
|
|
17607
|
-
"
|
|
17608
|
-
|
|
17570
|
+
"cssProperties": [
|
|
17571
|
+
{
|
|
17572
|
+
"description": "Background color of the shared field shell. Defaults to `var(--esp-color-layer-2)`.",
|
|
17573
|
+
"name": "--esp-field-background",
|
|
17574
|
+
"inheritedFrom": {
|
|
17575
|
+
"name": "EspalierElementBase",
|
|
17576
|
+
"module": "dist/shared/esp-element-base.js"
|
|
17577
|
+
}
|
|
17578
|
+
},
|
|
17579
|
+
{
|
|
17580
|
+
"description": "Border color of the shared field shell. Defaults to `var(--esp-color-border)`.",
|
|
17581
|
+
"name": "--esp-field-border-color",
|
|
17582
|
+
"inheritedFrom": {
|
|
17583
|
+
"name": "EspalierElementBase",
|
|
17584
|
+
"module": "dist/shared/esp-element-base.js"
|
|
17585
|
+
}
|
|
17586
|
+
},
|
|
17587
|
+
{
|
|
17588
|
+
"description": "Border width of the shared field shell. Defaults to `1px`.",
|
|
17589
|
+
"name": "--esp-field-border-width",
|
|
17590
|
+
"inheritedFrom": {
|
|
17591
|
+
"name": "EspalierElementBase",
|
|
17592
|
+
"module": "dist/shared/esp-element-base.js"
|
|
17593
|
+
}
|
|
17594
|
+
},
|
|
17595
|
+
{
|
|
17596
|
+
"description": "Text color used inside the shared field shell. Defaults to `var(--esp-color-text)`.",
|
|
17597
|
+
"name": "--esp-field-text-color",
|
|
17598
|
+
"inheritedFrom": {
|
|
17599
|
+
"name": "EspalierElementBase",
|
|
17600
|
+
"module": "dist/shared/esp-element-base.js"
|
|
17601
|
+
}
|
|
17602
|
+
},
|
|
17603
|
+
{
|
|
17604
|
+
"description": "Hover background color of the shared field shell. Derived from `--esp-field-background`.",
|
|
17605
|
+
"name": "--esp-field-hover-bg",
|
|
17606
|
+
"inheritedFrom": {
|
|
17607
|
+
"name": "EspalierElementBase",
|
|
17608
|
+
"module": "dist/shared/esp-element-base.js"
|
|
17609
|
+
}
|
|
17610
|
+
},
|
|
17611
|
+
{
|
|
17612
|
+
"description": "Focus background color of the shared field shell. Derived from `--esp-field-background`.",
|
|
17613
|
+
"name": "--esp-field-focus-bg",
|
|
17614
|
+
"inheritedFrom": {
|
|
17615
|
+
"name": "EspalierElementBase",
|
|
17616
|
+
"module": "dist/shared/esp-element-base.js"
|
|
17617
|
+
}
|
|
17618
|
+
},
|
|
17619
|
+
{
|
|
17620
|
+
"description": "Shadow color used for shared field focus treatment. Defaults to `var(--esp-color-shadow)`.",
|
|
17621
|
+
"name": "--esp-field-focus-shadow",
|
|
17622
|
+
"inheritedFrom": {
|
|
17623
|
+
"name": "EspalierElementBase",
|
|
17624
|
+
"module": "dist/shared/esp-element-base.js"
|
|
17625
|
+
}
|
|
17626
|
+
}
|
|
17627
|
+
]
|
|
17628
|
+
},
|
|
17629
|
+
{
|
|
17630
|
+
"kind": "function",
|
|
17631
|
+
"name": "resetFontCache",
|
|
17632
|
+
"return": {
|
|
17633
|
+
"type": {
|
|
17634
|
+
"text": "void"
|
|
17635
|
+
}
|
|
17636
|
+
},
|
|
17637
|
+
"description": "Reset the module-level font cache. Exposed for test cleanup so each\ntest starts with a fresh slate."
|
|
17609
17638
|
}
|
|
17610
17639
|
],
|
|
17611
17640
|
"exports": [
|
|
17612
17641
|
{
|
|
17613
17642
|
"kind": "js",
|
|
17614
|
-
"name": "
|
|
17643
|
+
"name": "WEB_SAFE_FONTS",
|
|
17615
17644
|
"declaration": {
|
|
17616
|
-
"name": "
|
|
17617
|
-
"module": "dist/
|
|
17645
|
+
"name": "WEB_SAFE_FONTS",
|
|
17646
|
+
"module": "dist/font-picker/esp-font-picker.js"
|
|
17647
|
+
}
|
|
17648
|
+
},
|
|
17649
|
+
{
|
|
17650
|
+
"kind": "js",
|
|
17651
|
+
"name": "getGoogleFonts",
|
|
17652
|
+
"declaration": {
|
|
17653
|
+
"name": "getGoogleFonts",
|
|
17654
|
+
"module": "dist/font-picker/esp-font-picker.js"
|
|
17655
|
+
}
|
|
17656
|
+
},
|
|
17657
|
+
{
|
|
17658
|
+
"kind": "js",
|
|
17659
|
+
"name": "previewFontFamily",
|
|
17660
|
+
"declaration": {
|
|
17661
|
+
"name": "previewFontFamily",
|
|
17662
|
+
"module": "dist/font-picker/esp-font-picker.js"
|
|
17663
|
+
}
|
|
17664
|
+
},
|
|
17665
|
+
{
|
|
17666
|
+
"kind": "js",
|
|
17667
|
+
"name": "EspalierFontPicker",
|
|
17668
|
+
"declaration": {
|
|
17669
|
+
"name": "EspalierFontPicker",
|
|
17670
|
+
"module": "dist/font-picker/esp-font-picker.js"
|
|
17618
17671
|
}
|
|
17619
17672
|
},
|
|
17620
17673
|
{
|
|
17621
17674
|
"kind": "custom-element-definition",
|
|
17622
|
-
"name": "esp-
|
|
17675
|
+
"name": "esp-font-picker",
|
|
17623
17676
|
"declaration": {
|
|
17624
|
-
"name": "
|
|
17625
|
-
"module": "dist/
|
|
17677
|
+
"name": "EspalierFontPicker",
|
|
17678
|
+
"module": "dist/font-picker/esp-font-picker.js"
|
|
17679
|
+
}
|
|
17680
|
+
},
|
|
17681
|
+
{
|
|
17682
|
+
"kind": "js",
|
|
17683
|
+
"name": "resetFontCache",
|
|
17684
|
+
"declaration": {
|
|
17685
|
+
"name": "resetFontCache",
|
|
17686
|
+
"module": "dist/font-picker/esp-font-picker.js"
|
|
17626
17687
|
}
|
|
17627
17688
|
}
|
|
17628
17689
|
]
|
|
@@ -18002,6 +18063,14 @@
|
|
|
18002
18063
|
"description": "The color of the label text.",
|
|
18003
18064
|
"name": "--esp-form-item-label-color"
|
|
18004
18065
|
},
|
|
18066
|
+
{
|
|
18067
|
+
"description": "The color of the hint text. Defaults to a muted variant of the body text color.",
|
|
18068
|
+
"name": "--esp-form-item-hint-color"
|
|
18069
|
+
},
|
|
18070
|
+
{
|
|
18071
|
+
"description": "The font size of the hint text. Defaults to `var(--esp-type-tiny)`.",
|
|
18072
|
+
"name": "--esp-form-item-hint-font-size"
|
|
18073
|
+
},
|
|
18005
18074
|
{
|
|
18006
18075
|
"description": "The color of the visible error badge text.",
|
|
18007
18076
|
"name": "--esp-form-item-error-color"
|
|
@@ -18059,6 +18128,16 @@
|
|
|
18059
18128
|
"name": "--esp-form-item-font-size"
|
|
18060
18129
|
}
|
|
18061
18130
|
],
|
|
18131
|
+
"slots": [
|
|
18132
|
+
{
|
|
18133
|
+
"description": "The single form control the item wraps.",
|
|
18134
|
+
"name": ""
|
|
18135
|
+
},
|
|
18136
|
+
{
|
|
18137
|
+
"description": "Rich hint content; replaces the `hint` attribute text when present.",
|
|
18138
|
+
"name": "hint"
|
|
18139
|
+
}
|
|
18140
|
+
],
|
|
18062
18141
|
"members": [
|
|
18063
18142
|
{
|
|
18064
18143
|
"kind": "field",
|
|
@@ -18107,6 +18186,85 @@
|
|
|
18107
18186
|
"attribute": "autofocus",
|
|
18108
18187
|
"reflects": true
|
|
18109
18188
|
},
|
|
18189
|
+
{
|
|
18190
|
+
"kind": "field",
|
|
18191
|
+
"name": "hint",
|
|
18192
|
+
"type": {
|
|
18193
|
+
"text": "string"
|
|
18194
|
+
},
|
|
18195
|
+
"privacy": "public",
|
|
18196
|
+
"default": "\"\"",
|
|
18197
|
+
"description": "Persistent helper text shown with the field — the bottom rung of\nthe help ladder. Hints are static authored guidance such as an\nexpected format; validation messaging belongs to `error` and\n`warning` and must not be routed through the hint. The hint stays\nvisible while an error or warning badge is showing, and is\nannounced to assistive technology as the field's description via\n`aria-describedby`.\n\n```html\n<esp-box class=\"demo-form\">\n <esp-form-item\n label=\"Employer ID\"\n hint=\"Use the format XX-XXXXXXX.\">\n <esp-input></esp-input>\n </esp-form-item>\n <esp-button label=\"Form Things\"></esp-button>\n</esp-box>\n```\n\nFor rich hint content, slot markup into the `hint` slot instead;\nit replaces the attribute text when present.",
|
|
18198
|
+
"attribute": "hint"
|
|
18199
|
+
},
|
|
18200
|
+
{
|
|
18201
|
+
"kind": "field",
|
|
18202
|
+
"name": "hintPlacement",
|
|
18203
|
+
"type": {
|
|
18204
|
+
"text": "\"below\" | \"above\""
|
|
18205
|
+
},
|
|
18206
|
+
"privacy": "public",
|
|
18207
|
+
"default": "\"below\"",
|
|
18208
|
+
"description": "Where the hint renders. `below` (the default) places it directly\nunder the field, above the error/warning badge rows. `above`\nplaces it between the label text and the field. Any other value\nfalls back to `below`.\n\n```html\n<esp-box class=\"demo-form\">\n <esp-form-item\n label=\"Employer ID\"\n hint=\"Use the format XX-XXXXXXX.\"\n hint-placement=\"above\">\n <esp-input></esp-input>\n </esp-form-item>\n <esp-button label=\"Form Things\"></esp-button>\n</esp-box>\n```",
|
|
18209
|
+
"attribute": "hint-placement"
|
|
18210
|
+
},
|
|
18211
|
+
{
|
|
18212
|
+
"kind": "field",
|
|
18213
|
+
"name": "hintId",
|
|
18214
|
+
"privacy": "private",
|
|
18215
|
+
"readonly": true,
|
|
18216
|
+
"default": "`esp-form-item-hint-${++hintIdCounter}`",
|
|
18217
|
+
"description": "Stable id for the hint text element, referenced by the slotted\nfield's `aria-describedby`."
|
|
18218
|
+
},
|
|
18219
|
+
{
|
|
18220
|
+
"kind": "field",
|
|
18221
|
+
"name": "managedHintEl",
|
|
18222
|
+
"type": {
|
|
18223
|
+
"text": "HTMLSpanElement | null"
|
|
18224
|
+
},
|
|
18225
|
+
"privacy": "private",
|
|
18226
|
+
"default": "null",
|
|
18227
|
+
"description": "The light-DOM span this component creates to carry the `hint`\nattribute text. See `syncManagedHint` for why the text cannot\nstay in the shadow root."
|
|
18228
|
+
},
|
|
18229
|
+
{
|
|
18230
|
+
"kind": "field",
|
|
18231
|
+
"name": "appliedHintTokens",
|
|
18232
|
+
"type": {
|
|
18233
|
+
"text": "string[]"
|
|
18234
|
+
},
|
|
18235
|
+
"privacy": "private",
|
|
18236
|
+
"default": "[]",
|
|
18237
|
+
"description": "The describedby tokens this component added on the last sync."
|
|
18238
|
+
},
|
|
18239
|
+
{
|
|
18240
|
+
"kind": "field",
|
|
18241
|
+
"name": "hintContentObserver",
|
|
18242
|
+
"privacy": "private",
|
|
18243
|
+
"readonly": true,
|
|
18244
|
+
"default": "new MutationObserver(() => { this.syncFieldDescribedBy(); })",
|
|
18245
|
+
"description": "Keep a shadow-local mirror current when rich hint text changes."
|
|
18246
|
+
},
|
|
18247
|
+
{
|
|
18248
|
+
"kind": "field",
|
|
18249
|
+
"name": "hasHint",
|
|
18250
|
+
"type": {
|
|
18251
|
+
"text": "boolean"
|
|
18252
|
+
},
|
|
18253
|
+
"privacy": "private",
|
|
18254
|
+
"description": "A hint exists when either the attribute or the slot provides one.",
|
|
18255
|
+
"readonly": true
|
|
18256
|
+
},
|
|
18257
|
+
{
|
|
18258
|
+
"kind": "method",
|
|
18259
|
+
"name": "consumerHintElements",
|
|
18260
|
+
"privacy": "private",
|
|
18261
|
+
"return": {
|
|
18262
|
+
"type": {
|
|
18263
|
+
"text": "Element[]"
|
|
18264
|
+
}
|
|
18265
|
+
},
|
|
18266
|
+
"description": "Consumer-provided `slot=\"hint\"` elements (excluding the managed span)."
|
|
18267
|
+
},
|
|
18110
18268
|
{
|
|
18111
18269
|
"kind": "field",
|
|
18112
18270
|
"name": "error",
|
|
@@ -18200,6 +18358,67 @@
|
|
|
18200
18358
|
"privacy": "private",
|
|
18201
18359
|
"default": "[]"
|
|
18202
18360
|
},
|
|
18361
|
+
{
|
|
18362
|
+
"kind": "field",
|
|
18363
|
+
"name": "handleHintSlotChange",
|
|
18364
|
+
"privacy": "private",
|
|
18365
|
+
"description": "Re-evaluate hint presence when `hint` slot content changes."
|
|
18366
|
+
},
|
|
18367
|
+
{
|
|
18368
|
+
"kind": "method",
|
|
18369
|
+
"name": "observeConsumerHintContent",
|
|
18370
|
+
"privacy": "private",
|
|
18371
|
+
"return": {
|
|
18372
|
+
"type": {
|
|
18373
|
+
"text": "void"
|
|
18374
|
+
}
|
|
18375
|
+
},
|
|
18376
|
+
"description": "Watch rich hint text and ids without observing the managed fallback span."
|
|
18377
|
+
},
|
|
18378
|
+
{
|
|
18379
|
+
"kind": "method",
|
|
18380
|
+
"name": "syncManagedHint",
|
|
18381
|
+
"privacy": "private",
|
|
18382
|
+
"return": {
|
|
18383
|
+
"type": {
|
|
18384
|
+
"text": "void"
|
|
18385
|
+
}
|
|
18386
|
+
},
|
|
18387
|
+
"description": "Keep the `hint` attribute text in the light DOM. An\n`aria-describedby` IDREF on the slotted field cannot reach into\nthis component's shadow root (nor can ARIA element reflection —\nbrowsers drop references that point down into a shadow root), so\nthe description text must live in the field's own tree. The\nattribute text is projected through the `hint` slot via a span\nthis component owns; consumer-slotted hint content replaces the\nattribute text entirely."
|
|
18388
|
+
},
|
|
18389
|
+
{
|
|
18390
|
+
"kind": "method",
|
|
18391
|
+
"name": "hintDescriptionIds",
|
|
18392
|
+
"privacy": "private",
|
|
18393
|
+
"return": {
|
|
18394
|
+
"type": {
|
|
18395
|
+
"text": "string[]"
|
|
18396
|
+
}
|
|
18397
|
+
},
|
|
18398
|
+
"description": "Ids of the light-DOM elements carrying the hint text, assigning\ngenerated ids to consumer elements that lack one. Consumer ids are\nminted fresh from the module counter — never `hintId`, which is\nreserved for the managed span so a consumer element that keeps a\ngenerated id after it stops being a hint can never duplicate it."
|
|
18399
|
+
},
|
|
18400
|
+
{
|
|
18401
|
+
"kind": "method",
|
|
18402
|
+
"name": "hintDescriptionText",
|
|
18403
|
+
"privacy": "private",
|
|
18404
|
+
"return": {
|
|
18405
|
+
"type": {
|
|
18406
|
+
"text": "string | null"
|
|
18407
|
+
}
|
|
18408
|
+
},
|
|
18409
|
+
"description": "Plain text mirrored into an Espalier control's own shadow root."
|
|
18410
|
+
},
|
|
18411
|
+
{
|
|
18412
|
+
"kind": "method",
|
|
18413
|
+
"name": "syncFieldDescribedBy",
|
|
18414
|
+
"privacy": "private",
|
|
18415
|
+
"return": {
|
|
18416
|
+
"type": {
|
|
18417
|
+
"text": "void"
|
|
18418
|
+
}
|
|
18419
|
+
},
|
|
18420
|
+
"description": "Mirror the hint onto the slotted field as its accessible\ndescription, preserving any consumer-set `aria-describedby`\ntokens (the same merge `esp-tooltip` performs on its trigger)."
|
|
18421
|
+
},
|
|
18203
18422
|
{
|
|
18204
18423
|
"kind": "method",
|
|
18205
18424
|
"name": "focus",
|
|
@@ -18219,6 +18438,12 @@
|
|
|
18219
18438
|
}
|
|
18220
18439
|
],
|
|
18221
18440
|
"description": "Focus the assigned slotted field."
|
|
18441
|
+
},
|
|
18442
|
+
{
|
|
18443
|
+
"kind": "method",
|
|
18444
|
+
"name": "renderHint",
|
|
18445
|
+
"privacy": "private",
|
|
18446
|
+
"description": "The hint renders inside the `<label>` when placed `above`, so it\nis wrapped in `aria-hidden` there to keep it out of the field's\naccessible-name computation — it stays announced as a description\nbecause nodes directly referenced by `aria-describedby` are\nincluded even when hidden."
|
|
18222
18447
|
}
|
|
18223
18448
|
],
|
|
18224
18449
|
"attributes": [
|
|
@@ -18240,6 +18465,24 @@
|
|
|
18240
18465
|
"description": "When true, the first control where autofocus is true has\nfocus captured.",
|
|
18241
18466
|
"fieldName": "autofocus"
|
|
18242
18467
|
},
|
|
18468
|
+
{
|
|
18469
|
+
"name": "hint",
|
|
18470
|
+
"type": {
|
|
18471
|
+
"text": "string"
|
|
18472
|
+
},
|
|
18473
|
+
"default": "\"\"",
|
|
18474
|
+
"description": "Persistent helper text shown with the field — the bottom rung of\nthe help ladder. Hints are static authored guidance such as an\nexpected format; validation messaging belongs to `error` and\n`warning` and must not be routed through the hint. The hint stays\nvisible while an error or warning badge is showing, and is\nannounced to assistive technology as the field's description via\n`aria-describedby`.\n\n```html\n<esp-box class=\"demo-form\">\n <esp-form-item\n label=\"Employer ID\"\n hint=\"Use the format XX-XXXXXXX.\">\n <esp-input></esp-input>\n </esp-form-item>\n <esp-button label=\"Form Things\"></esp-button>\n</esp-box>\n```\n\nFor rich hint content, slot markup into the `hint` slot instead;\nit replaces the attribute text when present.",
|
|
18475
|
+
"fieldName": "hint"
|
|
18476
|
+
},
|
|
18477
|
+
{
|
|
18478
|
+
"name": "hint-placement",
|
|
18479
|
+
"type": {
|
|
18480
|
+
"text": "\"below\" | \"above\""
|
|
18481
|
+
},
|
|
18482
|
+
"default": "\"below\"",
|
|
18483
|
+
"description": "Where the hint renders. `below` (the default) places it directly\nunder the field, above the error/warning badge rows. `above`\nplaces it between the label text and the field. Any other value\nfalls back to `below`.\n\n```html\n<esp-box class=\"demo-form\">\n <esp-form-item\n label=\"Employer ID\"\n hint=\"Use the format XX-XXXXXXX.\"\n hint-placement=\"above\">\n <esp-input></esp-input>\n </esp-form-item>\n <esp-button label=\"Form Things\"></esp-button>\n</esp-box>\n```",
|
|
18484
|
+
"fieldName": "hintPlacement"
|
|
18485
|
+
},
|
|
18243
18486
|
{
|
|
18244
18487
|
"name": "error",
|
|
18245
18488
|
"type": {
|
|
@@ -25789,6 +26032,12 @@
|
|
|
25789
26032
|
"privacy": "private",
|
|
25790
26033
|
"default": "new FormFieldController({ host: this, internals: this.internals, getFormValue: () => this.value || null, getValidity: () => this._getValidity(), getValidationAnchor: (): HTMLElement => this.theInput.value ?? this, onReset: () => { this.value = \"\"; this._dateDisplayText = \"\"; this._dateManaged = false; this._telDisplayText = \"\"; this._telManaged = false; this._hasVisibleError = false; }, onRestore: (state: string) => { this.value = state; if (this.inputType === \"date\" && state) { this._restoreDateDisplay(state); } if (this.inputType === \"tel\" && state) { this._restoreTelDisplay(state); } }, onDisabled: (isDisabled: boolean) => { this.disabled = isDisabled; }, })"
|
|
25791
26034
|
},
|
|
26035
|
+
{
|
|
26036
|
+
"kind": "field",
|
|
26037
|
+
"name": "formItemDescription",
|
|
26038
|
+
"privacy": "private",
|
|
26039
|
+
"default": "new FormFieldDescriptionController({ host: this, getTarget: () => this.theInput.value, })"
|
|
26040
|
+
},
|
|
25792
26041
|
{
|
|
25793
26042
|
"kind": "field",
|
|
25794
26043
|
"name": "_hasVisibleError",
|
|
@@ -33055,6 +33304,16 @@
|
|
|
33055
33304
|
"module": "dist/pickers/esp-picker-base.js"
|
|
33056
33305
|
}
|
|
33057
33306
|
},
|
|
33307
|
+
{
|
|
33308
|
+
"kind": "field",
|
|
33309
|
+
"name": "formItemDescription",
|
|
33310
|
+
"privacy": "private",
|
|
33311
|
+
"default": "new FormFieldDescriptionController({ host: this, getTarget: () => this.theInput.value, })",
|
|
33312
|
+
"inheritedFrom": {
|
|
33313
|
+
"name": "EspalierPickerBase",
|
|
33314
|
+
"module": "dist/pickers/esp-picker-base.js"
|
|
33315
|
+
}
|
|
33316
|
+
},
|
|
33058
33317
|
{
|
|
33059
33318
|
"kind": "method",
|
|
33060
33319
|
"name": "formResetCallback",
|
|
@@ -34430,6 +34689,16 @@
|
|
|
34430
34689
|
"module": "dist/pickers/esp-picker-base.js"
|
|
34431
34690
|
}
|
|
34432
34691
|
},
|
|
34692
|
+
{
|
|
34693
|
+
"kind": "field",
|
|
34694
|
+
"name": "formItemDescription",
|
|
34695
|
+
"privacy": "private",
|
|
34696
|
+
"default": "new FormFieldDescriptionController({ host: this, getTarget: () => this.theInput.value, })",
|
|
34697
|
+
"inheritedFrom": {
|
|
34698
|
+
"name": "EspalierPickerBase",
|
|
34699
|
+
"module": "dist/pickers/esp-picker-base.js"
|
|
34700
|
+
}
|
|
34701
|
+
},
|
|
34433
34702
|
{
|
|
34434
34703
|
"kind": "method",
|
|
34435
34704
|
"name": "formResetCallback",
|
|
@@ -35545,6 +35814,12 @@
|
|
|
35545
35814
|
"privacy": "protected",
|
|
35546
35815
|
"default": "new FormFieldController({ host: this, internals: this.internals, getFormValue: () => this.getPickerFormValue(), getValidity: () => this.getPickerValidity(), onReset: () => this.handlePickerReset(), onRestore: (state: string) => this.handlePickerRestore(state), onDisabled: (isDisabled: boolean) => { this.disabled = isDisabled; }, })"
|
|
35547
35816
|
},
|
|
35817
|
+
{
|
|
35818
|
+
"kind": "field",
|
|
35819
|
+
"name": "formItemDescription",
|
|
35820
|
+
"privacy": "private",
|
|
35821
|
+
"default": "new FormFieldDescriptionController({ host: this, getTarget: () => this.theInput.value, })"
|
|
35822
|
+
},
|
|
35548
35823
|
{
|
|
35549
35824
|
"kind": "method",
|
|
35550
35825
|
"name": "getPickerFormValue",
|
|
@@ -38840,6 +39115,21 @@
|
|
|
38840
39115
|
"name": "itemsSlot",
|
|
38841
39116
|
"privacy": "private"
|
|
38842
39117
|
},
|
|
39118
|
+
{
|
|
39119
|
+
"kind": "field",
|
|
39120
|
+
"name": "formItemDescription",
|
|
39121
|
+
"type": {
|
|
39122
|
+
"text": "string | null"
|
|
39123
|
+
},
|
|
39124
|
+
"privacy": "private",
|
|
39125
|
+
"default": "null"
|
|
39126
|
+
},
|
|
39127
|
+
{
|
|
39128
|
+
"kind": "field",
|
|
39129
|
+
"name": "describedRadios",
|
|
39130
|
+
"privacy": "private",
|
|
39131
|
+
"default": "new Set<EspalierRadioButton>()"
|
|
39132
|
+
},
|
|
38843
39133
|
{
|
|
38844
39134
|
"kind": "field",
|
|
38845
39135
|
"name": "name",
|
|
@@ -38959,6 +39249,21 @@
|
|
|
38959
39249
|
}
|
|
38960
39250
|
}
|
|
38961
39251
|
},
|
|
39252
|
+
{
|
|
39253
|
+
"kind": "method",
|
|
39254
|
+
"name": "applyFormItemDescription",
|
|
39255
|
+
"privacy": "private",
|
|
39256
|
+
"return": {
|
|
39257
|
+
"type": {
|
|
39258
|
+
"text": "void"
|
|
39259
|
+
}
|
|
39260
|
+
}
|
|
39261
|
+
},
|
|
39262
|
+
{
|
|
39263
|
+
"kind": "field",
|
|
39264
|
+
"name": "handleItemsSlotChange",
|
|
39265
|
+
"privacy": "private"
|
|
39266
|
+
},
|
|
38962
39267
|
{
|
|
38963
39268
|
"kind": "method",
|
|
38964
39269
|
"name": "handleChildChanged",
|
|
@@ -39758,6 +40063,12 @@
|
|
|
39758
40063
|
}
|
|
39759
40064
|
],
|
|
39760
40065
|
"members": [
|
|
40066
|
+
{
|
|
40067
|
+
"kind": "field",
|
|
40068
|
+
"name": "formItemDescription",
|
|
40069
|
+
"privacy": "private",
|
|
40070
|
+
"default": "new FormFieldDescriptionController({ host: this, getTarget: () => this.shadowRoot?.querySelector<HTMLElement>(\".radio-control\"), })"
|
|
40071
|
+
},
|
|
39761
40072
|
{
|
|
39762
40073
|
"kind": "field",
|
|
39763
40074
|
"name": "checked",
|
|
@@ -45851,6 +46162,172 @@
|
|
|
45851
46162
|
}
|
|
45852
46163
|
]
|
|
45853
46164
|
},
|
|
46165
|
+
{
|
|
46166
|
+
"kind": "javascript-module",
|
|
46167
|
+
"path": "dist/shared/form-field-description-controller.js",
|
|
46168
|
+
"declarations": [
|
|
46169
|
+
{
|
|
46170
|
+
"kind": "class",
|
|
46171
|
+
"description": "Mirrors an `esp-form-item` hint into the same shadow root as a form\ncontrol's real focus target. ARIA ID references do not cross shadow\nboundaries, so setting `aria-describedby` on the custom-element host\nalone cannot describe an inner input, textarea, or ARIA control.",
|
|
46172
|
+
"name": "FormFieldDescriptionController",
|
|
46173
|
+
"members": [
|
|
46174
|
+
{
|
|
46175
|
+
"kind": "field",
|
|
46176
|
+
"name": "descriptionId",
|
|
46177
|
+
"privacy": "private",
|
|
46178
|
+
"readonly": true,
|
|
46179
|
+
"default": "`esp-form-field-description-${++descriptionIdCounter}`"
|
|
46180
|
+
},
|
|
46181
|
+
{
|
|
46182
|
+
"kind": "field",
|
|
46183
|
+
"name": "description",
|
|
46184
|
+
"type": {
|
|
46185
|
+
"text": "string | null"
|
|
46186
|
+
},
|
|
46187
|
+
"privacy": "private",
|
|
46188
|
+
"default": "null"
|
|
46189
|
+
},
|
|
46190
|
+
{
|
|
46191
|
+
"kind": "field",
|
|
46192
|
+
"name": "descriptionElement",
|
|
46193
|
+
"type": {
|
|
46194
|
+
"text": "HTMLSpanElement | null"
|
|
46195
|
+
},
|
|
46196
|
+
"privacy": "private",
|
|
46197
|
+
"default": "null"
|
|
46198
|
+
},
|
|
46199
|
+
{
|
|
46200
|
+
"kind": "field",
|
|
46201
|
+
"name": "target",
|
|
46202
|
+
"type": {
|
|
46203
|
+
"text": "HTMLElement | null"
|
|
46204
|
+
},
|
|
46205
|
+
"privacy": "private",
|
|
46206
|
+
"default": "null"
|
|
46207
|
+
},
|
|
46208
|
+
{
|
|
46209
|
+
"kind": "method",
|
|
46210
|
+
"name": "hostConnected",
|
|
46211
|
+
"return": {
|
|
46212
|
+
"type": {
|
|
46213
|
+
"text": "void"
|
|
46214
|
+
}
|
|
46215
|
+
}
|
|
46216
|
+
},
|
|
46217
|
+
{
|
|
46218
|
+
"kind": "method",
|
|
46219
|
+
"name": "hostUpdated",
|
|
46220
|
+
"return": {
|
|
46221
|
+
"type": {
|
|
46222
|
+
"text": "void"
|
|
46223
|
+
}
|
|
46224
|
+
}
|
|
46225
|
+
},
|
|
46226
|
+
{
|
|
46227
|
+
"kind": "method",
|
|
46228
|
+
"name": "hostDisconnected",
|
|
46229
|
+
"return": {
|
|
46230
|
+
"type": {
|
|
46231
|
+
"text": "void"
|
|
46232
|
+
}
|
|
46233
|
+
}
|
|
46234
|
+
},
|
|
46235
|
+
{
|
|
46236
|
+
"kind": "method",
|
|
46237
|
+
"name": "setDescription",
|
|
46238
|
+
"return": {
|
|
46239
|
+
"type": {
|
|
46240
|
+
"text": "void"
|
|
46241
|
+
}
|
|
46242
|
+
},
|
|
46243
|
+
"parameters": [
|
|
46244
|
+
{
|
|
46245
|
+
"name": "description",
|
|
46246
|
+
"type": {
|
|
46247
|
+
"text": "string | null"
|
|
46248
|
+
}
|
|
46249
|
+
}
|
|
46250
|
+
],
|
|
46251
|
+
"description": "Set or clear the description supplied by the wrapping form item."
|
|
46252
|
+
},
|
|
46253
|
+
{
|
|
46254
|
+
"kind": "method",
|
|
46255
|
+
"name": "sync",
|
|
46256
|
+
"privacy": "private",
|
|
46257
|
+
"return": {
|
|
46258
|
+
"type": {
|
|
46259
|
+
"text": "void"
|
|
46260
|
+
}
|
|
46261
|
+
}
|
|
46262
|
+
},
|
|
46263
|
+
{
|
|
46264
|
+
"kind": "method",
|
|
46265
|
+
"name": "addDescriptionToken",
|
|
46266
|
+
"privacy": "private",
|
|
46267
|
+
"return": {
|
|
46268
|
+
"type": {
|
|
46269
|
+
"text": "void"
|
|
46270
|
+
}
|
|
46271
|
+
},
|
|
46272
|
+
"parameters": [
|
|
46273
|
+
{
|
|
46274
|
+
"name": "target",
|
|
46275
|
+
"type": {
|
|
46276
|
+
"text": "HTMLElement"
|
|
46277
|
+
}
|
|
46278
|
+
}
|
|
46279
|
+
]
|
|
46280
|
+
},
|
|
46281
|
+
{
|
|
46282
|
+
"kind": "method",
|
|
46283
|
+
"name": "removeDescriptionToken",
|
|
46284
|
+
"privacy": "private",
|
|
46285
|
+
"return": {
|
|
46286
|
+
"type": {
|
|
46287
|
+
"text": "void"
|
|
46288
|
+
}
|
|
46289
|
+
},
|
|
46290
|
+
"parameters": [
|
|
46291
|
+
{
|
|
46292
|
+
"name": "target",
|
|
46293
|
+
"type": {
|
|
46294
|
+
"text": "HTMLElement | null"
|
|
46295
|
+
}
|
|
46296
|
+
}
|
|
46297
|
+
]
|
|
46298
|
+
},
|
|
46299
|
+
{
|
|
46300
|
+
"kind": "method",
|
|
46301
|
+
"name": "descriptionTokens",
|
|
46302
|
+
"privacy": "private",
|
|
46303
|
+
"return": {
|
|
46304
|
+
"type": {
|
|
46305
|
+
"text": "string[]"
|
|
46306
|
+
}
|
|
46307
|
+
},
|
|
46308
|
+
"parameters": [
|
|
46309
|
+
{
|
|
46310
|
+
"name": "target",
|
|
46311
|
+
"type": {
|
|
46312
|
+
"text": "HTMLElement"
|
|
46313
|
+
}
|
|
46314
|
+
}
|
|
46315
|
+
]
|
|
46316
|
+
}
|
|
46317
|
+
]
|
|
46318
|
+
}
|
|
46319
|
+
],
|
|
46320
|
+
"exports": [
|
|
46321
|
+
{
|
|
46322
|
+
"kind": "js",
|
|
46323
|
+
"name": "FormFieldDescriptionController",
|
|
46324
|
+
"declaration": {
|
|
46325
|
+
"name": "FormFieldDescriptionController",
|
|
46326
|
+
"module": "dist/shared/form-field-description-controller.js"
|
|
46327
|
+
}
|
|
46328
|
+
}
|
|
46329
|
+
]
|
|
46330
|
+
},
|
|
45854
46331
|
{
|
|
45855
46332
|
"kind": "javascript-module",
|
|
45856
46333
|
"path": "dist/shared/intent-values.js",
|
|
@@ -47765,6 +48242,12 @@
|
|
|
47765
48242
|
"privacy": "private",
|
|
47766
48243
|
"default": "new FormFieldController({ host: this, internals: this.internals, getFormValue: () => this.value || null, // A range slider always has a normalized numeric value (clamped // to [min, max] and snapped to step), so there is no // representable \"empty\" state that could trigger valueMissing. // Validity is always satisfied. getValidity: () => null, onReset: () => { this.value = String(this._low); }, onRestore: (state: string) => { this.value = state; }, onDisabled: (isDisabled: boolean) => { this.disabled = isDisabled; }, })"
|
|
47767
48244
|
},
|
|
48245
|
+
{
|
|
48246
|
+
"kind": "field",
|
|
48247
|
+
"name": "formItemDescription",
|
|
48248
|
+
"privacy": "private",
|
|
48249
|
+
"default": "new FormFieldDescriptionController({ host: this, getTarget: () => this._thumbRef.value, })"
|
|
48250
|
+
},
|
|
47768
48251
|
{
|
|
47769
48252
|
"kind": "field",
|
|
47770
48253
|
"name": "min",
|
|
@@ -49848,6 +50331,12 @@
|
|
|
49848
50331
|
"privacy": "private",
|
|
49849
50332
|
"default": "new FormFieldController({ host: this, internals: this.internals, getFormValue: () => (this.checked ? this.value || \"on\" : null), getValidity: () => { if (this.required && !this.checked) { return { flags: { valueMissing: true }, message: this.requiredMessage || \"Please toggle this switch to continue.\", }; } return null; }, onReset: () => { this.checked = false; }, onRestore: (state: string) => { this.checked = state === \"on\" || state === this.value; }, onDisabled: (isDisabled: boolean) => { this.disabled = isDisabled; }, })"
|
|
49850
50333
|
},
|
|
50334
|
+
{
|
|
50335
|
+
"kind": "field",
|
|
50336
|
+
"name": "formItemDescription",
|
|
50337
|
+
"privacy": "private",
|
|
50338
|
+
"default": "new FormFieldDescriptionController({ host: this, getTarget: () => this.shadowRoot?.querySelector<HTMLElement>(\".switch-control\"), })"
|
|
50339
|
+
},
|
|
49851
50340
|
{
|
|
49852
50341
|
"kind": "field",
|
|
49853
50342
|
"name": "mode",
|
|
@@ -52244,6 +52733,12 @@
|
|
|
52244
52733
|
"privacy": "private",
|
|
52245
52734
|
"default": "new FormFieldController({ host: this, internals: this.internals, getFormValue: () => this.value || null, getValidity: () => this._getValidity(), getValidationAnchor: (): HTMLElement => this.theTextarea.value ?? this, onReset: () => { this.value = \"\"; this._hasVisibleError = false; }, onRestore: (state: string) => { this.value = state; }, onDisabled: (isDisabled: boolean) => { this.disabled = isDisabled; }, })"
|
|
52246
52735
|
},
|
|
52736
|
+
{
|
|
52737
|
+
"kind": "field",
|
|
52738
|
+
"name": "formItemDescription",
|
|
52739
|
+
"privacy": "private",
|
|
52740
|
+
"default": "new FormFieldDescriptionController({ host: this, getTarget: () => this.theTextarea.value, })"
|
|
52741
|
+
},
|
|
52247
52742
|
{
|
|
52248
52743
|
"kind": "field",
|
|
52249
52744
|
"name": "_hasVisibleError",
|