@lynx-js/web-elements-canary 0.9.1-canary-20251226-f0317a32 → 0.10.0-canary-20251226-ccbf3de1

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 (265) hide show
  1. package/CHANGELOG.md +19 -4
  2. package/dist/compat/LinearContainer/LinearContainer.d.ts +8 -0
  3. package/dist/compat/LinearContainer/LinearContainer.js +109 -0
  4. package/dist/element-reactive/bindSwitchToEventListener.d.ts +1 -0
  5. package/dist/element-reactive/bindSwitchToEventListener.js +23 -0
  6. package/dist/element-reactive/bindToAttribute.d.ts +2 -0
  7. package/dist/element-reactive/bindToAttribute.js +27 -0
  8. package/dist/element-reactive/bindToStyle.d.ts +2 -0
  9. package/dist/element-reactive/bindToStyle.js +21 -0
  10. package/dist/element-reactive/boostedQueueMicrotask.d.ts +1 -0
  11. package/dist/element-reactive/boostedQueueMicrotask.js +20 -0
  12. package/dist/element-reactive/component.d.ts +43 -0
  13. package/dist/element-reactive/component.js +217 -0
  14. package/dist/element-reactive/genDomGetter.d.ts +9 -0
  15. package/dist/element-reactive/genDomGetter.js +18 -0
  16. package/dist/element-reactive/generateRegister.d.ts +6 -0
  17. package/dist/element-reactive/generateRegister.js +29 -0
  18. package/dist/element-reactive/html.d.ts +6 -0
  19. package/dist/element-reactive/html.js +8 -0
  20. package/dist/element-reactive/index.d.ts +30 -0
  21. package/dist/element-reactive/index.js +28 -0
  22. package/dist/element-reactive/registerAttributeHandler.d.ts +12 -0
  23. package/dist/element-reactive/registerAttributeHandler.js +11 -0
  24. package/dist/element-reactive/registerEventStatusChangedHandler.d.ts +11 -0
  25. package/dist/element-reactive/registerEventStatusChangedHandler.js +7 -0
  26. package/dist/element-reactive/registerStyleChangeHandler.d.ts +2 -0
  27. package/dist/element-reactive/registerStyleChangeHandler.js +8 -0
  28. package/dist/{LynxWrapper → elements/LynxWrapper}/LynxWrapper.js +1 -1
  29. package/dist/elements/LynxWrapper/index.d.ts +14 -0
  30. package/dist/elements/LynxWrapper/index.js +18 -0
  31. package/dist/{ScrollView → elements/ScrollView}/FadeEdgeLengthAttribute.d.ts +1 -1
  32. package/dist/{ScrollView → elements/ScrollView}/FadeEdgeLengthAttribute.js +1 -1
  33. package/dist/{ScrollView → elements/ScrollView}/ScrollAttributes.d.ts +1 -1
  34. package/dist/{ScrollView → elements/ScrollView}/ScrollAttributes.js +1 -1
  35. package/dist/{ScrollView → elements/ScrollView}/ScrollIntoView.d.ts +1 -1
  36. package/dist/{ScrollView → elements/ScrollView}/ScrollIntoView.js +1 -1
  37. package/dist/{ScrollView → elements/ScrollView}/ScrollView.js +2 -2
  38. package/dist/{ScrollView → elements/ScrollView}/ScrollViewEvents.d.ts +1 -1
  39. package/dist/{ScrollView → elements/ScrollView}/ScrollViewEvents.js +2 -2
  40. package/dist/elements/ScrollView/index.d.ts +32 -0
  41. package/dist/elements/ScrollView/index.js +36 -0
  42. package/dist/{XAudioTT → elements/XAudioTT}/XAudioAttribute.d.ts +1 -1
  43. package/dist/{XAudioTT → elements/XAudioTT}/XAudioAttribute.js +1 -1
  44. package/dist/{XAudioTT → elements/XAudioTT}/XAudioEvents.d.ts +1 -1
  45. package/dist/{XAudioTT → elements/XAudioTT}/XAudioEvents.js +1 -1
  46. package/dist/{XAudioTT → elements/XAudioTT}/XAudioTT.js +2 -2
  47. package/dist/elements/XAudioTT/index.d.ts +21 -0
  48. package/dist/elements/XAudioTT/index.js +25 -0
  49. package/dist/{XCanvas → elements/XCanvas}/CanvasAttributes.d.ts +1 -1
  50. package/dist/{XCanvas → elements/XCanvas}/CanvasAttributes.js +1 -1
  51. package/dist/{XCanvas → elements/XCanvas}/XCanvas.js +1 -1
  52. package/dist/elements/XCanvas/index.d.ts +14 -0
  53. package/dist/elements/XCanvas/index.js +18 -0
  54. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewHeaderNg.js +1 -1
  55. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewNg.js +1 -1
  56. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewNgEvents.d.ts +1 -1
  57. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewNgEvents.js +1 -1
  58. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotDragNg.js +1 -1
  59. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotNg.js +1 -1
  60. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotNgTouchEventsHandler.d.ts +1 -1
  61. package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewToolbarNg.js +1 -1
  62. package/dist/elements/XFoldViewNg/index.d.ts +23 -0
  63. package/dist/elements/XFoldViewNg/index.js +27 -0
  64. package/dist/{XImage → elements/XImage}/DropShadow.d.ts +1 -1
  65. package/dist/{XImage → elements/XImage}/DropShadow.js +1 -1
  66. package/dist/{XImage → elements/XImage}/FilterImage.js +2 -2
  67. package/dist/{XImage → elements/XImage}/ImageEvents.d.ts +1 -1
  68. package/dist/{XImage → elements/XImage}/ImageEvents.js +2 -2
  69. package/dist/{XImage → elements/XImage}/ImageSrc.d.ts +1 -1
  70. package/dist/{XImage → elements/XImage}/ImageSrc.js +1 -1
  71. package/dist/{XImage → elements/XImage}/XImage.js +2 -2
  72. package/dist/elements/XImage/index.d.ts +18 -0
  73. package/dist/elements/XImage/index.js +22 -0
  74. package/dist/{XInput → elements/XInput}/InputBaseAttributes.d.ts +1 -1
  75. package/dist/{XInput → elements/XInput}/InputBaseAttributes.js +1 -1
  76. package/dist/{XInput → elements/XInput}/Placeholder.d.ts +1 -1
  77. package/dist/{XInput → elements/XInput}/Placeholder.js +1 -1
  78. package/dist/{XInput → elements/XInput}/XInput.js +2 -2
  79. package/dist/{XInput → elements/XInput}/XInputAttribute.d.ts +1 -1
  80. package/dist/{XInput → elements/XInput}/XInputAttribute.js +1 -1
  81. package/dist/{XInput → elements/XInput}/XInputEvents.d.ts +1 -1
  82. package/dist/{XInput → elements/XInput}/XInputEvents.js +2 -2
  83. package/dist/elements/XInput/index.d.ts +34 -0
  84. package/dist/elements/XInput/index.js +38 -0
  85. package/dist/{XList → elements/XList}/ListItem.js +1 -1
  86. package/dist/{XList → elements/XList}/ListItemAttributes.d.ts +1 -1
  87. package/dist/{XList → elements/XList}/ListItemAttributes.js +1 -1
  88. package/dist/{XList → elements/XList}/XList.js +2 -2
  89. package/dist/{XList → elements/XList}/XListAttributes.d.ts +1 -1
  90. package/dist/{XList → elements/XList}/XListAttributes.js +1 -1
  91. package/dist/{XList → elements/XList}/XListEvents.d.ts +1 -1
  92. package/dist/{XList → elements/XList}/XListEvents.js +2 -2
  93. package/dist/{XList → elements/XList}/XListWaterfall.d.ts +1 -1
  94. package/dist/{XList → elements/XList}/XListWaterfall.js +1 -1
  95. package/dist/elements/XList/index.d.ts +32 -0
  96. package/dist/elements/XList/index.js +36 -0
  97. package/dist/{XOverlayNg → elements/XOverlayNg}/XOverlayAttributes.d.ts +1 -1
  98. package/dist/{XOverlayNg → elements/XOverlayNg}/XOverlayAttributes.js +1 -1
  99. package/dist/{XOverlayNg → elements/XOverlayNg}/XOverlayNg.js +2 -2
  100. package/dist/elements/XOverlayNg/index.d.ts +14 -0
  101. package/dist/elements/XOverlayNg/index.js +18 -0
  102. package/dist/{XRefreshView → elements/XRefreshView}/XRefreshFooter.js +1 -1
  103. package/dist/{XRefreshView → elements/XRefreshView}/XRefreshHeader.js +1 -1
  104. package/dist/{XRefreshView → elements/XRefreshView}/XRefreshSubElementIntersectionObserver.d.ts +1 -1
  105. package/dist/{XRefreshView → elements/XRefreshView}/XRefreshView.js +2 -2
  106. package/dist/{XRefreshView → elements/XRefreshView}/XRefreshViewEventsEmitter.d.ts +1 -1
  107. package/dist/{XRefreshView → elements/XRefreshView}/XRefreshViewEventsEmitter.js +2 -2
  108. package/dist/elements/XRefreshView/index.d.ts +26 -0
  109. package/dist/elements/XRefreshView/index.js +30 -0
  110. package/dist/{XSvg → elements/XSvg}/XSvg.d.ts +1 -1
  111. package/dist/{XSvg → elements/XSvg}/XSvg.js +2 -2
  112. package/dist/elements/XSvg/index.d.ts +13 -0
  113. package/dist/elements/XSvg/index.js +17 -0
  114. package/dist/{XSwiper → elements/XSwiper}/SwiperItem.js +1 -1
  115. package/dist/{XSwiper → elements/XSwiper}/XSwiper.js +2 -2
  116. package/dist/{XSwiper → elements/XSwiper}/XSwiperAutoScroll.d.ts +1 -1
  117. package/dist/{XSwiper → elements/XSwiper}/XSwiperAutoScroll.js +1 -1
  118. package/dist/{XSwiper → elements/XSwiper}/XSwiperCircular.d.ts +1 -1
  119. package/dist/{XSwiper → elements/XSwiper}/XSwiperCircular.js +1 -1
  120. package/dist/{XSwiper → elements/XSwiper}/XSwiperEvents.d.ts +1 -1
  121. package/dist/{XSwiper → elements/XSwiper}/XSwiperEvents.js +2 -2
  122. package/dist/{XSwiper → elements/XSwiper}/XSwiperIndicator.d.ts +1 -1
  123. package/dist/{XSwiper → elements/XSwiper}/XSwiperIndicator.js +1 -1
  124. package/dist/elements/XSwiper/index.d.ts +29 -0
  125. package/dist/elements/XSwiper/index.js +33 -0
  126. package/dist/{XText → elements/XText}/InlineImage.d.ts +1 -1
  127. package/dist/{XText → elements/XText}/InlineImage.js +2 -2
  128. package/dist/{XText → elements/XText}/InlineText.js +1 -1
  129. package/dist/{XText → elements/XText}/InlineTruncation.js +1 -1
  130. package/dist/{XText → elements/XText}/RawText.js +1 -1
  131. package/dist/{XText → elements/XText}/XText.js +2 -2
  132. package/dist/{XText → elements/XText}/XTextTruncation.d.ts +1 -1
  133. package/dist/{XText → elements/XText}/XTextTruncation.js +2 -2
  134. package/dist/elements/XText/index.d.ts +21 -0
  135. package/dist/elements/XText/index.js +25 -0
  136. package/dist/{XTextarea → elements/XTextarea}/Placeholder.d.ts +1 -1
  137. package/dist/{XTextarea → elements/XTextarea}/Placeholder.js +1 -1
  138. package/dist/{XTextarea → elements/XTextarea}/TextareaBaseAttributes.d.ts +1 -1
  139. package/dist/{XTextarea → elements/XTextarea}/TextareaBaseAttributes.js +1 -1
  140. package/dist/{XTextarea → elements/XTextarea}/XTextarea.js +2 -2
  141. package/dist/{XTextarea → elements/XTextarea}/XTextareaAttributes.d.ts +1 -1
  142. package/dist/{XTextarea → elements/XTextarea}/XTextareaAttributes.js +1 -1
  143. package/dist/{XTextarea → elements/XTextarea}/XTextareaEvents.d.ts +1 -1
  144. package/dist/{XTextarea → elements/XTextarea}/XTextareaEvents.js +2 -2
  145. package/dist/elements/XTextarea/index.d.ts +35 -0
  146. package/dist/elements/XTextarea/index.js +39 -0
  147. package/dist/{XView → elements/XView}/BlurRadius.d.ts +1 -1
  148. package/dist/{XView → elements/XView}/BlurRadius.js +1 -1
  149. package/dist/{XView → elements/XView}/XBlurView.js +1 -1
  150. package/dist/{XView → elements/XView}/XView.js +1 -1
  151. package/dist/elements/XView/index.d.ts +8 -0
  152. package/dist/elements/XView/index.js +12 -0
  153. package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerItemNg.js +1 -1
  154. package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerNg.js +2 -2
  155. package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerNgEvents.d.ts +1 -1
  156. package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerNgEvents.js +2 -2
  157. package/dist/elements/XViewpagerNg/index.d.ts +20 -0
  158. package/dist/elements/XViewpagerNg/index.js +24 -0
  159. package/dist/{common → elements/common}/CommonEventsAndMethods.js +1 -1
  160. package/dist/elements/htmlTemplates.d.ts +20 -0
  161. package/dist/elements/htmlTemplates.js +332 -0
  162. package/dist/elements/index.d.ts +12 -0
  163. package/dist/elements/index.js +16 -0
  164. package/elements.css +14 -14
  165. package/index.css +1 -1
  166. package/package.json +81 -58
  167. package/src/compat/LinearContainer/linear-compat.css +124 -0
  168. package/src/{common-css → elements/common-css}/linear.css +1 -1
  169. package/dist/LynxWrapper/index.d.ts +0 -1
  170. package/dist/LynxWrapper/index.js +0 -2
  171. package/dist/ScrollView/index.d.ts +0 -1
  172. package/dist/ScrollView/index.js +0 -2
  173. package/dist/XAudioTT/index.d.ts +0 -1
  174. package/dist/XAudioTT/index.js +0 -2
  175. package/dist/XCanvas/index.d.ts +0 -1
  176. package/dist/XCanvas/index.js +0 -2
  177. package/dist/XFoldViewNg/index.d.ts +0 -5
  178. package/dist/XFoldViewNg/index.js +0 -6
  179. package/dist/XImage/index.d.ts +0 -2
  180. package/dist/XImage/index.js +0 -3
  181. package/dist/XInput/index.d.ts +0 -1
  182. package/dist/XInput/index.js +0 -2
  183. package/dist/XList/index.d.ts +0 -2
  184. package/dist/XList/index.js +0 -3
  185. package/dist/XOverlayNg/index.d.ts +0 -1
  186. package/dist/XOverlayNg/index.js +0 -2
  187. package/dist/XRefreshView/index.d.ts +0 -3
  188. package/dist/XRefreshView/index.js +0 -4
  189. package/dist/XSvg/index.d.ts +0 -1
  190. package/dist/XSvg/index.js +0 -2
  191. package/dist/XSwiper/index.d.ts +0 -2
  192. package/dist/XSwiper/index.js +0 -3
  193. package/dist/XText/index.d.ts +0 -5
  194. package/dist/XText/index.js +0 -6
  195. package/dist/XTextarea/index.d.ts +0 -1
  196. package/dist/XTextarea/index.js +0 -2
  197. package/dist/XView/index.d.ts +0 -2
  198. package/dist/XView/index.js +0 -3
  199. package/dist/XViewpagerNg/index.d.ts +0 -2
  200. package/dist/XViewpagerNg/index.js +0 -3
  201. package/dist/index.d.ts +0 -4
  202. package/dist/index.js +0 -8
  203. /package/dist/{LynxWrapper → elements/LynxWrapper}/LynxWrapper.d.ts +0 -0
  204. /package/dist/{ScrollView → elements/ScrollView}/ScrollView.d.ts +0 -0
  205. /package/dist/{XAudioTT → elements/XAudioTT}/XAudioTT.d.ts +0 -0
  206. /package/dist/{XAudioTT → elements/XAudioTT}/utils.d.ts +0 -0
  207. /package/dist/{XAudioTT → elements/XAudioTT}/utils.js +0 -0
  208. /package/dist/{XCanvas → elements/XCanvas}/XCanvas.d.ts +0 -0
  209. /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewHeaderNg.d.ts +0 -0
  210. /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewNg.d.ts +0 -0
  211. /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotDragNg.d.ts +0 -0
  212. /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotNg.d.ts +0 -0
  213. /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewSlotNgTouchEventsHandler.js +0 -0
  214. /package/dist/{XFoldViewNg → elements/XFoldViewNg}/XFoldviewToolbarNg.d.ts +0 -0
  215. /package/dist/{XImage → elements/XImage}/FilterImage.d.ts +0 -0
  216. /package/dist/{XImage → elements/XImage}/XImage.d.ts +0 -0
  217. /package/dist/{XInput → elements/XInput}/XInput.d.ts +0 -0
  218. /package/dist/{XList → elements/XList}/ListItem.d.ts +0 -0
  219. /package/dist/{XList → elements/XList}/XList.d.ts +0 -0
  220. /package/dist/{XOverlayNg → elements/XOverlayNg}/XOverlayNg.d.ts +0 -0
  221. /package/dist/{XRefreshView → elements/XRefreshView}/XRefreshFooter.d.ts +0 -0
  222. /package/dist/{XRefreshView → elements/XRefreshView}/XRefreshHeader.d.ts +0 -0
  223. /package/dist/{XRefreshView → elements/XRefreshView}/XRefreshSubElementIntersectionObserver.js +0 -0
  224. /package/dist/{XRefreshView → elements/XRefreshView}/XRefreshView.d.ts +0 -0
  225. /package/dist/{XSwiper → elements/XSwiper}/SwiperItem.d.ts +0 -0
  226. /package/dist/{XSwiper → elements/XSwiper}/XSwiper.d.ts +0 -0
  227. /package/dist/{XText → elements/XText}/InlineText.d.ts +0 -0
  228. /package/dist/{XText → elements/XText}/InlineTruncation.d.ts +0 -0
  229. /package/dist/{XText → elements/XText}/RawText.d.ts +0 -0
  230. /package/dist/{XText → elements/XText}/XText.d.ts +0 -0
  231. /package/dist/{XTextarea → elements/XTextarea}/XTextarea.d.ts +0 -0
  232. /package/dist/{XView → elements/XView}/XBlurView.d.ts +0 -0
  233. /package/dist/{XView → elements/XView}/XView.d.ts +0 -0
  234. /package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerItemNg.d.ts +0 -0
  235. /package/dist/{XViewpagerNg → elements/XViewpagerNg}/XViewpagerNg.d.ts +0 -0
  236. /package/dist/{all.d.ts → elements/all.d.ts} +0 -0
  237. /package/dist/{all.js → elements/all.js} +0 -0
  238. /package/dist/{common → elements/common}/CommonEventsAndMethods.d.ts +0 -0
  239. /package/dist/{common → elements/common}/bindToIntersectionObserver.d.ts +0 -0
  240. /package/dist/{common → elements/common}/bindToIntersectionObserver.js +0 -0
  241. /package/dist/{common → elements/common}/commonEventInitConfiguration.d.ts +0 -0
  242. /package/dist/{common → elements/common}/commonEventInitConfiguration.js +0 -0
  243. /package/dist/{common → elements/common}/constants.d.ts +0 -0
  244. /package/dist/{common → elements/common}/constants.js +0 -0
  245. /package/dist/{common → elements/common}/getCombinedParentElement.d.ts +0 -0
  246. /package/dist/{common → elements/common}/getCombinedParentElement.js +0 -0
  247. /package/dist/{common → elements/common}/renameEvent.d.ts +0 -0
  248. /package/dist/{common → elements/common}/renameEvent.js +0 -0
  249. /package/dist/{common → elements/common}/throttle.d.ts +0 -0
  250. /package/dist/{common → elements/common}/throttle.js +0 -0
  251. /package/src/{LynxWrapper → elements/LynxWrapper}/lynx-wrapper.css +0 -0
  252. /package/src/{ScrollView → elements/ScrollView}/scroll-view.css +0 -0
  253. /package/src/{XAudioTT → elements/XAudioTT}/x-audio-tt.css +0 -0
  254. /package/src/{XCanvas → elements/XCanvas}/x-canvas.css +0 -0
  255. /package/src/{XFoldViewNg → elements/XFoldViewNg}/x-foldview-ng.css +0 -0
  256. /package/src/{XImage → elements/XImage}/x-image.css +0 -0
  257. /package/src/{XInput → elements/XInput}/x-input.css +0 -0
  258. /package/src/{XList → elements/XList}/x-list.css +0 -0
  259. /package/src/{XOverlayNg → elements/XOverlayNg}/x-overlay-ng.css +0 -0
  260. /package/src/{XRefreshView → elements/XRefreshView}/x-refresh-view.css +0 -0
  261. /package/src/{XSvg → elements/XSvg}/x-svg.css +0 -0
  262. /package/src/{XSwiper → elements/XSwiper}/x-swiper.css +0 -0
  263. /package/src/{XText → elements/XText}/x-text.css +0 -0
  264. /package/src/{XTextarea → elements/XTextarea}/x-textarea.css +0 -0
  265. /package/src/{XViewpagerNg → elements/XViewpagerNg}/x-viewpager-ng.css +0 -0
