@limetech/lime-elements 40.2.0 → 40.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/{3d-tilt-hover-effect-DI8kt0Y0.js → 3d-tilt-hover-effect-Da8Dh_JX.js} +50 -10
  3. package/dist/cjs/limel-card.cjs.entry.js +6 -4
  4. package/dist/cjs/limel-info-tile.cjs.entry.js +9 -4
  5. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +105 -2
  6. package/dist/cjs/limel-shortcut.cjs.entry.js +8 -3
  7. package/dist/collection/components/card/card.js +5 -3
  8. package/dist/collection/components/info-tile/info-tile.js +8 -3
  9. package/dist/collection/components/shortcut/shortcut.js +7 -2
  10. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/table-paste-plugin.js +103 -0
  11. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/table-plugin.js +4 -1
  12. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.css +11 -0
  13. package/dist/collection/util/3d-tilt-hover-effect.js +50 -10
  14. package/dist/esm/{3d-tilt-hover-effect-5eP2N9QI.js → 3d-tilt-hover-effect-CllX3RLB.js} +50 -10
  15. package/dist/esm/limel-card.entry.js +6 -4
  16. package/dist/esm/limel-info-tile.entry.js +9 -4
  17. package/dist/esm/limel-prosemirror-adapter.entry.js +105 -2
  18. package/dist/esm/limel-shortcut.entry.js +8 -3
  19. package/dist/lime-elements/lime-elements.esm.js +1 -1
  20. package/dist/lime-elements/p-25555311.entry.js +1 -0
  21. package/dist/lime-elements/{p-d3d71a68.entry.js → p-6c826c25.entry.js} +1 -1
  22. package/dist/lime-elements/p-CllX3RLB.js +1 -0
  23. package/dist/lime-elements/p-b03367f0.entry.js +1 -0
  24. package/dist/lime-elements/p-c0a03b7c.entry.js +1 -0
  25. package/dist/types/components/card/card.d.ts +1 -0
  26. package/dist/types/components/info-tile/info-tile.d.ts +2 -0
  27. package/dist/types/components/shortcut/shortcut.d.ts +2 -0
  28. package/dist/types/components/text-editor/prosemirror-adapter/plugins/table-paste-plugin.d.ts +3 -0
  29. package/dist/types/util/3d-tilt-hover-effect.d.ts +34 -4
  30. package/package.json +2 -2
  31. package/dist/lime-elements/p-51cb779f.entry.js +0 -1
  32. package/dist/lime-elements/p-5eP2N9QI.js +0 -1
  33. package/dist/lime-elements/p-7df111bb.entry.js +0 -1
  34. package/dist/lime-elements/p-ad4672b2.entry.js +0 -1
@@ -1,7 +1,10 @@
1
1
  import { tableNodes, tableEditing } from "prosemirror-tables";
2
+ import { createTablePastePlugin } from "./table-paste-plugin";
2
3
  export const getTableEditingPlugins = (tablesEnabled) => {
3
4
  if (tablesEnabled) {
4
- return [tableEditing()];
5
+ // The paste plugin must precede tableEditing(), whose own
6
+ // handlePaste would otherwise consume table pastes first.
7
+ return [createTablePastePlugin(), tableEditing()];
5
8
  }
6
9
  return [];
7
10
  };
@@ -581,6 +581,17 @@ img {
581
581
  display: flex;
582
582
  flex-direction: column;
583
583
  }
584
+ :host(limel-prosemirror-adapter) table {
585
+ border-collapse: collapse;
586
+ margin: 0.75rem 0;
587
+ }
588
+ :host(limel-prosemirror-adapter) th,
589
+ :host(limel-prosemirror-adapter) td {
590
+ border: 1px solid rgb(var(--contrast-400));
591
+ padding: 0.25rem 0.375rem;
592
+ text-align: left;
593
+ vertical-align: top;
594
+ }
584
595
  :host(limel-prosemirror-adapter) .toolbar {
585
596
  order: 1;
586
597
  }
@@ -50,7 +50,8 @@
50
50
  * 3. **Initialize in your component**:
51
51
  *
52
52
  * Use `getMouseEventHandlers()` to attach the required mouse event listeners
53
- * to the "interactive element" (`the-3d-element`). For example:
53
+ * to the "interactive element" (`the-3d-element`), and call the `cleanup()` it
54
+ * returns when the component is disconnected. For example:
54
55
  *
55
56
  * ```tsx
56
57
  * @Element()
@@ -58,16 +59,30 @@
58
59
  *
59
60
  * private handleMouseEnter: () => void;
60
61
  * private handleMouseLeave: () => void;
62
+ * private cleanup3dHoverEffect?: () => void;
61
63
  *
62
64
  * public componentWillLoad() {
63
- * const { handleMouseEnter, handleMouseLeave } = getMouseEventHandlers(
64
- * this.host.querySelector('.the-3d-element'),
65
- * );
65
+ * const { handleMouseEnter, handleMouseLeave, cleanup } =
66
+ * getMouseEventHandlers(
67
+ * this.host.querySelector<HTMLElement>('.the-3d-element'),
68
+ * );
66
69
  * this.handleMouseEnter = handleMouseEnter;
67
70
  * this.handleMouseLeave = handleMouseLeave;
71
+ * this.cleanup3dHoverEffect = cleanup;
72
+ * }
73
+ *
74
+ * public disconnectedCallback() {
75
+ * this.cleanup3dHoverEffect?.();
68
76
  * }
69
77
  * ```
70
78
  *
79
+ * Call it optionally: `disconnectedCallback` can run before
80
+ * `componentWillLoad` has assigned the field.
81
+ *
82
+ * Skipping the `disconnectedCallback` leaks a `document` level `mousemove`
83
+ * listener every time the element is removed while it is being hovered, and
84
+ * leaves a moved element stuck at the angle it was last tilted to.
85
+ *
71
86
  * 4. **Attach event handlers in your render method**:
72
87
  *
73
88
  * ```tsx
@@ -133,18 +148,43 @@ export const tiltFollowingTheCursor = (the3dElementBounds, element) => (e) => {
133
148
  };
134
149
  export const getMouseEventHandlers = (element) => {
135
150
  let tiltCallback;
151
+ /**
152
+ * Stops following the cursor and returns the element to rest.
153
+ *
154
+ * Safe to call when tracking never started, and safe to call on an
155
+ * element that has already been detached.
156
+ */
157
+ const stopTracking = () => {
158
+ document.removeEventListener('mousemove', tiltCallback);
159
+ element.style.removeProperty('--limel-3d-hover-effect-rotate3d');
160
+ element.style.removeProperty('--limel-3d-hover-effect-glow-position');
161
+ };
136
162
  const handleMouseEnter = () => {
163
+ // A second `mouseenter` without an intervening `mouseleave` would
164
+ // otherwise strand the previous callback on `document` with nothing
165
+ // left holding a reference to remove it with.
166
+ stopTracking();
137
167
  const bounds = element.getBoundingClientRect();
138
168
  tiltCallback = tiltFollowingTheCursor(bounds, element);
139
169
  document.addEventListener('mousemove', tiltCallback);
140
170
  };
141
- const handleMouseLeave = () => {
142
- document.removeEventListener('mousemove', tiltCallback);
143
- element.style.removeProperty('--limel-3d-hover-effect-rotate3d');
144
- element.style.removeProperty('--limel-3d-hover-effect-glow-position');
145
- };
146
171
  return {
147
172
  handleMouseEnter: handleMouseEnter,
148
- handleMouseLeave: handleMouseLeave,
173
+ handleMouseLeave: stopTracking,
174
+ /**
175
+ * The same teardown as `handleMouseLeave`, for the case where no
176
+ * `mouseleave` is coming.
177
+ *
178
+ * `mouseleave` never fires for an element that is removed from the
179
+ * DOM while the pointer is still over it, which in a single page
180
+ * application is the ordinary case: a click routes away from the
181
+ * view holding the element. It does not fire when the element is
182
+ * merely moved within the DOM either, and a move disconnects the
183
+ * component just like a removal does. Call this from
184
+ * `disconnectedCallback` so the listener does not outlive the
185
+ * element it tilts, and so a moved element does not stay stuck at
186
+ * the angle it was last tilted to.
187
+ */
188
+ cleanup: stopTracking,
149
189
  };
150
190
  };
@@ -50,7 +50,8 @@
50
50
  * 3. **Initialize in your component**:
51
51
  *
52
52
  * Use `getMouseEventHandlers()` to attach the required mouse event listeners
53
- * to the "interactive element" (`the-3d-element`). For example:
53
+ * to the "interactive element" (`the-3d-element`), and call the `cleanup()` it
54
+ * returns when the component is disconnected. For example:
54
55
  *
55
56
  * ```tsx
56
57
  * @Element()
@@ -58,16 +59,30 @@
58
59
  *
59
60
  * private handleMouseEnter: () => void;
60
61
  * private handleMouseLeave: () => void;
62
+ * private cleanup3dHoverEffect?: () => void;
61
63
  *
