@heartlandone/vega 2.84.0 → 2.86.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/dist/cjs/{app-globals-ea063074.js → app-globals-3080f55a.js} +5 -5
- package/dist/cjs/{child-nodes-event-prevent-slimmer-58bbc5fc.js → child-nodes-event-prevent-slimmer-f3979a03.js} +1 -1
- package/dist/cjs/{code-block-6da521e6.js → code-block-c6c70464.js} +6 -0
- package/dist/cjs/{component-value-history-controller-slimmer.abstract-f3f35f94.js → component-value-history-controller-slimmer.abstract-a523b747.js} +2 -2
- package/dist/cjs/{content-state-89fafb3b.js → content-state-efd3b1a7.js} +1 -1
- package/dist/cjs/{event-emit-slimmer-ecca412d.js → event-emit-slimmer-80e1c8ca.js} +1 -1
- package/dist/cjs/{image-annotation-action-a6e1e9ed.js → image-annotation-action-93bace08.js} +3 -3
- package/dist/cjs/{immutable-map-edf24b54.js → immutable-map-d711339d.js} +16 -4
- package/dist/cjs/index.cjs.js +9 -9
- package/dist/cjs/{internal-vega-event-manager-6b74b3af.js → internal-vega-event-manager-7e0d966d.js} +2 -1
- package/dist/cjs/loader.cjs.js +8 -8
- package/dist/cjs/{public-rules-fc52d624.js → public-rules-3cd0f182.js} +3 -3
- package/dist/cjs/{range-93cc8ab1.js → range-c9bde0b4.js} +1 -1
- package/dist/cjs/{rich-text-editor-required-rule-fd3711fb.js → rich-text-editor-required-rule-d1f0509c.js} +1 -1
- package/dist/cjs/{split-cell-operation-532fb9f0.js → split-cell-operation-6a59c9b0.js} +2 -2
- package/dist/cjs/{token-extension-39f2b886.js → token-extension-d7d2ead6.js} +282 -224
- package/dist/cjs/vega-accordion.cjs.entry.js +3 -3
- package/dist/cjs/vega-app-header-button.cjs.entry.js +4 -4
- package/dist/cjs/vega-banner.cjs.entry.js +3 -3
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +4 -4
- package/dist/cjs/vega-button-circle.cjs.entry.js +4 -4
- package/dist/cjs/vega-button-group_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-button-link.cjs.entry.js +4 -4
- package/dist/cjs/vega-button.cjs.entry.js +4 -4
- package/dist/cjs/vega-calendar_4.cjs.entry.js +8 -7
- package/dist/cjs/vega-carousel.cjs.entry.js +3 -3
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-chip.cjs.entry.js +4 -4
- package/dist/cjs/vega-code-block.cjs.entry.js +7 -7
- package/dist/cjs/vega-color-picker.cjs.entry.js +3 -3
- package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +188 -46
- package/dist/cjs/vega-color-swatch.cjs.entry.js +7 -7
- package/dist/cjs/vega-combo-box.cjs.entry.js +4 -4
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +17 -5
- package/dist/cjs/vega-dialog_2.cjs.entry.js +5 -5
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +4 -4
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/{vega-event-id-c08ce3d3.js → vega-event-id-d9994eb3.js} +2 -0
- package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
- package/dist/cjs/vega-file-uploader.cjs.entry.js +3 -3
- package/dist/cjs/vega-form.cjs.entry.js +5 -5
- package/dist/cjs/vega-image-uploader.cjs.entry.js +4 -4
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +4 -4
- package/dist/cjs/vega-input-numeric.cjs.entry.js +4 -4
- package/dist/cjs/vega-input-passcode.cjs.entry.js +4 -4
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +15 -5
- package/dist/cjs/vega-input-range.cjs.entry.js +4 -4
- package/dist/cjs/vega-input-select.cjs.entry.js +4 -4
- package/dist/cjs/vega-input.cjs.entry.js +3 -3
- package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +15 -13
- package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
- package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +3 -3
- package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +1 -1
- package/dist/cjs/vega-pagination.cjs.entry.js +4 -4
- package/dist/cjs/vega-popover_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-radio_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +4 -4
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +10 -10
- package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +6 -6
- package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +161 -28
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +3 -3
- package/dist/cjs/vega-signature-capture.cjs.entry.js +3 -3
- package/dist/cjs/vega-stepper.cjs.entry.js +4 -4
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-table_11.cjs.entry.js +1172 -282
- package/dist/cjs/vega-textarea.cjs.entry.js +4 -4
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +9 -15
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +3 -3
- package/dist/cjs/vega.cjs.js +8 -8
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-view-with-time-renderer.js +2 -2
- package/dist/collection/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-view-renderer.js +2 -1
- package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/slimmers/renderers/color-swatch-picker-renderer.js +24 -5
- package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/vega-color-swatch-picker.js +15 -0
- package/dist/collection/components/vega-color-swatch/vega-color-swatch.js +6 -6
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.js +3 -0
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.css +17 -1
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.js +31 -1
- package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +10 -0
- package/dist/collection/components/vega-modal/slimmers/renderers/vega-modal-renderer.js +1 -1
- package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-controller.js +10 -8
- package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-zindex-controller.js +2 -2
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +6 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +8 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-toolbar-button-renderer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.js +53 -51
- package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.js +40 -10
- package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.js +75 -62
- package/dist/collection/components/vega-rich-text-editor/extensions/table/table-extension.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/table-toolbar-button-renderer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.js +5 -1
- package/dist/collection/components/vega-selection-tile/slimmers/renderers/vega-selection-tile-renderer.js +71 -10
- package/dist/collection/components/vega-selection-tile/vega-selection-tile-group/slimmers/renderers/vega-selection-tile-group-renderer.js +39 -11
- package/dist/collection/components/vega-selection-tile/vega-selection-tile-group/vega-selection-tile-group.css +1 -3
- package/dist/collection/components/vega-selection-tile/vega-selection-tile.css +23 -18
- package/dist/collection/components/vega-selection-tile/vega-selection-tile.js +45 -1
- package/dist/collection/components/vega-table/slimmers/controllers/vega-table-expand-row-controller.js +88 -4
- package/dist/collection/components/vega-table/slimmers/controllers/vega-table-row-draggable-controller.js +132 -0
- package/dist/collection/components/vega-table/slimmers/controllers/vega-table-sort-controller.js +14 -0
- package/dist/collection/components/vega-table/slimmers/renderers/vega-table-body-renderer.js +8 -5
- package/dist/collection/components/vega-table/slimmers/renderers/vega-table-col-group-renderer.js +6 -2
- package/dist/collection/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.js +8 -2
- package/dist/collection/components/vega-table/utils.js +4 -3
- package/dist/collection/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-col-span-controller.js +13 -1
- package/dist/collection/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-state-controller.js +7 -0
- package/dist/collection/components/vega-table/vega-table-expand-row/vega-table-expand-row.js +7 -0
- package/dist/collection/components/vega-table/vega-table-foot-row/slimmers/controllers/vega-table-foot-row-state-controller.js +10 -3
- package/dist/collection/components/vega-table/vega-table-foot-row/slimmers/renderers/vega-table-foot-row-renderer.js +9 -2
- package/dist/collection/components/vega-table/vega-table-foot-row/vega-table-foot-row.js +4 -3
- package/dist/collection/components/vega-table/vega-table-head/vega-table-head.js +5 -0
- package/dist/collection/components/vega-table/vega-table-head-row/slimmers/controllers/vega-table-head-row-state-controller.js +10 -3
- package/dist/collection/components/vega-table/vega-table-head-row/slimmers/renderers/vega-table-head-row-renderer.js +12 -2
- package/dist/collection/components/vega-table/vega-table-head-row/vega-table-head-row.js +5 -4
- package/dist/collection/components/vega-table/vega-table-row/slimmers/controllers/vega-table-row-state-controller.js +22 -1
- package/dist/collection/components/vega-table/vega-table-row/slimmers/renderers/vega-table-row-renderer.js +19 -4
- package/dist/collection/components/vega-table/vega-table-row/vega-table-row.css +6 -0
- package/dist/collection/components/vega-table/vega-table-row/vega-table-row.js +11 -1
- package/dist/collection/components/vega-table/vega-table.css +5 -0
- package/dist/collection/components/vega-table/vega-table.js +135 -11
- package/dist/collection/components/vega-time-picker/vega-time-picker.js +6 -12
- package/dist/collection/constants/ui.js +1 -0
- package/dist/collection/global/icons/grip-dots-vertical.js +3 -0
- package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +2 -1
- package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +1 -0
- package/dist/collection/helpers/immutable/immutable-map.js +16 -4
- package/dist/collection/helpers/slimmers/draggable-element-slimmer.js +508 -0
- package/dist/collection/helpers/slimmers/popover-nested-slot-projection-slimmer.js +118 -0
- package/dist/esm/{app-globals-d06de2a5.js → app-globals-37536ac9.js} +5 -5
- package/dist/esm/{aria-dialog-focusable-trap-slimmer-853a91de.js → aria-dialog-focusable-trap-slimmer-6eb79723.js} +1 -1
- package/dist/esm/{child-nodes-event-prevent-slimmer-f65e2452.js → child-nodes-event-prevent-slimmer-75f93d85.js} +1 -1
- package/dist/esm/{code-block-65c8804b.js → code-block-10be3916.js} +7 -1
- package/dist/esm/{component-value-history-controller-slimmer.abstract-26c154f6.js → component-value-history-controller-slimmer.abstract-82d51b7a.js} +3 -3
- package/dist/esm/{content-state-e676bdf0.js → content-state-afeb700d.js} +2 -2
- package/dist/esm/{element-appender-slimmer-d4a82dc3.js → element-appender-slimmer-05f487d7.js} +1 -1
- package/dist/esm/{event-emit-slimmer-18711776.js → event-emit-slimmer-1c57093d.js} +1 -1
- package/dist/esm/{form-field-controller-slimmer-9a0f8c54.js → form-field-controller-slimmer-ae8478b5.js} +2 -2
- package/dist/esm/{image-annotation-action-2d87b66a.js → image-annotation-action-bad7c565.js} +3 -3
- package/dist/esm/{immutable-map-612922a2.js → immutable-map-4fe22b11.js} +16 -4
- package/dist/esm/index.js +9 -9
- package/dist/esm/{internal-vega-event-manager-bed71930.js → internal-vega-event-manager-7cdf3c28.js} +2 -1
- package/dist/esm/loader.js +9 -9
- package/dist/esm/{public-rules-a61ff09f.js → public-rules-f54e6f39.js} +4 -4
- package/dist/esm/{range-d9e55d00.js → range-f32f9185.js} +1 -1
- package/dist/esm/{rich-text-editor-required-rule-6a4c853a.js → rich-text-editor-required-rule-627fd7e4.js} +1 -1
- package/dist/esm/{split-cell-operation-2e700c5c.js → split-cell-operation-90c30861.js} +3 -3
- package/dist/esm/{string-input-formatter-slimmer-ad234bec.js → string-input-formatter-slimmer-4059080b.js} +2 -2
- package/dist/esm/{sub-state-notify-slimmer-1f907173.js → sub-state-notify-slimmer-63ecb465.js} +1 -1
- package/dist/esm/{sub-state-observer-slimmer-090c500a.js → sub-state-observer-slimmer-2adbbe00.js} +1 -1
- package/dist/esm/{token-extension-d3a46c04.js → token-extension-728c0678.js} +282 -224
- package/dist/esm/vega-accordion.entry.js +3 -3
- package/dist/esm/vega-app-header-button.entry.js +4 -4
- package/dist/esm/vega-banner.entry.js +3 -3
- package/dist/esm/vega-breadcrumb.entry.js +4 -4
- package/dist/esm/vega-button-circle.entry.js +5 -5
- package/dist/esm/vega-button-group_2.entry.js +7 -7
- package/dist/esm/vega-button-link.entry.js +4 -4
- package/dist/esm/vega-button.entry.js +5 -5
- package/dist/esm/vega-calendar_4.entry.js +11 -10
- package/dist/esm/vega-carousel.entry.js +3 -3
- package/dist/esm/vega-checkbox_2.entry.js +7 -7
- package/dist/esm/vega-chip.entry.js +4 -4
- package/dist/esm/vega-code-block.entry.js +8 -8
- package/dist/esm/vega-color-picker.entry.js +6 -6
- package/dist/esm/vega-color-swatch-picker.entry.js +192 -50
- package/dist/esm/vega-color-swatch.entry.js +7 -7
- package/dist/esm/vega-combo-box.entry.js +7 -7
- package/dist/esm/vega-date-picker_2.entry.js +24 -12
- package/dist/esm/vega-dialog_2.entry.js +7 -7
- package/dist/esm/vega-dropdown_5.entry.js +9 -9
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/{vega-event-id-5841d1d3.js → vega-event-id-a6ccca66.js} +2 -1
- package/dist/esm/vega-field-label.entry.js +3 -3
- package/dist/esm/vega-file-uploader.entry.js +6 -6
- package/dist/esm/vega-form.entry.js +9 -9
- package/dist/esm/vega-image-uploader.entry.js +7 -7
- package/dist/esm/vega-input-credit-card.entry.js +7 -7
- package/dist/esm/vega-input-numeric.entry.js +8 -8
- package/dist/esm/vega-input-passcode.entry.js +7 -7
- package/dist/esm/vega-input-phone-number.entry.js +18 -8
- package/dist/esm/vega-input-range.entry.js +7 -7
- package/dist/esm/vega-input-select.entry.js +7 -7
- package/dist/esm/vega-input.entry.js +8 -8
- package/dist/esm/{vega-internal-event-id-194bac82.js → vega-internal-event-id-db974a0d.js} +1 -1
- package/dist/esm/vega-item-toggle.entry.js +3 -3
- package/dist/esm/vega-left-nav_5.entry.js +18 -16
- package/dist/esm/vega-page-notification_2.entry.js +1 -1
- package/dist/esm/vega-pagination-page-selector-mobile.entry.js +4 -4
- package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +2 -2
- package/dist/esm/vega-pagination.entry.js +5 -5
- package/dist/esm/vega-popover_2.entry.js +6 -6
- package/dist/esm/vega-progress-tracker_2.entry.js +6 -6
- package/dist/esm/vega-radio_2.entry.js +7 -7
- package/dist/esm/vega-rich-text-content.entry.js +7 -7
- package/dist/esm/vega-rich-text-editor_4.entry.js +15 -15
- package/dist/esm/vega-rich-text-table-properties_3.entry.js +7 -7
- package/dist/esm/vega-segment-control.entry.js +3 -3
- package/dist/esm/vega-selection-chip_2.entry.js +8 -8
- package/dist/esm/vega-selection-tile_2.entry.js +165 -32
- package/dist/esm/vega-sidenav_3.entry.js +6 -6
- package/dist/esm/vega-signature-capture.entry.js +6 -6
- package/dist/esm/vega-stepper.entry.js +7 -7
- package/dist/esm/vega-tab-group_2.entry.js +4 -4
- package/dist/esm/vega-table_11.entry.js +1175 -285
- package/dist/esm/vega-textarea.entry.js +7 -7
- package/dist/esm/vega-time-picker_2.entry.js +13 -19
- package/dist/esm/vega-toggle-switch.entry.js +6 -6
- package/dist/esm/vega-tooltip_2.entry.js +2 -2
- package/dist/esm/vega.js +9 -9
- package/dist/esm/{wait-for-component-did-render-30cde59c.js → wait-for-component-did-render-9a83d343.js} +1 -1
- package/dist/sri/vega-sri-manifest.json +276 -276
- package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/slimmers/renderers/color-swatch-picker-renderer.d.ts +9 -0
- package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/vega-color-swatch-picker.d.ts +6 -0
- package/dist/types/components/vega-color-swatch/vega-color-swatch.d.ts +4 -4
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.d.ts +1 -0
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.d.ts +8 -0
- package/dist/types/components/vega-input-phone-number/vega-input-phone-number.d.ts +2 -0
- package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-controller.d.ts +2 -1
- package/dist/types/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.d.ts +2 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.d.ts +15 -11
- package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.d.ts +15 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.d.ts +25 -22
- package/dist/types/components/vega-rich-text-editor/interface.d.ts +5 -0
- package/dist/types/components/vega-selection-tile/slimmers/renderers/vega-selection-tile-renderer.d.ts +12 -0
- package/dist/types/components/vega-selection-tile/vega-selection-tile-group/slimmers/renderers/vega-selection-tile-group-renderer.d.ts +0 -1
- package/dist/types/components/vega-selection-tile/vega-selection-tile.d.ts +2 -0
- package/dist/types/components/vega-table/interface.d.ts +2 -0
- package/dist/types/components/vega-table/slimmers/controllers/vega-table-expand-row-controller.d.ts +35 -0
- package/dist/types/components/vega-table/slimmers/controllers/vega-table-row-draggable-controller.d.ts +52 -0
- package/dist/types/components/vega-table/slimmers/controllers/vega-table-sort-controller.d.ts +4 -0
- package/dist/types/components/vega-table/slimmers/renderers/vega-table-body-renderer.d.ts +3 -1
- package/dist/types/components/vega-table/slimmers/renderers/vega-table-col-group-renderer.d.ts +2 -1
- package/dist/types/components/vega-table/utils.d.ts +3 -2
- package/dist/types/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-col-span-controller.d.ts +5 -0
- package/dist/types/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-state-controller.d.ts +1 -0
- package/dist/types/components/vega-table/vega-table-expand-row/vega-table-expand-row.d.ts +2 -0
- package/dist/types/components/vega-table/vega-table-foot-row/slimmers/controllers/vega-table-foot-row-state-controller.d.ts +2 -1
- package/dist/types/components/vega-table/vega-table-foot-row/slimmers/renderers/vega-table-foot-row-renderer.d.ts +3 -1
- package/dist/types/components/vega-table/vega-table-foot-row/vega-table-foot-row.d.ts +6 -2
- package/dist/types/components/vega-table/vega-table-head/vega-table-head.d.ts +1 -0
- package/dist/types/components/vega-table/vega-table-head-row/slimmers/controllers/vega-table-head-row-state-controller.d.ts +2 -1
- package/dist/types/components/vega-table/vega-table-head-row/slimmers/renderers/vega-table-head-row-renderer.d.ts +3 -1
- package/dist/types/components/vega-table/vega-table-head-row/vega-table-head-row.d.ts +6 -2
- package/dist/types/components/vega-table/vega-table-row/slimmers/controllers/vega-table-row-state-controller.d.ts +3 -0
- package/dist/types/components/vega-table/vega-table-row/slimmers/renderers/vega-table-row-renderer.d.ts +3 -0
- package/dist/types/components/vega-table/vega-table-row/vega-table-row.d.ts +8 -0
- package/dist/types/components/vega-table/vega-table.d.ts +40 -5
- package/dist/types/components/vega-time-picker/vega-time-picker.d.ts +5 -11
- package/dist/types/components.d.ts +47 -12
- package/dist/types/constants/ui.d.ts +1 -1
- package/dist/types/global/icons/grip-dots-vertical.d.ts +3 -0
- package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +1 -0
- package/dist/types/helpers/immutable/immutable-map.d.ts +4 -1
- package/dist/types/helpers/slimmers/draggable-element-slimmer.d.ts +260 -0
- package/dist/types/helpers/slimmers/popover-nested-slot-projection-slimmer.d.ts +65 -0
- package/dist/types/types/components.type.d.ts +2 -0
- package/dist/types/types/public-api.d.ts +2 -0
- package/dist/types/types/ui.type.d.ts +40 -0
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/{p-d3ed7c27.entry.js → p-0b5b0fd2.entry.js} +1 -1
- package/dist/vega/p-13e7f906.entry.js +1 -0
- package/dist/vega/{p-39b71df9.entry.js → p-23b38467.entry.js} +1 -1
- package/dist/vega/{p-8d833b44.entry.js → p-25572ea7.entry.js} +1 -1
- package/dist/vega/{p-03cf2df1.entry.js → p-268e84e0.entry.js} +1 -1
- package/dist/vega/p-2edc066c.entry.js +1 -0
- package/dist/vega/{p-5bbb3e68.entry.js → p-2fb26f4f.entry.js} +1 -1
- package/dist/vega/{p-032183c1.js → p-33234385.js} +1 -1
- package/dist/vega/{p-c0323a55.entry.js → p-35d77c9c.entry.js} +1 -1
- package/dist/vega/{p-5ac4649a.entry.js → p-3c456e91.entry.js} +1 -1
- package/dist/vega/{p-27b1dc0f.entry.js → p-3d0ba2c6.entry.js} +1 -1
- package/dist/vega/{p-20f0060f.entry.js → p-3d92d2af.entry.js} +1 -1
- package/dist/vega/{p-4123559f.entry.js → p-3e64fa38.entry.js} +1 -1
- package/dist/vega/{p-f986f875.entry.js → p-411ea209.entry.js} +1 -1
- package/dist/vega/{p-7cf1e1f7.entry.js → p-423762ae.entry.js} +1 -1
- package/dist/vega/{p-0f31b00b.entry.js → p-4530f0e1.entry.js} +1 -1
- package/dist/vega/{p-b28d4f7d.js → p-48e3be6a.js} +1 -1
- package/dist/vega/{p-753a7832.entry.js → p-4afafeb3.entry.js} +1 -1
- package/dist/vega/{p-c6837173.entry.js → p-4c90d013.entry.js} +1 -1
- package/dist/vega/p-5087fa1e.entry.js +1 -0
- package/dist/vega/{p-7595ad55.js → p-51b2b3de.js} +1 -1
- package/dist/vega/{p-bc2786f9.entry.js → p-59c6dcf7.entry.js} +1 -1
- package/dist/vega/p-5e50dbb9.js +1 -0
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/{p-e5546af5.entry.js → p-606d7113.entry.js} +1 -1
- package/dist/vega/{p-6f790577.js → p-6817b9bd.js} +1 -1
- package/dist/vega/{p-84030271.entry.js → p-69c11b7b.entry.js} +1 -1
- package/dist/vega/{p-effa6495.js → p-6b5cb920.js} +1 -1
- package/dist/vega/{p-aa985d73.js → p-6c43d54a.js} +1 -1
- package/dist/vega/{p-0e15fa94.entry.js → p-6fadee27.entry.js} +1 -1
- package/dist/vega/{p-549bea2c.entry.js → p-73c6669e.entry.js} +1 -1
- package/dist/vega/{p-9375fbce.js → p-7730bace.js} +1 -1
- package/dist/vega/{p-88f57353.entry.js → p-79c12a64.entry.js} +1 -1
- package/dist/vega/{p-f8c700dd.entry.js → p-7f74cd41.entry.js} +1 -1
- package/dist/vega/p-818da356.js +1 -0
- package/dist/vega/{p-aa040383.js → p-84eb3b9c.js} +1 -1
- package/dist/vega/{p-b48b3264.js → p-8d48940d.js} +1 -1
- package/dist/vega/{p-a5e6a3be.js → p-93afdfc3.js} +1 -1
- package/dist/vega/{p-865fc90b.entry.js → p-98a6cd8e.entry.js} +1 -1
- package/dist/vega/p-9af0e2e7.js +1 -0
- package/dist/vega/{p-f6414a24.entry.js → p-9e2b7718.entry.js} +1 -1
- package/dist/vega/{p-e1b1f5f9.entry.js → p-9eb00537.entry.js} +1 -1
- package/dist/vega/{p-f0e855b2.entry.js → p-9f36abf9.entry.js} +1 -1
- package/dist/vega/{p-b88eab9a.entry.js → p-9fc8bd1f.entry.js} +1 -1
- package/dist/vega/{p-9308f874.entry.js → p-a050c24d.entry.js} +1 -1
- package/dist/vega/{p-aa4d419c.entry.js → p-a49c25c2.entry.js} +1 -1
- package/dist/vega/{p-1df2c29b.entry.js → p-a9528dbd.entry.js} +1 -1
- package/dist/vega/{p-0caf52e0.js → p-a9e10a64.js} +1 -1
- package/dist/vega/p-a9f34735.entry.js +1 -0
- package/dist/vega/{p-3ae5f50e.entry.js → p-aaf44879.entry.js} +1 -1
- package/dist/vega/{p-6cada843.js → p-ae1aa4df.js} +1 -1
- package/dist/vega/p-af00e6e2.entry.js +1 -0
- package/dist/vega/{p-a0c3968b.js → p-af5cb9bc.js} +1 -1
- package/dist/vega/{p-d6c9ef6c.entry.js → p-afd1b519.entry.js} +1 -1
- package/dist/vega/{p-5490d499.entry.js → p-bc74d7e7.entry.js} +1 -1
- package/dist/vega/{p-6ba71ec4.entry.js → p-c2388937.entry.js} +1 -1
- package/dist/vega/p-c31a32f4.js +1 -0
- package/dist/vega/{p-11a2f834.js → p-c347e08a.js} +1 -1
- package/dist/vega/{p-91739ed3.entry.js → p-c51ebb14.entry.js} +1 -1
- package/dist/vega/{p-b80217fa.entry.js → p-c601b331.entry.js} +1 -1
- package/dist/vega/{p-d3864b94.entry.js → p-c8fe46fd.entry.js} +1 -1
- package/dist/vega/p-ce61d23f.entry.js +1 -0
- package/dist/vega/{p-d76e3b3c.entry.js → p-cf2838c7.entry.js} +1 -1
- package/dist/vega/{p-e4c5b8d1.entry.js → p-d37636a5.entry.js} +1 -1
- package/dist/vega/{p-19e10a87.entry.js → p-d402eb7b.entry.js} +1 -1
- package/dist/vega/{p-dec5b448.js → p-d4e519a0.js} +1 -1
- package/dist/vega/{p-ce975c69.entry.js → p-da8bb883.entry.js} +1 -1
- package/dist/vega/{p-68a96fbb.entry.js → p-dffbbc3d.entry.js} +1 -1
- package/dist/vega/{p-bdddddb7.js → p-e1709e59.js} +1 -1
- package/dist/vega/{p-c47c37f2.js → p-e27626f6.js} +1 -1
- package/dist/vega/{p-6236f592.entry.js → p-e47b2c4c.entry.js} +1 -1
- package/dist/vega/{p-7dca19d3.entry.js → p-e95cb28f.entry.js} +1 -1
- package/dist/vega/{p-74136508.entry.js → p-ecbb63a5.entry.js} +1 -1
- package/dist/vega/p-ed26f4c8.entry.js +1 -0
- package/dist/vega/{p-43aaeb30.entry.js → p-effb285f.entry.js} +1 -1
- package/dist/vega/p-f1c672e4.js +1 -0
- package/dist/vega/{p-56c28943.js → p-f5f5a0d9.js} +1 -1
- package/dist/vega/{p-748268e6.entry.js → p-f604f2c9.entry.js} +1 -1
- package/dist/vega/{p-e5cc839a.entry.js → p-fa91805b.entry.js} +1 -1
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +1 -1
- package/dist/vega/p-220f8ee7.js +0 -1
- package/dist/vega/p-38af89b9.js +0 -1
- package/dist/vega/p-5215e1d8.entry.js +0 -1
- package/dist/vega/p-5409275a.entry.js +0 -1
- package/dist/vega/p-5f23c52d.entry.js +0 -1
- package/dist/vega/p-7dbaed6c.entry.js +0 -1
- package/dist/vega/p-80cb302f.entry.js +0 -1
- package/dist/vega/p-874bf8b2.js +0 -1
- package/dist/vega/p-99670c56.entry.js +0 -1
- package/dist/vega/p-9de25451.js +0 -1
- package/dist/vega/p-a2d6d695.entry.js +0 -1
- package/dist/vega/p-b78eaec4.js +0 -1
|
@@ -6,16 +6,19 @@ import { RowOperationEventHandler } from '../setting-event-handlers/row-operatio
|
|
|
6
6
|
import { CaptionOperationEventHandler } from '../setting-event-handlers/caption-operation';
|
|
7
7
|
import { ColumnOperationEventHandler } from '../setting-event-handlers/column-operation';
|
|
8
8
|
import { DomNodeSubjectObserverFactory } from '../../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
|
|
9
|
-
import {
|
|
9
|
+
import { VegaPopoverShow } from '../../../../../helpers/event-manager/event-id/vega-event-id';
|
|
10
|
+
import { TableDynamicPopoverRenderer } from './table-dynamic-popover-renderer';
|
|
10
11
|
import { MergeCellsOperationEventHandler } from '../setting-event-handlers/merge-cells-operation';
|
|
11
12
|
import { SplitCellOperationEventHandler } from '../setting-event-handlers/split-cell-operation';
|
|
12
13
|
import { TablePopoverBaseRenderer } from './table-popover-base-renderer';
|
|
14
|
+
import { RTETableColorManager } from '../utils/table-color-manager';
|
|
15
|
+
import { tryGetDocument } from '../../../../../utils/try-get-document';
|
|
13
16
|
/**
|
|
14
|
-
*
|
|
17
|
+
* Shared popover renderer for table settings.
|
|
15
18
|
*/
|
|
16
19
|
export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
|
|
17
|
-
constructor() {
|
|
18
|
-
super(
|
|
20
|
+
constructor(renderContext) {
|
|
21
|
+
super(renderContext);
|
|
19
22
|
this.settingHandlers = [
|
|
20
23
|
new RowOperationEventHandler(),
|
|
21
24
|
new CaptionOperationEventHandler(),
|
|
@@ -24,38 +27,38 @@ export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
|
|
|
24
27
|
new SplitCellOperationEventHandler(),
|
|
25
28
|
];
|
|
26
29
|
/**
|
|
27
|
-
*
|
|
28
|
-
* Only the popover belonging to the nearest table will be shown,
|
|
29
|
-
* which avoids outer tables showing their popover when an inner (nested) table is clicked.
|
|
30
|
+
* Re-targets and shows the table setting popover for the clicked table.
|
|
30
31
|
*
|
|
31
|
-
* @param {MouseEvent} event - The MouseEvent that triggered the
|
|
32
|
-
* @param {
|
|
32
|
+
* @param {MouseEvent} event - The MouseEvent that triggered the click.
|
|
33
|
+
* @param {RTETableBlock} tableBlock - The clicked table's block data.
|
|
34
|
+
* @param {() => HTMLElement} getTableRef - Getter for the clicked table's DOM element.
|
|
33
35
|
*/
|
|
34
|
-
this.handleTableClick = (event,
|
|
36
|
+
this.handleTableClick = (event, tableBlock, getTableRef) => {
|
|
35
37
|
const target = event.target;
|
|
36
38
|
const ownTrigger = target.closest('table');
|
|
37
|
-
if (
|
|
38
|
-
void this.popoverRef.hide();
|
|
39
|
-
void this.tableDynamicPopover.hide();
|
|
39
|
+
if (ownTrigger !== getTableRef()) {
|
|
40
40
|
return;
|
|
41
41
|
}
|
|
42
|
+
// Prevent the click from bubbling to ancestor tables. When this is a nested
|
|
43
|
+
// table click, the ancestor table still has the popover's stale click
|
|
44
|
+
// listener attached (from when it was the popover's target), which would
|
|
45
|
+
// toggle the popover off immediately after we show it.
|
|
46
|
+
event.stopPropagation();
|
|
47
|
+
this.reTarget(tableBlock, getTableRef);
|
|
42
48
|
void this.tableDynamicPopover.hide();
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
void this.popoverRef.show();
|
|
46
|
-
}
|
|
49
|
+
remoteInvocationRegistry.call(domNodeSubjectFactory.getSubject(this.popoverRef, VegaInternalPopoverUpdateTarget), ownTrigger);
|
|
50
|
+
void this.popoverRef.show(true);
|
|
47
51
|
};
|
|
48
52
|
/**
|
|
49
53
|
* Sync the selected cells from the table selection to the table setting component.
|
|
50
54
|
*/
|
|
51
55
|
this.syncSelectedCells = () => {
|
|
52
56
|
if (this.tableSettingRef) {
|
|
53
|
-
|
|
54
|
-
this.tableSettingRef.selectedCells = selectedCells;
|
|
57
|
+
this.tableSettingRef.selectedCells = this.getTableSelectedCells();
|
|
55
58
|
}
|
|
56
59
|
};
|
|
57
60
|
/**
|
|
58
|
-
*
|
|
61
|
+
* Handles setting menu click events.
|
|
59
62
|
*
|
|
60
63
|
* @param {CustomEvent<Array<string>>} event - The custom event emitted from the setting menu.
|
|
61
64
|
*/
|
|
@@ -63,7 +66,7 @@ export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
|
|
|
63
66
|
const handler = this.settingHandlers.find((handler) => handler.canHandle(event.detail));
|
|
64
67
|
if (handler) {
|
|
65
68
|
const extensionContext = this.getTableExtensionContext();
|
|
66
|
-
extensionContext && handler.execute(event.detail, extensionContext, this.
|
|
69
|
+
extensionContext && handler.execute(event.detail, extensionContext, this.tableBlock);
|
|
67
70
|
if (event.detail[0] === TableSettingType.CAPTION) {
|
|
68
71
|
this.updateTableSettingCaption();
|
|
69
72
|
}
|
|
@@ -78,59 +81,69 @@ export class TableSettingPopoverRenderer extends TablePopoverBaseRenderer {
|
|
|
78
81
|
*/
|
|
79
82
|
this.handleTableSettingPopoverShow = () => {
|
|
80
83
|
this.syncSelectedCells();
|
|
81
|
-
this.popoverShow = true;
|
|
82
84
|
};
|
|
85
|
+
this.tableDynamicPopover = new TableDynamicPopoverRenderer(RTETableColorManager.getTableColors(), renderContext);
|
|
83
86
|
}
|
|
84
87
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* @param {VegaRTECreateElementFunction} h - The create element function.
|
|
88
|
-
* @param {RTETableBlock} renderData - The table block to render.
|
|
89
|
-
* @param {() => HTMLElement} getTableRef - Current table DOM reference
|
|
90
|
-
* @param {TableDynamicPopoverRenderer} tableDynamicPopover - Renderer used to show
|
|
91
|
-
* the secondary table popover (for example, table-properties-specific settings).
|
|
92
|
-
* @returns {VegaRTERenderResult} The rendered popover structure.
|
|
88
|
+
* Destroys the dynamic popover renderer and removes the container from the DOM.
|
|
93
89
|
*/
|
|
94
|
-
|
|
95
|
-
this.
|
|
96
|
-
this.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
90
|
+
destroy() {
|
|
91
|
+
this.tableDynamicPopover.destroy();
|
|
92
|
+
if (this.popoverContainer) {
|
|
93
|
+
this.popoverContainer.remove();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Builds the popover DOM and appends it to the RTE host. Idempotent: subsequent calls are no-ops.
|
|
98
|
+
*/
|
|
99
|
+
render() {
|
|
100
|
+
const safeDocument = tryGetDocument();
|
|
101
|
+
if (safeDocument && this.renderContext) {
|
|
102
|
+
this.popoverContainer = safeDocument.createElement('div');
|
|
103
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
104
|
+
this.renderContext.host.appendChild(this.popoverContainer);
|
|
105
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
106
|
+
const tableCellPopover = this.tableDynamicPopover.render();
|
|
107
|
+
const popover = safeDocument.createElement('vega-popover');
|
|
108
|
+
popover.trigger = 'click';
|
|
109
|
+
popover.isScreenPosition = true;
|
|
110
|
+
popover.className = 'rte-table-setting-popover';
|
|
111
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(popover, VegaPopoverShow, this.handleTableSettingPopoverShow);
|
|
112
|
+
const slotDiv = safeDocument.createElement('div');
|
|
113
|
+
slotDiv.setAttribute('slot', 'popover');
|
|
114
|
+
const tableSetting = safeDocument.createElement('vega-rich-text-table-setting');
|
|
115
|
+
tableSetting.addEventListener('vegaClick', this.handleSettingMenuClick);
|
|
116
|
+
slotDiv.appendChild(tableSetting);
|
|
117
|
+
popover.appendChild(slotDiv);
|
|
118
|
+
this.popoverContainer.appendChild(popover);
|
|
119
|
+
this.popoverContainer.appendChild(tableCellPopover);
|
|
120
|
+
this.popoverRef = popover;
|
|
121
|
+
this.tableSettingRef = tableSetting;
|
|
122
|
+
}
|
|
124
123
|
}
|
|
125
124
|
/**
|
|
126
|
-
* Updates the table setting component caption state to match the
|
|
125
|
+
* Updates the table setting component caption state to match the current table data.
|
|
127
126
|
*/
|
|
128
127
|
updateTableSettingCaption() {
|
|
129
|
-
const hasCaption = this.
|
|
128
|
+
const hasCaption = this.tableBlock.hasCaption();
|
|
130
129
|
if (this.tableSettingRef && this.tableSettingRef.hasCaption !== hasCaption) {
|
|
131
130
|
this.tableSettingRef.hasCaption = hasCaption;
|
|
132
131
|
}
|
|
133
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Re-targets the shared popovers to the given table.
|
|
135
|
+
*
|
|
136
|
+
* @param {RTETableBlock} tableBlock - The clicked table's block data.
|
|
137
|
+
* @param {() => HTMLElement} getTableRef - Getter for the clicked table's DOM element.
|
|
138
|
+
*/
|
|
139
|
+
reTarget(tableBlock, getTableRef) {
|
|
140
|
+
if (this.tableSettingRef) {
|
|
141
|
+
this.tableBlock = tableBlock;
|
|
142
|
+
this.tableSettingRef.target = getTableRef();
|
|
143
|
+
this.tableSettingRef.selectedCells = this.getTableSelectedCells();
|
|
144
|
+
this.tableDynamicPopover.reTarget(tableBlock, getTableRef);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
134
147
|
/**
|
|
135
148
|
* Collects and returns the currently selected table cells.
|
|
136
149
|
*
|
|
@@ -18,6 +18,7 @@ export class RTETableToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer
|
|
|
18
18
|
return createTablePopoverRenderer.render(h, super.renderButton(h, editorContext, {
|
|
19
19
|
showArrowIcon: true,
|
|
20
20
|
icon: 'rte-table',
|
|
21
|
+
tooltip: { text: 'Insert table' },
|
|
21
22
|
}));
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
@@ -20,7 +20,11 @@ export class RTETokenToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer
|
|
|
20
20
|
*/
|
|
21
21
|
render(createElement, editorContext) {
|
|
22
22
|
return this.renderDropdown(createElement, editorContext, {}, [
|
|
23
|
-
this.renderButton(createElement, editorContext, {
|
|
23
|
+
this.renderButton(createElement, editorContext, {
|
|
24
|
+
label: 'Tokens',
|
|
25
|
+
showArrowIcon: true,
|
|
26
|
+
tooltip: { text: 'Insert token' },
|
|
27
|
+
}),
|
|
24
28
|
this.renderDropdownListTemplate(createElement, this.tokenList),
|
|
25
29
|
]);
|
|
26
30
|
}
|
|
@@ -6,25 +6,83 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { h } from '@stencil/core';
|
|
8
8
|
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
9
|
-
import { createEnterKeyHandlerToTriggerClick } from '../../../../utils/accessibility';
|
|
10
9
|
export class VegaSelectionTileRenderer extends VegaSlimmer {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
/**
|
|
13
|
+
* Activation handler invoked from the host's `@Listen('click')` listener
|
|
14
|
+
* (registered on the host element itself). The host carries
|
|
15
|
+
* `role="radio"`/`"checkbox"`, `tabindex`, and the activation listeners,
|
|
16
|
+
* so this is the only interactive node per tile. VoiceOver's VO+Space
|
|
17
|
+
* dispatches a synthetic click on the focused host, which reaches this
|
|
18
|
+
* function through `VegaSelectionTile.onHostClick()`.
|
|
19
|
+
*/
|
|
20
|
+
this.activate = () => {
|
|
21
|
+
if (this.disabled) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (!(this.selectType === 'radio' && this.checked)) {
|
|
25
|
+
this.checkedController.onCheck(!this.checked);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
this.handleTileKeydown = (event) => {
|
|
29
|
+
if (this.disabled) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
33
|
+
if (event.key === 'Enter' || event.key === ' ' || event.key === 'Spacebar') {
|
|
34
|
+
event.preventDefault();
|
|
35
|
+
this.activate();
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
11
39
|
getSelectorContainerRef() {
|
|
12
40
|
return this.selectorContainerRef;
|
|
13
41
|
}
|
|
42
|
+
// Accessible name for the host's `aria-label`. Public because the
|
|
43
|
+
// component renders the host and needs to call this to compute the
|
|
44
|
+
// host's `aria-label` value (see `VegaSelectionTile.render`).
|
|
45
|
+
//
|
|
46
|
+
// Fallback chain: titleText (+ note) → trimmed host light-DOM text
|
|
47
|
+
// (covers `content`/`prefix` slots) → `value`. `note` is appended so
|
|
48
|
+
// VoiceOver announces both the title and the supporting line
|
|
49
|
+
// (e.g. "Basic Plan, $9 / month") when traversing tiles with VO+→/VO+←;
|
|
50
|
+
// the visual subtree is `aria-hidden`, so without this the note would
|
|
51
|
+
// never reach the accessibility tree.
|
|
52
|
+
//
|
|
53
|
+
// The parent group's label is intentionally NOT prepended here: the
|
|
54
|
+
// group renderer exposes its label as an independently focusable AT
|
|
55
|
+
// stop, so duplicating it on every tile would make AT users hear the
|
|
56
|
+
// group label N+1 times.
|
|
57
|
+
getAccessibleName() {
|
|
58
|
+
if (this.titleText) {
|
|
59
|
+
return this.note ? `${this.titleText}, ${this.note}` : this.titleText;
|
|
60
|
+
}
|
|
61
|
+
// Prefer `innerText` so adjacent inline/block elements are separated
|
|
62
|
+
// by whitespace (e.g. `<div>Pro Plan<span>Popular</span></div>` reads
|
|
63
|
+
// as "Pro Plan Popular" instead of "Pro PlanPopular" from raw
|
|
64
|
+
// `textContent` concatenation). Fall back to `textContent` for
|
|
65
|
+
// environments (e.g. jsdom) that do not implement `innerText`, and
|
|
66
|
+
// to `''` to satisfy the `string | null` type of `textContent`.
|
|
67
|
+
const raw = this.host.innerText || this.host.textContent || '';
|
|
68
|
+
const slotText = raw.replace(/\s+/g, ' ').trim();
|
|
69
|
+
return slotText || this.value || '';
|
|
70
|
+
}
|
|
14
71
|
render() {
|
|
72
|
+
// ARIA semantics (role/aria-*), focus (tabindex), and activation
|
|
73
|
+
// handlers live on the COMPONENT HOST (see `VegaSelectionTile.render`
|
|
74
|
+
// and the `@Listen('click')`/`@Listen('keydown')` methods on the
|
|
75
|
+
// component class), not on this inner element. Keeping role + tabindex
|
|
76
|
+
// off this element is what prevents Firefox/VoiceOver from triple-
|
|
77
|
+
// announcing each tile (host group wrapper + inner role=radio + host
|
|
78
|
+
// close). This element is now purely a layout/styling wrapper.
|
|
15
79
|
return (h("vega-flex", { "align-items": "start", "justify-content": "start", gap: "size-16", class: {
|
|
16
80
|
'selection-tile': true,
|
|
17
81
|
'disabled': this.disabled,
|
|
18
82
|
'checked': this.checked,
|
|
19
83
|
'error': this.showError,
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
onClick: () => {
|
|
23
|
-
if (!(this.selectType === 'radio' && this.checked)) {
|
|
24
|
-
this.checkedController.onCheck(!this.checked);
|
|
25
|
-
}
|
|
26
|
-
}, onKeyDown: createEnterKeyHandlerToTriggerClick() },
|
|
27
|
-
h("div", { class: "vega-flex-grow" }, this.renderContent()),
|
|
84
|
+
} },
|
|
85
|
+
h("div", { class: "vega-flex-grow", "aria-hidden": "true" }, this.renderContent()),
|
|
28
86
|
this.renderSelect()));
|
|
29
87
|
}
|
|
30
88
|
renderContent() {
|
|
@@ -51,7 +109,7 @@ export class VegaSelectionTileRenderer extends VegaSlimmer {
|
|
|
51
109
|
this.note && h("div", { class: "selection-tile-note" }, this.note)));
|
|
52
110
|
}
|
|
53
111
|
renderSelect() {
|
|
54
|
-
return (h("vega-flex", { "align-items": "start", class: "vega-flex-shrink-0 selection-tile-select", ref: (ref) => (this.selectorContainerRef = ref) }, this.selectType === 'checkbox' ? this.renderCheckbox() : this.renderRadio()));
|
|
112
|
+
return (h("vega-flex", Object.assign({ "align-items": "start", class: "vega-flex-shrink-0 selection-tile-select", "aria-hidden": "true" }, { inert: true }, { ref: (ref) => (this.selectorContainerRef = ref) }), this.selectType === 'checkbox' ? this.renderCheckbox() : this.renderRadio()));
|
|
55
113
|
}
|
|
56
114
|
renderCheckbox() {
|
|
57
115
|
return h("vega-checkbox", { size: "small", disabled: this.disabled, checked: this.checked });
|
|
@@ -90,6 +148,9 @@ __decorate([
|
|
|
90
148
|
__decorate([
|
|
91
149
|
MapToComponentField()
|
|
92
150
|
], VegaSelectionTileRenderer.prototype, "showError", void 0);
|
|
151
|
+
__decorate([
|
|
152
|
+
MapToComponentField()
|
|
153
|
+
], VegaSelectionTileRenderer.prototype, "value", void 0);
|
|
93
154
|
__decorate([
|
|
94
155
|
MapToComponentField()
|
|
95
156
|
], VegaSelectionTileRenderer.prototype, "checkedController", void 0);
|
|
@@ -17,16 +17,37 @@ export class VegaSelectionTileGroupRenderer extends VegaSlimmer {
|
|
|
17
17
|
this.renderHint()));
|
|
18
18
|
}
|
|
19
19
|
renderLabel() {
|
|
20
|
-
return (this.label && (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
return (this.label && (
|
|
21
|
+
// The label is exposed as its own focusable VoiceOver stop:
|
|
22
|
+
// `tabindex="0"` puts it in the tab / VO swipe order, and
|
|
23
|
+
// `aria-label` provides a clean accessible name that includes
|
|
24
|
+
// "required" as a spoken word.
|
|
25
|
+
//
|
|
26
|
+
// The visible text + asterisk are wrapped in an
|
|
27
|
+
// `aria-hidden="true"` span so VoiceOver does not descend into
|
|
28
|
+
// the children and create extra swipe stops on the raw text
|
|
29
|
+
// or the decorative "*" — the `aria-label` above is the
|
|
30
|
+
// single thing AT users hear for this stop.
|
|
31
|
+
h("div", { class: "vega-label" },
|
|
32
|
+
h("span", {
|
|
33
|
+
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
|
|
34
|
+
tabindex: 0, "aria-label": this.required ? `${this.label} (required)` : this.label },
|
|
35
|
+
h("span", { "aria-hidden": "true" },
|
|
36
|
+
this.label,
|
|
37
|
+
this.renderRequire())))));
|
|
24
38
|
}
|
|
25
39
|
renderRequire() {
|
|
26
|
-
return this.required && h("span", { class: "vega-require" }, "*");
|
|
40
|
+
return (this.required && (h("span", { class: "vega-require", "aria-hidden": "true" }, "*")));
|
|
27
41
|
}
|
|
28
42
|
renderContainer() {
|
|
29
|
-
return (
|
|
43
|
+
return (
|
|
44
|
+
// The container intentionally drops `role="radiogroup"`/`role="group"`
|
|
45
|
+
// (and the group-level `aria-*` attributes those roles would imply)
|
|
46
|
+
// so VoiceOver does not treat the container as a separate stop ahead
|
|
47
|
+
// of the first tile. The group label above is now the single AT
|
|
48
|
+
// stop that announces the group's purpose; child tiles are reached
|
|
49
|
+
// directly after it without a wrapper announcement.
|
|
50
|
+
h("div", { class: "container", ref: (e) => (this.groupContainerRef = e) },
|
|
30
51
|
h("vega-flex", { direction: this.layout === 'horizontal' ? 'row' : 'col', gap: "size-12" },
|
|
31
52
|
h("slot", {
|
|
32
53
|
/* eslint-disable-next-line react/jsx-no-bind */
|
|
@@ -39,8 +60,18 @@ export class VegaSelectionTileGroupRenderer extends VegaSlimmer {
|
|
|
39
60
|
() => this.itemsController.syncTileArrayAndValue() }))));
|
|
40
61
|
}
|
|
41
62
|
renderHint() {
|
|
42
|
-
return (this.hint && (
|
|
43
|
-
|
|
63
|
+
return (this.hint && (
|
|
64
|
+
// Mirrors `renderLabel`: the hint is exposed as its own
|
|
65
|
+
// focusable VoiceOver stop after the tile list, so AT users
|
|
66
|
+
// can swipe to it and hear the supporting copy. The visible
|
|
67
|
+
// text is wrapped in an `aria-hidden` span so VO only speaks
|
|
68
|
+
// the `aria-label` once instead of also descending into the
|
|
69
|
+
// child text node.
|
|
70
|
+
h("div", { class: "vega-hint" },
|
|
71
|
+
h("span", {
|
|
72
|
+
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
|
|
73
|
+
tabindex: 0, "aria-label": this.hint },
|
|
74
|
+
h("span", { "aria-hidden": "true" }, this.hint)))));
|
|
44
75
|
}
|
|
45
76
|
}
|
|
46
77
|
__decorate([
|
|
@@ -58,9 +89,6 @@ __decorate([
|
|
|
58
89
|
__decorate([
|
|
59
90
|
MapToComponentField()
|
|
60
91
|
], VegaSelectionTileGroupRenderer.prototype, "layout", void 0);
|
|
61
|
-
__decorate([
|
|
62
|
-
MapToComponentField()
|
|
63
|
-
], VegaSelectionTileGroupRenderer.prototype, "selectType", void 0);
|
|
64
92
|
__decorate([
|
|
65
93
|
MapToComponentField()
|
|
66
94
|
], VegaSelectionTileGroupRenderer.prototype, "itemsController", void 0);
|
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
line-height: 22px;
|
|
56
56
|
letter-spacing: 0px;
|
|
57
57
|
margin-bottom: 16px;
|
|
58
|
+
color: rgba(var(--v-text-primary, 32, 54, 69, 1));
|
|
58
59
|
}
|
|
59
60
|
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
|
60
61
|
:host .vega-label {
|
|
@@ -83,9 +84,6 @@
|
|
|
83
84
|
letter-spacing: 0px;
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
|
-
:host .vega-label label {
|
|
87
|
-
color: rgba(var(--v-text-primary, 32, 54, 69, 1));
|
|
88
|
-
}
|
|
89
87
|
:host .vega-label .vega-require {
|
|
90
88
|
color: rgba(var(--v-text-error, 189, 41, 71, 1));
|
|
91
89
|
margin-left: 4px;
|
|
@@ -34,12 +34,6 @@
|
|
|
34
34
|
border: 1px solid rgba(var(--v-border-input-field-hover, 115, 160, 190, 1));
|
|
35
35
|
background-color: rgba(var(--v-bg-tile-hover, 245, 247, 247, 1));
|
|
36
36
|
}
|
|
37
|
-
:host .selection-tile:not(.disabled):focus-visible {
|
|
38
|
-
border: 1px solid rgba(var(--v-border-input-field-focus, 19, 98, 226, 1));
|
|
39
|
-
background-color: rgba(var(--v-bg-tile, 252, 252, 252, 1));
|
|
40
|
-
outline: 2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));
|
|
41
|
-
outline-offset: 2px;
|
|
42
|
-
}
|
|
43
37
|
:host .selection-tile:not(.disabled).checked {
|
|
44
38
|
background-color: rgba(var(--v-bg-tile-selected, 242, 247, 255, 1));
|
|
45
39
|
border: 2px solid rgba(var(--v-border-tile-selected, 19, 98, 226, 1));
|
|
@@ -49,12 +43,6 @@
|
|
|
49
43
|
border: 2px solid rgba(var(--v-border-tile-selected-hover, 4, 112, 236, 1));
|
|
50
44
|
background-color: rgba(var(--v-bg-tile-selected-hover, 229, 239, 255, 1));
|
|
51
45
|
}
|
|
52
|
-
:host .selection-tile:not(.disabled).checked:focus-visible {
|
|
53
|
-
border: 2px solid rgba(var(--v-border-tile-selected, 19, 98, 226, 1));
|
|
54
|
-
background-color: rgba(var(--v-bg-tile-selected, 242, 247, 255, 1));
|
|
55
|
-
outline: 2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));
|
|
56
|
-
outline-offset: 2px;
|
|
57
|
-
}
|
|
58
46
|
:host .selection-tile:not(.disabled).error {
|
|
59
47
|
border: 1px solid rgba(var(--v-border-input-field-danger, 230, 50, 87, 1));
|
|
60
48
|
background-color: rgba(var(--v-bg-tile, 252, 252, 252, 1));
|
|
@@ -63,12 +51,6 @@
|
|
|
63
51
|
border: 1px solid rgba(var(--v-border-input-field-danger-hover, 255, 87, 114, 1));
|
|
64
52
|
background-color: rgba(var(--v-bg-tile-hover, 245, 247, 247, 1));
|
|
65
53
|
}
|
|
66
|
-
:host .selection-tile:not(.disabled).error:focus-visible {
|
|
67
|
-
border: 1px solid rgba(var(--v-border-input-field-danger, 230, 50, 87, 1));
|
|
68
|
-
background-color: rgba(var(--v-bg-tile, 252, 252, 252, 1));
|
|
69
|
-
outline: 2px solid rgba(var(--v-border-color-danger, 230, 50, 87, 1));
|
|
70
|
-
outline-offset: 2px;
|
|
71
|
-
}
|
|
72
54
|
:host .selection-tile.disabled {
|
|
73
55
|
border: 1px solid rgba(var(--v-border-input-field-disabled, 222, 225, 227, 1));
|
|
74
56
|
background-color: rgba(var(--v-bg-secondary, 245, 247, 247, 1));
|
|
@@ -158,4 +140,27 @@
|
|
|
158
140
|
:host .selection-tile .selection-tile-select vega-checkbox,
|
|
159
141
|
:host .selection-tile .selection-tile-select vega-radio {
|
|
160
142
|
margin-top: 4px;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
:host(:focus-visible) {
|
|
146
|
+
outline: none;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
:host(:focus-visible:not([aria-disabled=true])) .selection-tile {
|
|
150
|
+
border: 1px solid rgba(var(--v-border-input-field-focus, 19, 98, 226, 1));
|
|
151
|
+
background-color: rgba(var(--v-bg-tile, 252, 252, 252, 1));
|
|
152
|
+
outline: 2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));
|
|
153
|
+
outline-offset: 2px;
|
|
154
|
+
}
|
|
155
|
+
:host(:focus-visible:not([aria-disabled=true])) .selection-tile.checked {
|
|
156
|
+
border: 2px solid rgba(var(--v-border-tile-selected, 19, 98, 226, 1));
|
|
157
|
+
background-color: rgba(var(--v-bg-tile-selected, 242, 247, 255, 1));
|
|
158
|
+
outline: 2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));
|
|
159
|
+
outline-offset: 2px;
|
|
160
|
+
}
|
|
161
|
+
:host(:focus-visible:not([aria-disabled=true])) .selection-tile.error {
|
|
162
|
+
border: 1px solid rgba(var(--v-border-input-field-danger, 230, 50, 87, 1));
|
|
163
|
+
background-color: rgba(var(--v-bg-tile, 252, 252, 252, 1));
|
|
164
|
+
outline: 2px solid rgba(var(--v-border-color-danger, 230, 50, 87, 1));
|
|
165
|
+
outline-offset: 2px;
|
|
161
166
|
}
|
|
@@ -70,9 +70,53 @@ export class VegaSelectionTile {
|
|
|
70
70
|
*/
|
|
71
71
|
/* eslint-disable-next-line @stencil/strict-mutable */
|
|
72
72
|
this.selectType = 'radio';
|
|
73
|
+
// Host-level activation listeners are attached via vDOM listeners
|
|
74
|
+
// (`onClick` / `onKeyDown` on the `<Host>` element below). Stencil's
|
|
75
|
+
// vDOM listeners use `addEventListener` under the hood, NOT the
|
|
76
|
+
// `onclick`/`onkeydown` IDL properties, so:
|
|
77
|
+
// 1. A consumer doing `tileEl.onclick = fn` cannot overwrite or
|
|
78
|
+
// remove our listener.
|
|
79
|
+
// 2. A consumer attaching their own `addEventListener('click', ...)`
|
|
80
|
+
// coexists with ours and fires alongside it (DOM event spec).
|
|
81
|
+
// So consumer code can observe / augment activation but cannot silently
|
|
82
|
+
// break it. Only `event.stopImmediatePropagation()` in a handler that
|
|
83
|
+
// runs before ours would suppress it -- an explicit opt-out, not a
|
|
84
|
+
// surprise override.
|
|
85
|
+
this.onHostClick = () => {
|
|
86
|
+
this.renderer.activate();
|
|
87
|
+
};
|
|
88
|
+
this.onHostKeyDown = (event) => {
|
|
89
|
+
this.renderer.handleTileKeydown(event);
|
|
90
|
+
};
|
|
73
91
|
}
|
|
74
92
|
render() {
|
|
75
|
-
|
|
93
|
+
// ARIA semantics, focus, and activation handlers ALL live on the host.
|
|
94
|
+
//
|
|
95
|
+
// Why not `role="presentation"` on the host + role on an inner shadow
|
|
96
|
+
// element? Per ARIA 1.2, `role="presentation"`/`role="none"` is dropped
|
|
97
|
+
// ("presentation conflict resolution") whenever the element has any
|
|
98
|
+
// focusable descendants in the flat tree. Putting `tabindex="0"` on an
|
|
99
|
+
// inner shadow element therefore demotes the host's presentation role,
|
|
100
|
+
// and Firefox -- which enforces this rule strictly -- exposes the host
|
|
101
|
+
// as a generic/group wrapper around the inner radio. VoiceOver then
|
|
102
|
+
// triple-announces each tile:
|
|
103
|
+
// 1. "<title>, group" (host wrapper)
|
|
104
|
+
// 2. "<title>, <note>, radio button" (inner role=radio)
|
|
105
|
+
// 3. "end of <title>, group" (host wrapper close)
|
|
106
|
+
// Safari/Chrome happen to flatten the host out, masking the bug.
|
|
107
|
+
// Collapsing role + tabindex + aria-* onto the host eliminates the
|
|
108
|
+
// wrapper entirely -- the host *is* the radio/checkbox.
|
|
109
|
+
//
|
|
110
|
+
// NOTE on the `title` HTML attribute: `@Prop({ attribute: 'title' })
|
|
111
|
+
// titleText` observes the `title` attribute, so we deliberately do
|
|
112
|
+
// NOT pass `title={null}` to the Host -- doing so would strip the
|
|
113
|
+
// attribute at render time, which would then trigger Stencil's
|
|
114
|
+
// attribute observer and wipe `titleText` itself. The HTML `title`
|
|
115
|
+
// attribute stays on the host as a harmless tooltip; the explicit
|
|
116
|
+
// `aria-label` we emit takes precedence as the accessible name per
|
|
117
|
+
// the W3C accessible name computation, so VoiceOver/NVDA announce
|
|
118
|
+
// `aria-label` (which folds in the note line), not the tooltip text.
|
|
119
|
+
return sanitizeVegaComponent(h(Host, { role: this.selectType === 'checkbox' ? 'checkbox' : 'radio', "aria-checked": this.checked ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.renderer.getAccessibleName() || undefined, tabindex: this.disabled ? -1 : 0, class: { 'distribute-evenly': this.distributeEvenly }, onClick: this.onHostClick, onKeyDown: this.onHostKeyDown }, this.renderer.render()), this.host);
|
|
76
120
|
}
|
|
77
121
|
static get is() { return "vega-selection-tile"; }
|
|
78
122
|
static get encapsulation() { return "shadow"; }
|