package/CHANGELOG.md CHANGED
@@ -1,6 +1,24 @@
1
1
  # @lynx-js/web-elements
2
2
 
3
- ## 0.9.1-canary-20251226071107-f0317a32d26e90c1da0ee63f29e5fb711899f075
3
+ ## 0.10.0-canary-20251226074923-ccbf3de1040573d60a3f8068585e36d5230b5e4a
4
+
5
+ ### Minor Changes
6
+
7
+ - chore: migrate all @lynx-js/web-elements-\* packages into one ([#2057](https://github.com/lynx-family/lynx-stack/pull/2057))
8
+
9
+ ### Before
10
+
11
+ ```js
12
+ import "@lynx-js/web-elements-template";
13
+ import "@lynx-js/web-elements-compat/LinearContainer";
14
+ ```
15
+
16
+ ### After
17
+
18
+ ```js
19
+ import "@lynx-js/web-elements/html-templates";
20
+ import "@lynx-js/web-elements/compat/LinearContainer";
21
+ ```
4
22
 
5
23
  ### Patch Changes
6
24
 
@@ -11,9 +29,6 @@
11
29
 
12
30
  This is a part of #1937
13
31
 
14
- - Updated dependencies []:
15
- - @lynx-js/web-elements-template@0.9.1-canary-20251226071107-f0317a32d26e90c1da0ee63f29e5fb711899f075
16
-
17
32
  ## 0.9.0
18
33
 
19
34
  ### Minor Changes
@@ -0,0 +1,8 @@
1
+ import { type AttributeReactiveClass } from '../../element-reactive/index.js';
2
+ import '../../../src/compat/LinearContainer/linear-compat.css';
3
+ export declare class LinearContainer implements InstanceType<AttributeReactiveClass<typeof HTMLElement>> {
4
+ #private;
5
+ static readonly observedAttributes: never[];
6
+ static readonly observedCSSProperties: string[];
7
+ constructor(currentElement: HTMLElement);
8
+ }
@@ -0,0 +1,109 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ import { bindToAttribute, } from '../../element-reactive/index.js';
5
+ import '../../../src/compat/LinearContainer/linear-compat.css';
6
+ /** For @container
7
+ * chrome 111, safari 18, firefox no
8
+ *
9
+ * However, when the chromuim version is less than 116.0.5806.0, the following code will crash:
10
+ * ```
11
+ * <style>
12
+ #container {
13
+ --lynx-display: flex;
14
+ }
15
+
16
+ #target {
17
+ background-color: red;
18
+ width: 400px;
19
+ height: 400px;
20
+ }
21
+
22
+ @container style(--lynx-display: flex) {
23
+ #target {
24
+ background-color: green;
25
+ }
26
+ }
27
+ </style>
28
+ <div id="container">
29
+ <div id="target"></div>
30
+ </div>
31
+ <script>
32
+ const target = document.getElementById('container');
33
+ container.style.setProperty('display', 'none');
34
+ setTimeout(() => {
35
+ target.style.removeProperty('display');
36
+ }, 10);
37
+ </script>
38
+ * ```
39
+ * it fixed in 116.0.5806.0, detail: https://issues.chromium.org/issues/40270007
40
+ *
41
+ * so we limit this feature to chrome 117, safari 18, firefox no:
42
+ * rex unit: chrome 111, safari 17.2, firefox no
43
+ * https://developer.mozilla.org/en-US/docs/Web/CSS/length
44
+ * transition-behavior:allow-discrete: chrome 117, safari 18, firefox 125
45
+ * https://developer.mozilla.org/en-US/docs/Web/CSS/transition-behavior
46
+ * https://caniuse.com/mdn-css_properties_display_is_transitionable
47
+ *
48
+ * update this once firefox supports this.
49
+ */
50
+ const supportContainerStyleQuery = CSS.supports('width:1rex')
51
+ && CSS.supports('transition-behavior:allow-discrete')
52
+ && CSS.supports('content-visibility: auto');
53
+ export class LinearContainer {
54
+ static observedAttributes = [];
55
+ static observedCSSProperties = [
56
+ '--lynx-display',
57
+ '--lynx-linear-orientation',
58
+ ];
59
+ #dom;
60
+ constructor(currentElement) {
61
+ this.#dom = currentElement;
62
+ // @ts-expect-error
63
+ this.cssPropertyChangedHandler = {
64
+ '--lynx-display': this.#setComputedDisplay,
65
+ '--lynx-linear-orientation': this.#setLinearOrientation,
66
+ };
67
+ }
68
+ #setComputedDisplay = bindToAttribute(() => this.#dom, 'lynx-computed-display');
69
+ #setLinearOrientation = bindToAttribute(() => this.#dom, 'lynx-linear-orientation');
70
+ }
71
+ /**
72
+ * remove this once firefox supports @container style()
73
+ * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@container
74
+ * @see https://bugzilla.mozilla.org/show_bug.cgi?id=1795622
75
+ */
76
+ if (!supportContainerStyleQuery) {
77
+ const targetElements = new Set([
78
+ 'x-view',
79
+ 'scroll-view',
80
+ 'x-foldview-header-ng',
81
+ 'x-foldview-ng',
82
+ 'x-foldview-slot-drag-ng',
83
+ 'x-foldview-slot-ng',
84
+ 'x-foldview-toolbar-ng',
85
+ 'x-refresh-footer',
86
+ 'x-refresh-header',
87
+ 'x-refresh-view',
88
+ 'x-swiper-item',
89
+ 'x-viewpager-item-ng',
90
+ 'x-viewpager-ng',
91
+ ]);
92
+ const realDefine = customElements.define.bind(customElements);
93
+ const fakeDefine = (name, cls, options) => {
94
+ if (targetElements.has(name)) {
95
+ cls.registerPlugin?.(LinearContainer);
96
+ targetElements.delete(name);
97
+ }
98
+ realDefine(name, cls, options);
99
+ };
100
+ customElements.define = fakeDefine;
101
+ for (const tag of targetElements) {
102
+ (customElements.whenDefined(tag)).then((cls) => {
103
+ if (targetElements.has(tag)) {
104
+ cls.registerPlugin?.(LinearContainer);
105
+ }
106
+ });
107
+ }
108
+ }
109
+ //# sourceMappingURL=LinearContainer.js.map
@@ -0,0 +1 @@
1
+ export declare function bindSwitchToEventListener<T>(this: T, elementGetter: (this: T) => HTMLElement, eventName: keyof HTMLElementEventMap | string, eventListener: EventListener, options?: AddEventListenerOptions): (this: T, enable: boolean) => void;
@@ -0,0 +1,23 @@
1
+ /**
2
+ // Copyright 2023 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ */
6
+ import { boostedQueueMicrotask } from './boostedQueueMicrotask.js';
7
+ export function bindSwitchToEventListener(elementGetter, eventName, eventListener, options) {
8
+ let listening = false;
9
+ return function (enable) {
10
+ if (enable !== listening) {
11
+ const target = elementGetter.call(this);
12
+ if (enable) {
13
+ boostedQueueMicrotask(() => target.addEventListener(eventName, eventListener, options));
14
+ listening = true;
15
+ }
16
+ else {
17
+ boostedQueueMicrotask(() => target.removeEventListener(eventName, eventListener));
18
+ listening = false;
19
+ }
20
+ }
21
+ };
22
+ }
23
+ //# sourceMappingURL=bindSwitchToEventListener.js.map
@@ -0,0 +1,2 @@
1
+ export type BindToAttributeProxy<T> = ReturnType<typeof bindToAttribute<T>>;
2
+ export declare function bindToAttribute<T>(this: T, elementGetter: (this: T) => HTMLElement, attributeName: string, valProcessor?: (value: string | null) => string | null): (this: T, newVal: string | null) => void;
@@ -0,0 +1,27 @@
1
+ /**
2
+ // Copyright 2023 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ */
6
+ import { boostedQueueMicrotask } from './boostedQueueMicrotask.js';
7
+ export function bindToAttribute(elementGetter, attributeName, valProcessor) {
8
+ return function (newVal) {
9
+ if (valProcessor)
10
+ newVal = valProcessor(newVal);
11
+ const target = elementGetter.call(this);
12
+ const currentAttribute = target.getAttribute(attributeName);
13
+ if (currentAttribute !== newVal) {
14
+ if (newVal !== null) {
15
+ boostedQueueMicrotask(() => {
16
+ target.setAttribute(attributeName, newVal);
17
+ });
18
+ }
19
+ else {
20
+ boostedQueueMicrotask(() => {
21
+ target.removeAttribute(attributeName);
22
+ });
23
+ }
24
+ }
25
+ };
26
+ }
27
+ //# sourceMappingURL=bindToAttribute.js.map
@@ -0,0 +1,2 @@
1
+ export type BindToStyleProxy<T> = ReturnType<typeof bindToStyle<T>>;
2
+ export declare function bindToStyle<T>(this: T, elementGetter: (this: T) => HTMLElement, styleName: string, valProcessor?: (value: string) => string, important?: boolean): (this: T, newVal: string | null) => void;
@@ -0,0 +1,21 @@
1
+ /**
2
+ // Copyright 2023 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ */
6
+ import { boostedQueueMicrotask } from './boostedQueueMicrotask.js';
7
+ export function bindToStyle(elementGetter, styleName, valProcessor, important) {
8
+ return function (newVal) {
9
+ if (newVal) {
10
+ if (valProcessor)
11
+ newVal = valProcessor(newVal);
12
+ boostedQueueMicrotask(() => elementGetter
13
+ .call(this)
14
+ .style.setProperty(styleName, newVal, important ? 'important' : undefined));
15
+ }
16
+ else {
17
+ boostedQueueMicrotask(() => elementGetter.call(this).style.removeProperty(styleName));
18
+ }
19
+ };
20
+ }
21
+ //# sourceMappingURL=bindToStyle.js.map
@@ -0,0 +1 @@
1
+ export declare function boostedQueueMicrotask(foo: CallableFunction, that?: any): void;
@@ -0,0 +1,20 @@
1
+ /**
2
+ // Copyright 2023 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ */
6
+ let queuedFunctions = [];
7
+ function __executeNextMicrotask() {
8
+ const currentQueuedFunction = queuedFunctions;
9
+ queuedFunctions = [];
10
+ for (const [foo, that] of currentQueuedFunction) {
11
+ that ? foo.call(that) : foo();
12
+ }
13
+ }
14
+ export function boostedQueueMicrotask(foo, that) {
15
+ if (queuedFunctions.length === 0) {
16
+ queueMicrotask(__executeNextMicrotask);
17
+ }
18
+ queuedFunctions.push([foo, that]);
19
+ }
20
+ //# sourceMappingURL=boostedQueueMicrotask.js.map
@@ -0,0 +1,43 @@
1
+ /**
2
+ // Copyright 2023 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ */
6
+ import type { AttributeChangeHandler } from './registerAttributeHandler.js';
7
+ import type { StyleChangeHandler } from './registerStyleChangeHandler.js';
8
+ import type { EventStatusChangeHandler } from './registerEventStatusChangedHandler.js';
9
+ export interface WebComponentClass {
10
+ new (): HTMLElement & {
11
+ cssPropertyChangedHandler?: never;
12
+ connectedCallback?(): void;
13
+ disconnectedCallback?(): void;
14
+ adoptedCallback?(): void;
15
+ attributeChangedCallback?(name: string, oldValue: null | string, newValue: null | string): void;
16
+ };
17
+ observedCSSProperties?: never;
18
+ observedAttributes?: string[];
19
+ /**
20
+ * for attribute="false",
21
+ * we will do removeAttribute by default;
22
+ * set here for dont do this;
23
+ */
24
+ notToFilterFalseAttributes?: Set<string>;
25
+ registerPlugin?: (reactiveClass: AttributeReactiveClass<WebComponentClass>) => void;
26
+ }
27
+ export type UseCSSCustomPropertyHandler = (newValue: string, propertyName: string) => void;
28
+ export interface AttributeReactiveClass<T extends typeof HTMLElement> {
29
+ observedAttributes: readonly string[];
30
+ observedCSSProperties?: readonly string[];
31
+ new (dom: InstanceType<T>): any;
32
+ }
33
+ export type AttributeReactiveObject = {
34
+ attributeChangedHandler?: Record<string, {
35
+ handler: AttributeChangeHandler;
36
+ noDomMeasure: boolean;
37
+ }>;
38
+ cssPropertyChangedHandler?: Record<string, StyleChangeHandler>;
39
+ eventStatusChangedHandler?: Record<string, EventStatusChangeHandler>;
40
+ dispose?(): void;
41
+ connectedCallback?(): void;
42
+ };
43
+ export declare function Component<T extends WebComponentClass>(tag: string, attributeReactiveClasses: AttributeReactiveClass<T>[], template?: string): (target: T, context: ClassDecoratorContext<T>) => T;
@@ -0,0 +1,217 @@
1
+ import { boostedQueueMicrotask } from './boostedQueueMicrotask.js';
2
+ function convertStyleWithPriority(value, priority) {
3
+ if (priority) {
4
+ return value + ' !important';
5
+ }
6
+ else {
7
+ return value;
8
+ }
9
+ }
10
+ export function Component(tag, attributeReactiveClasses, template) {
11
+ let templateElement;
12
+ return (target, { addInitializer }) => {
13
+ const observedStyleProperties = new Set([
14
+ ...attributeReactiveClasses
15
+ .filter((e) => e.observedCSSProperties)
16
+ .map((e) => e.observedCSSProperties)
17
+ .reduce((p, r) => p.concat(r), []),
18
+ ]);
19
+ // @ts-ignore
20
+ class CustomElement extends target {
21
+ static registerPlugin(reactiveClass) {
22
+ CustomElement.observedAttributes.push(...reactiveClass.observedAttributes);
23
+ if (reactiveClass.observedCSSProperties) {
24
+ for (const property of reactiveClass.observedCSSProperties) {
25
+ observedStyleProperties.add(property);
26
+ }
27
+ }
28
+ attributeReactiveClasses.push(reactiveClass);
29
+ }
30
+ static observedAttributes = [
31
+ ...(target.observedAttributes ?? []),
32
+ ...attributeReactiveClasses
33
+ .map((e) => e.observedAttributes)
34
+ .reduce((p, r) => p.concat(r), []),
35
+ 'class',
36
+ ];
37
+ #attributeReactives = [];
38
+ constructor() {
39
+ super();
40
+ if (template && !templateElement) {
41
+ templateElement = document.createElement('template');
42
+ templateElement.innerHTML = template;
43
+ document.body.appendChild(templateElement);
44
+ }
45
+ if (templateElement && !this.shadowRoot) {
46
+ const shadowRoot = this.attachShadow({
47
+ mode: 'open',
48
+ delegatesFocus: true,
49
+ });
50
+ const template = templateElement.content.cloneNode(true);
51
+ shadowRoot.append(template);
52
+ }
53
+ this.#attributeReactives = attributeReactiveClasses.map((oneClass) => {
54
+ const oneAttributeReactive = new oneClass(this);
55
+ return oneAttributeReactive;
56
+ });
57
+ this.#cleanFalseAttributes();
58
+ }
59
+ /** handle observing styles */
60
+ #checking = false;
61
+ #previousStyle = new Map();
62
+ #responseStyleChange() {
63
+ if (!this.#checking && observedStyleProperties.size) {
64
+ this.#checking = true;
65
+ boostedQueueMicrotask(this.#invokeStyleHandler, this);
66
+ }
67
+ }
68
+ #invokeStyleHandler() {
69
+ const computedStyle = getComputedStyle(this);
70
+ for (const propertyName of observedStyleProperties) {
71
+ const value = computedStyle.getPropertyValue(propertyName);
72
+ const priority = computedStyle.getPropertyPriority(propertyName);
73
+ const propertyValue = convertStyleWithPriority(value.trim(), priority);
74
+ if (this.#previousStyle.get(propertyName) !== propertyValue) {
75
+ for (const oneReactive of this.#attributeReactives) {
76
+ oneReactive.cssPropertyChangedHandler?.[propertyName]?.call(oneReactive, propertyValue, propertyName);
77
+ }
78
+ }
79
+ }
80
+ this.#checking = false;
81
+ }
82
+ /** handle attribute='false' */
83
+ setAttribute(qualifiedName, value) {
84
+ if (value.toString() === 'false'
85
+ && !target.notToFilterFalseAttributes?.has(qualifiedName)
86
+ && !qualifiedName.startsWith('data-')) {
87
+ this.removeAttribute(qualifiedName);
88
+ return;
89
+ }
90
+ super.setAttribute(qualifiedName, value);
91
+ }
92
+ #cleanFalseAttributes() {
93
+ const attributes = this.attributes;
94
+ for (let index = 0, attr; (attr = attributes.item(index)); index++) {
95
+ if (attr.value === 'false'
96
+ && !target.notToFilterFalseAttributes?.has(attr.name)
97
+ && !attr.name.startsWith('data-')) {
98
+ this.removeAttributeNode(attr);
99
+ }
100
+ }
101
+ }
102
+ #connected = false;
103
+ /** handle custom element life-cycles */
104
+ attributeChangedCallback(name, oldValue, newValue) {
105
+ super.attributeChangedCallback
106
+ && super.attributeChangedCallback(name, oldValue, newValue);
107
+ if (!target.notToFilterFalseAttributes?.has(name)
108
+ && !name.startsWith('data-')) {
109
+ if (oldValue === 'false')
110
+ oldValue = null;
111
+ if (newValue === 'false') {
112
+ newValue = null;
113
+ this.removeAttribute(name);
114
+ }
115
+ }
116
+ if (oldValue !== newValue) {
117
+ if (this.#connected && (name === 'class' || name === 'style')) {
118
+ this.#responseStyleChange();
119
+ }
120
+ for (const oneReactive of this.#attributeReactives) {
121
+ if (oneReactive.attributeChangedHandler?.[name]) {
122
+ const { handler, noDomMeasure } = oneReactive.attributeChangedHandler[name];
123
+ if (noDomMeasure) {
124
+ handler.call(oneReactive, newValue, oldValue, name);
125
+ }
126
+ else if (this.#connected) {
127
+ boostedQueueMicrotask(() => handler.call(oneReactive, newValue, oldValue, name));
128
+ }
129
+ }
130
+ }
131
+ }
132
+ }
133
+ #invokeAfterConnectedAttributeChangedHandler() {
134
+ this.getAttributeNames().forEach((attributeName) => {
135
+ for (const oneReactive of this.#attributeReactives) {
136
+ if (oneReactive.attributeChangedHandler?.[attributeName]) {
137
+ const { handler, noDomMeasure } = oneReactive.attributeChangedHandler[attributeName];
138
+ if (!noDomMeasure) {
139
+ boostedQueueMicrotask(() => handler.call(oneReactive, this.getAttribute(attributeName), null, attributeName));
140
+ }
141
+ }
142
+ }
143
+ });
144
+ }
145
+ connectedCallback() {
146
+ super.connectedCallback?.();
147
+ this.#attributeReactives.forEach((oneAttributeReactive) => {
148
+ oneAttributeReactive.connectedCallback?.();
149
+ });
150
+ this.#responseStyleChange();
151
+ boostedQueueMicrotask(this.#invokeAfterConnectedAttributeChangedHandler, this);
152
+ this.#connected = true;
153
+ }
154
+ disconnectedCallback() {
155
+ super.disconnectedCallback?.();
156
+ this.#attributeReactives.forEach((oneAttributeReactive) => {
157
+ oneAttributeReactive.dispose?.();
158
+ });
159
+ }
160
+ #eventListenerMap = {};
161
+ addEventListener(type, listener, options) {
162
+ super.addEventListener(type, listener, options);
163
+ this.#eventListenerMap[type] ??= {
164
+ count: 0,
165
+ listenerCount: new WeakMap(),
166
+ captureListenerCount: new WeakMap(),
167
+ };
168
+ const targetEventInfo = this.#eventListenerMap[type];
169
+ const capture = typeof options === 'object' ? options.capture : options;
170
+ const targetMap = capture
171
+ ? targetEventInfo.captureListenerCount
172
+ : targetEventInfo.listenerCount;
173
+ const currentListenerCount = targetMap.get(listener) ?? 0;
174
+ targetMap.set(listener, currentListenerCount + 1);
175
+ if (targetEventInfo.count === 0) {
176
+ // trigger eventStatusChangeHandler
177
+ for (const oneReactive of this.#attributeReactives) {
178
+ const handler = oneReactive.eventStatusChangedHandler?.[type];
179
+ if (handler) {
180
+ handler.call(oneReactive, true, type);
181
+ }
182
+ }
183
+ }
184
+ targetEventInfo.count++;
185
+ }
186
+ removeEventListener(type, listener, options) {
187
+ super.removeEventListener(type, listener, options);
188
+ const capture = typeof options === 'object' ? options.capture : options;
189
+ const targetEventInfo = this.#eventListenerMap[type];
190
+ if (targetEventInfo && targetEventInfo.count > 0) {
191
+ const targetMap = capture
192
+ ? targetEventInfo?.captureListenerCount
193
+ : targetEventInfo?.listenerCount;
194
+ const currentListenerCount = targetMap.get(listener);
195
+ if (currentListenerCount === 1) {
196
+ targetEventInfo.listenerCount.delete(listener);
197
+ targetEventInfo.count--;
198
+ if (targetEventInfo.count === 0) {
199
+ // trigger eventStatusChangeHandler
200
+ for (const oneReactive of this.#attributeReactives) {
201
+ const handler = oneReactive.eventStatusChangedHandler?.[type];
202
+ if (handler) {
203
+ handler.call(oneReactive, false, type);
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }
211
+ addInitializer(() => {
212
+ customElements.define(tag, CustomElement);
213
+ });
214
+ return CustomElement;
215
+ };
216
+ }
217
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1,9 @@
1
+ /**
2
+ // Copyright 2023 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ */
6
+ export type InternalDomGetter<T extends HTMLElement> = () => T;
7
+ export type PlainDomGetter<T extends HTMLElement> = () => T | null;
8
+ export declare function genDomGetter<T extends HTMLElement>(queryableElementGetter: () => ShadowRoot, selector: string): InternalDomGetter<T>;
9
+ export declare function genDomGetter<T extends HTMLElement>(queryableElementGetter: () => HTMLElement, selector: string): PlainDomGetter<T>;
@@ -0,0 +1,18 @@
1
+ export function genDomGetter(queryableElementGetter, selector) {
2
+ let dom;
3
+ let queryTarget;
4
+ return () => {
5
+ if (!queryTarget)
6
+ queryTarget = queryableElementGetter();
7
+ if (queryTarget.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
8
+ if (!dom) {
9
+ dom = queryTarget.querySelector(selector);
10
+ }
11
+ }
12
+ else {
13
+ dom = queryTarget.querySelector(selector);
14
+ }
15
+ return dom;
16
+ };
17
+ }
18
+ //# sourceMappingURL=genDomGetter.js.map
@@ -0,0 +1,6 @@
1
+ /**
2
+ // Copyright 2023 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ */
6
+ export declare function generateRegister<DecoratorArgs extends any[], RegistryItem, HandlerType, RegisterStorageMapName extends string>(registerName: RegisterStorageMapName, convertHandlerToRegistryItem: (handler: HandlerType, decoratorArgs: DecoratorArgs) => RegistryItem): (key: string, ...args: DecoratorArgs) => <T>(this: T, target: HandlerType | undefined, context: ClassMemberDecoratorContext | ClassFieldDecoratorContext<T>) => any;
@@ -0,0 +1,29 @@
1
+ /**
2
+ // Copyright 2023 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ */
6
+ export function generateRegister(registerName, convertHandlerToRegistryItem) {
7
+ return function registerHandler(key, ...args) {
8
+ return function (target, context) {
9
+ if (context.kind === 'method') {
10
+ context.addInitializer(function () {
11
+ this[registerName] ??= {};
12
+ this[registerName][key] =
13
+ convertHandlerToRegistryItem(target, args);
14
+ });
15
+ }
16
+ else if (context.kind === 'field') {
17
+ return function (value) {
18
+ this[registerName] ??= {};
19
+ this[registerName][key] = convertHandlerToRegistryItem(value, args);
20
+ return value;
21
+ };
22
+ }
23
+ else {
24
+ throw new Error(`[lynx-web-components] decorator type ${context.kind} is not supported`);
25
+ }
26
+ };
27
+ };
28
+ }
29
+ //# sourceMappingURL=generateRegister.js.map
@@ -0,0 +1,6 @@
1
+ /**
2
+ // Copyright 2023 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ */
6
+ export declare const html: (strings: TemplateStringsArray, ...values: any[]) => string;
@@ -0,0 +1,8 @@
1
+ /**
2
+ // Copyright 2023 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ */
6
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#raw_strings
7
+ export const html = (strings, ...values) => String.raw({ raw: strings }, ...values);
8
+ //# sourceMappingURL=html.js.map
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @module element-reactive
3
+ *
4
+ * This module provides the core reactive framework for building Web Components in Lynx.
5
+ *
6
+ * Core features:
7
+ * - `Component` decorator: Defines a custom element with reactive capabilities.
8
+ * - Attribute & Style Binding: Automatically updates component state when attributes or styles change.
9
+ * - Event Handling: Provides mechanisms to bind and handle events efficiently.
10
+ * - Lifecycle Management: Extensions to standard Web Component lifecycle callbacks.
11
+ * - Plugin System: Allows extending component behavior.
12
+ *
13
+ * Use this module to create highly performant and reactive custom elements that integrate seamlessly with the Lynx platform.
14
+ */
15
+ export { bindSwitchToEventListener } from './bindSwitchToEventListener.js';
16
+ export { bindToAttribute } from './bindToAttribute.js';
17
+ export type { BindToAttributeProxy } from './bindToAttribute.js';
18
+ export { bindToStyle } from './bindToStyle.js';
19
+ export type { BindToStyleProxy } from './bindToStyle.js';
20
+ export { boostedQueueMicrotask } from './boostedQueueMicrotask.js';
21
+ export { genDomGetter } from './genDomGetter.js';
22
+ export { Component } from './component.js';
23
+ export type { WebComponentClass, UseCSSCustomPropertyHandler, AttributeReactiveClass, AttributeReactiveObject, } from './component.js';
24
+ export { html } from './html.js';
25
+ export { registerAttributeHandler } from './registerAttributeHandler.js';
26
+ export type { AttributeChangeHandler } from './registerAttributeHandler.js';
27
+ export { registerStyleChangeHandler } from './registerStyleChangeHandler.js';
28
+ export type { StyleChangeHandler } from './registerStyleChangeHandler.js';
29
+ export { registerEventEnableStatusChangeHandler } from './registerEventStatusChangedHandler.js';
30
+ export type { EventStatusChangeHandler } from './registerEventStatusChangedHandler.js';