62
64
  * public componentWillLoad() {
63
- * const { handleMouseEnter, handleMouseLeave } = getMouseEventHandlers(
64
- * this.host.querySelector('.the-3d-element'),
65
- * );
65
+ * const { handleMouseEnter, handleMouseLeave, cleanup } =
66
+ * getMouseEventHandlers(
67
+ * this.host.querySelector<HTMLElement>('.the-3d-element'),
68
+ * );
66
69
  * this.handleMouseEnter = handleMouseEnter;
67
70
  * this.handleMouseLeave = handleMouseLeave;
71
+ * this.cleanup3dHoverEffect = cleanup;
72
+ * }
73
+ *
74
+ * public disconnectedCallback() {
75
+ * this.cleanup3dHoverEffect?.();
68
76
  * }
69
77
  * ```
70
78
  *
79
+ * Call it optionally: `disconnectedCallback` can run before
80
+ * `componentWillLoad` has assigned the field.
81
+ *
82
+ * Skipping the `disconnectedCallback` leaks a `document` level `mousemove`
83
+ * listener every time the element is removed while it is being hovered, and
84
+ * leaves a moved element stuck at the angle it was last tilted to.
85
+ *
71
86
  * 4. **Attach event handlers in your render method**:
72
87
  *
73
88
  * ```tsx
@@ -133,19 +148,44 @@ const tiltFollowingTheCursor = (the3dElementBounds, element) => (e) => {
133
148
  };
134
149
  const getMouseEventHandlers = (element) => {
135
150
  let tiltCallback;
151
+ /**
152
+ * Stops following the cursor and returns the element to rest.
153
+ *
154
+ * Safe to call when tracking never started, and safe to call on an
155
+ * element that has already been detached.
156
+ */
157
+ const stopTracking = () => {
158
+ document.removeEventListener('mousemove', tiltCallback);
159
+ element.style.removeProperty('--limel-3d-hover-effect-rotate3d');
160
+ element.style.removeProperty('--limel-3d-hover-effect-glow-position');
161
+ };
136
162
  const handleMouseEnter = () => {
163
+ // A second `mouseenter` without an intervening `mouseleave` would
164
+ // otherwise strand the previous callback on `document` with nothing
165
+ // left holding a reference to remove it with.
166
+ stopTracking();
137
167
  const bounds = element.getBoundingClientRect();
138
168
  tiltCallback = tiltFollowingTheCursor(bounds, element);
139
169
  document.addEventListener('mousemove', tiltCallback);
140
170
  };
141
- const handleMouseLeave = () => {
142
- document.removeEventListener('mousemove', tiltCallback);
143
- element.style.removeProperty('--limel-3d-hover-effect-rotate3d');
144
- element.style.removeProperty('--limel-3d-hover-effect-glow-position');
145
- };
146
171
  return {
147
172
  handleMouseEnter: handleMouseEnter,
148
- handleMouseLeave: handleMouseLeave,
173
+ handleMouseLeave: stopTracking,
174
+ /**
175
+ * The same teardown as `handleMouseLeave`, for the case where no
176
+ * `mouseleave` is coming.
177
+ *
178
+ * `mouseleave` never fires for an element that is removed from the
179
+ * DOM while the pointer is still over it, which in a single page
180
+ * application is the ordinary case: a click routes away from the
181
+ * view holding the element. It does not fire when the element is
182
+ * merely moved within the DOM either, and a move disconnects the
183
+ * component just like a removal does. Call this from
184
+ * `disconnectedCallback` so the listener does not outlive the
185
+ * element it tilts, and so a moved element does not stay stuck at
186
+ * the angle it was last tilted to.
187
+ */
188
+ cleanup: stopTracking,
149
189
  };
150
190
  };
151
191
 
@@ -2,7 +2,7 @@ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement
2
2
  import { I as ImageTemplate } from './image.template-BXDvrqGw.js';
3
3
  import { i as isItem } from './is-item-CrvUOVvg.js';
4
4
  import { g as getIconName } from './get-icon-props-CgNJbSP4.js';
5
- import { g as getMouseEventHandlers } from './3d-tilt-hover-effect-5eP2N9QI.js';
5
+ import { g as getMouseEventHandlers } from './3d-tilt-hover-effect-CllX3RLB.js';
6
6
 
7
7
  const cardCss = () => `@charset "UTF-8";*{box-sizing:border-box;min-width:0;min-height:0}:host(limel-card){display:flex;border-radius:var(--card-border-radius, 0.95rem)}section{box-sizing:border-box;display:flex;gap:0.5rem;flex-direction:column}:host(limel-card[orientation=landscape]) section{flex-direction:row}section{width:100%;border-radius:var(--card-border-radius, 0.95rem);border:1px solid rgb(var(--contrast-500));padding:0.25rem;background-color:var(--card-background-color, rgb(var(--contrast-300)))}:host(limel-card[clickable]) section,:host(limel-card[show-3d-effect]) section{position:relative;transition-duration:0.8s;transition-property:transform, box-shadow, background-color;transition-timing-function:ease-out;transform:scale3d(1, 1, 1) rotate3d(0, 0, 0, 0deg)}:host(limel-card[clickable]) section:focus,:host(limel-card[show-3d-effect]) section:focus{outline:none}:host(limel-card[clickable]) section:hover,:host(limel-card[clickable]) section:focus,:host(limel-card[clickable]) section:focus-visible,:host(limel-card[clickable]) section:focus-within,:host(limel-card[show-3d-effect]) section:hover,:host(limel-card[show-3d-effect]) section:focus,:host(limel-card[show-3d-effect]) section:focus-visible,:host(limel-card[show-3d-effect]) section:focus-within{will-change:background-color, box-shadow, transform}:host(limel-card[clickable]) section:hover,:host(limel-card[clickable]) section:focus,:host(limel-card[clickable]) section:focus-visible,:host(limel-card[clickable]) section:active,:host(limel-card[show-3d-effect]) section:hover,:host(limel-card[show-3d-effect]) section:focus,:host(limel-card[show-3d-effect]) section:focus-visible,:host(limel-card[show-3d-effect]) section:active{transition-duration:0.2s}:host(limel-card[clickable]) section:hover,:host(limel-card[clickable]) section:focus-visible,:host(limel-card[show-3d-effect]) section:hover,:host(limel-card[show-3d-effect]) section:focus-visible{box-shadow:var(--button-shadow-hovered), var(--shadow-depth-16)}:host(limel-card[clickable]) section:hover,:host(limel-card[show-3d-effect]) section:hover{transform:scale3d(1.01, 1.01, 1.01) rotate3d(var(--limel-3d-hover-effect-rotate3d))}:host(limel-card[clickable]) section:focus-visible,:host(limel-card[show-3d-effect]) section:focus-visible{outline:none;transform:scale3d(1.01, 1.01, 1.01)}:host(limel-card[clickable]) section:hover limel-3d-hover-effect-glow,:host(limel-card[show-3d-effect]) section:hover limel-3d-hover-effect-glow{--limel-3d-hover-effect-glow-opacity:0.5}@media (prefers-reduced-motion){:host(limel-card[clickable]) section:hover limel-3d-hover-effect-glow,:host(limel-card[show-3d-effect]) section:hover limel-3d-hover-effect-glow{--limel-3d-hover-effect-glow-opacity:0.2}}:host(limel-card[clickable]) section{cursor:pointer;box-shadow:var(--button-shadow-normal)}:host(limel-card[clickable]) section:hover,:host(limel-card[clickable]) section:focus-visible{box-shadow:var(--button-shadow-hovered), var(--shadow-depth-16)}:host(limel-card[clickable]) section:active{transform:scale3d(1, 1, 1) rotate3d(0, 0, 0, 0deg);box-shadow:var(--button-shadow-pressed)}:host(limel-card[clickable]) section:focus-visible{box-shadow:var(--shadow-depth-8-focused), var(--button-shadow-hovered)}:host(limel-card[clickable]) section:focus-visible:active{box-shadow:var(--shadow-depth-8-focused), var(--button-shadow-pressed)}:host(limel-card[clickable]) section:hover{border-color:transparent;background-color:var(--card-background-color--hovered, var(--card-background-color, rgb(var(--contrast-200))))}.body{flex-grow:1;display:flex;flex-direction:column;gap:0.5rem}.image-wrapper{flex-shrink:0;display:flex;align-items:center;justify-content:center}:host(limel-card[orientation=portrait]) .image-wrapper{width:100%}:host(limel-card[orientation=landscape]) .image-wrapper{flex-shrink:0;max-width:40%;height:100%}:host(limel-card[orientation=landscape]) .image-wrapper img{height:100%}img{transition:filter 0.6s ease;object-fit:cover;border-radius:calc(var(--card-border-radius, 0.95rem) / 1.4);min-width:0.5rem;min-height:0.5rem;max-width:100%;max-height:100%}:host(limel-card[show-3d-effect]) section:hover img,:host(limel-card[show-3d-effect]) section:focus-visible img{transition-duration:0.2s;filter:saturate(1.3)}.markdown-wrapper{position:relative;flex-grow:1;display:flex;flex-direction:column}.markdown-wrapper limel-markdown{overflow-y:auto;flex-grow:1;padding:0.5rem 0.75rem}.markdown-wrapper::before{top:0;background:radial-gradient(farthest-side at 50% 0%, rgba(0, 0, 0, 0.16), rgba(0, 0, 0, 0))}.markdown-wrapper::after{bottom:0;background:radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, 0.16), rgba(0, 0, 0, 0))}.markdown-wrapper::before,.markdown-wrapper::after{content:"";pointer-events:none;position:absolute;right:0;left:0;height:0.75rem;opacity:0;transition:opacity 0.6s ease;background-repeat:no-repeat}.markdown-wrapper.can-scroll-up::before,.markdown-wrapper.can-scroll-down::after{opacity:1}header{flex-shrink:0;display:flex;justify-content:center;gap:0.5rem;padding:0.25rem 0.75rem}:host(limel-card[orientation=landscape]) header{padding-top:0.5rem}header:has(limel-icon){padding-left:0.25rem}header .headings{flex-grow:1;display:flex;flex-direction:column;gap:0.125rem}header .title{padding-right:1.25rem}header limel-icon{flex-shrink:0;width:2rem}header h1{font-size:1.125rem;font-weight:500;color:var(--card-heading-color, rgb(var(--contrast-1100)));letter-spacing:-0.03125rem}header h2{font-size:var(--limel-theme-default-font-size);font-weight:400;color:var(--card-subheading-color, rgb(var(--contrast-1000)))}header h1,header h2{word-break:break-word;hyphens:auto;-webkit-hyphens:auto;margin:0}limel-action-bar{flex-shrink:0;--action-bar-background-color:transparent;margin-left:auto}limel-3d-hover-effect-glow{border-radius:var(--card-border-radius, 0.95rem)}:host(limel-card[show-3d-effect]){isolation:isolate;transform-style:preserve-3d;perspective:1000px}@media (prefers-reduced-motion){:host(limel-card[show-3d-effect]){perspective:2000px}}:host(limel-card[selected]) section,:host(limel-card[selected]) section:hover,:host(limel-card[selected]) section:focus-visible,:host(limel-card[selected]) section:active{box-shadow:var(--shadow-focused-state)}`;
