@trebired/frontend 12.17.1 → 13.0.0

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 (134) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/config/default/component-tokens.d.ts +37 -0
  3. package/dist/config/default/component-tokens.d.ts.map +1 -1
  4. package/dist/config/default/component-tokens.js +2 -0
  5. package/dist/config/default/component-tokens.js.map +1 -1
  6. package/dist/config/default/media-tokens.d.ts +39 -0
  7. package/dist/config/default/media-tokens.d.ts.map +1 -0
  8. package/dist/config/default/media-tokens.js +37 -0
  9. package/dist/config/default/media-tokens.js.map +1 -0
  10. package/dist/config/types.d.ts +6 -0
  11. package/dist/config/types.d.ts.map +1 -1
  12. package/dist/inputs/advanced/tabs/manager/dom.js.map +1 -1
  13. package/dist/language/routing/boot.d.ts.map +1 -1
  14. package/dist/language/routing/boot.js +22 -16
  15. package/dist/language/routing/boot.js.map +1 -1
  16. package/dist/language/routing/document.d.ts +10 -0
  17. package/dist/language/routing/document.d.ts.map +1 -0
  18. package/dist/language/routing/document.js +63 -0
  19. package/dist/language/routing/document.js.map +1 -0
  20. package/dist/language/routing/index.d.ts +6 -4
  21. package/dist/language/routing/index.d.ts.map +1 -1
  22. package/dist/language/routing/index.js +4 -3
  23. package/dist/language/routing/index.js.map +1 -1
  24. package/dist/language/routing/options.d.ts +4 -1
  25. package/dist/language/routing/options.d.ts.map +1 -1
  26. package/dist/language/routing/options.js +3 -1
  27. package/dist/language/routing/options.js.map +1 -1
  28. package/dist/language/routing/runtime.d.ts +1 -2
  29. package/dist/language/routing/runtime.d.ts.map +1 -1
  30. package/dist/language/routing/runtime.js +20 -14
  31. package/dist/language/routing/runtime.js.map +1 -1
  32. package/dist/language/routing/view.d.ts +16 -0
  33. package/dist/language/routing/view.d.ts.map +1 -0
  34. package/dist/language/routing/view.js +66 -0
  35. package/dist/language/routing/view.js.map +1 -0
  36. package/dist/media/carousel-state.js.map +1 -1
  37. package/dist/media/carousel.d.ts.map +1 -1
  38. package/dist/media/carousel.js +16 -4
  39. package/dist/media/carousel.js.map +1 -1
  40. package/dist/media/expandable-image.js +2 -1
  41. package/dist/media/expandable-image.js.map +1 -1
  42. package/dist/media/gallery-state.js.map +1 -1
  43. package/dist/media/lightbox.d.ts.map +1 -1
  44. package/dist/media/lightbox.js +10 -8
  45. package/dist/media/lightbox.js.map +1 -1
  46. package/dist/media/map-embed.d.ts.map +1 -1
  47. package/dist/media/map-embed.js +2 -1
  48. package/dist/media/map-embed.js.map +1 -1
  49. package/dist/media/styles/carousel.scss +26 -21
  50. package/dist/media/styles/index.scss +2 -2
  51. package/dist/media/styles/lightbox.scss +57 -46
  52. package/dist/react/locale.d.ts.map +1 -1
  53. package/dist/react/locale.js +13 -9
  54. package/dist/react/locale.js.map +1 -1
  55. package/dist/server/language.d.ts.map +1 -1
  56. package/dist/server/language.js +2 -1
  57. package/dist/server/language.js.map +1 -1
  58. package/dist/spa/fetch-document.d.ts +6 -0
  59. package/dist/spa/fetch-document.d.ts.map +1 -0
  60. package/dist/spa/fetch-document.js +23 -0
  61. package/dist/spa/fetch-document.js.map +1 -0
  62. package/dist/spa/navigate.d.ts.map +1 -1
  63. package/dist/spa/navigate.js +2 -21
  64. package/dist/spa/navigate.js.map +1 -1
  65. package/dist/src/config/default/component-tokens.d.ts +37 -0
  66. package/dist/src/config/default/component-tokens.d.ts.map +1 -1
  67. package/dist/src/config/default/component-tokens.js +2 -0
  68. package/dist/src/config/default/component-tokens.js.map +1 -1
  69. package/dist/src/config/default/media-tokens.d.ts +39 -0
  70. package/dist/src/config/default/media-tokens.d.ts.map +1 -0
  71. package/dist/src/config/default/media-tokens.js +37 -0
  72. package/dist/src/config/default/media-tokens.js.map +1 -0
  73. package/dist/src/config/types.d.ts +6 -0
  74. package/dist/src/config/types.d.ts.map +1 -1
  75. package/dist/src/inputs/advanced/tabs/manager/dom.js.map +1 -1
  76. package/dist/src/language/routing/boot.d.ts.map +1 -1
  77. package/dist/src/language/routing/boot.js +22 -16
  78. package/dist/src/language/routing/boot.js.map +1 -1
  79. package/dist/src/language/routing/document.d.ts +10 -0
  80. package/dist/src/language/routing/document.d.ts.map +1 -0
  81. package/dist/src/language/routing/document.js +63 -0
  82. package/dist/src/language/routing/document.js.map +1 -0
  83. package/dist/src/language/routing/index.d.ts +6 -4
  84. package/dist/src/language/routing/index.d.ts.map +1 -1
  85. package/dist/src/language/routing/index.js +4 -3
  86. package/dist/src/language/routing/index.js.map +1 -1
  87. package/dist/src/language/routing/options.d.ts +4 -1
  88. package/dist/src/language/routing/options.d.ts.map +1 -1
  89. package/dist/src/language/routing/options.js +3 -1
  90. package/dist/src/language/routing/options.js.map +1 -1
  91. package/dist/src/language/routing/runtime.d.ts +1 -2
  92. package/dist/src/language/routing/runtime.d.ts.map +1 -1
  93. package/dist/src/language/routing/runtime.js +20 -14
  94. package/dist/src/language/routing/runtime.js.map +1 -1
  95. package/dist/src/language/routing/view.d.ts +16 -0
  96. package/dist/src/language/routing/view.d.ts.map +1 -0
  97. package/dist/src/language/routing/view.js +66 -0
  98. package/dist/src/language/routing/view.js.map +1 -0
  99. package/dist/src/media/carousel-state.js.map +1 -1
  100. package/dist/src/media/carousel.d.ts.map +1 -1
  101. package/dist/src/media/carousel.js +16 -4
  102. package/dist/src/media/carousel.js.map +1 -1
  103. package/dist/src/media/expandable-image.js +2 -1
  104. package/dist/src/media/expandable-image.js.map +1 -1
  105. package/dist/src/media/gallery-state.js.map +1 -1
  106. package/dist/src/media/lightbox.d.ts.map +1 -1
  107. package/dist/src/media/lightbox.js +10 -8
  108. package/dist/src/media/lightbox.js.map +1 -1
  109. package/dist/src/media/map-embed.d.ts.map +1 -1
  110. package/dist/src/media/map-embed.js +2 -1
  111. package/dist/src/media/map-embed.js.map +1 -1
  112. package/dist/src/react/locale.d.ts.map +1 -1
  113. package/dist/src/react/locale.js +13 -9
  114. package/dist/src/react/locale.js.map +1 -1
  115. package/dist/src/server/language.d.ts.map +1 -1
  116. package/dist/src/server/language.js +2 -1
  117. package/dist/src/server/language.js.map +1 -1
  118. package/dist/src/spa/fetch-document.d.ts +6 -0
  119. package/dist/src/spa/fetch-document.d.ts.map +1 -0
  120. package/dist/src/spa/fetch-document.js +23 -0
  121. package/dist/src/spa/fetch-document.js.map +1 -0
  122. package/dist/src/spa/navigate.d.ts.map +1 -1
  123. package/dist/src/spa/navigate.js +2 -21
  124. package/dist/src/spa/navigate.js.map +1 -1
  125. package/dist/surface/styles/index.scss +6 -0
  126. package/package.json +1 -1
  127. package/dist/language/routing/path.d.ts +0 -20
  128. package/dist/language/routing/path.d.ts.map +0 -1
  129. package/dist/language/routing/path.js +0 -43
  130. package/dist/language/routing/path.js.map +0 -1
  131. package/dist/src/language/routing/path.d.ts +0 -20
  132. package/dist/src/language/routing/path.d.ts.map +0 -1
  133. package/dist/src/language/routing/path.js +0 -43
  134. package/dist/src/language/routing/path.js.map +0 -1
