@occluze/tether 0.6.7 → 0.6.8

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 (135) hide show
  1. package/README.md +3 -3
  2. package/dist/esm/astro.js +2 -2
  3. package/dist/esm/chunks/account-C3NP6HFB.js +1 -0
  4. package/dist/esm/chunks/account-pages-WLK374FO.js +1 -0
  5. package/dist/esm/chunks/analytics-G3SAWMNL.js +1 -0
  6. package/dist/esm/chunks/chunk-27PJJZGC.js +1 -0
  7. package/dist/esm/chunks/chunk-2FSXS55U.js +1 -0
  8. package/dist/esm/chunks/chunk-FCSWQDVV.js +1 -0
  9. package/dist/esm/chunks/chunk-FOMSMIAM.js +1 -0
  10. package/dist/esm/chunks/chunk-GZJTCLLW.js +1 -0
  11. package/dist/esm/chunks/chunk-HEQILZVR.js +1 -0
  12. package/dist/esm/chunks/chunk-JOOEXYF3.js +4 -0
  13. package/dist/esm/chunks/chunk-MPTQYLSM.js +1 -0
  14. package/dist/esm/chunks/chunk-NEHZ37TU.js +3 -0
  15. package/dist/esm/chunks/chunk-V74KGEJF.js +1 -0
  16. package/dist/esm/chunks/chunk-VT4CDUJJ.js +1 -0
  17. package/dist/esm/chunks/chunk-YJLWX2HK.js +1 -0
  18. package/dist/esm/chunks/diagnose-6VVGZNTY.js +14 -0
  19. package/dist/esm/chunks/extras-GJVRDFM3.js +1 -0
  20. package/dist/esm/chunks/markets-ui-UNB4PTA7.js +1 -0
  21. package/dist/esm/chunks/search-OU75RNQL.js +1 -0
  22. package/dist/esm/index.js +1 -1
  23. package/dist/esm/server.js +2 -1
  24. package/dist/presets/barba.esm.js +56 -36
  25. package/dist/tether.account-pages.js +773 -442
  26. package/dist/tether.account-pages.min.js +1 -1
  27. package/dist/tether.account.js +648 -318
  28. package/dist/tether.account.min.js +1 -1
  29. package/dist/tether.analytics.js +318 -191
  30. package/dist/tether.analytics.min.js +1 -1
  31. package/dist/tether.diagnose.js +331 -242
  32. package/dist/tether.diagnose.min.js +2 -2
  33. package/dist/tether.extras.js +78 -33
  34. package/dist/tether.extras.min.js +1 -1
  35. package/dist/tether.js +3176 -2015
  36. package/dist/tether.markets.js +231 -126
  37. package/dist/tether.markets.min.js +1 -1
  38. package/dist/tether.min.js +0 -0
  39. package/dist/tether.min.js.map +4 -4
  40. package/dist/tether.search.js +221 -126
  41. package/dist/tether.search.min.js +1 -1
  42. package/package.json +23 -4
  43. package/src/account/addresses-view.js +92 -0
  44. package/src/account/browser-session.js +359 -0
  45. package/src/account/markup.js +48 -0
  46. package/src/account/operations.js +180 -0
  47. package/src/account/order-lines.js +96 -0
  48. package/src/account/order-list.js +91 -0
  49. package/src/account/order-page.js +192 -0
  50. package/src/account/page-events.js +288 -0
  51. package/src/account/server-client.js +172 -0
  52. package/src/account/shared.js +111 -0
  53. package/src/account/shopify-auth.js +150 -0
  54. package/src/account/subscriptions-view.js +158 -0
  55. package/src/account-api.js +118 -0
  56. package/src/account-links.js +35 -0
  57. package/src/account-pages.js +69 -298
  58. package/src/account.js +280 -323
  59. package/src/amounts.js +36 -0
  60. package/src/analytics-shopify.js +241 -0
  61. package/src/analytics.js +304 -184
  62. package/src/api-version.js +75 -25
  63. package/src/astro.js +233 -68
  64. package/src/cart/checkout.js +97 -0
  65. package/src/cart/drawer.js +138 -0
  66. package/src/cart/mutations.js +234 -0
  67. package/src/cart/render.js +294 -0
  68. package/src/cart/store.js +326 -0
  69. package/src/cart.js +320 -488
  70. package/src/client.js +214 -78
  71. package/src/collection.js +126 -57
  72. package/src/config.js +323 -59
  73. package/src/controls/cart-controls.js +155 -0
  74. package/src/controls/discount.js +96 -0
  75. package/src/controls/extras.js +63 -0
  76. package/src/controls/navigation.js +83 -0
  77. package/src/diagnose-markup.js +333 -0
  78. package/src/diagnose.js +251 -202
  79. package/src/dom.js +219 -220
  80. package/src/extras.js +119 -37
  81. package/src/fragments.js +115 -22
  82. package/src/images.js +104 -0
  83. package/src/index.js +245 -287
  84. package/src/initial.js +78 -66
  85. package/src/lazy-iife.js +92 -22
  86. package/src/lazy.js +25 -4
  87. package/src/loader.js +263 -124
  88. package/src/market-codes.js +35 -0
  89. package/src/markets-ui.js +169 -55
  90. package/src/markets.js +286 -85
  91. package/src/markup.js +64 -0
  92. package/src/mounting.js +214 -91
  93. package/src/page-market.js +116 -0
  94. package/src/parts/account-pages.js +4 -1
  95. package/src/parts/account.js +4 -1
  96. package/src/parts/analytics.js +4 -1
  97. package/src/parts/diagnose.js +4 -1
  98. package/src/parts/extras.js +4 -1
  99. package/src/parts/markets.js +4 -1
  100. package/src/parts/search.js +4 -1
  101. package/src/presets/barba.js +120 -30
  102. package/src/product-events.js +130 -0
  103. package/src/product-render.js +257 -0
  104. package/src/product-state.js +318 -0
  105. package/src/product.js +233 -459
  106. package/src/repeaters.js +173 -0
  107. package/src/search.js +277 -107
  108. package/src/selling-plans.js +107 -47
  109. package/src/server.js +168 -205
  110. package/src/shopify-values.js +89 -0
  111. package/src/status.js +99 -39
  112. package/src/store-html.js +0 -0
  113. package/src/storefront/catalog.js +199 -0
  114. package/src/storefront/json-ld.js +167 -0
  115. package/src/variant-render.js +165 -0
  116. package/types/astro.d.ts +13 -2
  117. package/types/index.d.ts +178 -27
  118. package/types/server.d.ts +89 -17
  119. package/dist/esm/chunks/account-Q6E2TFEV.js +0 -1
  120. package/dist/esm/chunks/account-pages-UZXR4R5F.js +0 -1
  121. package/dist/esm/chunks/analytics-IJBKATUP.js +0 -1
  122. package/dist/esm/chunks/chunk-4QJKLPYR.js +0 -1
  123. package/dist/esm/chunks/chunk-64TUD3QR.js +0 -1
  124. package/dist/esm/chunks/chunk-AJLPU2JC.js +0 -4
  125. package/dist/esm/chunks/chunk-FIOZPPC5.js +0 -1
  126. package/dist/esm/chunks/chunk-K2YEQAIH.js +0 -1
  127. package/dist/esm/chunks/chunk-KIDH76B7.js +0 -1
  128. package/dist/esm/chunks/chunk-PAYT5ZD7.js +0 -1
  129. package/dist/esm/chunks/chunk-RREHGH4A.js +0 -1
  130. package/dist/esm/chunks/chunk-SSJT43CJ.js +0 -1
  131. package/dist/esm/chunks/chunk-VC46IEJQ.js +0 -1
  132. package/dist/esm/chunks/diagnose-3WVAWNTX.js +0 -14
  133. package/dist/esm/chunks/extras-7I7WJX35.js +0 -1
  134. package/dist/esm/chunks/markets-ui-545XLFTE.js +0 -1
  135. package/dist/esm/chunks/search-NILMGYXG.js +0 -1