8
8
 
@@ -92,20 +92,22 @@ const Card = class {
92
92
  };
93
93
  }
94
94
  componentWillLoad() {
95
- const { handleMouseEnter, handleMouseLeave } = getMouseEventHandlers(this.host);
95
+ const { handleMouseEnter, handleMouseLeave, cleanup } = getMouseEventHandlers(this.host);
96
96
  this.handleMouseEnter = handleMouseEnter;
97
97
  this.handleMouseLeave = handleMouseLeave;
98
+ this.cleanup3dHoverEffect = cleanup;
98
99
  }
99
100
  disconnectedCallback() {
100
- var _a, _b;
101
+ var _a, _b, _c;
101
102
  (_a = this.markdownResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
102
103
  (_b = this.markdownElement) === null || _b === void 0 ? void 0 : _b.removeEventListener('scroll', this.checkIfScrollable);
104
+ (_c = this.cleanup3dHoverEffect) === null || _c === void 0 ? void 0 : _c.call(this);
103
105
  }
104
106
  componentDidLoad() {
105
107
  this.setMarkdownElement(this.markdownElement);
106
108
  }
107
109
  render() {
108
- return (h(Host, { key: 'bd6a187317d0b475747be4fe270452ab8b38ef3c', onMouseEnter: this.show3dEffect ? this.handleMouseEnter : undefined, onMouseLeave: this.show3dEffect ? this.handleMouseLeave : undefined }, h("section", { key: '3cd9af303c7c3cc1db1cfc52e80dc05c4ec409de', tabindex: this.clickable ? 0 : undefined, role: this.clickable ? 'button' : undefined, "aria-pressed": this.clickable ? String(this.selected) : undefined, onKeyDown: this.clickable ? this.handleKeyDown : undefined }, this.renderImage(), h("div", { key: 'a9c535c05a993af0ef8f515bb1380d36fdf9f3ce', class: "body" }, this.renderHeader(), this.renderSlot(), this.renderValue(), this.renderActionBar()), this.show3dEffect && h("limel-3d-hover-effect-glow", { key: '93fc81bc92ff7cf2272f854d3b218651994ae5d8' }))));
110
+ return (h(Host, { key: '5714b1e5154ed8637c99f71d5a303dfc7ca51a51', onMouseEnter: this.show3dEffect ? this.handleMouseEnter : undefined, onMouseLeave: this.show3dEffect ? this.handleMouseLeave : undefined }, h("section", { key: 'f6592febd86d2869a86e7561e3c2136c7862ad17', tabindex: this.clickable ? 0 : undefined, role: this.clickable ? 'button' : undefined, "aria-pressed": this.clickable ? String(this.selected) : undefined, onKeyDown: this.clickable ? this.handleKeyDown : undefined }, this.renderImage(), h("div", { key: '2955544b5bb10cec45591189591b6c7c64d844e5', class: "body" }, this.renderHeader(), this.renderSlot(), this.renderValue(), this.renderActionBar()), this.show3dEffect && h("limel-3d-hover-effect-glow", { key: '62f1d894a1feceb89cd44963cdb8ae9ba201ff6c' }))));
109
111
  }
110
112
  renderImage() {
111
113
  var _a;
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, H as Host, a as getElement } from './index-BGxJfR2f.js';
2
- import { g as getMouseEventHandlers } from './3d-tilt-hover-effect-5eP2N9QI.js';
2
+ import { g as getMouseEventHandlers } from './3d-tilt-hover-effect-CllX3RLB.js';
3
3
  import { g as getRel } from './link-helper-5KsJICvh.js';
4
4
 
5
5
  const infoTileCss = () => `@charset "UTF-8";:host(limel-info-tile){--badge-text-color:var( --info-tile-badge-text-color, rgb(var(--color-white)) );--badge-background-color:var( --info-tile-badge-background-color, rgb(var(--color-red-default)) );--circular-progress-text-color:var( --info-tile-progress-text-color, var(--info-tile-text-color) );--circular-progress-suffix-color:var(--info-tile-progress-suffix-color);--circular-progress-prefix-color:var(--info-tile-progress-prefix-color);--circular-progress-track-color:rgb(var(--contrast-800), 0.3);--circular-progress-fill-color:var(--info-tile-progress-fill-color);--circular-progress-background-color:var( --info-tile-progress-background-color, var(--info-tile-background-color) );--label-min-size:0.75rem;--label-preferred-size:6cqw;--label-max-size:1rem;--value-min-size:1rem;--value-preferred-size:20cqw;--value-max-size:4rem;--suffix-prefix-min-size:0.75rem;--suffix-prefix-preferred-size:8cqw;--suffix-prefix-max-size:1.5rem;--icon-min-size:2rem;--icon-preferred-size:60cqh;--icon-max-size:calc(100cqw - 0.5rem);container-type:size;position:relative;display:flex;width:100%;height:100%;transition:filter 0.4s ease, opacity 0.25s ease}:host(limel-info-tile) *{box-sizing:border-box}:host(limel-info-tile[reduced-presence]){filter:saturate(0.1);opacity:0.4}:host(limel-info-tile[reduced-presence]:hover),:host(limel-info-tile[reduced-presence]:focus-within){filter:none;opacity:1}:host(limel-info-tile[disabled]) a{opacity:0.4;cursor:not-allowed}a{all:unset;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;height:100%;width:100%;flex-grow:1;padding:0.25rem 1rem 0.5rem 1rem;border-radius:var(--info-tile-border-radius, 1rem);background-color:var(--info-tile-background-color, var(--lime-elevated-surface-background-color))}:host ::slotted([slot=primary]){width:100%;height:100%}.icon{z-index:1;position:absolute;top:0.5rem;right:0.75rem;padding:0.25rem;aspect-ratio:1/1;color:var(--info-tile-icon-color, rgb(var(--contrast-1000)));opacity:0.9;border-radius:0;height:clamp(var(--icon-min-size), var(--icon-preferred-size), var(--icon-max-size))}@supports not (container-type: size){.icon{width:max(10%, 3rem)}}:host(.has-primary-slot-content) .icon,a:has(limel-circular-progress) .icon{top:unset;bottom:0.5rem;--icon-min-size:1.5rem;--icon-preferred-size:20cqh}slot[name=primary]{display:block;aspect-ratio:1;width:min(var(--icon-preferred-size), var(--icon-max-size))}.progress,slot[name=primary]{position:absolute;top:0.75rem;right:0.75rem}.progress{--circular-progress-size:min( var(--icon-preferred-size), var(--icon-max-size) )}@supports not (container-type: size){.progress{--circular-progress-size:initial}}.label{z-index:1;color:var(--info-tile-text-color, rgb(var(--contrast-1100)));opacity:0.8;line-height:1.2;font-size:clamp(var(--label-min-size), var(--label-preferred-size), var(--label-max-size))}@supports not (container-type: size){.label{font-size:var(--limel-theme-default-font-size)}}.label{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}limel-badge{position:absolute;top:-0.25rem;right:-0.25rem}limel-linear-progress{--lime-primary-color:var(--info-tile-text-color);position:absolute;inset:auto 0 0 0}.value-group{position:relative;z-index:1;display:flex;flex-direction:column;color:var(--info-tile-text-color, rgb(var(--contrast-1100)))}.value-and-suffix,.label{text-shadow:0 0 0.5rem var(--info-tile-background-color, rgb(var(--contrast-100))), 0 0 0.25rem var(--info-tile-background-color, rgb(var(--contrast-100)))}.value-and-suffix{display:flex}.prefix,.suffix{font-size:clamp(var(--suffix-prefix-min-size), var(--suffix-prefix-preferred-size), var(--suffix-prefix-max-size));opacity:0.7}@supports not (container-type: size){.prefix,.suffix{font-size:0.75rem}}.prefix{align-self:flex-start;line-height:normal;transform:translateY(40%)}.value{transition:opacity 0.2s ease, transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.95);transform-origin:left;transform:translate3d(0, 0, 0) scale(1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:bold;line-height:normal;font-size:clamp(var(--value-min-size), var(--value-preferred-size), var(--value-max-size))}@supports not (container-type: size){.value{font-size:1.5rem}}:host(limel-info-tile[loading]) .value{opacity:0.3;transform:translate3d(0, 0, 0) scale(0.9)}.suffix{transform:translateY(10%)}@container (width < 8rem){.progress,slot[name=primary]{top:0.25rem;right:0.25rem}a{padding:0.375rem;gap:0.125rem}.icon{opacity:0.7;top:0.125rem;right:0.125rem;padding:0.125rem;--icon-preferred-size:18cqw;--icon-max-size:2rem}.value-group{gap:0.125rem}.value-and-suffix,.label{text-shadow:0 0 1rem var(--info-tile-background-color, rgb(var(--contrast-100))), 0 0 0.5rem var(--info-tile-background-color, rgb(var(--contrast-100)))}.prefix,.suffix{--suffix-prefix-min-size:0.625rem;--suffix-prefix-preferred-size:6cqw;--suffix-prefix-max-size:0.75rem}}@container (width < 18.75rem){.progress,slot[name=primary]{top:0.5rem;right:0.5rem}.icon{top:0.25rem;right:0.5rem}:host(.has-primary-slot-content) .icon,a:has(limel-circular-progress) .icon{right:0.25rem;bottom:0.25rem}}@container (width < 40.5rem){.value.ch-1,.value.ch-2,.value.ch-3,.value.ch-4{--value-preferred-size:20cqw}.value.ch-5{--value-preferred-size:18cqw}.value.ch-6{--value-preferred-size:17cqw}.value.ch-7{--value-preferred-size:16cqw}.value.ch-8{--value-preferred-size:15cqw}.value.ch-9{--value-preferred-size:14cqw}.value{--value-preferred-size:13cqw}}@container (height > 8rem){a{padding-top:0.75rem;padding-bottom:1rem}}@container (height < 8rem) and (width > 8rem){.value{--value-preferred-size:32cqh !important}.suffix,.prefix{--suffix-prefix-preferred-size:16cqh !important}}@container (height > 18.75rem){.progress,slot[name=primary],.icon{position:relative;top:unset;right:unset}a{align-items:center;justify-content:center}.label{text-align:center}:host(.has-primary-slot-content) .icon,a:has(limel-circular-progress) .icon{position:absolute;top:0.5rem;right:0.5rem;--icon-max-size:3rem}}limel-3d-hover-effect-glow{border-radius:var(--info-tile-border-radius, 1rem)}:host(limel-info-tile){isolation:isolate;transform-style:preserve-3d;perspective:1000px}@media (prefers-reduced-motion){:host(limel-info-tile){perspective:2000px}}a{position:relative;transition-duration:0.8s;transition-property:transform, box-shadow, background-color;transition-timing-function:ease-out;transform:scale3d(1, 1, 1) rotate3d(0, 0, 0, 0deg)}a:focus{outline:none}a:hover,a:focus,a:focus-visible,a:focus-within{will-change:background-color, box-shadow, transform}a:hover,a:focus,a:focus-visible,a:active{transition-duration:0.2s}a:hover,a:focus-visible{box-shadow:var(--button-shadow-hovered), var(--shadow-depth-16)}a:hover{transform:scale3d(1.01, 1.01, 1.01) rotate3d(var(--limel-3d-hover-effect-rotate3d))}a:focus-visible{outline:none;transform:scale3d(1.01, 1.01, 1.01)}a:hover limel-3d-hover-effect-glow{--limel-3d-hover-effect-glow-opacity:0.5}@media (prefers-reduced-motion){a:hover limel-3d-hover-effect-glow{--limel-3d-hover-effect-glow-opacity:0.2}}a.is-clickable{cursor:pointer;box-shadow:var(--button-shadow-normal)}a.is-clickable:hover,a.is-clickable:focus-visible{box-shadow:var(--button-shadow-hovered), var(--shadow-depth-16)}a.is-clickable:active{transform:scale3d(1, 1, 1) rotate3d(0, 0, 0, 0deg);box-shadow:var(--button-shadow-pressed)}a.is-clickable:focus-visible{box-shadow:var(--shadow-depth-8-focused), var(--button-shadow-hovered)}a.is-clickable:focus-visible:active{box-shadow:var(--shadow-depth-8-focused), var(--button-shadow-pressed)}`;
@@ -90,11 +90,16 @@ const InfoTile = class {
90
90
  };
91
91
  }
