@absolutejs/absolute 0.19.0-beta.300 → 0.19.0-beta.302

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.
@@ -0,0 +1,71 @@
1
+ <script context="module" lang="ts">
2
+ let islandSlotIndex = 0;
3
+
4
+ const createSlotId = () => {
5
+ const current = islandSlotIndex;
6
+ islandSlotIndex += 1;
7
+
8
+ return `absolute-svelte-island-${current.toString(36)}`;
9
+ };
10
+ </script>
11
+
12
+ <script lang="ts">
13
+ import type { RuntimeIslandRenderProps } from '../../../types/island';
14
+
15
+ let {
16
+ component,
17
+ framework,
18
+ hydrate = 'load',
19
+ props
20
+ }: RuntimeIslandRenderProps = $props();
21
+
22
+ const slotId = createSlotId();
23
+
24
+ const escapeHtmlAttribute = (value: string) =>
25
+ value
26
+ .replaceAll('&', '&amp;')
27
+ .replaceAll('"', '&quot;')
28
+ .replaceAll('<', '&lt;')
29
+ .replaceAll('>', '&gt;');
30
+
31
+ const buildFallbackMarkup = (runtimeProps: RuntimeIslandRenderProps) => {
32
+ const attributes = [
33
+ ['data-component', runtimeProps.component],
34
+ ['data-framework', runtimeProps.framework],
35
+ ['data-hydrate', runtimeProps.hydrate ?? 'load'],
36
+ ['data-island', 'true'],
37
+ ['data-props', JSON.stringify(runtimeProps.props ?? {})]
38
+ ];
39
+
40
+ const serialized = attributes
41
+ .map(([name, value]) => `${name}="${escapeHtmlAttribute(value)}"`)
42
+ .join(' ');
43
+
44
+ return `<div ${serialized}></div>`;
45
+ };
46
+
47
+ const html = $derived(
48
+ (() => {
49
+ const runtimeProps = {
50
+ component,
51
+ framework,
52
+ hydrate,
53
+ props
54
+ };
55
+
56
+ if (typeof document === 'undefined') {
57
+ return buildFallbackMarkup(runtimeProps);
58
+ }
59
+
60
+ const slot = document.querySelector<HTMLElement>(
61
+ `[data-absolute-island-slot="${slotId}"]`
62
+ );
63
+
64
+ return slot?.innerHTML ?? buildFallbackMarkup(runtimeProps);
65
+ })()
66
+ );
67
+ </script>
68
+
69
+ <div data-absolute-island-slot={slotId} style="display: contents">
70
+ {@html html}
71
+ </div>
package/dist/build.js CHANGED
@@ -205344,7 +205344,7 @@ ${stubs}
205344
205344
  }, resolveRelativeExtension = (srcPath, projectRoot, extensions) => {
205345
205345
  const found = extensions.find((ext) => existsSync19(resolve26(projectRoot, srcPath + ext)));
205346
205346
  return found ? srcPath + found : srcPath;
205347
- }, IMPORT_EXTENSIONS, SIDE_EFFECT_EXTENSIONS, MODULE_EXTENSIONS, REACT_EXTENSIONS, escapeRegex3 = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), buildImportRewriter = (vendorPaths) => {
205347
+ }, IMPORT_EXTENSIONS, SIDE_EFFECT_EXTENSIONS, MODULE_EXTENSIONS, RESOLVED_MODULE_EXTENSIONS, REACT_EXTENSIONS, escapeRegex3 = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), buildImportRewriter = (vendorPaths) => {
205348
205348
  const entries = Object.entries(vendorPaths).sort(([a], [b]) => b.length - a.length);
205349
205349
  if (entries.length === 0)
205350
205350
  return null;
@@ -205371,7 +205371,8 @@ ${stubs}
205371
205371
  }, resolveRelativeImport = (relPath, fileDir, projectRoot, extensions) => {
205372
205372
  const absPath = resolve26(fileDir, relPath);
205373
205373
  const rel = relative11(projectRoot, absPath);
205374
- let srcPath = extname5(rel) ? rel : resolveRelativeExtension(rel, projectRoot, extensions);
205374
+ const extension = extname5(rel);
205375
+ let srcPath = RESOLVED_MODULE_EXTENSIONS.has(extension) ? rel : resolveRelativeExtension(rel, projectRoot, extensions);
205375
205376
  if (extname5(srcPath) === ".svelte") {
205376
205377
  srcPath = relative11(projectRoot, resolveSvelteModulePath(resolve26(projectRoot, srcPath)));
205377
205378
  }
@@ -205985,6 +205986,12 @@ var init_moduleServer = __esm(() => {
205985
205986
  ".vue"
205986
205987
  ];
205987
205988
  MODULE_EXTENSIONS = [".tsx", ".ts", ".jsx", ".js", ".svelte", ".vue"];
205989
+ RESOLVED_MODULE_EXTENSIONS = new Set([
205990
+ ...IMPORT_EXTENSIONS,
205991
+ ...SIDE_EFFECT_EXTENSIONS,
205992
+ ".mjs",
205993
+ ".css"
205994
+ ]);
205988
205995
  REACT_EXTENSIONS = new Set([".tsx", ".jsx"]);
205989
205996
  mtimeCache = new Map;
205990
205997
  JSX_AUTO_RE = /\b(jsxDEV_[a-z0-9]+)\b/;
@@ -208020,5 +208027,5 @@ export {
208020
208027
  build
208021
208028
  };
208022
208029
 
208023
- //# debugId=644DCDD520880E7D64756E2164756E21
208030
+ //# debugId=D1733B0AAFD6425164756E2164756E21
208024
208031
  //# sourceMappingURL=build.js.map