@@ -4,9 +4,8 @@ declare function configureLocaleRouting(options: LocaleRoutingOptions): LocaleRo
4
4
  declare function getLocaleRouting(): LocaleRouting;
5
5
  declare function currentLocale(): string;
6
6
  declare function persistLocale(locale: string): void;
7
- declare function localeHref(locale: string): string;
8
7
  declare function setCurrentLocale(locale: unknown): boolean;
9
8
  declare function onLocaleChanged(listener: LocaleListener): () => void;
10
- export { configureLocaleRouting, currentLocale, getLocaleRouting, localeHref, onLocaleChanged, persistLocale, setCurrentLocale, };
9
+ export { configureLocaleRouting, currentLocale, getLocaleRouting, onLocaleChanged, persistLocale, setCurrentLocale, };
11
10
  export type { LocaleListener };
12
11
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/language/routing/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGxE,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAM/C,iBAAS,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAG5E;AAED,iBAAS,gBAAgB,IAAI,aAAa,CAEzC;AAED,iBAAS,aAAa,IAAI,MAAM,CAG/B;AAED,iBAAS,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAO3C;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAI1C;AAED,iBAAS,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAQlD;AAED,iBAAS,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,IAAI,CAK7D;AAED,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/language/routing/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGxE,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAQ/C,iBAAS,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAI5E;AAED,iBAAS,gBAAgB,IAAI,aAAa,CAEzC;AAMD,iBAAS,aAAa,IAAI,MAAM,CAG/B;AAED,iBAAS,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAS3C;AAED,iBAAS,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAWlD;AAED,iBAAS,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,IAAI,CAK7D;AAED,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,cAAc,EAAE,CAAC"}
@@ -1,22 +1,30 @@
1
- import { matchLocale, normalizeLocaleRouting } from "./options.js";
2
- import { buildLocalePathname, parseLocalePathname } from "./path.js";
1
+ import { cleanLocale, matchLocale, normalizeLocaleRouting } from "./options.js";
2
+ import { LOCALE_RENDERED_ATTR, applyLocaleMeta } from "./view.js";
3
3
  const listeners = new Set();
4
+ const COOKIE_MAX_AGE = 60 * 60 * 24 * 365;
4
5
  let routing = normalizeLocaleRouting();
6
+ let configured = false;
5
7
  function configureLocaleRouting(options) {
6
8
  routing = normalizeLocaleRouting(options);
9
+ configured = true;
7
10
  return routing;
8
11
  }
9
12
  function getLocaleRouting() {
10
13
  return routing;
11
14
  }