92
92
  componentWillLoad() {
93
- const { handleMouseEnter, handleMouseLeave } = getMouseEventHandlers(this.host);
93
+ const { handleMouseEnter, handleMouseLeave, cleanup } = getMouseEventHandlers(this.host);
94
94
  this.handleMouseEnter = handleMouseEnter;
95
95
  this.handleMouseLeave = handleMouseLeave;
96
+ this.cleanup3dHoverEffect = cleanup;
96
97
  this.updateHasPrimarySlotContent();
97
98
  }
99
+ disconnectedCallback() {
100
+ var _a;
101
+ (_a = this.cleanup3dHoverEffect) === null || _a === void 0 ? void 0 : _a.call(this);
102
+ }
98
103
  render() {
99
104
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
100
105
  const extendedAriaLabel = this.checkProps(this === null || this === void 0 ? void 0 : this.prefix) +
@@ -109,9 +114,9 @@ const InfoTile = class {
109
114
  this.checkProps((_d = this === null || this === void 0 ? void 0 : this.link) === null || _d === void 0 ? void 0 : _d.title);
110
115
  const link = this.disabled ? '#' : (_e = this.link) === null || _e === void 0 ? void 0 : _e.href;
111
116
  const rel = getRel((_f = this.link) === null || _f === void 0 ? void 0 : _f.target, (_g = this.link) === null || _g === void 0 ? void 0 : _g.rel);
112
- return (h(Host, { key: '7a2d9a27bdd3940056e89a1852806ac15ecb00d2', onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, class: { 'has-primary-slot-content': this.hasPrimarySlot } }, h("a", { key: '99a5a942a3ceb22a2892a0757c681b95b81ca6fa', title: (_h = this.link) === null || _h === void 0 ? void 0 : _h.title, href: link, target: (_j = this.link) === null || _j === void 0 ? void 0 : _j.target, rel: rel, tabindex: "0", "aria-label": extendedAriaLabel, "aria-disabled": this.disabled, "aria-busy": this.loading ? 'true' : 'false', "aria-live": "polite", class: {
117
+ return (h(Host, { key: 'b3415c1b5881c6deb73d4ab9fe86d137037bc60e', onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, class: { 'has-primary-slot-content': this.hasPrimarySlot } }, h("a", { key: 'de292609a60d7bfe1eef9c4818bd76e59a4669ad', title: (_h = this.link) === null || _h === void 0 ? void 0 : _h.title, href: link, target: (_j = this.link) === null || _j === void 0 ? void 0 : _j.target, rel: rel, tabindex: "0", "aria-label": extendedAriaLabel, "aria-disabled": this.disabled, "aria-busy": this.loading ? 'true' : 'false', "aria-live": "polite", class: {
113
118
  'is-clickable': !!((_k = this.link) === null || _k === void 0 ? void 0 : _k.href) && !this.disabled,
114
- } }, this.renderIcon(), this.renderProgress(), h("slot", { key: 'a01a194b2c7718fbe9003ed7a2480d578264389c', name: "primary", onSlotchange: this.updateHasPrimarySlotContent }), h("div", { key: '4005660d80f8607d52c8eccd7ff04bb238c21f86', class: "value-group" }, this.renderPrefix(), h("div", { key: '884a1b013fe8720783894fb5c99c13d8289d343d', class: "value-and-suffix" }, this.renderValue(), this.renderSuffix()), this.renderSpinner()), this.renderLabel(), h("limel-3d-hover-effect-glow", { key: '9567012a0a77a8ad43e73f3872e9bb4cc22afe58' })), this.renderNotification()));
119
+ } }, this.renderIcon(), this.renderProgress(), h("slot", { key: '5133aac5b5f86165009946bcfa498a6d7a93d0ac', name: "primary", onSlotchange: this.updateHasPrimarySlotContent }), h("div", { key: '53df85a8b3229b3cc25af42f998d4605810546ae', class: "value-group" }, this.renderPrefix(), h("div", { key: 'dcf7509dfcd104885036dd0e16c391e1a2e7ff07', class: "value-and-suffix" }, this.renderValue(), this.renderSuffix()), this.renderSpinner()), this.renderLabel(), h("limel-3d-hover-effect-glow", { key: '62ae587e9e96f39102f1a00211f3fe9825edea44' })), this.renderNotification()));
115
120
  }
116
121
  checkProps(propValue) {
117
122
  return propValue ? propValue + ' ' : '';
@@ -27810,9 +27810,112 @@ function tableEditing({ allowTableNodeSelection = false } = {}) {
27810
27810
  });
27811
27811
  }
