@occluze/tether 0.6.6 → 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 +776 -432
  26. package/dist/tether.account-pages.min.js +1 -1
  27. package/dist/tether.account.js +655 -321
  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 +334 -243
  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 +3171 -1998
  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 +68 -284
  58. package/src/account.js +281 -317
  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 +322 -481
  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 -285
  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-QUBHQG3C.js +0 -1
  120. package/dist/esm/chunks/account-pages-VWDHF6WA.js +0 -1
  121. package/dist/esm/chunks/analytics-SLATWPLC.js +0 -1
  122. package/dist/esm/chunks/chunk-64TUD3QR.js +0 -1
  123. package/dist/esm/chunks/chunk-AJLPU2JC.js +0 -4
  124. package/dist/esm/chunks/chunk-FIOZPPC5.js +0 -1
  125. package/dist/esm/chunks/chunk-K2YEQAIH.js +0 -1
  126. package/dist/esm/chunks/chunk-L2TRRKYV.js +0 -1
  127. package/dist/esm/chunks/chunk-RREHGH4A.js +0 -1
  128. package/dist/esm/chunks/chunk-VC46IEJQ.js +0 -1
  129. package/dist/esm/chunks/chunk-VCPI7MJ2.js +0 -1
  130. package/dist/esm/chunks/chunk-VPVJPNB4.js +0 -1
  131. package/dist/esm/chunks/chunk-ZIUIWEON.js +0 -1
  132. package/dist/esm/chunks/diagnose-VXQBSD3A.js +0 -14
  133. package/dist/esm/chunks/extras-R4X34VQL.js +0 -1
  134. package/dist/esm/chunks/markets-ui-F3R5T5EL.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();