15
+ function resolveLocale(value) {
16
+ return configured ? matchLocale(value, routing) : cleanLocale(value);
17
+ }
12
18
  function currentLocale() {
13
- if (typeof window === "undefined")
19
+ if (typeof document === "undefined")
14
20
  return routing.defaultLocale;
15
- return parseLocalePathname(window.location.pathname, routing).locale;
21
+ return resolveLocale(document.documentElement.lang) || routing.defaultLocale;
16
22
  }
17
23
  function persistLocale(locale) {
18
- if (typeof window === "undefined")
24
+ if (typeof document === "undefined")
19
25
  return;
26
+ const name = encodeURIComponent(routing.cookieName);
27
+ document.cookie = `${name}=${encodeURIComponent(locale)}; Path=/; Max-Age=${COOKIE_MAX_AGE}; SameSite=Lax`;
20
28
  try {
21
29
  window.localStorage.setItem(routing.storageKey, locale);
22
30
  }
@@ -24,21 +32,19 @@ function persistLocale(locale) {
24
32
  return;
25
33
  }
26
34
  }
27
- function localeHref(locale) {
28
- const parsed = parseLocalePathname(window.location.pathname, routing);
29
- const pathname = buildLocalePathname(parsed.pathname, locale, routing);
30
- return `${pathname}${window.location.search}${window.location.hash}`;
31
- }
32
35
  function setCurrentLocale(locale) {
33
- const next = matchLocale(locale, routing);
34
- if (!next || typeof window === "undefined")
36
+ const next = resolveLocale(locale);
37
+ if (!next || typeof document === "undefined")
35
38
  return false;
36
39
  persistLocale(next);
37
40
  if (next === currentLocale())
38
41
  return false;
42
+ const root = document.documentElement;
43
+ root.lang = next;
44
+ root.setAttribute(LOCALE_RENDERED_ATTR, next);
45
+ applyLocaleMeta(document, next);
39
46
  for (const listener of listeners)
40
47
  listener(next);
41
- window.location.assign(localeHref(next));
42
48
  return true;
43
49
  }
44
50
  function onLocaleChanged(listener) {
@@ -47,5 +53,5 @@ function onLocaleChanged(listener) {
47
53
  listeners.delete(listener);
48
54
  };
49
55
  }
