@intechstudio/grid-uikit 1.20260901.1149 → 1.20260912.933

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.
@@ -5,14 +5,12 @@
5
5
  export let style: "normal" | "outlined" | "accept" = "normal";
6
6
  export let snap: "auto" | "full" | "wide" = "auto";
7
7
  export let disabled: boolean = false;
8
- export let popup: { duration?: number } | undefined = undefined;
9
8
  export let click: (...args: any) => void;
10
9
  export let options: any = undefined;
11
10
  export let target: any = undefined;
12
11
  export let decorations: string[] = [];
13
12
  export let grouped: boolean = false;
14
13
 
15
- let showPopup: boolean = false;
16
14
  let element: HTMLButtonElement;
17
15
  let selectedLabel = "";
18
16
 
@@ -53,13 +51,6 @@
53
51
  <button
54
52
  bind:this={element}
55
53
  on:click={(e) => {
56
- if (!showPopup && popup) {
57
- showPopup = true;
58
- setTimeout(() => {
59
- showPopup = false;
60
- }, popup?.duration ?? 3000);
61
- }
62
-
63
54
  if (typeof click !== "undefined") {
64
55
  click();
65
56
  }
@@ -81,10 +72,6 @@
81
72
  {/if}
82
73
  {/if}
83
74
  </button>
84
-
85
- {#if showPopup}
86
- <slot name="popup" />
87
- {/if}
88
75
  </div>
89
76
 
90
77
  <style>
@@ -16,9 +16,6 @@ declare const MoltenPushButton: $$__sveltets_2_IsomorphicComponent<{
16
16
  style?: "normal" | "outlined" | "accept";
17
17
  snap?: "auto" | "full" | "wide";
18
18
  disabled?: boolean;
19
- popup?: {
20
- duration?: number;
21
- } | undefined;
22
19
  click: (...args: any) => void;
23
20
  options?: any;
24
21
  target?: any;
@@ -30,7 +27,6 @@ declare const MoltenPushButton: $$__sveltets_2_IsomorphicComponent<{
30
27
  [evt: string]: CustomEvent<any>;
31
28
  }, {
32
29
  content: {};
33
- popup: {};
34
30
  }, {
35
31
  focus: () => void;
36
32
  }, string>;
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">
2
- import { fade, slide } from "svelte/transition";
2
+ import { fade } from "svelte/transition";
3
3
  import Popover from "svelte-easy-popover";
4
4
  import { onDestroy, onMount } from "svelte";
5
5
  import MoltenPushButton from "./MoltenPushButton.svelte";
@@ -21,8 +21,41 @@
21
21
  let showbuttons = $state(false);
22
22
  let showTooltip = $state(false);
23
23
  let tooltipKey = $state(0);
24
+ let popperInstance: any = $state();
25
+
26
+ // Popper computes its position/flip-away-from-edge decision once, when
27
+ // the popover mounts, and never re-checks it if the popover's own content
28
+ // later changes size (e.g. the buttons block appearing) — it only reacts
29
+ // to window scroll/resize. The buttons row now uses a fade (opacity only,
30
+ // no layout size change), so this isn't currently reachable, but it's
31
+ // kept as a safety net against any future content or transition that
32
+ // does resize the popover after it's already positioned.
33
+ const SHOWBUTTONS_TRANSITION_DURATION = 100;
34
+ $effect(() => {
35
+ if (showbuttons && popperInstance) {
36
+ const t = setTimeout(
37
+ () => popperInstance?.update(),
38
+ instant ? 0 : SHOWBUTTONS_TRANSITION_DURATION,
39
+ );
40
+ return () => clearTimeout(t);
41
+ }
42
+ });
24
43
 
25
44
  let tooltipElement: HTMLDivElement | undefined = $state();
45
+
46
+ // Same safety net as above, but continuous: watches the popover's actual
47
+ // rendered size and recomputes on every change, rather than once after a
48
+ // fixed delay. Currently a no-op in practice since nothing resizes the
49
+ // popover post-mount, but keeps position correct if that changes later.
50
+ $effect(() => {
51
+ if (!tooltipElement || !popperInstance) return;
52
+ const ro = new ResizeObserver(() => {
53
+ popperInstance?.update();
54
+ });
55
+ ro.observe(tooltipElement);
56
+ return () => ro.disconnect();
57
+ });
58
+
26
59
  let previousFocusedElement: HTMLElement | null = null;
27
60
  let closeTimeout: any;
28
61
  let openTimeout: any;
@@ -243,6 +276,7 @@
243
276
  triggerEvents={["manual"]}
244
277
  {referenceElement}
245
278
  bind:placement
279
+ bind:popperInstance
246
280
  spaceAway={10}
247
281
  >
248
282
  <!-- svelte-ignore a11y-click-events-have-key-events -->
@@ -280,7 +314,7 @@
280
314
 
281
315
  {#if showbuttons}
282
316
  <div
283
- transition:slide|global={{ duration: instant ? 0 : 100 }}
317
+ transition:fade|global={{ duration: instant ? 0 : 100 }}
284
318
  class="tooltip-container-buttons"
285
319
  >
286
320
  {#each buttons as button}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intechstudio/grid-uikit",
3
- "version": "1.20260901.1149",
3
+ "version": "1.20260912.933",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/intechstudio/grid-uikit.git"