27812
27812
 
27813
+ const createTablePastePlugin = () => {
27814
+ return new Plugin({
27815
+ key: new PluginKey('tablePastePlugin'),
27816
+ props: {
27817
+ handlePaste: (view, _event, slice) => {
27818
+ return handleTablePaste(view, slice);
27819
+ },
27820
+ },
27821
+ });
27822
+ };
27823
+ // prosemirror-tables pastes a cell grid over the existing cells. Unless the
27824
+ // user selected cells explicitly, pasted cells become rows of the table (or
27825
+ // a new table) instead.
27826
+ const handleTablePaste = (view, slice) => {
27827
+ const { state } = view;
27828
+ if (state.selection instanceof CellSelection || !isInTable(state)) {
27829
+ return false;
27830
+ }
27831
+ const rows = pastedRows(slice, state.schema);
27832
+ if (!rows && !containsTableAmongBlocks(slice)) {
27833
+ return false;
27834
+ }
27835
+ const tr = state.tr.deleteSelection();
27836
+ const $cell = cellAround(tr.selection.$head);
27837
+ if (rows) {
27838
+ insertRows(tr, $cell, rows);
27839
+ }
27840
+ else {
27841
+ insertBlocks(tr, $cell, slice.content);
27842
+ }
27843
+ view.dispatch(tr.scrollIntoView());
27844
+ return true;
27845
+ };
27846
+ const insertRows = (tr, $cell, rows) => {
27847
+ const table = tableNodeTypes(tr.doc.type.schema).table.create(null, rows);
27848
+ if ($cell && rowsFitBelow($cell, TableMap.get(table).width)) {
27849
+ insertAt(tr, $cell.after(), rows);
27850
+ return;
27851
+ }
27852
+ insertBlocks(tr, $cell, Fragment.from(table));
27853
+ };
27854
+ const insertBlocks = (tr, $cell, blocks) => {
27855
+ if ($cell) {
27856
+ insertAt(tr, $cell.after(-1), blocks);
27857
+ return;
27858
+ }
27859
+ tr.replaceSelection(new Slice(blocks, 0, 0));
27860
+ };
27861
+ const insertAt = (tr, pos, content) => {
27862
+ const step = tr.steps.length;
27863
+ tr.insert(pos, content);
27864
+ const end = tr.mapping.slice(step).mapResult(pos, 1).pos;
27865
+ tr.setSelection(Selection.near(tr.doc.resolve(end), -1));
27866
+ };
27867
+ // A new row would split any cell spanning the boundary below the caret's row.
27868
+ const rowsFitBelow = ($cell, width) => {
27869
+ const map = TableMap.get($cell.node(-1));
27870
+ if (width !== map.width) {
27871
+ return false;
27872
+ }
27873
+ const boundary = map.findCell($cell.pos - $cell.start(-1)).top + 1;
27874
+ if (boundary >= map.height) {
27875
+ return true;
27876
+ }
27877
+ for (let col = 0; col < map.width; col++) {
27878
+ const above = map.map[(boundary - 1) * map.width + col];
27879
+ const below = map.map[boundary * map.width + col];
27880
+ if (above === below) {
27881
+ return false;
27882
+ }
27883
+ }
27884
+ return true;
27885
+ };
27886
+ // Reads the slice the way prosemirror-tables does: strip the wrappers a copy
27887
+ // from inside a table leaves around the content, then accept rows or cells.
27888
+ const pastedRows = (slice, schema) => {
27889
+ var _a;
27890
+ let { content, openStart, openEnd } = slice;
27891
+ while (content.childCount === 1 &&
27892
+ ((openStart > 0 && openEnd > 0) ||
27893
+ content.firstChild.type.spec.tableRole === 'table')) {
27894
+ openStart--;
27895
+ openEnd--;
27896
+ content = content.firstChild.content;
27897
+ }
27898
+ const role = (_a = content.firstChild) === null || _a === void 0 ? void 0 : _a.type.spec.tableRole;
27899
+ if (role === 'row') {
27900
+ return content;
27901
+ }
27902
+ if (role === 'cell' || role === 'header_cell') {
27903
+ return Fragment.from(tableNodeTypes(schema).row.create(null, content));
27904
+ }
27905
+ return null;
27906
+ };
27907
+ const containsTableAmongBlocks = (slice) => {
27908
+ if (slice.content.childCount < 2) {
27909
+ return false;
27910
+ }
27911
+ return slice.content.content.some((block) => block.type.spec.tableRole === 'table');
27912
+ };
27913
+
27813
27914
  const getTableEditingPlugins = (tablesEnabled) => {
27814
27915
  if (tablesEnabled) {
27815
- return [tableEditing()];
27916
+ // The paste plugin must precede tableEditing(), whose own
27917
+ // handlePaste would otherwise consume table pastes first.
27918
+ return [createTablePastePlugin(), tableEditing()];
27816
27919
  }
27817
27920
  return [];
27818
27921
  };
@@ -28045,7 +28148,7 @@ function areFrequencyMapsEqual(map1, map2) {
28045
28148
  return true;
28046
28149
  }
28047
28150
 