50
- export { configureLocaleRouting, currentLocale, getLocaleRouting, localeHref, onLocaleChanged, persistLocale, setCurrentLocale, };
56
+ export { configureLocaleRouting, currentLocale, getLocaleRouting, onLocaleChanged, persistLocale, setCurrentLocale, };
51
57
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/language/routing/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAIrE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE5C,IAAI,OAAO,GAAkB,sBAAsB,EAAE,CAAC;AAEtD,SAAS,sBAAsB,CAAC,OAA6B;IAC3D,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,OAAO,CAAC,aAAa,CAAC;IAChE,OAAO,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;AACvE,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO;IAC1C,IAAI,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACvE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACvE,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAe;IACvC,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACzD,aAAa,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,IAAI,KAAK,aAAa,EAAE;QAAE,OAAO,KAAK,CAAC;IAC3C,KAAK,MAAM,QAAQ,IAAI,SAAS;QAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,QAAwB;IAC/C,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,GAAG,EAAE;QACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/language/routing/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAIlE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC5C,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;AAE1C,IAAI,OAAO,GAAkB,sBAAsB,EAAE,CAAC;AACtD,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,SAAS,sBAAsB,CAAC,OAA6B;IAC3D,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC1C,UAAU,GAAG,IAAI,CAAC;IAClB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,OAAO,CAAC,aAAa,CAAC;IAClE,OAAO,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC;AAC/E,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC5C,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,kBAAkB,CAAC,MAAM,CAAC,qBAAqB,cAAc,gBAAgB,CAAC;IAC3G,IAAI,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAe;IACvC,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAC3D,aAAa,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,IAAI,KAAK,aAAa,EAAE;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;IACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;IAC9C,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAChC,KAAK,MAAM,QAAQ,IAAI,SAAS;QAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,QAAwB;IAC/C,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,GAAG,EAAE;QACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,CAAC"}
@@ -0,0 +1,16 @@
1
+ type LocaleMeta = {
2
+ description?: string;
3
+ title?: string;
4
+ };
5
+ declare const LOCALE_VIEW_ATTR: `data-${string}`;
6
+ declare const LOCALE_META_ATTR: `data-${string}`;
7
+ declare const LOCALE_RENDERED_ATTR: `data-${string}`;
8
+ declare const LOCALE_PENDING_ATTR: `data-${string}`;
9
+ declare const LOCALE_START_MARK = "tbf:locale-start";
10
+ declare const LOCALE_END_MARK = "tbf:locale-end";
11
+ declare function readLocaleMeta(doc: Document): Record<string, LocaleMeta>;
12
+ declare function applyLocaleMeta(doc: Document, locale: string): void;
13
+ declare function applyLocaleView(doc: Document, locale: string): boolean;
14
+ export { LOCALE_END_MARK, LOCALE_META_ATTR, LOCALE_PENDING_ATTR, LOCALE_RENDERED_ATTR, LOCALE_START_MARK, LOCALE_VIEW_ATTR, applyLocaleMeta, applyLocaleView, readLocaleMeta, };
15
+ export type { LocaleMeta };
16
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../../src/language/routing/view.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAOF,QAAA,MAAM,gBAAgB,kBAAkC,CAAC;AACzD,QAAA,MAAM,gBAAgB,kBAAkC,CAAC;AACzD,QAAA,MAAM,oBAAoB,kBAAsC,CAAC;AACjE,QAAA,MAAM,mBAAmB,kBAAqC,CAAC;AAC/D,QAAA,MAAM,iBAAiB,qBAAoC,CAAC;AAC5D,QAAA,MAAM,eAAe,mBAAkC,CAAC;AAcxD,iBAAS,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAQjE;AAED,iBAAS,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAK5D;AAYD,iBAAS,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAa/D;AAED,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,GACf,CAAC;AACF,YAAY,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { FRONTEND_PREFIX, frontendDataAttr } from "../../namespace/index.js";
2
+ const LOCALE_VIEW_ATTR = frontendDataAttr("locale-view");
3
+ const LOCALE_META_ATTR = frontendDataAttr("locale-meta");
4
+ const LOCALE_RENDERED_ATTR = frontendDataAttr("locale-rendered");
5
+ const LOCALE_PENDING_ATTR = frontendDataAttr("locale-pending");
6
+ const LOCALE_START_MARK = `${FRONTEND_PREFIX}:locale-start`;
7
+ const LOCALE_END_MARK = `${FRONTEND_PREFIX}:locale-end`;
8
+ const COMMENT_NODE = 8;
9
+ function findLocaleMarkers(body) {
10
+ let start = null;
11
+ let end = null;
12
+ for (const node of Array.from(body.childNodes)) {
13
+ if (node.nodeType !== COMMENT_NODE)
14
+ continue;
15
+ if (node.nodeValue === LOCALE_START_MARK)
16
+ start = node;
17
+ if (node.nodeValue === LOCALE_END_MARK)
18
+ end = node;
19
+ }
20
+ return start && end ? { end, start } : null;
21
+ }
22
+ function readLocaleMeta(doc) {
23
+ const node = doc.querySelector(`script[${LOCALE_META_ATTR}]`);
24
+ try {
25
+ const parsed = JSON.parse(node?.textContent || "{}");
26
+ return parsed && typeof parsed === "object" ? parsed : {};
27
+ }
28
+ catch {
29
+ return {};
30
+ }
31
+ }
32
+ function applyLocaleMeta(doc, locale) {
33
+ const meta = readLocaleMeta(doc)[locale];
34
+ if (!meta)
35
+ return;
36
+ if (meta.title)
37
+ doc.title = meta.title;
38
+ if (meta.description)
39
+ doc.querySelector('meta[name="description"]')?.setAttribute("content", meta.description);
40
+ }
41
+ function renderedLocale(doc) {
42
+ const root = doc.documentElement;
43
+ return root.getAttribute(LOCALE_RENDERED_ATTR) || root.lang;
44
+ }
45
+ function localeTemplate(doc, locale) {
46
+ const templates = Array.from(doc.querySelectorAll(`template[${LOCALE_VIEW_ATTR}]`));
47
+ return templates.find((template) => template.getAttribute(LOCALE_VIEW_ATTR) === locale) || null;
48
+ }
49
+ function applyLocaleView(doc, locale) {
50
+ if (!locale || !doc.body || renderedLocale(doc) === locale)
51
+ return false;
52
+ const markers = findLocaleMarkers(doc.body);
53
+ const template = localeTemplate(doc, locale);
54
+ if (!markers || !template)
55
+ return false;
56
+ while (markers.start.nextSibling && markers.start.nextSibling !== markers.end) {
57
+ markers.start.nextSibling.remove();
58
+ }
59
+ doc.body.insertBefore(doc.importNode(template.content, true), markers.end);
60
+ doc.documentElement.lang = locale;
61
+ doc.documentElement.setAttribute(LOCALE_RENDERED_ATTR, locale);
62
+ applyLocaleMeta(doc, locale);
63
+ return true;
64
+ }
65
+ export { LOCALE_END_MARK, LOCALE_META_ATTR, LOCALE_PENDING_ATTR, LOCALE_RENDERED_ATTR, LOCALE_START_MARK, LOCALE_VIEW_ATTR, applyLocaleMeta, applyLocaleView, readLocaleMeta, };
66
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../../src/language/routing/view.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"carousel-state.js","sourceRoot":"","sources":["../../../src/media/carousel-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAWjE,SAAS,oBAAoB;IAC3B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC3F,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC,OAAO,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,UAAkB;IAC1D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAqB,SAAS,CAAC,CAAC;IAEpD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QAC3C,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,MAAM,IAAI,MAAM,GAAG,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,oBAAoB,EAAE;YAAE,OAAO,SAAS,CAAC;QACxF,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACzD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE1D,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;QAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;QAC/B,MAAM;QACN,QAAQ;QACR,YAAY;KACb,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"carousel-state.js","sourceRoot":"","sources":["../../../src/media/carousel-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAWjE,SAAS,oBAAoB;IAC3B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC3F,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC,OAAO,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,UAAkB;IAC1D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAmB,SAAS,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEf,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEf,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QACzC,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEf,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,MAAM,IAAI,MAAM,GAAG,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,oBAAoB,EAAE;YAAE,OAAO,SAAS,CAAC;QACxF,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACzD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE1D,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;QAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;QAC/B,MAAM;QACN,QAAQ;QACR,YAAY;KACb,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../src/media/carousel.tsx"],"names":[],"mappings":"AAOA,KAAK,aAAa,GAAG;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,yBAAyB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEpD,KAAK,aAAa,GAAG;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,yBAAyB,CAAC;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;CAClC,CAAC;AAEF,iBAAS,QAAQ,CAAC,KAAK,EAAE,aAAa,+BAmErC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,yBAAyB,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../src/media/carousel.tsx"],"names":[],"mappings":"AAQA,KAAK,aAAa,GAAG;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,yBAAyB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEpD,KAAK,aAAa,GAAG;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,yBAAyB,CAAC;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;CAClC,CAAC;AA2DF,iBAAS,QAAQ,CAAC,KAAK,EAAE,aAAa,+BA8BrC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,yBAAyB,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC"}
@@ -1,20 +1,32 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Icon } from "../icons/react/index.js";
3
+ import { frontendClassName, frontendModifierClass } from "../namespace/index.js";
3
4
  import { sourceLanguageMessage } from "../language/messages.js";
