@pie-players/pie-players-shared 0.2.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 (233) hide show
  1. package/dist/config/profile.d.ts +15 -0
  2. package/dist/config/profile.d.ts.map +1 -0
  3. package/dist/config/profile.js +27 -0
  4. package/dist/config/profile.js.map +1 -0
  5. package/dist/i18n/index.d.ts +13 -0
  6. package/dist/i18n/index.d.ts.map +1 -0
  7. package/dist/i18n/index.js +12 -0
  8. package/dist/i18n/index.js.map +1 -0
  9. package/dist/i18n/loader.d.ts +36 -0
  10. package/dist/i18n/loader.d.ts.map +1 -0
  11. package/dist/i18n/loader.js +133 -0
  12. package/dist/i18n/loader.js.map +1 -0
  13. package/dist/i18n/scripts/check-coverage.d.ts +16 -0
  14. package/dist/i18n/scripts/check-coverage.d.ts.map +1 -0
  15. package/dist/i18n/scripts/check-coverage.js +262 -0
  16. package/dist/i18n/scripts/check-coverage.js.map +1 -0
  17. package/dist/i18n/scripts/scan-hardcoded.d.ts +16 -0
  18. package/dist/i18n/scripts/scan-hardcoded.d.ts.map +1 -0
  19. package/dist/i18n/scripts/scan-hardcoded.js +266 -0
  20. package/dist/i18n/scripts/scan-hardcoded.js.map +1 -0
  21. package/dist/i18n/simple-i18n.d.ts +69 -0
  22. package/dist/i18n/simple-i18n.d.ts.map +1 -0
  23. package/dist/i18n/simple-i18n.js +199 -0
  24. package/dist/i18n/simple-i18n.js.map +1 -0
  25. package/dist/i18n/translations/ar/common.json +36 -0
  26. package/dist/i18n/translations/ar/toolkit.json +48 -0
  27. package/dist/i18n/translations/ar/tools.json +109 -0
  28. package/dist/i18n/translations/en/common.json +36 -0
  29. package/dist/i18n/translations/en/toolkit.json +48 -0
  30. package/dist/i18n/translations/en/tools.json +109 -0
  31. package/dist/i18n/translations/es/common.json +36 -0
  32. package/dist/i18n/translations/es/toolkit.json +48 -0
  33. package/dist/i18n/translations/es/tools.json +109 -0
  34. package/dist/i18n/translations/zh/common.json +36 -0
  35. package/dist/i18n/translations/zh/toolkit.json +48 -0
  36. package/dist/i18n/translations/zh/tools.json +109 -0
  37. package/dist/i18n/types.d.ts +58 -0
  38. package/dist/i18n/types.d.ts.map +1 -0
  39. package/dist/i18n/types.js +8 -0
  40. package/dist/i18n/types.js.map +1 -0
  41. package/dist/i18n/use-i18n-standalone.svelte.d.ts +87 -0
  42. package/dist/i18n/use-i18n-standalone.svelte.d.ts.map +1 -0
  43. package/dist/i18n/use-i18n-standalone.svelte.js +151 -0
  44. package/dist/i18n/use-i18n-standalone.svelte.js.map +1 -0
  45. package/dist/i18n/use-i18n.svelte.d.ts +67 -0
  46. package/dist/i18n/use-i18n.svelte.d.ts.map +1 -0
  47. package/dist/i18n/use-i18n.svelte.js +144 -0
  48. package/dist/i18n/use-i18n.svelte.js.map +1 -0
  49. package/dist/index.d.ts +11 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +11 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/instrumentation/index.d.ts +53 -0
  54. package/dist/instrumentation/index.d.ts.map +1 -0
  55. package/dist/instrumentation/index.js +53 -0
  56. package/dist/instrumentation/index.js.map +1 -0
  57. package/dist/instrumentation/providers/BaseInstrumentationProvider.d.ts +197 -0
  58. package/dist/instrumentation/providers/BaseInstrumentationProvider.d.ts.map +1 -0
  59. package/dist/instrumentation/providers/BaseInstrumentationProvider.js +267 -0
  60. package/dist/instrumentation/providers/BaseInstrumentationProvider.js.map +1 -0
  61. package/dist/instrumentation/providers/ConsoleInstrumentationProvider.d.ts +106 -0
  62. package/dist/instrumentation/providers/ConsoleInstrumentationProvider.d.ts.map +1 -0
  63. package/dist/instrumentation/providers/ConsoleInstrumentationProvider.js +182 -0
  64. package/dist/instrumentation/providers/ConsoleInstrumentationProvider.js.map +1 -0
  65. package/dist/instrumentation/providers/DataDogInstrumentationProvider.d.ts +170 -0
  66. package/dist/instrumentation/providers/DataDogInstrumentationProvider.d.ts.map +1 -0
  67. package/dist/instrumentation/providers/DataDogInstrumentationProvider.js +183 -0
  68. package/dist/instrumentation/providers/DataDogInstrumentationProvider.js.map +1 -0
  69. package/dist/instrumentation/providers/NewRelicInstrumentationProvider.d.ts +86 -0
  70. package/dist/instrumentation/providers/NewRelicInstrumentationProvider.d.ts.map +1 -0
  71. package/dist/instrumentation/providers/NewRelicInstrumentationProvider.js +135 -0
  72. package/dist/instrumentation/providers/NewRelicInstrumentationProvider.js.map +1 -0
  73. package/dist/instrumentation/providers/index.d.ts +12 -0
  74. package/dist/instrumentation/providers/index.d.ts.map +1 -0
  75. package/dist/instrumentation/providers/index.js +12 -0
  76. package/dist/instrumentation/providers/index.js.map +1 -0
  77. package/dist/instrumentation/types.d.ts +348 -0
  78. package/dist/instrumentation/types.d.ts.map +1 -0
  79. package/dist/instrumentation/types.js +9 -0
  80. package/dist/instrumentation/types.js.map +1 -0
  81. package/dist/loader-config.d.ts +76 -0
  82. package/dist/loader-config.d.ts.map +1 -0
  83. package/dist/loader-config.js +12 -0
  84. package/dist/loader-config.js.map +1 -0
  85. package/dist/loaders/ElementLoader.d.ts +72 -0
  86. package/dist/loaders/ElementLoader.d.ts.map +1 -0
  87. package/dist/loaders/ElementLoader.js +52 -0
  88. package/dist/loaders/ElementLoader.js.map +1 -0
  89. package/dist/loaders/EsmElementLoader.d.ts +67 -0
  90. package/dist/loaders/EsmElementLoader.d.ts.map +1 -0
  91. package/dist/loaders/EsmElementLoader.js +71 -0
  92. package/dist/loaders/EsmElementLoader.js.map +1 -0
  93. package/dist/loaders/IifeElementLoader.d.ts +61 -0
  94. package/dist/loaders/IifeElementLoader.d.ts.map +1 -0
  95. package/dist/loaders/IifeElementLoader.js +63 -0
  96. package/dist/loaders/IifeElementLoader.js.map +1 -0
  97. package/dist/loaders/index.d.ts +28 -0
  98. package/dist/loaders/index.d.ts.map +1 -0
  99. package/dist/loaders/index.js +25 -0
  100. package/dist/loaders/index.js.map +1 -0
  101. package/dist/object/index.d.ts +12 -0
  102. package/dist/object/index.d.ts.map +1 -0
  103. package/dist/object/index.js +40 -0
  104. package/dist/object/index.js.map +1 -0
  105. package/dist/pie/asset-handler.d.ts +64 -0
  106. package/dist/pie/asset-handler.d.ts.map +1 -0
  107. package/dist/pie/asset-handler.js +238 -0
  108. package/dist/pie/asset-handler.js.map +1 -0
  109. package/dist/pie/component-context.d.ts +22 -0
  110. package/dist/pie/component-context.d.ts.map +1 -0
  111. package/dist/pie/component-context.js +30 -0
  112. package/dist/pie/component-context.js.map +1 -0
  113. package/dist/pie/config.d.ts +39 -0
  114. package/dist/pie/config.d.ts.map +1 -0
  115. package/dist/pie/config.js +174 -0
  116. package/dist/pie/config.js.map +1 -0
  117. package/dist/pie/configure-initialization.d.ts +35 -0
  118. package/dist/pie/configure-initialization.d.ts.map +1 -0
  119. package/dist/pie/configure-initialization.js +141 -0
  120. package/dist/pie/configure-initialization.js.map +1 -0
  121. package/dist/pie/esm-loader.d.ts +93 -0
  122. package/dist/pie/esm-loader.d.ts.map +1 -0
  123. package/dist/pie/esm-loader.js +308 -0
  124. package/dist/pie/esm-loader.js.map +1 -0
  125. package/dist/pie/iife-loader.d.ts +76 -0
  126. package/dist/pie/iife-loader.d.ts.map +1 -0
  127. package/dist/pie/iife-loader.js +303 -0
  128. package/dist/pie/iife-loader.js.map +1 -0
  129. package/dist/pie/index.d.ts +31 -0
  130. package/dist/pie/index.d.ts.map +1 -0
  131. package/dist/pie/index.js +34 -0
  132. package/dist/pie/index.js.map +1 -0
  133. package/dist/pie/initialization.d.ts +40 -0
  134. package/dist/pie/initialization.d.ts.map +1 -0
  135. package/dist/pie/initialization.js +349 -0
  136. package/dist/pie/initialization.js.map +1 -0
  137. package/dist/pie/logger.d.ts +64 -0
  138. package/dist/pie/logger.d.ts.map +1 -0
  139. package/dist/pie/logger.js +45 -0
  140. package/dist/pie/logger.js.map +1 -0
  141. package/dist/pie/math-rendering.d.ts +69 -0
  142. package/dist/pie/math-rendering.d.ts.map +1 -0
  143. package/dist/pie/math-rendering.js +98 -0
  144. package/dist/pie/math-rendering.js.map +1 -0
  145. package/dist/pie/overrides.d.ts +43 -0
  146. package/dist/pie/overrides.d.ts.map +1 -0
  147. package/dist/pie/overrides.js +146 -0
  148. package/dist/pie/overrides.js.map +1 -0
  149. package/dist/pie/player-initializer.d.ts +55 -0
  150. package/dist/pie/player-initializer.d.ts.map +1 -0
  151. package/dist/pie/player-initializer.js +123 -0
  152. package/dist/pie/player-initializer.js.map +1 -0
  153. package/dist/pie/registry.d.ts +11 -0
  154. package/dist/pie/registry.d.ts.map +1 -0
  155. package/dist/pie/registry.js +21 -0
  156. package/dist/pie/registry.js.map +1 -0
  157. package/dist/pie/resource-monitor.d.ts +208 -0
  158. package/dist/pie/resource-monitor.d.ts.map +1 -0
  159. package/dist/pie/resource-monitor.js +969 -0
  160. package/dist/pie/resource-monitor.js.map +1 -0
  161. package/dist/pie/scoring.d.ts +17 -0
  162. package/dist/pie/scoring.d.ts.map +1 -0
  163. package/dist/pie/scoring.js +84 -0
  164. package/dist/pie/scoring.js.map +1 -0
  165. package/dist/pie/types.d.ts +136 -0
  166. package/dist/pie/types.d.ts.map +1 -0
  167. package/dist/pie/types.js +52 -0
  168. package/dist/pie/types.js.map +1 -0
  169. package/dist/pie/updates.d.ts +20 -0
  170. package/dist/pie/updates.d.ts.map +1 -0
  171. package/dist/pie/updates.js +175 -0
  172. package/dist/pie/updates.js.map +1 -0
  173. package/dist/pie/use-resource-monitor.svelte.d.ts +56 -0
  174. package/dist/pie/use-resource-monitor.svelte.d.ts.map +1 -0
  175. package/dist/pie/use-resource-monitor.svelte.js +117 -0
  176. package/dist/pie/use-resource-monitor.svelte.js.map +1 -0
  177. package/dist/pie/utils.d.ts +44 -0
  178. package/dist/pie/utils.d.ts.map +1 -0
  179. package/dist/pie/utils.js +74 -0
  180. package/dist/pie/utils.js.map +1 -0
  181. package/dist/types/custom-elements.d.ts +183 -0
  182. package/dist/types/custom-elements.d.ts.map +1 -0
  183. package/dist/types/custom-elements.js +8 -0
  184. package/dist/types/custom-elements.js.map +1 -0
  185. package/dist/types/index.d.ts +761 -0
  186. package/dist/types/index.d.ts.map +1 -0
  187. package/dist/types/index.js +120 -0
  188. package/dist/types/index.js.map +1 -0
  189. package/dist/types/search.d.ts +105 -0
  190. package/dist/types/search.d.ts.map +1 -0
  191. package/dist/types/search.js +12 -0
  192. package/dist/types/search.js.map +1 -0
  193. package/dist/types/transform.d.ts +48 -0
  194. package/dist/types/transform.d.ts.map +1 -0
  195. package/dist/types/transform.js +21 -0
  196. package/dist/types/transform.js.map +1 -0
  197. package/dist/ui/focus-trap.d.ts +10 -0
  198. package/dist/ui/focus-trap.d.ts.map +1 -0
  199. package/dist/ui/focus-trap.js +30 -0
  200. package/dist/ui/focus-trap.js.map +1 -0
  201. package/dist/ui/safe-storage.d.ts +3 -0
  202. package/dist/ui/safe-storage.d.ts.map +1 -0
  203. package/dist/ui/safe-storage.js +21 -0
  204. package/dist/ui/safe-storage.js.map +1 -0
  205. package/package.json +118 -0
  206. package/src/components/PieItemPlayer.svelte +604 -0
  207. package/src/components/PiePreviewLayout.svelte +144 -0
  208. package/src/components/PiePreviewToggle.svelte +110 -0
  209. package/src/components/PieSpinner.svelte +85 -0
  210. package/src/components/ToolSettingsButton.svelte +31 -0
  211. package/src/components/ToolSettingsPanel.svelte +90 -0
  212. package/src/components/index.ts +6 -0
  213. package/src/i18n/README.md +223 -0
  214. package/src/i18n/index.ts +26 -0
  215. package/src/i18n/loader.ts +156 -0
  216. package/src/i18n/scripts/check-coverage.ts +345 -0
  217. package/src/i18n/scripts/scan-hardcoded.ts +342 -0
  218. package/src/i18n/simple-i18n.ts +236 -0
  219. package/src/i18n/translations/ar/common.json +36 -0
  220. package/src/i18n/translations/ar/toolkit.json +48 -0
  221. package/src/i18n/translations/ar/tools.json +109 -0
  222. package/src/i18n/translations/en/common.json +36 -0
  223. package/src/i18n/translations/en/toolkit.json +48 -0
  224. package/src/i18n/translations/en/tools.json +109 -0
  225. package/src/i18n/translations/es/common.json +36 -0
  226. package/src/i18n/translations/es/toolkit.json +48 -0
  227. package/src/i18n/translations/es/tools.json +109 -0
  228. package/src/i18n/translations/zh/common.json +36 -0
  229. package/src/i18n/translations/zh/toolkit.json +48 -0
  230. package/src/i18n/translations/zh/tools.json +109 -0
  231. package/src/i18n/types.ts +66 -0
  232. package/src/i18n/use-i18n-standalone.svelte.ts +184 -0
  233. package/src/i18n/use-i18n.svelte.ts +163 -0
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Svelte 5 Composable for Resource Monitoring
3
+ *
4
+ * Provides reusable resource monitoring logic for PIE players.
5
+ * Uses Svelte 5 runes for reactivity and lifecycle management.
6
+ *
7
+ * Usage in a Svelte 5 component:
8
+ * ```svelte
9
+ * <script lang="ts">
10
+ * import { useResourceMonitor } from './use-resource-monitor.svelte';
11
+ *
12
+ * let hostElement = $state<HTMLElement | null>(null);
13
+ * const debugEnabled = $derived(debug || isGlobalDebugEnabled());
14
+ *
15
+ * // Initialize resource monitoring
16
+ * const resourceMonitor = useResourceMonitor(
17
+ * () => hostElement,
18
+ * () => loaderConfig,
19
+ * () => debugEnabled,
20
+ * 'pie-fixed-player'
21
+ * );
22
+ * </script>
23
+ * ```
24
+ */
25
+ import { onDestroy } from "svelte";
26
+ import { DEFAULT_LOADER_CONFIG } from "../loader-config";
27
+ import { createPieLogger } from "./logger";
28
+ import { ResourceMonitor } from "./resource-monitor";
29
+ // Default maximum retry delay (matches ResourceMonitor default)
30
+ const DEFAULT_MAX_RETRY_DELAY = 5000;
31
+ /**
32
+ * Svelte 5 composable for resource monitoring
33
+ *
34
+ * @param getHostElement - Function that returns the current host element (reactive)
35
+ * @param getLoaderConfig - Function that returns the current loader config (reactive)
36
+ * @param getDebugEnabled - Function that returns the current debug state (reactive)
37
+ * @param componentName - Name of the component for logging
38
+ * @returns Object with monitor instance and stats getter
39
+ */
40
+ export function useResourceMonitor(getHostElement, getLoaderConfig, getDebugEnabled, componentName = "pie-player") {
41
+ const logger = createPieLogger("use-resource-monitor", getDebugEnabled);
42
+ let monitor = $state(null);
43
+ let isInitialized = $state(false);
44
+ // Initialize resource monitor when conditions are met
45
+ $effect(() => {
46
+ const hostElement = getHostElement();
47
+ const loaderConfig = getLoaderConfig();
48
+ const debugEnabled = getDebugEnabled();
49
+ // Clean up existing monitor if host element becomes null
50
+ if (!hostElement && monitor) {
51
+ logger.debug(`Host element removed, stopping resource monitor for ${componentName}`);
52
+ monitor.stop();
53
+ monitor = null;
54
+ isInitialized = false;
55
+ return;
56
+ }
57
+ // Initialize if we have a host element (retry logic works independently of trackPageActions)
58
+ if (hostElement && !isInitialized) {
59
+ logger.debug(`Initializing resource monitor for ${componentName}`, {
60
+ trackPageActions: loaderConfig?.trackPageActions ?? false,
61
+ maxRetries: loaderConfig?.maxResourceRetries ??
62
+ DEFAULT_LOADER_CONFIG.maxResourceRetries,
63
+ retryDelay: loaderConfig?.resourceRetryDelay ??
64
+ DEFAULT_LOADER_CONFIG.resourceRetryDelay,
65
+ hasContainer: !!hostElement,
66
+ });
67
+ // Create and start resource monitor with config from loaderConfig
68
+ monitor = new ResourceMonitor({
69
+ trackPageActions: loaderConfig?.trackPageActions ?? false,
70
+ maxRetries: loaderConfig?.maxResourceRetries ??
71
+ DEFAULT_LOADER_CONFIG.maxResourceRetries,
72
+ initialRetryDelay: loaderConfig?.resourceRetryDelay ??
73
+ DEFAULT_LOADER_CONFIG.resourceRetryDelay,
74
+ maxRetryDelay: DEFAULT_MAX_RETRY_DELAY,
75
+ debug: debugEnabled,
76
+ });
77
+ monitor.start(hostElement);
78
+ isInitialized = true;
79
+ logger.info(`✅ Resource monitoring enabled for ${componentName}` +
80
+ (loaderConfig?.trackPageActions
81
+ ? " (with New Relic tracking)"
82
+ : " (retry only)"));
83
+ }
84
+ });
85
+ // Cleanup on component destroy
86
+ onDestroy(() => {
87
+ if (monitor) {
88
+ const stats = monitor.getStats();
89
+ logger.debug(`Resource monitor stats at cleanup for ${componentName}:`, stats);
90
+ monitor.stop();
91
+ monitor = null;
92
+ isInitialized = false;
93
+ }
94
+ });
95
+ // Return reactive getters
96
+ return {
97
+ /**
98
+ * Get the current monitor instance (may be null)
99
+ */
100
+ get instance() {
101
+ return monitor;
102
+ },
103
+ /**
104
+ * Get current statistics from the monitor
105
+ */
106
+ getStats() {
107
+ return monitor?.getStats() ?? { activeRetries: 0, failedResources: [] };
108
+ },
109
+ /**
110
+ * Check if monitoring is active
111
+ */
112
+ get isActive() {
113
+ return isInitialized && monitor !== null;
114
+ },
115
+ };
116
+ }
117
+ //# sourceMappingURL=use-resource-monitor.svelte.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-resource-monitor.svelte.js","sourceRoot":"","sources":["../../src/pie/use-resource-monitor.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,gEAAgE;AAChE,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CACjC,cAAwC,EACxC,eAAmC,EACnC,eAA8B,EAC9B,gBAAwB,YAAY;IAEpC,MAAM,MAAM,GAAG,eAAe,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;IAExE,IAAI,OAAO,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAC;IACnD,IAAI,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAElC,sDAAsD;IACtD,OAAO,CAAC,GAAG,EAAE;QACZ,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QAEvC,yDAAyD;QACzD,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,KAAK,CACX,uDAAuD,aAAa,EAAE,CACtE,CAAC;YACF,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,GAAG,IAAI,CAAC;YACf,aAAa,GAAG,KAAK,CAAC;YACtB,OAAO;QACR,CAAC;QAED,6FAA6F;QAC7F,IAAI,WAAW,IAAI,CAAC,aAAa,EAAE,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,qCAAqC,aAAa,EAAE,EAAE;gBAClE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,IAAI,KAAK;gBACzD,UAAU,EACT,YAAY,EAAE,kBAAkB;oBAChC,qBAAqB,CAAC,kBAAkB;gBACzC,UAAU,EACT,YAAY,EAAE,kBAAkB;oBAChC,qBAAqB,CAAC,kBAAkB;gBACzC,YAAY,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC,CAAC;YAEH,kEAAkE;YAClE,OAAO,GAAG,IAAI,eAAe,CAAC;gBAC7B,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,IAAI,KAAK;gBACzD,UAAU,EACT,YAAY,EAAE,kBAAkB;oBAChC,qBAAqB,CAAC,kBAAkB;gBACzC,iBAAiB,EAChB,YAAY,EAAE,kBAAkB;oBAChC,qBAAqB,CAAC,kBAAkB;gBACzC,aAAa,EAAE,uBAAuB;gBACtC,KAAK,EAAE,YAAY;aACnB,CAAC,CAAC;YAEH,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC3B,aAAa,GAAG,IAAI,CAAC;YACrB,MAAM,CAAC,IAAI,CACV,qCAAqC,aAAa,EAAE;gBACnD,CAAC,YAAY,EAAE,gBAAgB;oBAC9B,CAAC,CAAC,4BAA4B;oBAC9B,CAAC,CAAC,eAAe,CAAC,CACpB,CAAC;QACH,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,+BAA+B;IAC/B,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,KAAK,CACX,yCAAyC,aAAa,GAAG,EACzD,KAAK,CACL,CAAC;YACF,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,GAAG,IAAI,CAAC;YACf,aAAa,GAAG,KAAK,CAAC;QACvB,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,0BAA0B;IAC1B,OAAO;QACN;;WAEG;QACH,IAAI,QAAQ;YACX,OAAO,OAAO,CAAC;QAChB,CAAC;QAED;;WAEG;QACH,QAAQ;YACP,OAAO,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;QACzE,CAAC;QAED;;WAEG;QACH,IAAI,QAAQ;YACX,OAAO,aAAa,IAAI,OAAO,KAAK,IAAI,CAAC;QAC1C,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * PIE Utils Module
3
+ *
4
+ * URL building, package name parsing, and session utilities.
5
+ */
6
+ import type { ConfigEntity } from "../types";
7
+ import type { LoadPieElementsOptions } from "./types";
8
+ /**
9
+ * Build URL for fetching PIE element bundles from build service
10
+ */
11
+ export declare const getPieElementBundlesUrl: (config: ConfigEntity, opts: LoadPieElementsOptions) => string;
12
+ /**
13
+ * Parse a package name string into its components
14
+ *
15
+ * NOTE: Duplicated because we can't have any server-side code in the client
16
+ *
17
+ * Examples:
18
+ * - "@pie-element/multiple-choice@9.9.1" → { name: "@pie-element/multiple-choice", path: "", version: "9.9.1" }
19
+ * - "lodash/get@4.4.2" → { name: "lodash", path: "get", version: "4.4.2" }
20
+ */
21
+ export declare const parsePackageName: (input: string) => {
22
+ name: string;
23
+ path: string;
24
+ version: string;
25
+ };
26
+ /**
27
+ * Strip versions from a package string
28
+ *
29
+ * Example: "@pie-element/multiple-choice@9.9.1+@pie-element/hotspot@9.1.0"
30
+ * → "@pie-element/multiple-choice+@pie-element/hotspot"
31
+ */
32
+ export declare const getPackageWithoutVersion: (packages: string) => string;
33
+ /**
34
+ * Find or add a session entry for a given element
35
+ *
36
+ * TODO: kinda gnarly, copied from player project
37
+ *
38
+ * @param data - Session data array
39
+ * @param id - Model/element ID
40
+ * @param element - Element tag name (optional)
41
+ * @returns The session entry
42
+ */
43
+ export declare const findOrAddSession: (data: any[], id: string, element?: string) => any;
44
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/pie/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,uBAAuB,GACnC,QAAQ,YAAY,EACpB,MAAM,sBAAsB,KAC1B,MAGF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAC5B,OAAO,MAAM,KACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAgB/C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,MAIhD,CAAC;AAEb;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,GAC5B,MAAM,GAAG,EAAE,EACX,IAAI,MAAM,EACV,UAAU,MAAM,KACd,GAeF,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * PIE Utils Module
3
+ *
4
+ * URL building, package name parsing, and session utilities.
5
+ */
6
+ /**
7
+ * Build URL for fetching PIE element bundles from build service
8
+ */
9
+ export const getPieElementBundlesUrl = (config, opts) => {
10
+ const elements = config.elements;
11
+ return `${opts.buildServiceBase}/${encodeURI(Object.values(elements).join("+"))}/${opts.bundleType}`;
12
+ };
13
+ /**
14
+ * Parse a package name string into its components
15
+ *
16
+ * NOTE: Duplicated because we can't have any server-side code in the client
17
+ *
18
+ * Examples:
19
+ * - "@pie-element/multiple-choice@9.9.1" → { name: "@pie-element/multiple-choice", path: "", version: "9.9.1" }
20
+ * - "lodash/get@4.4.2" → { name: "lodash", path: "get", version: "4.4.2" }
21
+ */
22
+ export const parsePackageName = (input) => {
23
+ if (!input) {
24
+ throw new Error("Parameter is required: input");
25
+ }
26
+ const matched = input.charAt(0) === "@"
27
+ ? input.match(/^(@[^/]+\/[^/@]+)(?:\/([^@]+))?(?:@([\s\S]+))?/) // scoped package name regex
28
+ : input.match(/^([^/@]+)(?:\/([^@]+))?(?:@([\s\S]+))?/); // normal package name
29
+ if (!matched) {
30
+ throw new Error(`[parse-package-name] "${input}" is not a valid string`);
31
+ }
32
+ return {
33
+ name: matched[1],
34
+ path: matched[2] || "",
35
+ version: matched[3] || "",
36
+ };
37
+ };
38
+ /**
39
+ * Strip versions from a package string
40
+ *
41
+ * Example: "@pie-element/multiple-choice@9.9.1+@pie-element/hotspot@9.1.0"
42
+ * → "@pie-element/multiple-choice+@pie-element/hotspot"
43
+ */
44
+ export const getPackageWithoutVersion = (packages) => packages
45
+ .split("+")
46
+ .map((p) => parsePackageName(p).name)
47
+ .join("+");
48
+ /**
49
+ * Find or add a session entry for a given element
50
+ *
51
+ * TODO: kinda gnarly, copied from player project
52
+ *
53
+ * @param data - Session data array
54
+ * @param id - Model/element ID
55
+ * @param element - Element tag name (optional)
56
+ * @returns The session entry
57
+ */
58
+ export const findOrAddSession = (data, id, element) => {
59
+ if (!data) {
60
+ throw new Error("session data is required");
61
+ }
62
+ const s = data.find((d) => d.id === id);
63
+ if (s) {
64
+ // Update element property if provided and not already set
65
+ if (element && !s.element) {
66
+ s.element = element;
67
+ }
68
+ return s;
69
+ }
70
+ const ss = element ? { id, element } : { id };
71
+ data.push(ss);
72
+ return ss;
73
+ };
74
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/pie/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACtC,MAAoB,EACpB,IAA4B,EACnB,EAAE;IACX,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,OAAO,GAAG,IAAI,CAAC,gBAAgB,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtG,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,KAAa,EACqC,EAAE;IACpD,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,OAAO,GACZ,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;QACtB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC,4BAA4B;QAC5F,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC,sBAAsB;IACjF,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,yBAAyB,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO;QACN,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAChB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;QACtB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;KACzB,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAgB,EAAU,EAAE,CACpE,QAAQ;KACN,KAAK,CAAC,GAAG,CAAC;KACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KACpC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEb;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,IAAW,EACX,EAAU,EACV,OAAgB,EACV,EAAE;IACR,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,EAAE,CAAC;QACP,0DAA0D;QAC1D,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;QACrB,CAAC;QACD,OAAO,CAAC,CAAC;IACV,CAAC;IACD,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;IAC9C,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,OAAO,EAAE,CAAC;AACX,CAAC,CAAC"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * TypeScript interfaces for custom PIE elements
3
+ *
4
+ * These interfaces provide type safety when working with custom elements
5
+ * that are defined as Svelte components with customElement option.
6
+ */
7
+ import type { ItemConfig } from "./index";
8
+ /**
9
+ * PIE IIFE Player custom element interface
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const player = document.querySelector('pie-iife-player') as PieIifePlayerElement;
14
+ * player.config = itemConfig;
15
+ * player.session = { id: 'session-1', data: [] };
16
+ * ```
17
+ */
18
+ export interface PieIifePlayerElement extends HTMLElement {
19
+ /** PIE item configuration */
20
+ config: ItemConfig;
21
+ /** Session state containing response data */
22
+ session: {
23
+ id: string;
24
+ data: any[];
25
+ };
26
+ /** Player environment (mode and role) */
27
+ env: {
28
+ mode: "gather" | "view" | "evaluate";
29
+ role: "student" | "instructor";
30
+ };
31
+ /**
32
+ * Authoring mode toggle (separate from env.mode).
33
+ * - view: normal runtime rendering
34
+ * - author: loads editor bundles and enables configure/authoring flows
35
+ */
36
+ mode?: "view" | "author";
37
+ /**
38
+ * Authoring configuration passed through to PIE elements (e.g. configure settings).
39
+ * In authoring mode this typically influences the element's configure UI and emitted
40
+ * `model.updated` events.
41
+ */
42
+ configuration?: Record<string, any>;
43
+ /** Debug mode flag */
44
+ debug?: boolean;
45
+ }
46
+ /**
47
+ * PIE ESM Player custom element interface
48
+ *
49
+ * Mirrors the pie-iife-player contract, but loads PIE bundles via native ESM from an ESM CDN.
50
+ */
51
+ export interface PieEsmPlayerElement extends HTMLElement {
52
+ /** PIE item configuration */
53
+ config: ItemConfig;
54
+ /** Session state containing response data */
55
+ session: {
56
+ id: string;
57
+ data: any[];
58
+ };
59
+ /** Player environment (mode and role) */
60
+ env: {
61
+ mode: "gather" | "view" | "evaluate";
62
+ role: "student" | "instructor";
63
+ };
64
+ /** ESM CDN base URL (e.g. https://esm.sh) */
65
+ esmCdnUrl?: string;
66
+ /** Authoring mode toggle (separate from env.mode). */
67
+ mode?: "view" | "author";
68
+ /** Authoring configuration passed through to PIE elements. */
69
+ configuration?: Record<string, any>;
70
+ /** Debug mode flag */
71
+ debug?: boolean;
72
+ }
73
+ /**
74
+ * Tool Toolbar custom element interface
75
+ */
76
+ export interface ToolToolbarElement extends HTMLElement {
77
+ /** Comma-separated list of enabled tools */
78
+ tools?: string;
79
+ /** Whether toolbar is disabled */
80
+ disabled?: boolean;
81
+ /** Toolbar position */
82
+ position?: "top" | "bottom" | "left" | "right";
83
+ /** Whether to show tool labels */
84
+ "show-labels"?: boolean;
85
+ /** Organization ID for tool configuration */
86
+ "organization-id"?: string;
87
+ /** Base URL for tool resources */
88
+ "base-url"?: string;
89
+ /** Tool coordinator instance (passed as property, not attribute) */
90
+ toolCoordinator?: any;
91
+ /** Highlight coordinator instance */
92
+ highlightCoordinator?: any;
93
+ }
94
+ /**
95
+ * Base tool element interface
96
+ *
97
+ * All tool custom elements share these properties
98
+ */
99
+ export interface BaseToolElement extends HTMLElement {
100
+ /** Whether the tool is visible */
101
+ visible?: boolean;
102
+ /** Unique tool identifier */
103
+ "tool-id"?: string;
104
+ /** Tool coordinator instance (passed as property) */
105
+ coordinator?: any;
106
+ }
107
+ /**
108
+ * Calculator tool element
109
+ */
110
+ export interface ToolCalculatorElement extends BaseToolElement {
111
+ /** Calculator type */
112
+ "calculator-type"?: "basic" | "scientific" | "graphing";
113
+ }
114
+ /**
115
+ * Color Scheme tool element
116
+ */
117
+ export interface ToolColorSchemeElement extends BaseToolElement {
118
+ }
119
+ /**
120
+ * Graph tool element
121
+ */
122
+ export interface ToolGraphElement extends BaseToolElement {
123
+ }
124
+ /**
125
+ * Periodic Table tool element
126
+ */
127
+ export interface ToolPeriodicTableElement extends BaseToolElement {
128
+ }
129
+ /**
130
+ * Ruler tool element
131
+ */
132
+ export interface ToolRulerElement extends BaseToolElement {
133
+ /** Initial units (cm or in) */
134
+ units?: "cm" | "in";
135
+ }
136
+ /**
137
+ * Protractor tool element
138
+ */
139
+ export interface ToolProtractorElement extends BaseToolElement {
140
+ }
141
+ /**
142
+ * Line Reader tool element
143
+ */
144
+ export interface ToolLineReaderElement extends BaseToolElement {
145
+ }
146
+ /**
147
+ * Text-to-Speech tool element
148
+ */
149
+ export interface ToolTextToSpeechElement extends BaseToolElement {
150
+ }
151
+ /**
152
+ * Answer Eliminator tool element
153
+ */
154
+ export interface ToolAnswerEliminatorElement extends BaseToolElement {
155
+ }
156
+ /**
157
+ * Helper type to get element interface by tag name
158
+ *
159
+ * @example
160
+ * ```typescript
161
+ * const player = document.querySelector('pie-iife-player') as CustomElementByTag<'pie-iife-player'>;
162
+ * ```
163
+ */
164
+ export type CustomElementByTag<T extends string> = T extends "pie-iife-player" ? PieIifePlayerElement : T extends "pie-tool-toolbar" ? ToolToolbarElement : T extends "pie-tool-calculator" ? ToolCalculatorElement : T extends "pie-tool-color-scheme" ? ToolColorSchemeElement : T extends "pie-tool-graph" ? ToolGraphElement : T extends "pie-tool-periodic-table" ? ToolPeriodicTableElement : T extends "pie-tool-ruler" ? ToolRulerElement : T extends "pie-tool-protractor" ? ToolProtractorElement : T extends "pie-tool-line-reader" ? ToolLineReaderElement : T extends "pie-tool-text-to-speech" ? ToolTextToSpeechElement : T extends "pie-tool-answer-eliminator" ? ToolAnswerEliminatorElement : HTMLElement;
165
+ /**
166
+ * Declare custom elements in global namespace for TypeScript
167
+ */
168
+ declare global {
169
+ interface HTMLElementTagNameMap {
170
+ "pie-iife-player": PieIifePlayerElement;
171
+ "pie-tool-toolbar": ToolToolbarElement;
172
+ "pie-tool-calculator": ToolCalculatorElement;
173
+ "pie-tool-color-scheme": ToolColorSchemeElement;
174
+ "pie-tool-graph": ToolGraphElement;
175
+ "pie-tool-periodic-table": ToolPeriodicTableElement;
176
+ "pie-tool-ruler": ToolRulerElement;
177
+ "pie-tool-protractor": ToolProtractorElement;
178
+ "pie-tool-line-reader": ToolLineReaderElement;
179
+ "pie-tool-text-to-speech": ToolTextToSpeechElement;
180
+ "pie-tool-answer-eliminator": ToolAnswerEliminatorElement;
181
+ }
182
+ }
183
+ //# sourceMappingURL=custom-elements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-elements.d.ts","sourceRoot":"","sources":["../../src/types/custom-elements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * TypeScript interfaces for custom PIE elements
3
+ *
4
+ * These interfaces provide type safety when working with custom elements
5
+ * that are defined as Svelte components with customElement option.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=custom-elements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-elements.js","sourceRoot":"","sources":["../../src/types/custom-elements.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}