28048
- const prosemirrorAdapterCss = () => `@charset "UTF-8";blockquote{position:relative;max-width:100%;margin:0.75rem 0;padding:0.5rem;border-left:0.25rem solid rgb(var(--contrast-500));background-color:rgb(var(--contrast-200))}blockquote:before,blockquote:after{position:absolute;line-height:0;font-size:2rem;opacity:0.4}blockquote:before{content:"“";left:-0.5rem;top:0.5rem}blockquote:after{content:"”";right:-0.25rem;bottom:-0.25rem}blockquote blockquote{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0.25rem;border-color:rgb(var(--contrast-700));border-left-width:1px}blockquote blockquote:before,blockquote blockquote:after{display:none}blockquote:has(>blockquote){padding-left:0.25rem;padding-bottom:0}:host(limel-markdown.truncate-paragraphs) p{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}p,li{font-size:var(--limel-theme-default-font-size);word-break:break-word}a{word-break:break-all}p{margin-top:0;margin-bottom:0.5rem}p:last-child{margin-bottom:0}a{transition:color 0.2s ease;color:var(--markdown-hyperlink-color, rgb(var(--color-blue-dark)));text-decoration:none}a:hover{color:var(--markdown-hyperlink-color--hovered, rgb(var(--color-blue-default)))}hr{margin:1.75rem 0 2rem 0;border-width:0;border-top:1px solid rgb(var(--contrast-500))}dl{display:grid;grid-template-columns:1fr 2fr;grid-template-rows:1fr;margin-bottom:2rem;border:1px solid rgb(var(--contrast-400));border-radius:0.375rem;background-color:rgb(var(--contrast-200))}dl dt,dl dd{padding:0.375rem 0.5rem;font-size:var(--limel-theme-default-font-size);margin:0}dl dt:nth-of-type(even),dl dd:nth-of-type(even){background-color:rgb(var(--contrast-300))}dl dt:first-child{border-top-left-radius:0.375rem}dl dt:last-child{border-bottom-left-radius:0.375rem}dl dd:first-child{border-top-right-radius:0.375rem}dl dd:last-child{border-bottom-right-radius:0.375rem}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}h4{font-size:1rem}h5{font-size:var(--limel-theme-default-font-size)}h6{font-size:0.75rem}h1,h2{margin-top:0.5rem;margin-bottom:0.5rem;letter-spacing:-0.03125rem;font-weight:500}h3,h4{margin-top:0.75rem;margin-bottom:0.25rem;font-weight:600}h5,h6{margin-top:0.5rem;margin-bottom:0.125rem;font-weight:600}h1,h2,h3,h4,h5,h6{word-break:break-word;hyphens:auto;-webkit-hyphens:auto}h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{font-size:inherit}:not([contenteditable=true]) h1,:not([contenteditable=true]) h2,:not([contenteditable=true]) h3,:not([contenteditable=true]) h4,:not([contenteditable=true]) h5,:not([contenteditable=true]) h6{text-wrap:balance}[contenteditable=true] h1,[contenteditable=true] h2,[contenteditable=true] h3,[contenteditable=true] h4,[contenteditable=true] h5,[contenteditable=true] h6{text-wrap:initial}ul{list-style:none}ul>li{margin-left:0.75rem}ul>li:before{content:"";position:absolute;left:-0.5rem;top:0.5rem;width:0.25rem;height:0.25rem;border-radius:50%;background-color:rgb(var(--contrast-700));display:block}ol{margin-top:0.25rem;padding-left:1rem}ul{margin-top:0.25rem;padding-left:0}ul ul,ul ol,ol ol,ol ul{margin-left:0}li{position:relative;margin-bottom:0.25rem}pre,pre p,code{font-family:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;font-size:0.75rem}pre{max-width:100%;white-space:pre-wrap;word-wrap:break-word}code{letter-spacing:-0.0125rem;color:rgb(var(--contrast-1300));tab-size:4;hyphens:none;display:inline;border-radius:0.25rem;padding:0.03125rem 0.25rem;background-color:rgb(var(--contrast-600))}pre>code{display:block;margin:0.5rem 0;padding:0.5rem 0.75rem}:host(limel-markdown:not(.no-table-styles)) table{table-layout:auto;min-width:100%;border-collapse:collapse;border-spacing:0;background:transparent;margin:0.75rem 0}:host(limel-markdown:not(.no-table-styles)) tbody{border:1px solid rgb(var(--contrast-400));border-radius:0.25rem}:host(limel-markdown:not(.no-table-styles)) th,:host(limel-markdown:not(.no-table-styles)) td{text-align:left;vertical-align:top;transition:background-color 0.2s ease;font-size:var(--limel-theme-default-font-size)}:host(limel-markdown:not(.no-table-styles)) th p,:host(limel-markdown:not(.no-table-styles)) th li,:host(limel-markdown:not(.no-table-styles)) th a,:host(limel-markdown:not(.no-table-styles)) td p,:host(limel-markdown:not(.no-table-styles)) td li,:host(limel-markdown:not(.no-table-styles)) td a{word-break:normal;overflow-wrap:normal}:host(limel-markdown:not(.no-table-styles)) td{padding:0.5rem 0.375rem 0.75rem 0.375rem}:host(limel-markdown:not(.no-table-styles)) tr th{background-color:rgb(var(--contrast-400));padding:0.25rem 0.375rem;font-weight:normal}:host(limel-markdown:not(.no-table-styles)) tr th:only-child{text-align:center}:host(limel-markdown:not(.no-table-styles)) tbody tr:nth-child(odd) td{background-color:rgb(var(--contrast-200))}:host(limel-markdown:not(.no-table-styles)) tbody tr:hover td{background-color:rgb(var(--contrast-300))}table{display:block;box-sizing:border-box;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}kbd{display:inline-block;font-family:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;font-weight:600;color:rgb(var(--contrast-1100));white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:normal;border-radius:0.125rem;border-style:solid;border-color:rgb(var(--contrast-500));border-width:0 1px 0.1875rem 1px;padding:0.0625rem 0.375rem;margin:0 0.25rem;background-color:rgb(var(--contrast-200));box-shadow:var(--button-shadow-normal), 0 0.625rem 0.375rem -0.5rem rgb(var(--color-black), 0.02), 0 0.025rem 0.5rem 0 rgb(var(--contrast-100)) inset}img{max-width:100%;border-radius:0.25rem}.image-wrapper{display:inline-flex;position:relative}.image-wrapper limel-linear-progress{position:absolute;inset:0.25rem auto auto 0.25rem;width:calc(100% - 0.5rem)}.image-wrapper img{transition:opacity 0.2s ease, scale 0.6s ease}.image-wrapper.state-failed,.image-wrapper.state-loading{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%208%208'%20style='fill-rule:evenodd;'%3E%3Cpath%20fill='rgba(186,186,192,0.16)'%20d='M0%200h4v4H0zM4%204h4v4H4z'/%3E%3C/svg%3E");background-size:0.5rem}.image-wrapper.state-failed img,.image-wrapper.state-loading img{opacity:0.3;scale:0.98}.image-wrapper::before{pointer-events:none;content:"";display:block;position:absolute;inset:0;border-radius:0.25rem;transition:border-color 0.4s ease, opacity 0.2s ease, box-shadow 0.6s ease;border:1px dashed transparent;opacity:0.2}.image-wrapper.state-failed img{filter:grayscale(0.8)}.image-wrapper.state-failed:before{opacity:0.8;box-shadow:var(--shadow-error-state)}.image-wrapper:hover::before{opacity:0.8;box-shadow:var(--shadow-depth-8)}.image-wrapper:has(.resize-handle[aria-grabbed=true])::before{border-color:var(--lime-primary-color, var(--limel-theme-primary-color));opacity:0.8;box-shadow:var(--shadow-depth-16), var(--shadow-depth-8)}.resize-handle{transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:rgb(var(--contrast-900));box-shadow:var(--button-shadow-normal)}.resize-handle:hover,.resize-handle:focus,.resize-handle:focus-visible{will-change:color, background-color, box-shadow, transform}.resize-handle:hover,.resize-handle:focus-visible{transform:translate3d(0, -0.04rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}.resize-handle:active{--limel-clickable-transform-timing-function:cubic-bezier( 0.83, -0.15, 0.49, 1.16 );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}.resize-handle:hover,.resize-handle:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}.resize-handle:focus{outline:none}.resize-handle:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.resize-handle{cursor:nwse-resize;position:absolute;display:flex;align-items:center;justify-content:center;width:0.5rem;height:0.5rem;border-radius:50%}.resize-handle.top-left{left:-0.25rem;top:-0.25rem;translate:-50%, -50%}.resize-handle.bottom-right{right:-0.25rem;bottom:-0.25rem;translate:50%, 50%}.resize-handle{opacity:0.6}.resize-wrapper:has(.resize-handle[aria-grabbed=true]) .resize-handle,.resize-wrapper:hover .resize-handle,.resize-handle:hover,.resize-handle:focus-visible{opacity:1}.resize-handle[aria-grabbed=true],.resize-handle:hover,.resize-handle:focus-visible{opacity:1;background-color:var(--lime-primary-color, var(--limel-theme-primary-color))}.resize-handle:hover,.resize-handle[aria-grabbed=true]{scale:1.4}.resize-handle:hover:before,.resize-handle[aria-grabbed=true]:before{background-color:rgb(var(--color-white))}.resize-handle:before{content:"";display:block;position:absolute;inset:0;margin:auto;border-radius:50%;width:0.25rem;height:0.25rem;background-color:rgb(var(--contrast-100))}:host(limel-prosemirror-adapter){display:flex;flex-direction:column}:host(limel-prosemirror-adapter) .toolbar{order:1}:host(limel-prosemirror-adapter) div#editor{order:2;height:100%;flex-grow:1}:host(limel-prosemirror-adapter) div[contenteditable=true]{height:100%}*{box-sizing:border-box}:host(limel-prosemirror-adapter:hover) .toolbar,:host(limel-prosemirror-adapter:focus-within) .toolbar{will-change:grid-template-rows}:host(limel-prosemirror-adapter:hover) limel-action-bar,:host(limel-prosemirror-adapter:focus-within) limel-action-bar{will-change:opacity, padding}.ProseMirror-menubar-wrapper{display:grid;grid-template-rows:auto 1fr}.ProseMirror-textblock-dropdown{min-width:3em}.ProseMirror-tooltip .ProseMirror-menu{width:-webkit-fit-content;width:fit-content;white-space:pre}.toolbar{--action-bar-border-radius:0.25rem;border-radius:var(--action-bar-border-radius);flex-shrink:0;position:sticky;z-index:1;top:0;width:100%;display:grid;grid-template-rows:var(--limel-prosemirror-adapter-toolbar-grid-template-rows);transition-property:grid-template-rows;transition-duration:var(--limel-prosemirror-adapter-toolbar-grid-template-rows-transition-duration);transition-timing-function:var(--limel-prosemirror-adapter-toolbar-transition-timing-function);background-color:rgba(var(--contrast-200), 0.5);backdrop-filter:blur(0.5rem);-webkit-backdrop-filter:blur(0.5rem)}limel-action-bar{min-width:0;transition-property:padding, opacity;transition-duration:var(--limel-prosemirror-adapter-toolbar-grid-template-rows-transition-duration);transition-timing-function:var(--limel-prosemirror-adapter-toolbar-transition-timing-function);opacity:var(--limel-prosemirror-adapter-toolbar-opacity);padding:var(--limel-prosemirror-adapter-action-bar-padding-top-bottom, 0.125rem) 0.25rem;background-color:transparent;overflow:hidden}.ProseMirror{position:relative;word-wrap:break-word;white-space:pre-wrap;white-space:break-spaces;-webkit-font-variant-ligatures:none;font-variant-ligatures:none;font-feature-settings:"liga" 0;padding:var(--limel-text-editor-padding)}.ProseMirror [draggable][contenteditable=false]{user-select:text}.ProseMirror:focus-visible{outline:none}.ProseMirror-hideselection *::selection{background:transparent}.ProseMirror-hideselection *::-moz-selection{background:transparent}.ProseMirror-hideselection{caret-color:transparent}.ProseMirror-selectednode{outline:0.125rem solid rgb(var(--color-sky-light))}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:"";position:absolute;left:-2rem;right:-0.125rem;top:-0.125rem;bottom:-0.125rem;border:0.125rem solid rgb(var(--color-sky-light));pointer-events:none}img.ProseMirror-separator{display:inline !important;border:none !important;margin:0 !important}limel-portal{width:25rem}`;
28151
+ const prosemirrorAdapterCss = () => `@charset "UTF-8";blockquote{position:relative;max-width:100%;margin:0.75rem 0;padding:0.5rem;border-left:0.25rem solid rgb(var(--contrast-500));background-color:rgb(var(--contrast-200))}blockquote:before,blockquote:after{position:absolute;line-height:0;font-size:2rem;opacity:0.4}blockquote:before{content:"“";left:-0.5rem;top:0.5rem}blockquote:after{content:"”";right:-0.25rem;bottom:-0.25rem}blockquote blockquote{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0.25rem;border-color:rgb(var(--contrast-700));border-left-width:1px}blockquote blockquote:before,blockquote blockquote:after{display:none}blockquote:has(>blockquote){padding-left:0.25rem;padding-bottom:0}:host(limel-markdown.truncate-paragraphs) p{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}p,li{font-size:var(--limel-theme-default-font-size);word-break:break-word}a{word-break:break-all}p{margin-top:0;margin-bottom:0.5rem}p:last-child{margin-bottom:0}a{transition:color 0.2s ease;color:var(--markdown-hyperlink-color, rgb(var(--color-blue-dark)));text-decoration:none}a:hover{color:var(--markdown-hyperlink-color--hovered, rgb(var(--color-blue-default)))}hr{margin:1.75rem 0 2rem 0;border-width:0;border-top:1px solid rgb(var(--contrast-500))}dl{display:grid;grid-template-columns:1fr 2fr;grid-template-rows:1fr;margin-bottom:2rem;border:1px solid rgb(var(--contrast-400));border-radius:0.375rem;background-color:rgb(var(--contrast-200))}dl dt,dl dd{padding:0.375rem 0.5rem;font-size:var(--limel-theme-default-font-size);margin:0}dl dt:nth-of-type(even),dl dd:nth-of-type(even){background-color:rgb(var(--contrast-300))}dl dt:first-child{border-top-left-radius:0.375rem}dl dt:last-child{border-bottom-left-radius:0.375rem}dl dd:first-child{border-top-right-radius:0.375rem}dl dd:last-child{border-bottom-right-radius:0.375rem}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}h4{font-size:1rem}h5{font-size:var(--limel-theme-default-font-size)}h6{font-size:0.75rem}h1,h2{margin-top:0.5rem;margin-bottom:0.5rem;letter-spacing:-0.03125rem;font-weight:500}h3,h4{margin-top:0.75rem;margin-bottom:0.25rem;font-weight:600}h5,h6{margin-top:0.5rem;margin-bottom:0.125rem;font-weight:600}h1,h2,h3,h4,h5,h6{word-break:break-word;hyphens:auto;-webkit-hyphens:auto}h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{font-size:inherit}:not([contenteditable=true]) h1,:not([contenteditable=true]) h2,:not([contenteditable=true]) h3,:not([contenteditable=true]) h4,:not([contenteditable=true]) h5,:not([contenteditable=true]) h6{text-wrap:balance}[contenteditable=true] h1,[contenteditable=true] h2,[contenteditable=true] h3,[contenteditable=true] h4,[contenteditable=true] h5,[contenteditable=true] h6{text-wrap:initial}ul{list-style:none}ul>li{margin-left:0.75rem}ul>li:before{content:"";position:absolute;left:-0.5rem;top:0.5rem;width:0.25rem;height:0.25rem;border-radius:50%;background-color:rgb(var(--contrast-700));display:block}ol{margin-top:0.25rem;padding-left:1rem}ul{margin-top:0.25rem;padding-left:0}ul ul,ul ol,ol ol,ol ul{margin-left:0}li{position:relative;margin-bottom:0.25rem}pre,pre p,code{font-family:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;font-size:0.75rem}pre{max-width:100%;white-space:pre-wrap;word-wrap:break-word}code{letter-spacing:-0.0125rem;color:rgb(var(--contrast-1300));tab-size:4;hyphens:none;display:inline;border-radius:0.25rem;padding:0.03125rem 0.25rem;background-color:rgb(var(--contrast-600))}pre>code{display:block;margin:0.5rem 0;padding:0.5rem 0.75rem}:host(limel-markdown:not(.no-table-styles)) table{table-layout:auto;min-width:100%;border-collapse:collapse;border-spacing:0;background:transparent;margin:0.75rem 0}:host(limel-markdown:not(.no-table-styles)) tbody{border:1px solid rgb(var(--contrast-400));border-radius:0.25rem}:host(limel-markdown:not(.no-table-styles)) th,:host(limel-markdown:not(.no-table-styles)) td{text-align:left;vertical-align:top;transition:background-color 0.2s ease;font-size:var(--limel-theme-default-font-size)}:host(limel-markdown:not(.no-table-styles)) th p,:host(limel-markdown:not(.no-table-styles)) th li,:host(limel-markdown:not(.no-table-styles)) th a,:host(limel-markdown:not(.no-table-styles)) td p,:host(limel-markdown:not(.no-table-styles)) td li,:host(limel-markdown:not(.no-table-styles)) td a{word-break:normal;overflow-wrap:normal}:host(limel-markdown:not(.no-table-styles)) td{padding:0.5rem 0.375rem 0.75rem 0.375rem}:host(limel-markdown:not(.no-table-styles)) tr th{background-color:rgb(var(--contrast-400));padding:0.25rem 0.375rem;font-weight:normal}:host(limel-markdown:not(.no-table-styles)) tr th:only-child{text-align:center}:host(limel-markdown:not(.no-table-styles)) tbody tr:nth-child(odd) td{background-color:rgb(var(--contrast-200))}:host(limel-markdown:not(.no-table-styles)) tbody tr:hover td{background-color:rgb(var(--contrast-300))}table{display:block;box-sizing:border-box;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}kbd{display:inline-block;font-family:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;font-weight:600;color:rgb(var(--contrast-1100));white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:normal;border-radius:0.125rem;border-style:solid;border-color:rgb(var(--contrast-500));border-width:0 1px 0.1875rem 1px;padding:0.0625rem 0.375rem;margin:0 0.25rem;background-color:rgb(var(--contrast-200));box-shadow:var(--button-shadow-normal), 0 0.625rem 0.375rem -0.5rem rgb(var(--color-black), 0.02), 0 0.025rem 0.5rem 0 rgb(var(--contrast-100)) inset}img{max-width:100%;border-radius:0.25rem}.image-wrapper{display:inline-flex;position:relative}.image-wrapper limel-linear-progress{position:absolute;inset:0.25rem auto auto 0.25rem;width:calc(100% - 0.5rem)}.image-wrapper img{transition:opacity 0.2s ease, scale 0.6s ease}.image-wrapper.state-failed,.image-wrapper.state-loading{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%208%208'%20style='fill-rule:evenodd;'%3E%3Cpath%20fill='rgba(186,186,192,0.16)'%20d='M0%200h4v4H0zM4%204h4v4H4z'/%3E%3C/svg%3E");background-size:0.5rem}.image-wrapper.state-failed img,.image-wrapper.state-loading img{opacity:0.3;scale:0.98}.image-wrapper::before{pointer-events:none;content:"";display:block;position:absolute;inset:0;border-radius:0.25rem;transition:border-color 0.4s ease, opacity 0.2s ease, box-shadow 0.6s ease;border:1px dashed transparent;opacity:0.2}.image-wrapper.state-failed img{filter:grayscale(0.8)}.image-wrapper.state-failed:before{opacity:0.8;box-shadow:var(--shadow-error-state)}.image-wrapper:hover::before{opacity:0.8;box-shadow:var(--shadow-depth-8)}.image-wrapper:has(.resize-handle[aria-grabbed=true])::before{border-color:var(--lime-primary-color, var(--limel-theme-primary-color));opacity:0.8;box-shadow:var(--shadow-depth-16), var(--shadow-depth-8)}.resize-handle{transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:rgb(var(--contrast-900));box-shadow:var(--button-shadow-normal)}.resize-handle:hover,.resize-handle:focus,.resize-handle:focus-visible{will-change:color, background-color, box-shadow, transform}.resize-handle:hover,.resize-handle:focus-visible{transform:translate3d(0, -0.04rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}.resize-handle:active{--limel-clickable-transform-timing-function:cubic-bezier( 0.83, -0.15, 0.49, 1.16 );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}.resize-handle:hover,.resize-handle:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}.resize-handle:focus{outline:none}.resize-handle:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.resize-handle{cursor:nwse-resize;position:absolute;display:flex;align-items:center;justify-content:center;width:0.5rem;height:0.5rem;border-radius:50%}.resize-handle.top-left{left:-0.25rem;top:-0.25rem;translate:-50%, -50%}.resize-handle.bottom-right{right:-0.25rem;bottom:-0.25rem;translate:50%, 50%}.resize-handle{opacity:0.6}.resize-wrapper:has(.resize-handle[aria-grabbed=true]) .resize-handle,.resize-wrapper:hover .resize-handle,.resize-handle:hover,.resize-handle:focus-visible{opacity:1}.resize-handle[aria-grabbed=true],.resize-handle:hover,.resize-handle:focus-visible{opacity:1;background-color:var(--lime-primary-color, var(--limel-theme-primary-color))}.resize-handle:hover,.resize-handle[aria-grabbed=true]{scale:1.4}.resize-handle:hover:before,.resize-handle[aria-grabbed=true]:before{background-color:rgb(var(--color-white))}.resize-handle:before{content:"";display:block;position:absolute;inset:0;margin:auto;border-radius:50%;width:0.25rem;height:0.25rem;background-color:rgb(var(--contrast-100))}:host(limel-prosemirror-adapter){display:flex;flex-direction:column}:host(limel-prosemirror-adapter) table{border-collapse:collapse;margin:0.75rem 0}:host(limel-prosemirror-adapter) th,:host(limel-prosemirror-adapter) td{border:1px solid rgb(var(--contrast-400));padding:0.25rem 0.375rem;text-align:left;vertical-align:top}:host(limel-prosemirror-adapter) .toolbar{order:1}:host(limel-prosemirror-adapter) div#editor{order:2;height:100%;flex-grow:1}:host(limel-prosemirror-adapter) div[contenteditable=true]{height:100%}*{box-sizing:border-box}:host(limel-prosemirror-adapter:hover) .toolbar,:host(limel-prosemirror-adapter:focus-within) .toolbar{will-change:grid-template-rows}:host(limel-prosemirror-adapter:hover) limel-action-bar,:host(limel-prosemirror-adapter:focus-within) limel-action-bar{will-change:opacity, padding}.ProseMirror-menubar-wrapper{display:grid;grid-template-rows:auto 1fr}.ProseMirror-textblock-dropdown{min-width:3em}.ProseMirror-tooltip .ProseMirror-menu{width:-webkit-fit-content;width:fit-content;white-space:pre}.toolbar{--action-bar-border-radius:0.25rem;border-radius:var(--action-bar-border-radius);flex-shrink:0;position:sticky;z-index:1;top:0;width:100%;display:grid;grid-template-rows:var(--limel-prosemirror-adapter-toolbar-grid-template-rows);transition-property:grid-template-rows;transition-duration:var(--limel-prosemirror-adapter-toolbar-grid-template-rows-transition-duration);transition-timing-function:var(--limel-prosemirror-adapter-toolbar-transition-timing-function);background-color:rgba(var(--contrast-200), 0.5);backdrop-filter:blur(0.5rem);-webkit-backdrop-filter:blur(0.5rem)}limel-action-bar{min-width:0;transition-property:padding, opacity;transition-duration:var(--limel-prosemirror-adapter-toolbar-grid-template-rows-transition-duration);transition-timing-function:var(--limel-prosemirror-adapter-toolbar-transition-timing-function);opacity:var(--limel-prosemirror-adapter-toolbar-opacity);padding:var(--limel-prosemirror-adapter-action-bar-padding-top-bottom, 0.125rem) 0.25rem;background-color:transparent;overflow:hidden}.ProseMirror{position:relative;word-wrap:break-word;white-space:pre-wrap;white-space:break-spaces;-webkit-font-variant-ligatures:none;font-variant-ligatures:none;font-feature-settings:"liga" 0;padding:var(--limel-text-editor-padding)}.ProseMirror [draggable][contenteditable=false]{user-select:text}.ProseMirror:focus-visible{outline:none}.ProseMirror-hideselection *::selection{background:transparent}.ProseMirror-hideselection *::-moz-selection{background:transparent}.ProseMirror-hideselection{caret-color:transparent}.ProseMirror-selectednode{outline:0.125rem solid rgb(var(--color-sky-light))}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:"";position:absolute;left:-2rem;right:-0.125rem;top:-0.125rem;bottom:-0.125rem;border:0.125rem solid rgb(var(--color-sky-light));pointer-events:none}img.ProseMirror-separator{display:inline !important;border:none !important;margin:0 !important}limel-portal{width:25rem}`;
28049
28152
 