4
5
  import { ICON_MEDIA_CHEVRON_LEFT, ICON_MEDIA_CHEVRON_RIGHT } from "./icons.js";
5
6
  import { useCarouselState } from "./carousel-state.js";
6
7
  import { useResolvedLang } from "./lang.js";
8
+ function activeClass(name, active) {
9
+ return `${frontendClassName(name)}${active ? " is-active" : ""}`;
10
+ }
11
+ function rootClass(props) {
12
+ const placement = props.controlsPlacement === "bottom" ? frontendModifierClass("carousel", "controls-bottom") : "";
13
+ return [frontendClassName("carousel"), placement, props.className].filter(Boolean).join(" ");
14
+ }
15
+ function CarouselControls({ label, state }) {
16
+ return (_jsxs(_Fragment, { children: [_jsx("button", { "aria-label": label("mediaSlidePrevious"), className: `${frontendClassName("carousel-nav")} ${frontendClassName("carousel-nav-prev")}`, onClick: state.showPrevious, type: "button", children: _jsx(Icon, { spec: ICON_MEDIA_CHEVRON_LEFT }) }), _jsx("button", { "aria-label": label("mediaSlideNext"), className: `${frontendClassName("carousel-nav")} ${frontendClassName("carousel-nav-next")}`, onClick: state.showNext, type: "button", children: _jsx(Icon, { spec: ICON_MEDIA_CHEVRON_RIGHT }) })] }));
17
+ }
18
+ function CarouselDots({ label, slides, state }) {
19
+ return (_jsx("div", { className: frontendClassName("carousel-dots"), children: slides.map((slide, index) => (_jsx("button", { "aria-current": index === state.activeIndex ? "true" : undefined, "aria-label": label("mediaSlide", { index: index + 1 }), className: activeClass("carousel-dot", index === state.activeIndex), onClick: () => state.showAt(index), type: "button" }, slide.src))) }));
20
+ }
7
21
  function Carousel(props) {
8
22
  const slides = props.slides ?? [];
9
23
  const lang = useResolvedLang(props.lang);
10
24
  const state = useCarouselState(slides.length, props.intervalMs ?? 5000);
11
25
  const label = (key, vars) => sourceLanguageMessage(key, lang, vars);
12
- const showControls = props.controls !== false && slides.length > 1;
13
- const showIndicators = props.indicators !== false && slides.length > 1;
26
+ const parts = { label, slides, state };
14
27
  if (!slides.length)
15
28
  return null;
16
- const placement = props.controlsPlacement === "bottom" ? " tbf-carousel--controls-bottom" : "";
17
- return (_jsxs("div", { className: [`tbf-carousel${placement}`, props.className].filter(Boolean).join(" "), onBlur: state.onLeave, onFocus: state.onEnter, onMouseEnter: state.onEnter, onMouseLeave: state.onLeave, children: [slides.map((slide, index) => (_jsx("img", { alt: slide.alt ?? "", "aria-hidden": index === state.activeIndex ? undefined : "true", className: `tbf-carousel-slide${index === state.activeIndex ? " is-active" : ""}`, src: slide.src }, slide.src))), showControls && (_jsxs(_Fragment, { children: [_jsx("button", { "aria-label": label("mediaSlidePrevious"), className: "tbf-carousel-nav tbf-carousel-nav-prev", onClick: state.showPrevious, type: "button", children: _jsx(Icon, { spec: ICON_MEDIA_CHEVRON_LEFT }) }), _jsx("button", { "aria-label": label("mediaSlideNext"), className: "tbf-carousel-nav tbf-carousel-nav-next", onClick: state.showNext, type: "button", children: _jsx(Icon, { spec: ICON_MEDIA_CHEVRON_RIGHT }) })] })), showIndicators && (_jsx("div", { className: "tbf-carousel-dots", children: slides.map((slide, index) => (_jsx("button", { "aria-current": index === state.activeIndex ? "true" : undefined, "aria-label": label("mediaSlide", { index: index + 1 }), className: `tbf-carousel-dot${index === state.activeIndex ? " is-active" : ""}`, onClick: () => state.showAt(index), type: "button" }, slide.src))) }))] }));
29
+ return (_jsxs("div", { className: rootClass(props), onBlur: state.onLeave, onFocus: state.onEnter, onMouseEnter: state.onEnter, onMouseLeave: state.onLeave, children: [slides.map((slide, index) => (_jsx("img", { alt: slide.alt ?? "", "aria-hidden": index === state.activeIndex ? undefined : "true", className: activeClass("carousel-slide", index === state.activeIndex), src: slide.src }, slide.src))), props.controls !== false && slides.length > 1 && _jsx(CarouselControls, { ...parts }), props.indicators !== false && slides.length > 1 && _jsx(CarouselDots, { ...parts })] }));
18
30
  }
19
31
  export { Carousel };
20
32
  //# sourceMappingURL=carousel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.js","sourceRoot":"","sources":["../../../src/media/carousel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"carousel.js","sourceRoot":"","sources":["../../../src/media/carousel.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useId } from "react";
3
3
  import { Icon } from "../icons/react/index.js";