@@ -1,72 +1,92 @@
1
1
  // src/presets/barba.js
2
- var LINE_DURATION = 0.3;
2
+ var LINE_DURATION_SECONDS = 0.3;
3
+ var collapsed = () => ({
4
+ height: 0,
5
+ paddingTop: 0,
6
+ paddingBottom: 0,
7
+ borderBottomWidth: 0,
8
+ opacity: 0,
9
+ overflow: "hidden"
10
+ });
11
+ var ANIMATED_PROPS = "height,paddingTop,paddingBottom,borderBottomWidth,opacity,overflow";
3
12
  var reducedMotion = () => typeof window.matchMedia === "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
13
+ function current(option) {
14
+ if (typeof option !== "function") return option;
15
+ const getter = (
16
+ /** @type {() => unknown} */
17
+ option
18
+ );
19
+ return getter();
20
+ }
21
+ function callIfPresent(target, method) {
22
+ if (typeof target !== "object" || target === null) return;
23
+ const fn = Reflect.get(target, method);
24
+ if (typeof fn === "function") fn.call(target);
25
+ }
26
+ var isGsap = (value) => typeof value === "object" && value !== null && typeof Reflect.get(value, "fromTo") === "function" && typeof Reflect.get(value, "to") === "function";
4
27
  function barbaPreset(options = {}) {
5
28
  const {
6
- gsap = () => window.gsap,
29
+ gsap = () => (
30
+ /** @type {unknown} */
31
+ Reflect.get(window, "gsap")
32
+ ),
7
33
  lenis = null,
8
- scrollTrigger = () => window.ScrollTrigger,
34
+ scrollTrigger = () => (
35
+ /** @type {unknown} */
36
+ Reflect.get(window, "ScrollTrigger")
37
+ ),
9
38
  lockScroll = null,
10
39
  unlockScroll = null,
11
40
  onResize = null,
12
41
  onValueChange = null,
13
42
  animateLines = true,
14
- lineDuration = LINE_DURATION
43
+ lineDuration = LINE_DURATION_SECONDS
15
44
  } = options;
16
- const get = (v) => typeof v === "function" ? v() : v;
17
45
  let locked = false;
18
- const canAnimate = (node) => animateLines && get(gsap) && !reducedMotion() && node.offsetHeight > 0;
46
+ const animator = (node) => {
47
+ if (!animateLines || reducedMotion() || node.offsetHeight <= 0) return null;
48
+ const animation = current(gsap);
49
+ return isGsap(animation) ? animation : null;
50
+ };
19
51
  return {
20
52
  autoMount: false,
21
53
  onLayoutChange() {
22
- get(lenis)?.resize?.();
23
- get(scrollTrigger)?.refresh?.();
54
+ callIfPresent(current(lenis), "resize");
55
+ callIfPresent(current(scrollTrigger), "refresh");
24
56
  },
25
57
  onCartOpen(drawers) {
26
- if (!locked && typeof lockScroll === "function" && drawers[0]) {
27
- lockScroll(drawers[0]);
28
- locked = true;
29
- }
58
+ const drawer = drawers[0];
59
+ if (locked || typeof lockScroll !== "function" || !drawer) return;
60
+ lockScroll(drawer);
61
+ locked = true;
30
62
  },
31
63
  onCartClose() {
32
64
  if (locked && typeof unlockScroll === "function") unlockScroll();
33
65
  locked = false;
34
66
  },
35
67
  onLineEnter(node) {
36
- const g = get(gsap);
37
- if (!canAnimate(node)) return;
38
- const st = getComputedStyle(node);
39
- g.fromTo(node, {
40
- height: 0,
41
- paddingTop: 0,
42
- paddingBottom: 0,
43
- borderBottomWidth: 0,
44
- opacity: 0,
45
- overflow: "hidden"
46
- }, {
68
+ const animation = animator(node);
69
+ if (!animation) return;
70
+ const style = getComputedStyle(node);
71
+ animation.fromTo(node, collapsed(), {
47
72
  height: node.offsetHeight,
48
- paddingTop: st.paddingTop,
49
- paddingBottom: st.paddingBottom,
50
- borderBottomWidth: st.borderBottomWidth,
73
+ paddingTop: style.paddingTop,
74
+ paddingBottom: style.paddingBottom,
75
+ borderBottomWidth: style.borderBottomWidth,
51
76
  opacity: 1,
52
77
  duration: lineDuration,
53
- clearProps: "height,paddingTop,paddingBottom,borderBottomWidth,opacity,overflow",
78
+ clearProps: ANIMATED_PROPS,
54
79
  onComplete: () => onResize?.()
55
80
  });
56
81
  },
57
82
  onLineLeave(node, done) {
58
- const g = get(gsap);
59
- if (!canAnimate(node)) {
83
+ const animation = animator(node);
84
+ if (!animation) {
60
85
  done();
61
86
  return;
62
87
  }
63
- g.to(node, {
64
- height: 0,
65
- paddingTop: 0,
66
- paddingBottom: 0,
67
- borderBottomWidth: 0,
68
- opacity: 0,
69
- overflow: "hidden",
88
+ animation.to(node, {
89
+ ...collapsed(),
70
90
  duration: lineDuration,
71
91
  onComplete: () => {
72
92
  done();