@m3e/core 1.0.0-rc.2 → 1.0.0-rc.3
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/css-custom-data.json +20 -0
- package/dist/custom-elements.json +681 -471
- package/dist/html-custom-data.json +22 -0
- package/dist/index.js +220 -5
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +43 -32
- package/dist/index.min.js.map +1 -1
- package/dist/src/a11y/AriaDescriber.d.ts +31 -0
- package/dist/src/a11y/AriaDescriber.d.ts.map +1 -0
- package/dist/src/a11y/FocusTrapElement.d.ts +25 -0
- package/dist/src/a11y/FocusTrapElement.d.ts.map +1 -0
- package/dist/src/a11y/InteractivityChecker.d.ts +22 -0
- package/dist/src/a11y/InteractivityChecker.d.ts.map +1 -0
- package/dist/src/a11y/LiveAnnouncer.d.ts +56 -0
- package/dist/src/a11y/LiveAnnouncer.d.ts.map +1 -0
- package/dist/src/a11y/aria-reference.d.ts +30 -0
- package/dist/src/a11y/aria-reference.d.ts.map +1 -0
- package/dist/src/a11y/index.d.ts +8 -0
- package/dist/src/a11y/index.d.ts.map +1 -0
- package/dist/src/a11y/keycodes/KeyCode.d.ts +118 -0
- package/dist/src/a11y/keycodes/KeyCode.d.ts.map +1 -0
- package/dist/src/a11y/keycodes/ModifierKeys.d.ts +5 -0
- package/dist/src/a11y/keycodes/ModifierKeys.d.ts.map +1 -0
- package/dist/src/a11y/keycodes/getKeyCode.d.ts +7 -0
- package/dist/src/a11y/keycodes/getKeyCode.d.ts.map +1 -0
- package/dist/src/a11y/keycodes/hasModifierKey.d.ts +9 -0
- package/dist/src/a11y/keycodes/hasModifierKey.d.ts.map +1 -0
- package/dist/src/a11y/keycodes/index.d.ts +6 -0
- package/dist/src/a11y/keycodes/index.d.ts.map +1 -0
- package/dist/src/a11y/keycodes/isModifierAllowed.d.ts +9 -0
- package/dist/src/a11y/keycodes/isModifierAllowed.d.ts.map +1 -0
- package/dist/src/a11y/list-key/FocusKeyManager.d.ts +17 -0
- package/dist/src/a11y/list-key/FocusKeyManager.d.ts.map +1 -0
- package/dist/src/a11y/list-key/ListKeyManager.d.ts +114 -0
- package/dist/src/a11y/list-key/ListKeyManager.d.ts.map +1 -0
- package/dist/src/a11y/list-key/ListManager.d.ts +37 -0
- package/dist/src/a11y/list-key/ListManager.d.ts.map +1 -0
- package/dist/src/a11y/list-key/RadioKeyManager.d.ts +20 -0
- package/dist/src/a11y/list-key/RadioKeyManager.d.ts.map +1 -0
- package/dist/src/a11y/list-key/RovingTabIndexManager.d.ts +22 -0
- package/dist/src/a11y/list-key/RovingTabIndexManager.d.ts.map +1 -0
- package/dist/src/a11y/list-key/SelectionManager.d.ts +46 -0
- package/dist/src/a11y/list-key/SelectionManager.d.ts.map +1 -0
- package/dist/src/a11y/list-key/Typeahead.d.ts +64 -0
- package/dist/src/a11y/list-key/Typeahead.d.ts.map +1 -0
- package/dist/src/a11y/list-key/index.d.ts +8 -0
- package/dist/src/a11y/list-key/index.d.ts.map +1 -0
- package/dist/src/a11y/visuallyHide.d.ts +6 -0
- package/dist/src/a11y/visuallyHide.d.ts.map +1 -0
- package/dist/src/anchoring/AnchorOptions.d.ts +15 -0
- package/dist/src/anchoring/AnchorOptions.d.ts.map +1 -0
- package/dist/src/anchoring/AnchorPosition.d.ts +3 -0
- package/dist/src/anchoring/AnchorPosition.d.ts.map +1 -0
- package/dist/src/anchoring/index.d.ts +4 -0
- package/dist/src/anchoring/index.d.ts.map +1 -0
- package/dist/src/anchoring/positionAnchor.d.ts +12 -0
- package/dist/src/anchoring/positionAnchor.d.ts.map +1 -0
- package/dist/src/bidi/Directionality.d.ts +27 -0
- package/dist/src/bidi/Directionality.d.ts.map +1 -0
- package/dist/src/bidi/index.d.ts +2 -0
- package/dist/src/bidi/index.d.ts.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/layout/Breakpoint.d.ts +26 -0
- package/dist/src/layout/Breakpoint.d.ts.map +1 -0
- package/dist/src/layout/BreakpointObserver.d.ts +18 -0
- package/dist/src/layout/BreakpointObserver.d.ts.map +1 -0
- package/dist/src/layout/index.d.ts +3 -0
- package/dist/src/layout/index.d.ts.map +1 -0
- package/dist/src/platform/Platform.d.ts +34 -0
- package/dist/src/platform/Platform.d.ts.map +1 -0
- package/dist/src/platform/index.d.ts +2 -0
- package/dist/src/platform/index.d.ts.map +1 -0
- package/dist/src/shared/controllers/FocusController.d.ts +30 -0
- package/dist/src/shared/controllers/FocusController.d.ts.map +1 -0
- package/dist/src/shared/controllers/HoverController.d.ts +40 -0
- package/dist/src/shared/controllers/HoverController.d.ts.map +1 -0
- package/dist/src/shared/controllers/IntersectionController.d.ts +40 -0
- package/dist/src/shared/controllers/IntersectionController.d.ts.map +1 -0
- package/dist/src/shared/controllers/LongPressController.d.ts +32 -0
- package/dist/src/shared/controllers/LongPressController.d.ts.map +1 -0
- package/dist/src/shared/controllers/MonitorControllerBase.d.ts +62 -0
- package/dist/src/shared/controllers/MonitorControllerBase.d.ts.map +1 -0
- package/dist/src/shared/controllers/MutationController.d.ts +37 -0
- package/dist/src/shared/controllers/MutationController.d.ts.map +1 -0
- package/dist/src/shared/controllers/PressedController.d.ts +47 -0
- package/dist/src/shared/controllers/PressedController.d.ts.map +1 -0
- package/dist/src/shared/controllers/ResizeController.d.ts +40 -0
- package/dist/src/shared/controllers/ResizeController.d.ts.map +1 -0
- package/dist/src/shared/controllers/ScrollController.d.ts +34 -0
- package/dist/src/shared/controllers/ScrollController.d.ts.map +1 -0
- package/dist/src/shared/controllers/index.d.ts +9 -0
- package/dist/src/shared/controllers/index.d.ts.map +1 -0
- package/dist/src/shared/decorators/debounce.d.ts +7 -0
- package/dist/src/shared/decorators/debounce.d.ts.map +1 -0
- package/dist/src/shared/decorators/index.d.ts +2 -0
- package/dist/src/shared/decorators/index.d.ts.map +1 -0
- package/dist/src/shared/directives/index.d.ts +2 -0
- package/dist/src/shared/directives/index.d.ts.map +1 -0
- package/dist/src/shared/directives/safeStyleMap.d.ts +44 -0
- package/dist/src/shared/directives/safeStyleMap.d.ts.map +1 -0
- package/dist/src/shared/index.d.ts +8 -0
- package/dist/src/shared/index.d.ts.map +1 -0
- package/dist/src/shared/mixins/AttachInternals.d.ts +24 -0
- package/dist/src/shared/mixins/AttachInternals.d.ts.map +1 -0
- package/dist/src/shared/mixins/Checked.d.ts +24 -0
- package/dist/src/shared/mixins/Checked.d.ts.map +1 -0
- package/dist/src/shared/mixins/CheckedIndeterminate.d.ts +25 -0
- package/dist/src/shared/mixins/CheckedIndeterminate.d.ts.map +1 -0
- package/dist/src/shared/mixins/CheckedOrSelected.d.ts +23 -0
- package/dist/src/shared/mixins/CheckedOrSelected.d.ts.map +1 -0
- package/dist/src/shared/mixins/ConstraintValidation.d.ts +48 -0
- package/dist/src/shared/mixins/ConstraintValidation.d.ts.map +1 -0
- package/dist/src/shared/mixins/Constructor.d.ts +3 -0
- package/dist/src/shared/mixins/Constructor.d.ts.map +1 -0
- package/dist/src/shared/mixins/Dirty.d.ts +27 -0
- package/dist/src/shared/mixins/Dirty.d.ts.map +1 -0
- package/dist/src/shared/mixins/Disabled.d.ts +25 -0
- package/dist/src/shared/mixins/Disabled.d.ts.map +1 -0
- package/dist/src/shared/mixins/DisabledInteractive.d.ts +25 -0
- package/dist/src/shared/mixins/DisabledInteractive.d.ts.map +1 -0
- package/dist/src/shared/mixins/EventAttribute.d.ts +11 -0
- package/dist/src/shared/mixins/EventAttribute.d.ts.map +1 -0
- package/dist/src/shared/mixins/Focusable.d.ts +11 -0
- package/dist/src/shared/mixins/Focusable.d.ts.map +1 -0
- package/dist/src/shared/mixins/FormAssociated.d.ts +34 -0
- package/dist/src/shared/mixins/FormAssociated.d.ts.map +1 -0
- package/dist/src/shared/mixins/FormSubmitter.d.ts +34 -0
- package/dist/src/shared/mixins/FormSubmitter.d.ts.map +1 -0
- package/dist/src/shared/mixins/HtmlFor.d.ts +30 -0
- package/dist/src/shared/mixins/HtmlFor.d.ts.map +1 -0
- package/dist/src/shared/mixins/KeyboardClick.d.ts +11 -0
- package/dist/src/shared/mixins/KeyboardClick.d.ts.map +1 -0
- package/dist/src/shared/mixins/Labelled.d.ts +22 -0
- package/dist/src/shared/mixins/Labelled.d.ts.map +1 -0
- package/dist/src/shared/mixins/LinkButton.d.ts +46 -0
- package/dist/src/shared/mixins/LinkButton.d.ts.map +1 -0
- package/dist/src/shared/mixins/ReadOnly.d.ts +25 -0
- package/dist/src/shared/mixins/ReadOnly.d.ts.map +1 -0
- package/dist/src/shared/mixins/Required.d.ts +26 -0
- package/dist/src/shared/mixins/Required.d.ts.map +1 -0
- package/dist/src/shared/mixins/RequiredConstraintValidation.d.ts +21 -0
- package/dist/src/shared/mixins/RequiredConstraintValidation.d.ts.map +1 -0
- package/dist/src/shared/mixins/Role.d.ts +13 -0
- package/dist/src/shared/mixins/Role.d.ts.map +1 -0
- package/dist/src/shared/mixins/Selected.d.ts +24 -0
- package/dist/src/shared/mixins/Selected.d.ts.map +1 -0
- package/dist/src/shared/mixins/Touched.d.ts +27 -0
- package/dist/src/shared/mixins/Touched.d.ts.map +1 -0
- package/dist/src/shared/mixins/Vertical.d.ts +24 -0
- package/dist/src/shared/mixins/Vertical.d.ts.map +1 -0
- package/dist/src/shared/mixins/hasKeys.d.ts +9 -0
- package/dist/src/shared/mixins/hasKeys.d.ts.map +1 -0
- package/dist/src/shared/mixins/index.d.ts +25 -0
- package/dist/src/shared/mixins/index.d.ts.map +1 -0
- package/dist/src/shared/primitives/CollapsibleElement.d.ts +58 -0
- package/dist/src/shared/primitives/CollapsibleElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/ElevationElement.d.ts +87 -0
- package/dist/src/shared/primitives/ElevationElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/ElevationLevel.d.ts +3 -0
- package/dist/src/shared/primitives/ElevationLevel.d.ts.map +1 -0
- package/dist/src/shared/primitives/ElevationToken.d.ts +15 -0
- package/dist/src/shared/primitives/ElevationToken.d.ts.map +1 -0
- package/dist/src/shared/primitives/FocusRingElement.d.ts +77 -0
- package/dist/src/shared/primitives/FocusRingElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/FocusRingToken.d.ts +17 -0
- package/dist/src/shared/primitives/FocusRingToken.d.ts.map +1 -0
- package/dist/src/shared/primitives/PseudoCheckboxElement.d.ts +49 -0
- package/dist/src/shared/primitives/PseudoCheckboxElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/PseudoRadioElement.d.ts +40 -0
- package/dist/src/shared/primitives/PseudoRadioElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/RippleElement.d.ts +109 -0
- package/dist/src/shared/primitives/RippleElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/RippleToken.d.ts +12 -0
- package/dist/src/shared/primitives/RippleToken.d.ts.map +1 -0
- package/dist/src/shared/primitives/ScrollContainerElement.d.ts +61 -0
- package/dist/src/shared/primitives/ScrollContainerElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/ScrollDividers.d.ts +3 -0
- package/dist/src/shared/primitives/ScrollDividers.d.ts.map +1 -0
- package/dist/src/shared/primitives/SlideElement.d.ts +46 -0
- package/dist/src/shared/primitives/SlideElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/StateLayerElement.d.ts +76 -0
- package/dist/src/shared/primitives/StateLayerElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/StateLayerToken.d.ts +13 -0
- package/dist/src/shared/primitives/StateLayerToken.d.ts.map +1 -0
- package/dist/src/shared/primitives/TextHighlightElement.d.ts +81 -0
- package/dist/src/shared/primitives/TextHighlightElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/TextOverflowElement.d.ts +38 -0
- package/dist/src/shared/primitives/TextOverflowElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/index.d.ts +14 -0
- package/dist/src/shared/primitives/index.d.ts.map +1 -0
- package/dist/src/shared/tokens/ColorToken.d.ts +96 -0
- package/dist/src/shared/tokens/ColorToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/DensityToken.d.ts +15 -0
- package/dist/src/shared/tokens/DensityToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/DesignToken.d.ts +366 -0
- package/dist/src/shared/tokens/DesignToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/ElevationToken.d.ts +16 -0
- package/dist/src/shared/tokens/ElevationToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/MotionToken.d.ts +69 -0
- package/dist/src/shared/tokens/MotionToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/ScrollbarToken.d.ts +10 -0
- package/dist/src/shared/tokens/ScrollbarToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/ShapeToken.d.ts +79 -0
- package/dist/src/shared/tokens/ShapeToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/StateToken.d.ts +10 -0
- package/dist/src/shared/tokens/StateToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/TypescaleToken.d.ts +220 -0
- package/dist/src/shared/tokens/TypescaleToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/index.d.ts +2 -0
- package/dist/src/shared/tokens/index.d.ts.map +1 -0
- package/dist/src/shared/utils/getTextContent.d.ts +8 -0
- package/dist/src/shared/utils/getTextContent.d.ts.map +1 -0
- package/dist/src/shared/utils/guid.d.ts +6 -0
- package/dist/src/shared/utils/guid.d.ts.map +1 -0
- package/dist/src/shared/utils/hasAssignedNodes.d.ts +7 -0
- package/dist/src/shared/utils/hasAssignedNodes.d.ts.map +1 -0
- package/dist/src/shared/utils/index.d.ts +6 -0
- package/dist/src/shared/utils/index.d.ts.map +1 -0
- package/dist/src/shared/utils/prefersReducedMotion.d.ts +6 -0
- package/dist/src/shared/utils/prefersReducedMotion.d.ts.map +1 -0
- package/dist/src/shared/utils/scrollIntoViewIfNeeded.d.ts +8 -0
- package/dist/src/shared/utils/scrollIntoViewIfNeeded.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -197,6 +197,28 @@
|
|
|
197
197
|
],
|
|
198
198
|
"references": []
|
|
199
199
|
},
|
|
200
|
+
{
|
|
201
|
+
"name": "m3e-text-highlight",
|
|
202
|
+
"description": "Highlights text which matches a given search term.\n---\n\n\n### **Events:**\n - **highlight** - Emitted when content is highlighted.\n\n### **Slots:**\n - _default_ - Renders the content to highlight.\n\n### **CSS Properties:**\n - **--m3e-text-highlight-container-color** - Background color applied to highlighted text ranges. _(default: undefined)_\n- **--m3e-text-highlight-color** - Foreground color of highlighted text content. _(default: undefined)_\n- **--m3e-text-highlight-decoration** - Optional text decoration (e.g., underline, line-through) for highlighted text. _(default: undefined)_\n- **--m3e-text-highlight-shadow** - Optional text shadow for emphasis or contrast. _(default: undefined)_",
|
|
203
|
+
"attributes": [
|
|
204
|
+
{
|
|
205
|
+
"name": "case-sensitive",
|
|
206
|
+
"description": "A value indicating whether matching is case sensitive.",
|
|
207
|
+
"values": []
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"name": "disabled",
|
|
211
|
+
"description": "A value indicating whether text highlighting is disabled.",
|
|
212
|
+
"values": []
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"name": "term",
|
|
216
|
+
"description": "The term to highlight.",
|
|
217
|
+
"values": []
|
|
218
|
+
}
|
|
219
|
+
],
|
|
220
|
+
"references": []
|
|
221
|
+
},
|
|
200
222
|
{
|
|
201
223
|
"name": "m3e-text-overflow",
|
|
202
224
|
"description": "An inline container which presents an ellipsis when content overflows.\n---\n\n\n### **Slots:**\n - _default_ - Renders the content to truncate with an ellipsis.",
|
package/dist/index.js
CHANGED
|
@@ -519,7 +519,9 @@ _PressedController_capture = new WeakMap(), _PressedController_callback = new We
|
|
|
519
519
|
}
|
|
520
520
|
}
|
|
521
521
|
}, _PressedController_handleKeyDown = function _PressedController_handleKeyDown(e) {
|
|
522
|
-
|
|
522
|
+
if (e.target !== e.currentTarget)
|
|
523
|
+
return;
|
|
524
|
+
const target = e.currentTarget;
|
|
523
525
|
if (!__classPrivateFieldGet(this, _PressedController_pressedTargets, "f").has(target) && __classPrivateFieldGet(this, _PressedController_isPressedKey, "f")?.call(this, e.key)) {
|
|
524
526
|
if (e.key === " ") {
|
|
525
527
|
e.preventDefault();
|
|
@@ -2230,7 +2232,7 @@ function ConstraintValidation(base) {
|
|
|
2230
2232
|
*/
|
|
2231
2233
|
function EventAttribute(base, ...types) {
|
|
2232
2234
|
class _EventAttribute extends base {
|
|
2233
|
-
/** @
|
|
2235
|
+
/** @internal */
|
|
2234
2236
|
dispatchEvent(event) {
|
|
2235
2237
|
if (types.includes(event.type)) {
|
|
2236
2238
|
const eventAttribute = this.getAttribute(`on${event.type}`);
|
|
@@ -2321,7 +2323,9 @@ function FormSubmitter(base) {
|
|
|
2321
2323
|
this.type = "button";
|
|
2322
2324
|
/** @private */
|
|
2323
2325
|
this[_a] = async (e) => {
|
|
2324
|
-
if (
|
|
2326
|
+
if (e.defaultPrevented ||
|
|
2327
|
+
(isDisabledMixin(this) && this.disabled) ||
|
|
2328
|
+
(isDisabledInteractiveMixin(this) && this.disabledInteractive)) {
|
|
2325
2329
|
return;
|
|
2326
2330
|
}
|
|
2327
2331
|
const form = this[internals].form;
|
|
@@ -2387,6 +2391,8 @@ function FormSubmitter(base) {
|
|
|
2387
2391
|
}
|
|
2388
2392
|
}
|
|
2389
2393
|
_a = _clickHandler$1;
|
|
2394
|
+
/** Indicates that this custom element participates in form submission, validation, and form state restoration. */
|
|
2395
|
+
_FormSubmitterMixin.formAssociated = true;
|
|
2390
2396
|
__decorate([
|
|
2391
2397
|
n$1()
|
|
2392
2398
|
], _FormSubmitterMixin.prototype, "name", null);
|
|
@@ -2501,7 +2507,10 @@ function KeyboardClick(base, allowEnter = true) {
|
|
|
2501
2507
|
}
|
|
2502
2508
|
}
|
|
2503
2509
|
__KeyboardClickMixin_keyUpHandler = new WeakMap(), __KeyboardClickMixin_instances = new WeakSet(), __KeyboardClickMixin_handleKeyUp = function __KeyboardClickMixin_handleKeyUp(e) {
|
|
2504
|
-
if (
|
|
2510
|
+
if (e.defaultPrevented ||
|
|
2511
|
+
e.target !== e.currentTarget ||
|
|
2512
|
+
(isDisabledMixin(this) && this.disabled) ||
|
|
2513
|
+
(isDisabledInteractiveMixin(this) && this.disabledInteractive)) {
|
|
2505
2514
|
return;
|
|
2506
2515
|
}
|
|
2507
2516
|
if (e.key === " " || (allowEnter && e.key === "Enter")) {
|
|
@@ -4507,5 +4516,211 @@ M3eTextOverflowElement = __decorate([
|
|
|
4507
4516
|
t$2("m3e-text-overflow")
|
|
4508
4517
|
], M3eTextOverflowElement);
|
|
4509
4518
|
|
|
4510
|
-
|
|
4519
|
+
var _M3eTextHighlightElement_instances, _M3eTextHighlightElement_id, _M3eTextHighlightElement_ranges, _M3eTextHighlightElement_styles, _M3eTextHighlightElement_isTextNode, _M3eTextHighlightElement_findTextNodes, _M3eTextHighlightElement_highlight;
|
|
4520
|
+
var M3eTextHighlightElement_1;
|
|
4521
|
+
/**
|
|
4522
|
+
* Highlights text which matches a given search term.
|
|
4523
|
+
*
|
|
4524
|
+
* @description
|
|
4525
|
+
* Highlights all text ranges in slotted content that match a given search term using the CSS Custom Highlight API.
|
|
4526
|
+
*
|
|
4527
|
+
* @example
|
|
4528
|
+
* The following example illustrates highlighting "Lor".
|
|
4529
|
+
* ```html
|
|
4530
|
+
* <m3e-text-highlight term="Lor">
|
|
4531
|
+
* <p>
|
|
4532
|
+
* Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
|
|
4533
|
+
* ut labore et dolore magna aliqua.
|
|
4534
|
+
* </p>
|
|
4535
|
+
* </m3e-text-highlight>
|
|
4536
|
+
* ```
|
|
4537
|
+
*
|
|
4538
|
+
* @tag m3e-text-highlight
|
|
4539
|
+
*
|
|
4540
|
+
* @slot - Renders the content to highlight.
|
|
4541
|
+
*
|
|
4542
|
+
* @attr case-sensitive - A value indicating whether matching is case sensitive.
|
|
4543
|
+
* @attr disabled - A value indicating whether text highlighting is disabled.
|
|
4544
|
+
* @attr term - The term to highlight.
|
|
4545
|
+
*
|
|
4546
|
+
* @fires highlight - Emitted when content is highlighted.
|
|
4547
|
+
*
|
|
4548
|
+
* @cssprop --m3e-text-highlight-container-color - Background color applied to highlighted text ranges.
|
|
4549
|
+
* @cssprop --m3e-text-highlight-color - Foreground color of highlighted text content.
|
|
4550
|
+
* @cssprop --m3e-text-highlight-decoration - Optional text decoration (e.g., underline, line-through) for highlighted text.
|
|
4551
|
+
* @cssprop --m3e-text-highlight-shadow - Optional text shadow for emphasis or contrast.
|
|
4552
|
+
*/
|
|
4553
|
+
let M3eTextHighlightElement = M3eTextHighlightElement_1 = class M3eTextHighlightElement extends LitElement {
|
|
4554
|
+
constructor() {
|
|
4555
|
+
super();
|
|
4556
|
+
_M3eTextHighlightElement_instances.add(this);
|
|
4557
|
+
/** @private */ _M3eTextHighlightElement_id.set(this, `m3e-text-highlight-${M3eTextHighlightElement_1.__nextId++}`);
|
|
4558
|
+
/** @private */ _M3eTextHighlightElement_ranges.set(this, new Array());
|
|
4559
|
+
/** @private */ _M3eTextHighlightElement_styles.set(this, null);
|
|
4560
|
+
/**
|
|
4561
|
+
* A value indicating whether text highlighting is disabled.
|
|
4562
|
+
* @default false
|
|
4563
|
+
*/
|
|
4564
|
+
this.disabled = false;
|
|
4565
|
+
/**
|
|
4566
|
+
* The term to highlight.
|
|
4567
|
+
* @default ""
|
|
4568
|
+
*/
|
|
4569
|
+
this.term = "";
|
|
4570
|
+
/**
|
|
4571
|
+
* A value indicating whether matching is case sensitive.
|
|
4572
|
+
* @default false
|
|
4573
|
+
*/
|
|
4574
|
+
this.caseSensitive = false;
|
|
4575
|
+
if (this.isSupported) {
|
|
4576
|
+
__classPrivateFieldSet(this, _M3eTextHighlightElement_styles, new CSSStyleSheet(), "f");
|
|
4577
|
+
__classPrivateFieldGet(this, _M3eTextHighlightElement_styles, "f").replaceSync(css `
|
|
4578
|
+
::highlight(${unsafeCSS(__classPrivateFieldGet(this, _M3eTextHighlightElement_id, "f"))}) {
|
|
4579
|
+
background-color: var(--m3e-text-highlight-container-color, ${DesignToken.color.secondaryContainer});
|
|
4580
|
+
color: var(--m3e-text-highlight-color, ${DesignToken.color.onSecondaryContainer});
|
|
4581
|
+
text-decoration: var(--m3e-text-highlight-decoration);
|
|
4582
|
+
text-shadow: var(--m3e-text-highlight-shadow);
|
|
4583
|
+
}
|
|
4584
|
+
`.toString());
|
|
4585
|
+
}
|
|
4586
|
+
}
|
|
4587
|
+
/** A value indicating whether text highlighting is supported by the browser. */
|
|
4588
|
+
get isSupported() {
|
|
4589
|
+
return !isServer && CSS.highlights ? true : false;
|
|
4590
|
+
}
|
|
4591
|
+
/** The ranges that match the current term. */
|
|
4592
|
+
get ranges() {
|
|
4593
|
+
return __classPrivateFieldGet(this, _M3eTextHighlightElement_ranges, "f");
|
|
4594
|
+
}
|
|
4595
|
+
/** @inheritdoc */
|
|
4596
|
+
firstUpdated(_changedProperties) {
|
|
4597
|
+
super.firstUpdated(_changedProperties);
|
|
4598
|
+
if (this.shadowRoot && __classPrivateFieldGet(this, _M3eTextHighlightElement_styles, "f") && !this.shadowRoot.adoptedStyleSheets.includes(__classPrivateFieldGet(this, _M3eTextHighlightElement_styles, "f"))) {
|
|
4599
|
+
this.shadowRoot.adoptedStyleSheets.push(__classPrivateFieldGet(this, _M3eTextHighlightElement_styles, "f"));
|
|
4600
|
+
}
|
|
4601
|
+
}
|
|
4602
|
+
/** @inheritdoc */
|
|
4603
|
+
updated(_changedProperties) {
|
|
4604
|
+
super.updated(_changedProperties);
|
|
4605
|
+
if (_changedProperties.has("term") ||
|
|
4606
|
+
_changedProperties.has("caseSensitive") ||
|
|
4607
|
+
_changedProperties.has("disabled")) {
|
|
4608
|
+
__classPrivateFieldGet(this, _M3eTextHighlightElement_instances, "m", _M3eTextHighlightElement_highlight).call(this);
|
|
4609
|
+
}
|
|
4610
|
+
}
|
|
4611
|
+
/** @inheritdoc */
|
|
4612
|
+
render() {
|
|
4613
|
+
return html `<slot @slotchange="${__classPrivateFieldGet(this, _M3eTextHighlightElement_instances, "m", _M3eTextHighlightElement_highlight)}"></slot>`;
|
|
4614
|
+
}
|
|
4615
|
+
};
|
|
4616
|
+
_M3eTextHighlightElement_id = new WeakMap();
|
|
4617
|
+
_M3eTextHighlightElement_ranges = new WeakMap();
|
|
4618
|
+
_M3eTextHighlightElement_styles = new WeakMap();
|
|
4619
|
+
_M3eTextHighlightElement_instances = new WeakSet();
|
|
4620
|
+
_M3eTextHighlightElement_isTextNode = function _M3eTextHighlightElement_isTextNode(node) {
|
|
4621
|
+
return /^(\\s|\\n)+$/gi.test(node.data) ? false : true;
|
|
4622
|
+
};
|
|
4623
|
+
_M3eTextHighlightElement_findTextNodes = function _M3eTextHighlightElement_findTextNodes(parent, nodes) {
|
|
4624
|
+
if (parent instanceof HTMLSlotElement) {
|
|
4625
|
+
parent.assignedElements({ flatten: true }).forEach((x) => {
|
|
4626
|
+
switch (x.nodeType) {
|
|
4627
|
+
case Node.TEXT_NODE:
|
|
4628
|
+
if (__classPrivateFieldGet(this, _M3eTextHighlightElement_instances, "m", _M3eTextHighlightElement_isTextNode).call(this, x)) {
|
|
4629
|
+
nodes.push(x);
|
|
4630
|
+
}
|
|
4631
|
+
break;
|
|
4632
|
+
case Node.ELEMENT_NODE:
|
|
4633
|
+
__classPrivateFieldGet(this, _M3eTextHighlightElement_instances, "m", _M3eTextHighlightElement_findTextNodes).call(this, x, nodes);
|
|
4634
|
+
break;
|
|
4635
|
+
}
|
|
4636
|
+
});
|
|
4637
|
+
}
|
|
4638
|
+
else {
|
|
4639
|
+
parent.childNodes.forEach((x) => {
|
|
4640
|
+
switch (x.nodeType) {
|
|
4641
|
+
case Node.TEXT_NODE:
|
|
4642
|
+
if (__classPrivateFieldGet(this, _M3eTextHighlightElement_instances, "m", _M3eTextHighlightElement_isTextNode).call(this, x)) {
|
|
4643
|
+
nodes.push(x);
|
|
4644
|
+
}
|
|
4645
|
+
break;
|
|
4646
|
+
case Node.ELEMENT_NODE:
|
|
4647
|
+
__classPrivateFieldGet(this, _M3eTextHighlightElement_instances, "m", _M3eTextHighlightElement_findTextNodes).call(this, x, nodes);
|
|
4648
|
+
break;
|
|
4649
|
+
}
|
|
4650
|
+
});
|
|
4651
|
+
}
|
|
4652
|
+
};
|
|
4653
|
+
_M3eTextHighlightElement_highlight = function _M3eTextHighlightElement_highlight() {
|
|
4654
|
+
if (!this.isSupported || !this.isConnected)
|
|
4655
|
+
return;
|
|
4656
|
+
CSS.highlights.delete(__classPrivateFieldGet(this, _M3eTextHighlightElement_id, "f"));
|
|
4657
|
+
__classPrivateFieldGet(this, _M3eTextHighlightElement_ranges, "f").length = 0;
|
|
4658
|
+
if (this.disabled)
|
|
4659
|
+
return;
|
|
4660
|
+
if (!this.term) {
|
|
4661
|
+
this.dispatchEvent(new CustomEvent("highlight", {
|
|
4662
|
+
detail: [...__classPrivateFieldGet(this, _M3eTextHighlightElement_ranges, "f")],
|
|
4663
|
+
bubbles: false,
|
|
4664
|
+
composed: false,
|
|
4665
|
+
}));
|
|
4666
|
+
return;
|
|
4667
|
+
}
|
|
4668
|
+
const texts = new Array();
|
|
4669
|
+
__classPrivateFieldGet(this, _M3eTextHighlightElement_instances, "m", _M3eTextHighlightElement_findTextNodes).call(this, this, texts);
|
|
4670
|
+
const term = !this.caseSensitive ? this.term.toLowerCase() : this.term;
|
|
4671
|
+
__classPrivateFieldSet(this, _M3eTextHighlightElement_ranges, texts
|
|
4672
|
+
.map((x) => {
|
|
4673
|
+
return {
|
|
4674
|
+
el: x,
|
|
4675
|
+
text: (!this.caseSensitive ? x.textContent?.toLowerCase() : x.textContent) ?? "",
|
|
4676
|
+
};
|
|
4677
|
+
})
|
|
4678
|
+
.map(({ el, text }) => {
|
|
4679
|
+
const indices = new Array();
|
|
4680
|
+
let startPos = 0;
|
|
4681
|
+
while (startPos < text.length) {
|
|
4682
|
+
const index = text.indexOf(term, startPos);
|
|
4683
|
+
if (index === -1)
|
|
4684
|
+
break;
|
|
4685
|
+
indices.push(index);
|
|
4686
|
+
startPos = index + term.length;
|
|
4687
|
+
}
|
|
4688
|
+
return indices.map((index) => {
|
|
4689
|
+
const range = new Range();
|
|
4690
|
+
range.setStart(el, index);
|
|
4691
|
+
range.setEnd(el, index + term.length);
|
|
4692
|
+
return range;
|
|
4693
|
+
});
|
|
4694
|
+
})
|
|
4695
|
+
.flat(), "f");
|
|
4696
|
+
if (__classPrivateFieldGet(this, _M3eTextHighlightElement_ranges, "f").length > 0) {
|
|
4697
|
+
CSS.highlights.set(__classPrivateFieldGet(this, _M3eTextHighlightElement_id, "f"), new Highlight(...__classPrivateFieldGet(this, _M3eTextHighlightElement_ranges, "f")));
|
|
4698
|
+
}
|
|
4699
|
+
this.dispatchEvent(new CustomEvent("highlight", {
|
|
4700
|
+
detail: [...__classPrivateFieldGet(this, _M3eTextHighlightElement_ranges, "f")],
|
|
4701
|
+
bubbles: false,
|
|
4702
|
+
composed: false,
|
|
4703
|
+
}));
|
|
4704
|
+
};
|
|
4705
|
+
/** The styles of the element. */
|
|
4706
|
+
M3eTextHighlightElement.styles = css `
|
|
4707
|
+
:host {
|
|
4708
|
+
display: contents;
|
|
4709
|
+
}
|
|
4710
|
+
`;
|
|
4711
|
+
/** @private */ M3eTextHighlightElement.__nextId = 0;
|
|
4712
|
+
__decorate([
|
|
4713
|
+
n$1({ type: Boolean, reflect: true })
|
|
4714
|
+
], M3eTextHighlightElement.prototype, "disabled", void 0);
|
|
4715
|
+
__decorate([
|
|
4716
|
+
n$1()
|
|
4717
|
+
], M3eTextHighlightElement.prototype, "term", void 0);
|
|
4718
|
+
__decorate([
|
|
4719
|
+
n$1({ attribute: "case-sensitive", type: Boolean })
|
|
4720
|
+
], M3eTextHighlightElement.prototype, "caseSensitive", void 0);
|
|
4721
|
+
M3eTextHighlightElement = M3eTextHighlightElement_1 = __decorate([
|
|
4722
|
+
t$2("m3e-text-highlight")
|
|
4723
|
+
], M3eTextHighlightElement);
|
|
4724
|
+
|
|
4725
|
+
export { AttachInternals, Checked, CheckedIndeterminate, ConstraintValidation, DesignToken, Dirty, Disabled, DisabledInteractive, EventAttribute, FocusController, Focusable, FormAssociated, FormSubmitter, HoverController, HtmlFor, IntersectionController, KeyboardClick, Labelled, LinkButton, LongPressController, M3eCollapsibleElement, M3eElevationElement, M3eFocusRingElement, M3ePseudoCheckboxElement, M3ePseudoRadioElement, M3eRippleElement, M3eScrollContainerElement, M3eSlide, M3eStateLayerElement, M3eTextHighlightElement, M3eTextOverflowElement, MutationController, PressedController, ReadOnly, Required, RequiredConstraintValidation, ResizeController, Role, ScrollController, Selected, Touched, Vertical, checkOrSelect, debounce, defaultValue, formValue, getTextContent, guid, hasAssignedNodes, hasKeys, internals, isAttachInternalsMixin, isCheckedIndeterminateMixin, isCheckedMixin, isCheckedOrSelected, isCheckedOrSelectedMixin, isConstraintValidationMixin, isDirtyMixin, isDisabledInteractiveMixin, isDisabledMixin, isFormAssociatedMixin, isFormSubmitterMixin, isHtmlForMixin, isLabelledMixin, isLinkButtonMixin, isReadOnlyMixin, isRequiredConstraintValidationMixin, isRequiredMixin, isSelectedMixin, isTouchedMixin, isVerticalMixin, prefersReducedMotion, renderPseudoLink, safeStyleMap, scrollIntoViewIfNeeded, validate };
|
|
4511
4726
|
//# sourceMappingURL=index.js.map
|