@furystack/shades 11.1.0 → 12.0.1

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 (166) hide show
  1. package/CHANGELOG.md +312 -0
  2. package/README.md +13 -13
  3. package/esm/component-factory.spec.js +13 -5
  4. package/esm/component-factory.spec.js.map +1 -1
  5. package/esm/components/index.d.ts +4 -1
  6. package/esm/components/index.d.ts.map +1 -1
  7. package/esm/components/index.js +4 -1
  8. package/esm/components/index.js.map +1 -1
  9. package/esm/components/lazy-load.d.ts +2 -4
  10. package/esm/components/lazy-load.d.ts.map +1 -1
  11. package/esm/components/lazy-load.js +40 -24
  12. package/esm/components/lazy-load.js.map +1 -1
  13. package/esm/components/lazy-load.spec.js +57 -50
  14. package/esm/components/lazy-load.spec.js.map +1 -1
  15. package/esm/components/link-to-route.d.ts +2 -0
  16. package/esm/components/link-to-route.d.ts.map +1 -1
  17. package/esm/components/link-to-route.js +3 -2
  18. package/esm/components/link-to-route.js.map +1 -1
  19. package/esm/components/link-to-route.spec.js +13 -9
  20. package/esm/components/link-to-route.spec.js.map +1 -1
  21. package/esm/components/nested-route-link.d.ts +62 -0
  22. package/esm/components/nested-route-link.d.ts.map +1 -0
  23. package/esm/components/nested-route-link.js +66 -0
  24. package/esm/components/nested-route-link.js.map +1 -0
  25. package/esm/components/nested-route-link.spec.d.ts +2 -0
  26. package/esm/components/nested-route-link.spec.d.ts.map +1 -0
  27. package/esm/components/nested-route-link.spec.js +179 -0
  28. package/esm/components/nested-route-link.spec.js.map +1 -0
  29. package/esm/components/nested-route-types.d.ts +37 -0
  30. package/esm/components/nested-route-types.d.ts.map +1 -0
  31. package/esm/components/nested-route-types.js +2 -0
  32. package/esm/components/nested-route-types.js.map +1 -0
  33. package/esm/components/nested-router.d.ts +103 -0
  34. package/esm/components/nested-router.d.ts.map +1 -0
  35. package/esm/components/nested-router.js +183 -0
  36. package/esm/components/nested-router.js.map +1 -0
  37. package/esm/components/nested-router.spec.d.ts +2 -0
  38. package/esm/components/nested-router.spec.d.ts.map +1 -0
  39. package/esm/components/nested-router.spec.js +737 -0
  40. package/esm/components/nested-router.spec.js.map +1 -0
  41. package/esm/components/route-link.d.ts +4 -0
  42. package/esm/components/route-link.d.ts.map +1 -1
  43. package/esm/components/route-link.js +5 -5
  44. package/esm/components/route-link.js.map +1 -1
  45. package/esm/components/route-link.spec.js +16 -12
  46. package/esm/components/route-link.spec.js.map +1 -1
  47. package/esm/components/router.d.ts +20 -2
  48. package/esm/components/router.d.ts.map +1 -1
  49. package/esm/components/router.js +12 -7
  50. package/esm/components/router.js.map +1 -1
  51. package/esm/components/router.spec.js +141 -74
  52. package/esm/components/router.spec.js.map +1 -1
  53. package/esm/initialize.d.ts +11 -0
  54. package/esm/initialize.d.ts.map +1 -1
  55. package/esm/initialize.js +5 -0
  56. package/esm/initialize.js.map +1 -1
  57. package/esm/jsx.d.ts +83 -2
  58. package/esm/jsx.d.ts.map +1 -1
  59. package/esm/models/children-list.d.ts +5 -1
  60. package/esm/models/children-list.d.ts.map +1 -1
  61. package/esm/models/partial-element.d.ts +12 -2
  62. package/esm/models/partial-element.d.ts.map +1 -1
  63. package/esm/models/render-options.d.ts +89 -3
  64. package/esm/models/render-options.d.ts.map +1 -1
  65. package/esm/models/selection-state.d.ts +4 -0
  66. package/esm/models/selection-state.d.ts.map +1 -1
  67. package/esm/services/location-service.d.ts +11 -0
  68. package/esm/services/location-service.d.ts.map +1 -1
  69. package/esm/services/location-service.js +11 -0
  70. package/esm/services/location-service.js.map +1 -1
  71. package/esm/services/resource-manager.d.ts +24 -0
  72. package/esm/services/resource-manager.d.ts.map +1 -1
  73. package/esm/services/resource-manager.js +36 -1
  74. package/esm/services/resource-manager.js.map +1 -1
  75. package/esm/services/resource-manager.spec.js +102 -0
  76. package/esm/services/resource-manager.spec.js.map +1 -1
  77. package/esm/services/screen-service.d.ts +81 -4
  78. package/esm/services/screen-service.d.ts.map +1 -1
  79. package/esm/services/screen-service.js +75 -4
  80. package/esm/services/screen-service.js.map +1 -1
  81. package/esm/services/screen-service.spec.js +91 -7
  82. package/esm/services/screen-service.spec.js.map +1 -1
  83. package/esm/shade-component.d.ts +17 -4
  84. package/esm/shade-component.d.ts.map +1 -1
  85. package/esm/shade-component.js +67 -5
  86. package/esm/shade-component.js.map +1 -1
  87. package/esm/shade-host-props-ref.integration.spec.d.ts +2 -0
  88. package/esm/shade-host-props-ref.integration.spec.d.ts.map +1 -0
  89. package/esm/shade-host-props-ref.integration.spec.js +381 -0
  90. package/esm/shade-host-props-ref.integration.spec.js.map +1 -0
  91. package/esm/shade-resources.integration.spec.js +208 -39
  92. package/esm/shade-resources.integration.spec.js.map +1 -1
  93. package/esm/shade.d.ts +20 -17
  94. package/esm/shade.d.ts.map +1 -1
  95. package/esm/shade.js +172 -33
  96. package/esm/shade.js.map +1 -1
  97. package/esm/shade.spec.js +31 -30
  98. package/esm/shade.spec.js.map +1 -1
  99. package/esm/shades.integration.spec.js +135 -72
  100. package/esm/shades.integration.spec.js.map +1 -1
  101. package/esm/style-manager.d.ts +2 -2
  102. package/esm/style-manager.js +2 -2
  103. package/esm/svg-types.d.ts +389 -0
  104. package/esm/svg-types.d.ts.map +1 -0
  105. package/esm/svg-types.js +9 -0
  106. package/esm/svg-types.js.map +1 -0
  107. package/esm/svg.d.ts +15 -0
  108. package/esm/svg.d.ts.map +1 -0
  109. package/esm/svg.js +76 -0
  110. package/esm/svg.js.map +1 -0
  111. package/esm/svg.spec.d.ts +2 -0
  112. package/esm/svg.spec.d.ts.map +1 -0
  113. package/esm/svg.spec.js +80 -0
  114. package/esm/svg.spec.js.map +1 -0
  115. package/esm/vnode.d.ts +103 -0
  116. package/esm/vnode.d.ts.map +1 -0
  117. package/esm/vnode.integration.spec.d.ts +2 -0
  118. package/esm/vnode.integration.spec.d.ts.map +1 -0
  119. package/esm/vnode.integration.spec.js +494 -0
  120. package/esm/vnode.integration.spec.js.map +1 -0
  121. package/esm/vnode.js +453 -0
  122. package/esm/vnode.js.map +1 -0
  123. package/esm/vnode.spec.d.ts +2 -0
  124. package/esm/vnode.spec.d.ts.map +1 -0
  125. package/esm/vnode.spec.js +473 -0
  126. package/esm/vnode.spec.js.map +1 -0
  127. package/package.json +8 -9
  128. package/src/component-factory.spec.tsx +18 -5
  129. package/src/components/index.ts +4 -1
  130. package/src/components/lazy-load.spec.tsx +82 -75
  131. package/src/components/lazy-load.tsx +49 -27
  132. package/src/components/link-to-route.spec.tsx +25 -21
  133. package/src/components/link-to-route.tsx +4 -2
  134. package/src/components/nested-route-link.spec.tsx +303 -0
  135. package/src/components/nested-route-link.tsx +100 -0
  136. package/src/components/nested-route-types.ts +42 -0
  137. package/src/components/nested-router.spec.tsx +918 -0
  138. package/src/components/nested-router.tsx +260 -0
  139. package/src/components/route-link.spec.tsx +22 -18
  140. package/src/components/route-link.tsx +6 -5
  141. package/src/components/router.spec.tsx +196 -108
  142. package/src/components/router.tsx +21 -8
  143. package/src/initialize.ts +12 -0
  144. package/src/jsx.ts +129 -2
  145. package/src/models/children-list.ts +7 -1
  146. package/src/models/partial-element.ts +13 -2
  147. package/src/models/render-options.ts +90 -3
  148. package/src/models/selection-state.ts +4 -0
  149. package/src/services/location-service.tsx +11 -0
  150. package/src/services/resource-manager.spec.ts +128 -0
  151. package/src/services/resource-manager.ts +36 -1
  152. package/src/services/screen-service.spec.ts +109 -7
  153. package/src/services/screen-service.ts +81 -4
  154. package/src/shade-component.ts +72 -6
  155. package/src/shade-host-props-ref.integration.spec.tsx +460 -0
  156. package/src/shade-resources.integration.spec.tsx +276 -52
  157. package/src/shade.spec.tsx +40 -39
  158. package/src/shade.ts +186 -58
  159. package/src/shades.integration.spec.tsx +154 -80
  160. package/src/style-manager.ts +2 -2
  161. package/src/svg-types.ts +437 -0
  162. package/src/svg.spec.ts +89 -0
  163. package/src/svg.ts +78 -0
  164. package/src/vnode.integration.spec.tsx +657 -0
  165. package/src/vnode.spec.ts +579 -0
  166. package/src/vnode.ts +508 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested-router.spec.js","sourceRoot":"","sources":["../../src/components/nested-router.spec.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  import type { PartialElement } from '../models/partial-element.js';