28050
28153
  const DEBOUNCE_TIMEOUT = 300;
28051
28154
  const ProsemirrorAdapter = class {
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h, H as Host, a as getElement } from './index-BGxJfR2f.js';
2
2
  import { g as getRel } from './link-helper-5KsJICvh.js';
3
- import { g as getMouseEventHandlers } from './3d-tilt-hover-effect-5eP2N9QI.js';
3
+ import { g as getMouseEventHandlers } from './3d-tilt-hover-effect-CllX3RLB.js';
4
4
 
5
5
  const shortcutCss = () => `@charset "UTF-8";:host(limel-shortcut){--badge-text-color:var( --shortcut-badge-text-color, rgb(var(--color-white)) );--badge-background-color:var( --shortcut-badge-background-color, rgb(var(--color-red-default)) );position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;row-gap:0.0625rem}:host(limel-shortcut) *{box-sizing:border-box}:host(limel-shortcut[disabled]) a{opacity:0.5;box-shadow:unset;cursor:not-allowed}a{all:unset;text-align:center;height:calc(100% - 1rem);width:calc(100% - 1rem);padding:0.5rem;border-radius:var(--shortcut-border-radius, 1rem);background-color:var(--shortcut-background-color, var(--lime-elevated-surface-background-color))}limel-icon{display:flex;height:100%;width:100%;justify-content:center;color:var(--shortcut-icon-color, rgb(var(--contrast-1000)));border-radius:var(--shortcut-border-radius, 1rem)}span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%;color:var(--shortcut-label-color, rgb(var(--contrast-1100)));font-size:0.75rem;text-align:center}limel-badge{position:absolute;top:-0.25rem;right:0.125rem}limel-3d-hover-effect-glow{border-radius:var(--shortcut-border-radius, 1rem)}:host(limel-shortcut){isolation:isolate;transform-style:preserve-3d;perspective:1000px}@media (prefers-reduced-motion){:host(limel-shortcut){perspective:2000px}}a{position:relative;transition-duration:0.8s;transition-property:transform, box-shadow, background-color;transition-timing-function:ease-out;transform:scale3d(1, 1, 1) rotate3d(0, 0, 0, 0deg)}a:focus{outline:none}a:hover,a:focus,a:focus-visible,a:focus-within{will-change:background-color, box-shadow, transform}a:hover,a:focus,a:focus-visible,a:active{transition-duration:0.2s}a:hover,a:focus-visible{box-shadow:var(--button-shadow-hovered), var(--shadow-depth-16)}a:hover{transform:scale3d(1.01, 1.01, 1.01) rotate3d(var(--limel-3d-hover-effect-rotate3d))}a:focus-visible{outline:none;transform:scale3d(1.01, 1.01, 1.01)}a:hover limel-3d-hover-effect-glow{--limel-3d-hover-effect-glow-opacity:0.5}@media (prefers-reduced-motion){a:hover limel-3d-hover-effect-glow{--limel-3d-hover-effect-glow-opacity:0.2}}a{cursor:pointer;box-shadow:var(--button-shadow-normal)}a:hover,a:focus-visible{box-shadow:var(--button-shadow-hovered), var(--shadow-depth-16)}a:active{transform:scale3d(1, 1, 1) rotate3d(0, 0, 0, 0deg);box-shadow:var(--button-shadow-pressed)}a:focus-visible{box-shadow:var(--shadow-depth-8-focused), var(--button-shadow-hovered)}a:focus-visible:active{box-shadow:var(--shadow-depth-8-focused), var(--button-shadow-pressed)}`;