4
+ import { frontendClassName } from "../namespace/index.js";
4
5
  import { sourceLanguageMessage } from "../language/messages.js";
5
6
  import { ICON_MEDIA_MAXIMIZE } from "./icons.js";
6
7
  import { useGalleryState } from "./gallery-state.js";
@@ -17,7 +18,7 @@ function ExpandableImage(props) {
17
18
  const state = useGalleryState(gallery.length, start);
18
19
  const thumbnailAlt = galleryAlt(props.alt, gallery.length, start);
19
20
  const label = sourceLanguageMessage("mediaExpand", lang, { alt: thumbnailAlt });
20
- return (_jsxs(_Fragment, { children: [_jsxs("button", { "aria-label": label, className: ["tbf-expandable-image", props.className].filter(Boolean).join(" "), onClick: () => state.expand(start), type: "button", children: [_jsx("img", { alt: thumbnailAlt, className: ["tbf-expandable-image-img", props.imageClassName].filter(Boolean).join(" "), loading: "lazy", src: props.src }), _jsx("span", { className: "tbf-expandable-image-icon", children: _jsx(Icon, { spec: ICON_MEDIA_MAXIMIZE }) })] }), state.open && (_jsx(Lightbox, { alt: galleryAlt(props.alt, gallery.length, state.activeIndex), close: state.close, hasNext: state.activeIndex < gallery.length - 1, hasPrevious: state.activeIndex > 0, lang: lang, showNext: state.showNext, showPrevious: state.showPrevious, src: gallery[state.activeIndex] ?? props.src, titleId: titleId, visible: state.visible }))] }));
21
+ return (_jsxs(_Fragment, { children: [_jsxs("button", { "aria-label": label, className: [frontendClassName("expandable-image"), props.className].filter(Boolean).join(" "), onClick: () => state.expand(start), type: "button", children: [_jsx("img", { alt: thumbnailAlt, className: [frontendClassName("expandable-image-img"), props.imageClassName].filter(Boolean).join(" "), loading: "lazy", src: props.src }), _jsx("span", { className: frontendClassName("expandable-image-icon"), children: _jsx(Icon, { spec: ICON_MEDIA_MAXIMIZE }) })] }), state.open && (_jsx(Lightbox, { alt: galleryAlt(props.alt, gallery.length, state.activeIndex), close: state.close, hasNext: state.activeIndex < gallery.length - 1, hasPrevious: state.activeIndex > 0, lang: lang, showNext: state.showNext, showPrevious: state.showPrevious, src: gallery[state.activeIndex] ?? props.src, titleId: titleId, visible: state.visible }))] }));
21
22
  }
22
23
  export { ExpandableImage };
23
24
  //# sourceMappingURL=expandable-image.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"expandable-image.js","sourceRoot":"","sources":["../../../src/media/expandable-image.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expandable-image.js","sourceRoot":"","sources":["../../../src/media/expandable-image.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gallery-state.js","sourceRoot":"","sources":["../../../src/media/gallery-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjE,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAY/B,SAAS,eAAe,CAAC,MAAc,EAAE,YAAoB;IAC3D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,MAAM,CAAqB,SAAS,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1E,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACnF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;QAC1C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5F,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvG,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAEnE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AAC/E,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"gallery-state.js","sourceRoot":"","sources":["../../../src/media/gallery-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjE,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAY/B,SAAS,eAAe,CAAC,MAAc,EAAE,YAAoB;IAC3D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,MAAM,CAAmB,SAAS,CAAC,CAAC;IAEvD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1E,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC3B,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACnF,CAAC,EAAE,EAAE,CAAC,CAAC;IAET,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;QACxC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC,EAAE,EAAE,CAAC,CAAC;IAET,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5F,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvG,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAEnE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AAC/E,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lightbox.d.ts","sourceRoot":"","sources":["../../../src/media/lightbox.tsx"],"names":[],"mappings":"AAWA,KAAK,aAAa,GAAG;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAkCF,iBAAS,QAAQ,CAAC,KAAK,EAAE,aAAa,+BA0DrC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"lightbox.d.ts","sourceRoot":"","sources":["../../../src/media/lightbox.tsx"],"names":[],"mappings":"AAWA,KAAK,aAAa,GAAG;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AA0DF,iBAAS,QAAQ,CAAC,KAAK,EAAE,aAAa,+BAiCrC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useRef } from "react";
3
3
  import { createPortal } from "react-dom";
4
4
  import { Icon } from "../icons/react/index.js";
5
+ import { frontendClassName } from "../namespace/index.js";
5
6
  import { sourceLanguageMessage } from "../language/messages.js";
6
7
  import { captureFocus, trapTabKey } from "./focus-trap.js";
7
8
  import { ICON_MEDIA_CHEVRON_LEFT, ICON_MEDIA_CHEVRON_RIGHT, ICON_MEDIA_CLOSE } from "./icons.js";
@@ -37,18 +38,19 @@ function useLightboxShell(close, showNext, showPrevious) {
37
38
  }, [close, showNext, showPrevious]);
38
39
  return panel;
39
40
  }