2
+ /** @deprecated Use `NestedRouteLinkProps` from `nested-route-link` instead */
2
3
  export type RouteLinkProps = PartialElement<Omit<HTMLAnchorElement, 'onclick'>>;
4
+ /** @deprecated Use `NestedRouteLink` from `nested-route-link` instead */
3
5
  export declare const RouteLink: (props: Omit<Partial<Omit<HTMLAnchorElement, "onclick">>, "style"> & {
4
6
  style?: Partial<CSSStyleDeclaration>;
7
+ } & {
8
+ ref?: import("../index.js").RefObject<Element>;
5
9
  } & Omit<Partial<HTMLElement>, "style">, children?: import("../index.js").ChildrenList) => JSX.Element;
6
10
  //# sourceMappingURL=route-link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route-link.d.ts","sourceRoot":"","sources":["../../src/components/route-link.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAIlE,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAA;AAE/E,eAAO,MAAM,SAAS;;sGAmBpB,CAAA"}
1
+ {"version":3,"file":"route-link.d.ts","sourceRoot":"","sources":["../../src/components/route-link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAKlE,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAA;AAE/E,yEAAyE;AACzE,eAAO,MAAM,SAAS;;;;sGAkBpB,CAAA"}
@@ -1,6 +1,7 @@
1
- import { Shade } from '../shade.js';
2
1
  import { LocationService } from '../services/location-service.js';
3
- import { attachProps, createComponent } from '../shade-component.js';
2
+ import { createComponent } from '../shade-component.js';
3
+ import { Shade } from '../shade.js';
4
+ /** @deprecated Use `NestedRouteLink` from `nested-route-link` instead */
4
5
  export const RouteLink = Shade({
5
6
  shadowDomName: 'route-link',
6
7
  elementBase: HTMLAnchorElement,
@@ -9,9 +10,8 @@ export const RouteLink = Shade({
9
10
  color: 'inherit',
10
11
  textDecoration: 'inherit',
11
12
  },
12
- render: ({ children, props, injector, element }) => {
13
- attachProps(element, {
14
- ...props,
13
+ render: ({ children, props, injector, useHostProps }) => {
14
+ useHostProps({
15
15
  onclick: (ev) => {
16
16
  ev.preventDefault();
17
17
  history.pushState('', props.title || '', props.href);
@@ -1 +1 @@
1
- {"version":3,"file":"route-link.js","sourceRoot":"","sources":["../../src/components/route-link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAIpE,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAiB;IAC7C,aAAa,EAAE,YAAY;IAC3B,WAAW,EAAE,iBAAiB;IAC9B,eAAe,EAAE,GAAG;IACpB,GAAG,EAAE;QACH,KAAK,EAAE,SAAS;QAChB,cAAc,EAAE,SAAS;KAC1B;IACD,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACjD,WAAW,CAAC,OAAO,EAAE;YACnB,GAAG,KAAK;YACR,OAAO,EAAE,CAAC,EAAc,EAAE,EAAE;gBAC1B,EAAE,CAAC,cAAc,EAAE,CAAA;gBACnB,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;gBACpD,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAA;YACrD,CAAC;SACF,CAAC,CAAA;QACF,OAAO,uCAAG,QAAQ,CAAI,CAAA;IACxB,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"route-link.js","sourceRoot":"","sources":["../../src/components/route-link.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAKnC,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAiB;IAC7C,aAAa,EAAE,YAAY;IAC3B,WAAW,EAAE,iBAAiB;IAC9B,eAAe,EAAE,GAAG;IACpB,GAAG,EAAE;QACH,KAAK,EAAE,SAAS;QAChB,cAAc,EAAE,SAAS;KAC1B;IACD,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE;QACtD,YAAY,CAAC;YACX,OAAO,EAAE,CAAC,EAAc,EAAE,EAAE;gBAC1B,EAAE,CAAC,cAAc,EAAE,CAAA;gBACnB,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;gBACpD,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAA;YACrD,CAAC;SACF,CAAC,CAAA;QACF,OAAO,uCAAG,QAAQ,CAAI,CAAA;IACxB,CAAC;CACF,CAAC,CAAA"}
@@ -1,8 +1,10 @@
1
1
  import { Injector } from '@furystack/inject';
2
+ import { usingAsync } from '@furystack/utils';
2
3
  import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
3
4
  import { initializeShadeRoot } from '../initialize.js';
4
5
  import { LocationService } from '../services/location-service.js';
5
6
  import { createComponent } from '../shade-component.js';
7
+ import { flushUpdates } from '../shade.js';
6
8
  import { RouteLink } from './route-link.js';
7
9
  describe('RouteLink', () => {
8
10
  beforeEach(() => {
@@ -12,19 +14,21 @@ describe('RouteLink', () => {
12
14
  document.body.innerHTML = '';
13
15
  });
14
16
  it('Shuld display the loader and completed state', async () => {
15
- const injector = new Injector();
16
- const rootElement = document.getElementById('root');
17
- const onRouteChange = vi.fn();
18
- injector.getInstance(LocationService).onLocationPathChanged.subscribe(onRouteChange);
19
- initializeShadeRoot({
20
- injector,
21
- rootElement,
22
- jsxElement: (createComponent(RouteLink, { id: "route", href: "/subroute" }, "Link")),
17
+ await usingAsync(new Injector(), async (injector) => {
18
+ const rootElement = document.getElementById('root');
19
+ const onRouteChange = vi.fn();
20
+ injector.getInstance(LocationService).onLocationPathChanged.subscribe(onRouteChange);
21
+ initializeShadeRoot({
22
+ injector,
23
+ rootElement,
24
+ jsxElement: (createComponent(RouteLink, { id: "route", href: "/subroute" }, "Link")),
25
+ });
26
+ await flushUpdates();
27
+ expect(document.body.innerHTML).toMatchInlineSnapshot(`"<div id="root"><a is="route-link" id="route" href="/subroute">Link</a></div>"`);
28
+ expect(onRouteChange).not.toBeCalled();
29
+ document.getElementById('route')?.click();
30
+ expect(onRouteChange).toBeCalledTimes(1);
23
31
  });
24
- expect(document.body.innerHTML).toMatchInlineSnapshot(`"<div id="root"><a is="route-link" id="route" href="/subroute">Link</a></div>"`);
25
- expect(onRouteChange).not.toBeCalled();
26
- document.getElementById('route')?.click();
27
- expect(onRouteChange).toBeCalledTimes(1);
28
32
  });
29
33
  });
30
34
  //# sourceMappingURL=route-link.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"route-link.spec.js","sourceRoot":"","sources":["../../src/components/route-link.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,uBAAuB,CAAA;IACnD,CAAC,CAAC,CAAA;IACF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;QAC/B,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAmB,CAAA;QAErE,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;QAE7B,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QAEpF,mBAAmB,CAAC;YAClB,QAAQ;YACR,WAAW;YACX,UAAU,EAAE,CACV,gBAAC,SAAS,IAAC,EAAE,EAAC,OAAO,EAAC,IAAI,EAAC,WAAW,WAE1B,CACb;SACF,CAAC,CAAA;QACF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,qBAAqB,CACnD,gFAAgF,CACjF,CAAA;QACD,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA;QACtC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAA;QACzC,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"route-link.spec.js","sourceRoot":"","sources":["../../src/components/route-link.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,uBAAuB,CAAA;IACnD,CAAC,CAAC,CAAA;IACF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,UAAU,CAAC,IAAI,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAClD,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAmB,CAAA;YAErE,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;YAE7B,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;YAEpF,mBAAmB,CAAC;gBAClB,QAAQ;gBACR,WAAW;gBACX,UAAU,EAAE,CACV,gBAAC,SAAS,IAAC,EAAE,EAAC,OAAO,EAAC,IAAI,EAAC,WAAW,WAE1B,CACb;aACF,CAAC,CAAA;YACF,MAAM,YAAY,EAAE,CAAA;YACpB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,qBAAqB,CACnD,gFAAgF,CACjF,CAAA;YACD,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA;YACtC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAA;YACzC,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,5 +1,8 @@
1
1
  import type { MatchOptions, MatchResult } from 'path-to-regexp';
2
2
  import type { RenderOptions } from '../models/render-options.js';
3
+ /**
4
+ * @deprecated Use NestedRouter instead
5
+ */
3
6
  export interface Route<TMatchResult = unknown> {
4
7
  url: string;
5
8
  component: (options: {
@@ -7,20 +10,35 @@ export interface Route<TMatchResult = unknown> {
7
10
  match: MatchResult<TMatchResult extends object ? TMatchResult : object>;
8
11
  }) => JSX.Element;
9
12
  routingOptions?: MatchOptions;
10
- onVisit?: (options: RenderOptions<unknown>) => Promise<void>;
11
- onLeave?: (options: RenderOptions<unknown>) => Promise<void>;
13
+ onVisit?: (options: RenderOptions<unknown> & {
14
+ element: JSX.Element;
15
+ }) => Promise<void>;
16
+ onLeave?: (options: RenderOptions<unknown> & {
17
+ element: JSX.Element;
18
+ }) => Promise<void>;
12
19
  }
20
+ /**
21
+ * @deprecated Use NestedRouterProps instead
22
+ */
13
23
  export interface RouterProps {
14
24
  style?: CSSStyleDeclaration;
15
25
  routes: Array<Route<any>>;
16
26
  notFound?: JSX.Element;
17
27
  }
28
+ /**
29
+ * @deprecated Use NestedRouterState instead
30
+ */
18
31
  export interface RouterState {
19
32
  activeRoute?: Route<unknown> | null;
20
33
  activeRouteParams?: unknown;
21
34
  jsx: JSX.Element;
22
35
  }
36
+ /**
37
+ * @deprecated Use NestedRouter instead
38
+ */
23
39
  export declare const Router: (props: RouterProps & Omit<Partial<HTMLElement>, "style"> & {
24
40
  style?: Partial<CSSStyleDeclaration>;
41
+ } & {
42
+ ref?: import("../models/render-options.js").RefObject<Element>;
25
43
  }, children?: import("../index.js").ChildrenList) => JSX.Element;
26
44
  //# sourceMappingURL=router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/components/router.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAG/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAKhE,MAAM,WAAW,KAAK,CAAC,YAAY,GAAG,OAAO;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,CAAC,OAAO,EAAE;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,WAAW,CAAC,YAAY,SAAS,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC,CAAA;KACxE,KAAK,GAAG,CAAC,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,YAAY,CAAA;IAC7B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7D;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IACzB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,GAAG,EAAE,GAAG,CAAC,OAAO,CAAA;CACjB;AACD,eAAO,MAAM,MAAM;;gEA0DjB,CAAA"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/components/router.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAKhE;;GAEG;AACH,MAAM,WAAW,KAAK,CAAC,YAAY,GAAG,OAAO;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,CAAC,OAAO,EAAE;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,WAAW,CAAC,YAAY,SAAS,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC,CAAA;KACxE,KAAK,GAAG,CAAC,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,YAAY,CAAA;IAC7B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG;QAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG;QAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACxF;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IACzB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,GAAG,EAAE,GAAG,CAAC,OAAO,CAAA;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,MAAM;;;;gEA2DjB,CAAA"}
@@ -1,14 +1,16 @@
1
1
  import { ObservableAlreadyDisposedError } from '@furystack/utils';
2
2
  import { match } from 'path-to-regexp';
3
- import { Lock } from 'semaphore-async-await';
4
3
  import { LocationService } from '../services/location-service.js';
5
4
  import { createComponent } from '../shade-component.js';
6
5
  import { Shade } from '../shade.js';
6
+ /**
7
+ * @deprecated Use NestedRouter instead
8
+ */
7
9
  export const Router = Shade({
8
10
  shadowDomName: 'shade-router',
9
11
  render: (options) => {
10
12
  const { useState, useObservable, injector } = options;
11
- const [lock] = useState('lock', new Lock());
13
+ const [versionRef] = useState('navVersion', { current: 0 });
12
14
  const [state, setState] = useState('routerState', {
13
15
  jsx: createComponent("div", null),
14
16
  });
@@ -16,22 +18,29 @@ export const Router = Shade({
16
18
  const [lastState] = useState('routerState', state);
17
19
  const { activeRoute: lastRoute, activeRouteParams: lastRouteParams, jsx: lastJsx } = lastState;
18
20
  try {
19
- await lock.acquire();
20
21
  for (const route of options.props.routes) {
21
22
  const matchFn = match(route.url, route.routingOptions);
22
23
  const matchResult = matchFn(currentUrl);
23
24
  if (matchResult) {
24
25
  if (route !== lastRoute || JSON.stringify(lastRouteParams) !== JSON.stringify(matchResult.params)) {
26
+ const version = ++versionRef.current;
25
27
  await lastRoute?.onLeave?.({ ...options, element: lastState.jsx });
28
+ if (version !== versionRef.current)
29
+ return;
26
30
  const newJsx = route.component({ currentUrl, match: matchResult });
27
31
  setState({ jsx: newJsx, activeRoute: route, activeRouteParams: matchResult.params });
28
32
  await route.onVisit?.({ ...options, element: newJsx });
33
+ if (version !== versionRef.current)
34
+ return;
29
35
  }
30
36
  return;
31
37
  }
32
38
  }
33
39
  if (lastRoute !== null) {
40
+ const version = ++versionRef.current;
34
41
  await lastRoute?.onLeave?.({ ...options, element: lastJsx });
42
+ if (version !== versionRef.current)
43
+ return;
35
44
  setState({
36
45
  jsx: options.props.notFound || createComponent("div", null),
37
46
  activeRoute: null,
@@ -40,14 +49,10 @@ export const Router = Shade({
40
49
  }
41
50
  }
42
51
  catch (e) {
43
- // path updates can be async, this can be ignored
44
52
  if (!(e instanceof ObservableAlreadyDisposedError)) {
45
53
  throw e;
46
54
  }
47
55
  }
48
- finally {
49
- lock?.release();
50
- }
51
56
  };
52
57
  const [locationPath] = useObservable('locationPathChanged', injector.getInstance(LocationService).onLocationPathChanged, {
53
58
  onChange: (newValue) => {
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/components/router.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/components/router.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Injector } from '@furystack/inject';
2
- import { sleepAsync } from '@furystack/utils';
2
+ import { sleepAsync, usingAsync } from '@furystack/utils';
3
3
  import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
4
4
  import { initializeShadeRoot } from '../initialize.js';
5
5
  import { LocationService } from '../services/location-service.js';
@@ -13,81 +13,148 @@ describe('Router', () => {
13
13
  afterEach(() => {
14
14
  document.body.innerHTML = '';
15
15
  });
16
+ it('should skip intermediate route when navigating rapidly (latest wins)', async () => {
17
+ await usingAsync(new Injector(), async (injector) => {
18
+ history.pushState(null, '', '/route-a');
19
+ const callOrder = [];
20
+ const onVisitA = vi.fn(async () => {
21
+ callOrder.push('visit-a');
22
+ });
23
+ const onLeaveA = vi.fn(async () => {
24
+ callOrder.push('leave-a');
25
+ });
26
+ const onVisitB = vi.fn(async () => {
27
+ await sleepAsync(200);
28
+ callOrder.push('visit-b');
29
+ });
30
+ const onLeaveB = vi.fn(async () => {
31
+ callOrder.push('leave-b');
32
+ });
33
+ const onVisitC = vi.fn(async () => {
34
+ callOrder.push('visit-c');
35
+ });
36
+ const routeA = {
37
+ url: '/route-a',
38
+ component: () => createComponent("div", { id: "content" }, "route-a"),
39
+ onVisit: onVisitA,
40
+ onLeave: onLeaveA,
41
+ };
42
+ const routeB = {
43
+ url: '/route-b',
44
+ component: () => createComponent("div", { id: "content" }, "route-b"),
45
+ onVisit: onVisitB,
46
+ onLeave: onLeaveB,
47
+ };
48
+ const routeC = {
49
+ url: '/route-c',
50
+ component: () => createComponent("div", { id: "content" }, "route-c"),
51
+ onVisit: onVisitC,
52
+ };
53
+ const rootElement = document.getElementById('root');
54
+ initializeShadeRoot({
55
+ injector,
56
+ rootElement,
57
+ jsxElement: (createComponent("div", null,
58
+ createComponent(RouteLink, { id: "go-a", href: "/route-a" }, "a"),
59
+ createComponent(RouteLink, { id: "go-b", href: "/route-b" }, "b"),
60
+ createComponent(RouteLink, { id: "go-c", href: "/route-c" }, "c"),
61
+ createComponent(Router, { routes: [routeA, routeB, routeC] }))),
62
+ });
63
+ const getContent = () => document.getElementById('content')?.innerHTML;
64
+ const clickOn = (name) => document.getElementById(name)?.click();
65
+ // --- Initial load at /route-a ---
66
+ await sleepAsync(100);
67
+ expect(getContent()).toBe('route-a');
68
+ expect(onVisitA).toHaveBeenCalledTimes(1);
69
+ // --- Rapid navigation: click B then immediately C ---
70
+ callOrder.length = 0;
71
+ clickOn('go-b');
72
+ clickOn('go-c');
73
+ // Wait long enough for both transitions to settle
74
+ await sleepAsync(500);
75
+ // The final destination should be route-c
76
+ expect(getContent()).toBe('route-c');
77
+ expect(onVisitC).toHaveBeenCalledTimes(1);
78
+ // route-b's onVisit should have been abandoned
79
+ expect(callOrder).not.toContain('visit-b');
80
+ });
81
+ });
16
82
  it('Shuld display the loader and completed state', async () => {
17
- history.pushState(null, '', '/');
18
- const onVisit = vi.fn();
19
- const onLeave = vi.fn();
20
- const onLastLeave = vi.fn();
21
- const injector = new Injector();
22
- const rootElement = document.getElementById('root');
23
- const onRouteChange = vi.fn();
24
- injector.getInstance(LocationService).onLocationPathChanged.subscribe(onRouteChange);
25
- const route1 = {
26
- url: '/route-a',
27
- component: () => createComponent("div", { id: "content" }, "route-a"),
28
- onVisit,
29
- onLeave,
30
- };
31
- const route2 = {
32
- url: '/route-b{/:id}',
33
- component: ({ match }) => createComponent("div", { id: "content" },
34
- "route-b",
35
- match.params.id),
36
- };
37
- const route3 = {
38
- url: '/route-c',
39
- component: () => createComponent("div", { id: "content" }, "route-c"),
40
- onLeave: onLastLeave,
41
- };
42
- const route4 = { url: '/', component: () => createComponent("div", { id: "content" }, "home") };
43
- initializeShadeRoot({
44
- injector,
45
- rootElement,
46
- jsxElement: (createComponent("div", null,
47
- createComponent(RouteLink, { id: "home", href: "/" }, "home"),
48
- createComponent(RouteLink, { id: "a", href: "/route-a" }, "a"),
49
- createComponent(RouteLink, { id: "b", href: "/route-b" }, "b"),
50
- createComponent(RouteLink, { id: "b-with-id", href: "/route-b/123" }, "b-with-id"),
51
- createComponent(RouteLink, { id: "c", href: "/route-c" }, "c"),
52
- createComponent(RouteLink, { id: "x", href: "/route-x" }, "x"),
53
- createComponent(Router, { routes: [route1, route2, route3, route4], notFound: createComponent("div", { id: "content" }, "not found") }))),
83
+ await usingAsync(new Injector(), async (injector) => {
84
+ history.pushState(null, '', '/');
85
+ const onVisit = vi.fn();
86
+ const onLeave = vi.fn();
87
+ const onLastLeave = vi.fn();
88
+ const rootElement = document.getElementById('root');
89
+ const onRouteChange = vi.fn();
90
+ injector.getInstance(LocationService).onLocationPathChanged.subscribe(onRouteChange);
91
+ const route1 = {
92
+ url: '/route-a',
93
+ component: () => createComponent("div", { id: "content" }, "route-a"),
94
+ onVisit,
95
+ onLeave,
96
+ };
97
+ const route2 = {
98
+ url: '/route-b{/:id}',
99
+ component: ({ match }) => createComponent("div", { id: "content" },
100
+ "route-b",
101
+ match.params.id),
102
+ };
103
+ const route3 = {
104
+ url: '/route-c',
105
+ component: () => createComponent("div", { id: "content" }, "route-c"),
106
+ onLeave: onLastLeave,
107
+ };
108
+ const route4 = { url: '/', component: () => createComponent("div", { id: "content" }, "home") };
109
+ initializeShadeRoot({
110
+ injector,
111
+ rootElement,
112
+ jsxElement: (createComponent("div", null,
113
+ createComponent(RouteLink, { id: "home", href: "/" }, "home"),
114
+ createComponent(RouteLink, { id: "a", href: "/route-a" }, "a"),
115
+ createComponent(RouteLink, { id: "b", href: "/route-b" }, "b"),
116
+ createComponent(RouteLink, { id: "b-with-id", href: "/route-b/123" }, "b-with-id"),
117
+ createComponent(RouteLink, { id: "c", href: "/route-c" }, "c"),
118
+ createComponent(RouteLink, { id: "x", href: "/route-x" }, "x"),
119
+ createComponent(Router, { routes: [route1, route2, route3, route4], notFound: createComponent("div", { id: "content" }, "not found") }))),
120
+ });
121
+ const getContent = () => document.getElementById('content')?.innerHTML;
122
+ const getLocation = () => location.pathname;
123
+ const clickOn = (name) => document.getElementById(name)?.click();
124
+ await sleepAsync(100);
125
+ expect(getLocation()).toBe('/');
126
+ expect(getContent()).toBe('home');
127
+ expect(onVisit).not.toBeCalled();
128
+ clickOn('a');
129
+ await sleepAsync(100);
130
+ expect(getContent()).toBe('route-a');
131
+ expect(getLocation()).toBe('/route-a');
132
+ expect(onRouteChange).toBeCalledTimes(1);
133
+ expect(onVisit).toBeCalledTimes(1);
134
+ clickOn('a');
135
+ await sleepAsync(100);
136
+ expect(onVisit).toBeCalledTimes(1);
137
+ expect(onLeave).not.toBeCalled();
138
+ clickOn('b');
139
+ await sleepAsync(100);
140
+ expect(onLeave).toBeCalledTimes(1);
141
+ expect(getContent()).toBe('route-b');
142
+ expect(getLocation()).toBe('/route-b');
143
+ clickOn('b-with-id');
144
+ await sleepAsync(100);
145
+ expect(getContent()).toBe('route-b123');
146
+ expect(getLocation()).toBe('/route-b/123');
147
+ clickOn('c');
148
+ await sleepAsync(100);
149
+ expect(getContent()).toBe('route-c');
150
+ expect(getLocation()).toBe('/route-c');
151
+ expect(onLastLeave).not.toBeCalled();
152
+ clickOn('x');
153
+ await sleepAsync(100);
154
+ expect(getContent()).toBe('not found');
155
+ expect(getLocation()).toBe('/route-x');
156
+ expect(onLastLeave).toBeCalledTimes(1);
54
157
  });
55
- const getContent = () => document.getElementById('content')?.innerHTML;
56
- const getLocation = () => location.pathname;
57
- const clickOn = (name) => document.getElementById(name)?.click();
58
- await sleepAsync(100);
59
- expect(getLocation()).toBe('/');
60
- expect(getContent()).toBe('home');
61
- expect(onVisit).not.toBeCalled();
62
- clickOn('a');
63
- await sleepAsync(100);
64
- expect(getContent()).toBe('route-a');
65
- expect(getLocation()).toBe('/route-a');
66
- expect(onRouteChange).toBeCalledTimes(1);
67
- expect(onVisit).toBeCalledTimes(1);
68
- clickOn('a');
69
- await sleepAsync(100);
70
- expect(onVisit).toBeCalledTimes(1);
71
- expect(onLeave).not.toBeCalled();
72
- clickOn('b');
73
- await sleepAsync(100);
74
- expect(onLeave).toBeCalledTimes(1);
75
- expect(getContent()).toBe('route-b');
76
- expect(getLocation()).toBe('/route-b');
77
- clickOn('b-with-id');
78
- await sleepAsync(100);
79
- expect(getContent()).toBe('route-b123');
80
- expect(getLocation()).toBe('/route-b/123');
81
- clickOn('c');
82
- await sleepAsync(100);
83
- expect(getContent()).toBe('route-c');
84
- expect(getLocation()).toBe('/route-c');
85
- expect(onLastLeave).not.toBeCalled();
86
- clickOn('x');
87
- await sleepAsync(100);
88
- expect(getContent()).toBe('not found');
89
- expect(getLocation()).toBe('/route-x');
90
- expect(onLastLeave).toBeCalledTimes(1);
91
158
  });
92
159
  });
93
160
  //# sourceMappingURL=router.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.spec.js","sourceRoot":"","sources":["../../src/components/router.spec.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.spec.js","sourceRoot":"","sources":["../../src/components/router.spec.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,19 @@
1
1
  import type { Injector } from '@furystack/inject';
2
+ /**
3
+ * Options for bootstrapping a Shades application.
4
+ */
2
5
  export interface InitializeOptions {
6
+ /** The DOM element that will host the application */
3
7
  rootElement: HTMLElement;
8
+ /** The root JSX element to render */
4
9
  jsxElement: JSX.Element;
10
+ /** The root injector instance for dependency injection */
5
11
  injector: Injector;
6
12
  }
13
+ /**
14
+ * Bootstraps a Shades application by attaching the root JSX element to a DOM node
15
+ * and wiring up the dependency injection context.
16
+ * @param options The initialization options
17
+ */
7
18
  export declare const initializeShadeRoot: (options: InitializeOptions) => void;
8
19
  //# sourceMappingURL=initialize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../src/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,GAAG,CAAC,OAAO,CAAA;IACvB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AACD,eAAO,MAAM,mBAAmB,GAAI,SAAS,iBAAiB,SAG7D,CAAA"}
1
+ {"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../src/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,WAAW,EAAE,WAAW,CAAA;IACxB,qCAAqC;IACrC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAA;IACvB,0DAA0D;IAC1D,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,iBAAiB,SAG7D,CAAA"}
package/esm/initialize.js CHANGED
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Bootstraps a Shades application by attaching the root JSX element to a DOM node
3
+ * and wiring up the dependency injection context.
4
+ * @param options The initialization options
5
+ */
1
6
  export const initializeShadeRoot = (options) => {
2
7
  options.jsxElement.injector = options.injector;
3
8
  options.rootElement.appendChild(options.jsxElement);
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../src/initialize.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAA0B,EAAE,EAAE;IAChE,OAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IAC9C,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AACrD,CAAC,CAAA"}
1
+ {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../src/initialize.ts"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAA0B,EAAE,EAAE;IAChE,OAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IAC9C,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AACrD,CAAC,CAAA"}