6
6
 
@@ -39,14 +39,19 @@ const Shortcut = class {
39
39
  };
40
40
  }
41
41
  componentWillLoad() {
42
- const { handleMouseEnter, handleMouseLeave } = getMouseEventHandlers(this.host);
42
+ const { handleMouseEnter, handleMouseLeave, cleanup } = getMouseEventHandlers(this.host);
43
43
  this.handleMouseEnter = handleMouseEnter;
44
44
  this.handleMouseLeave = handleMouseLeave;
45
+ this.cleanup3dHoverEffect = cleanup;
46
+ }
47
+ disconnectedCallback() {
48
+ var _a;
49
+ (_a = this.cleanup3dHoverEffect) === null || _a === void 0 ? void 0 : _a.call(this);
45
50
  }
46
51
  render() {
47
52
  var _a, _b, _c, _d, _e;
48
53
  const rel = getRel((_a = this.link) === null || _a === void 0 ? void 0 : _a.target, (_b = this.link) === null || _b === void 0 ? void 0 : _b.rel);
49
- return (h(Host, { key: '3abb45f22a424174b48296c760402eaae504dac7', onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, h("a", { key: 'df8021a9f304de60a78636d6ec762cf0a19e2134', "aria-disabled": this.disabled, href: (_c = this.link) === null || _c === void 0 ? void 0 : _c.href, target: (_d = this.link) === null || _d === void 0 ? void 0 : _d.target, rel: rel, tabindex: "0", "aria-label": this.getAriaLabel(), title: (_e = this.link) === null || _e === void 0 ? void 0 : _e.title }, h("limel-icon", { key: '010778f1b12551112f710b72b1697e507e9a6616', name: this.icon }), h("limel-3d-hover-effect-glow", { key: 'e781eb20e621624c241ed98dba9f1c3b141e67a7' })), this.renderLabel(), this.renderNotification()));
54
+ return (h(Host, { key: '5182738d7d2e8c2df2aa019631af021260b6b506', onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, h("a", { key: 'ed8ae8d341aca2d64376c0b154b41b03d1d08073', "aria-disabled": this.disabled, href: (_c = this.link) === null || _c === void 0 ? void 0 : _c.href, target: (_d = this.link) === null || _d === void 0 ? void 0 : _d.target, rel: rel, tabindex: "0", "aria-label": this.getAriaLabel(), title: (_e = this.link) === null || _e === void 0 ? void 0 : _e.title }, h("limel-icon", { key: '0bc411ed33a695dbd2dc25689895ed2fc10d15b7', name: this.icon }), h("limel-3d-hover-effect-glow", { key: 'e57726bde3911492fbab47219fd0b36db2d1a122' })), this.renderLabel(), this.renderNotification()));
50
55
  }
51
56
  get host() { return getElement(this); }
52
57
  };