41
+ function LightboxNav(props) {
42
+ const icon = props.direction === "prev" ? ICON_MEDIA_CHEVRON_LEFT : ICON_MEDIA_CHEVRON_RIGHT;
43
+ return (_jsx("button", { "aria-label": props.label, className: `${frontendClassName("lightbox-nav")} ${frontendClassName(`lightbox-nav-${props.direction}`)}`, onClick: (event) => {
44
+ stop(event);
45
+ props.onClick();
46
+ }, type: "button", children: _jsx(Icon, { spec: icon }) }));
47
+ }
40
48
  function Lightbox(props) {
41
49
  const lang = useResolvedLang(props.lang);
42
50
  const panel = useLightboxShell(props.close, props.showNext, props.showPrevious);
43
- const label = (key, vars) => sourceLanguageMessage(key, lang, vars);
51
+ const label = (key) => sourceLanguageMessage(key, lang);
44
52
  const state = props.visible ? " is-visible" : "";
45
- const node = (_jsxs("div", { "aria-labelledby": props.titleId, "aria-modal": "true", className: `tbf-lightbox${state}`, onClick: props.close, ref: panel, role: "dialog", tabIndex: -1, children: [_jsx("button", { "aria-label": label("mediaClose"), className: "tbf-lightbox-close", onClick: props.close, type: "button", children: _jsx(Icon, { spec: ICON_MEDIA_CLOSE }) }), props.hasPrevious && (_jsx("button", { "aria-label": label("mediaPrevious"), className: "tbf-lightbox-nav tbf-lightbox-nav-prev", onClick: (event) => {
46
- stop(event);
47
- props.showPrevious();
48
- }, type: "button", children: _jsx(Icon, { spec: ICON_MEDIA_CHEVRON_LEFT }) })), props.hasNext && (_jsx("button", { "aria-label": label("mediaNext"), className: "tbf-lightbox-nav tbf-lightbox-nav-next", onClick: (event) => {
49
- stop(event);
50
- props.showNext();
51
- }, type: "button", children: _jsx(Icon, { spec: ICON_MEDIA_CHEVRON_RIGHT }) })), _jsxs("div", { className: `tbf-lightbox-viewer${state}`, onClick: stop, children: [_jsx("h2", { className: "sr-only", id: props.titleId, children: props.alt }), _jsx("img", { alt: props.alt, className: "tbf-lightbox-img", src: props.src }), _jsx("p", { className: "tbf-lightbox-caption", children: props.alt })] })] }));
53
+ const node = (_jsxs("div", { "aria-labelledby": props.titleId, "aria-modal": "true", className: `${frontendClassName("lightbox")}${state}`, onClick: props.close, ref: panel, role: "dialog", tabIndex: -1, children: [_jsx("button", { "aria-label": label("mediaClose"), className: frontendClassName("lightbox-close"), onClick: props.close, type: "button", children: _jsx(Icon, { spec: ICON_MEDIA_CLOSE }) }), props.hasPrevious && _jsx(LightboxNav, { direction: "prev", label: label("mediaPrevious"), onClick: props.showPrevious }), props.hasNext && _jsx(LightboxNav, { direction: "next", label: label("mediaNext"), onClick: props.showNext }), _jsxs("div", { className: `${frontendClassName("lightbox-viewer")}${state}`, onClick: stop, children: [_jsx("h2", { className: "sr-only", id: props.titleId, children: props.alt }), _jsx("img", { alt: props.alt, className: frontendClassName("lightbox-img"), src: props.src }), _jsx("p", { className: frontendClassName("lightbox-caption"), children: props.alt })] })] }));
52
54
  if (typeof document === "undefined")
53
55
  return null;
54
56
  return createPortal(node, document.body);
@@ -1 +1 @@
1
- {"version":3,"file":"lightbox.js","sourceRoot":"","sources":["../../../src/media/lightbox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lightbox.js","sourceRoot":"","sources":["../../../src/media/lightbox.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"map-embed.d.ts","sourceRoot":"","sources":["../../../src/media/map-embed.tsx"],"names":[],"mappings":"AAAA,KAAK,aAAa,GAAG;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,aAAa,+BAczD;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"map-embed.d.ts","sourceRoot":"","sources":["../../../src/media/map-embed.tsx"],"names":[],"mappings":"AAEA,KAAK,aAAa,GAAG;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,aAAa,+BAczD;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { frontendClassName } from "../namespace/index.js";
2
3
  function MapEmbed({ className, src, title }) {
3
- return (_jsx("iframe", { allowFullScreen: true, className: ["tbf-map-embed", className].filter(Boolean).join(" "), height: "100%", loading: "lazy", referrerPolicy: "no-referrer-when-downgrade", src: src, style: { border: 0 }, title: title, width: "100%" }));
4
+ return (_jsx("iframe", { allowFullScreen: true, className: [frontendClassName("map-embed"), className].filter(Boolean).join(" "), height: "100%", loading: "lazy", referrerPolicy: "no-referrer-when-downgrade", src: src, style: { border: 0 }, title: title, width: "100%" }));
4
5
  }
5
6
  export { MapEmbed };
6
7
  //# sourceMappingURL=map-embed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"map-embed.js","sourceRoot":"","sources":["../../../src/media/map-embed.tsx"],"names":[],"mappings":";AAMA,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAiB;IACxD,OAAO,CACL,iBACA,eAAe,QACf,SAAS,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EACjE,MAAM,EAAC,MAAM,EACb,OAAO,EAAC,MAAM,EACd,cAAc,EAAC,4BAA4B,EAC3C,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EACpB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAC,MAAM,GACV,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"map-embed.js","sourceRoot":"","sources":["../../../src/media/map-embed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAQlD,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAiB;IACxD,OAAO,CACL,iBACA,eAAe,QACf,SAAS,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAChF,MAAM,EAAC,MAAM,EACb,OAAO,EAAC,MAAM,EACd,cAAc,EAAC,4BAA4B,EAC3C,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EACpB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAC,MAAM,GACV,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,9 +1,13 @@
1
- .tbf-carousel {
1
+ @use "@trebired/bundler/namespace" as ns;
2
+
3
+ $bottom: ns.modifier("carousel", "controls-bottom");
4
+
5
+ #{ns.class("carousel")} {
2
6
  position: relative;
3
7
  overflow: hidden;
4
8
  }
5
9
 
6
- .tbf-carousel-slide {
10
+ #{ns.class("carousel-slide")} {
7
11
  position: absolute;
8
12
  inset: 0;
9
13
  height: 100%;
@@ -13,12 +17,12 @@
13
17
  transition: opacity 1000ms ease;
14
18
  }
15
19
 
16
- .tbf-carousel-slide.is-active {
20
+ #{ns.class("carousel-slide")}.is-active {
17
21
  position: relative;
18
22
  opacity: 1;
19
23
  }
20
24
 
21
- .tbf-carousel-nav {
25
+ #{ns.class("carousel-nav")} {
22
26
  position: absolute;
23
27
  top: 50%;
24
28
  display: flex;
@@ -35,19 +39,19 @@
35
39
  transition: background 180ms ease;
36
40
  }
37
41
 
38
- .tbf-carousel-nav:hover {
42
+ #{ns.class("carousel-nav")}:hover {
39
43
  background: oklch(14.5% 0 0 / 55%);
40
44
  }
41
45
 
42
- .tbf-carousel-nav-prev {
46
+ #{ns.class("carousel-nav-prev")} {
43
47
  left: 0.75rem;
44
48
  }
45
49
 
46
- .tbf-carousel-nav-next {
50
+ #{ns.class("carousel-nav-next")} {
47
51
  right: 0.75rem;
48
52
  }
49
53
 
50
- .tbf-carousel-dots {
54
+ #{ns.class("carousel-dots")} {
51
55
  position: absolute;
52
56
  bottom: 0.9rem;
53
57
  left: 50%;
@@ -56,7 +60,7 @@
56
60
  transform: translateX(-50%);
57
61
  }
58
62
 
59
- .tbf-carousel-dot {
63
+ #{ns.class("carousel-dot")} {
60
64
  height: 0.5rem;
61
65
  width: 0.5rem;
62
66
  border: none;
@@ -67,12 +71,12 @@
67
71
  transition: background 180ms ease, width 180ms ease;
68
72
  }
69
73
 
70
- .tbf-carousel-dot.is-active {
74
+ #{ns.class("carousel-dot")}.is-active {
71
75
  width: 1.75rem;
72
76
  background: oklch(100% 0 0 / 95%);
73
77
  }
74
78
 
75
- .tbf-carousel--controls-bottom::after {
79
+ #{$bottom}::after {
76
80
  position: absolute;
77
81
  inset: 0;
78
82
  z-index: 1;
@@ -81,12 +85,13 @@
81
85
  pointer-events: none;
82
86
  }
83
87
 
84
- .tbf-carousel--controls-bottom .tbf-carousel-nav,
85
- .tbf-carousel--controls-bottom .tbf-carousel-dots {
88
+ #{$bottom} #{ns.class("carousel-nav")},
89
+
90
+ #{$bottom} #{ns.class("carousel-dots")} {
86
91
  z-index: 2;
87
92
  }
88
93
 
89
- .tbf-carousel--controls-bottom .tbf-carousel-nav {
94
+ #{$bottom} #{ns.class("carousel-nav")} {
90
95
  top: auto;
91
96
  bottom: 1rem;
92
97
  transform: none;
@@ -94,20 +99,20 @@
94
99
  backdrop-filter: blur(12px);
95
100
  }
96
101
 
97
- .tbf-carousel--controls-bottom .tbf-carousel-nav:hover {
102
+ #{$bottom} #{ns.class("carousel-nav")}:hover {
98
103
  background: oklch(100% 0 0 / 26%);
99
104
  }
100
105
 
101
- .tbf-carousel--controls-bottom .tbf-carousel-nav-prev {
106
+ #{$bottom} #{ns.class("carousel-nav-prev")} {
102
107
  left: 1rem;
103
108
  }
104
109
 
105
- .tbf-carousel--controls-bottom .tbf-carousel-nav-next {
110
+ #{$bottom} #{ns.class("carousel-nav-next")} {
106
111
  right: auto;
107
112
  left: 4.25rem;
108
113
  }
109
114
 
110
- .tbf-carousel--controls-bottom .tbf-carousel-dots {
115
+ #{$bottom} #{ns.class("carousel-dots")} {
111
116
  bottom: 2.0625rem;
112
117
  left: auto;
113
118
  right: 1rem;
@@ -115,19 +120,19 @@
115
120
  transform: none;
116
121
  }
117
122
 
118
- .tbf-carousel--controls-bottom .tbf-carousel-dot {
123
+ #{$bottom} #{ns.class("carousel-dot")} {
119
124
  height: 0.625rem;
120
125
  width: 0.625rem;
121
126
  background: oklch(100% 0 0 / 45%);
122
127
  }
123
128
 
124
- .tbf-carousel--controls-bottom .tbf-carousel-dot.is-active {
129
+ #{$bottom} #{ns.class("carousel-dot")}.is-active {
125
130
  width: 1.75rem;
126
131
  background: oklch(100% 0 0 / 100%);
127
132
  }
128
133
 
129
134
  @media (prefers-reduced-motion: reduce) {
130
- .tbf-carousel-slide {
135
+ #{ns.class("carousel-slide")} {
131
136
  transition: none;
132
137
  }
133
138
  }
@@ -1,2 +1,2 @@
1
- @use "./lightbox.scss";
2
- @use "./carousel.scss";
1
+ @use "./lightbox";
2
+ @use "./carousel";