@kurot/ui 1.1.7

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 (326) hide show
  1. package/README.md +258 -0
  2. package/dist/index.d.ts +8 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +8 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/kurot/binding/Binding.d.ts +38 -0
  7. package/dist/kurot/binding/Binding.d.ts.map +1 -0
  8. package/dist/kurot/binding/Binding.js +88 -0
  9. package/dist/kurot/binding/Binding.js.map +1 -0
  10. package/dist/kurot/binding/Watcher.d.ts +57 -0
  11. package/dist/kurot/binding/Watcher.d.ts.map +1 -0
  12. package/dist/kurot/binding/Watcher.js +119 -0
  13. package/dist/kurot/binding/Watcher.js.map +1 -0
  14. package/dist/kurot/binding/index.d.ts +3 -0
  15. package/dist/kurot/binding/index.d.ts.map +1 -0
  16. package/dist/kurot/binding/index.js +3 -0
  17. package/dist/kurot/binding/index.js.map +1 -0
  18. package/dist/kurot/collections/ArrayCollection.d.ts +56 -0
  19. package/dist/kurot/collections/ArrayCollection.d.ts.map +1 -0
  20. package/dist/kurot/collections/ArrayCollection.js +143 -0
  21. package/dist/kurot/collections/ArrayCollection.js.map +1 -0
  22. package/dist/kurot/collections/ICollection.d.ts +24 -0
  23. package/dist/kurot/collections/ICollection.d.ts.map +1 -0
  24. package/dist/kurot/collections/ICollection.js +2 -0
  25. package/dist/kurot/collections/ICollection.js.map +1 -0
  26. package/dist/kurot/collections/index.d.ts +3 -0
  27. package/dist/kurot/collections/index.d.ts.map +1 -0
  28. package/dist/kurot/collections/index.js +2 -0
  29. package/dist/kurot/collections/index.js.map +1 -0
  30. package/dist/kurot/components/Animation.d.ts +34 -0
  31. package/dist/kurot/components/Animation.d.ts.map +1 -0
  32. package/dist/kurot/components/Animation.js +100 -0
  33. package/dist/kurot/components/Animation.js.map +1 -0
  34. package/dist/kurot/components/Button.d.ts +61 -0
  35. package/dist/kurot/components/Button.d.ts.map +1 -0
  36. package/dist/kurot/components/Button.js +176 -0
  37. package/dist/kurot/components/Button.js.map +1 -0
  38. package/dist/kurot/components/CheckBox.d.ts +11 -0
  39. package/dist/kurot/components/CheckBox.d.ts.map +1 -0
  40. package/dist/kurot/components/CheckBox.js +13 -0
  41. package/dist/kurot/components/CheckBox.js.map +1 -0
  42. package/dist/kurot/components/ComboBox.d.ts +93 -0
  43. package/dist/kurot/components/ComboBox.d.ts.map +1 -0
  44. package/dist/kurot/components/ComboBox.js +307 -0
  45. package/dist/kurot/components/ComboBox.js.map +1 -0
  46. package/dist/kurot/components/Component.d.ts +203 -0
  47. package/dist/kurot/components/Component.d.ts.map +1 -0
  48. package/dist/kurot/components/Component.js +522 -0
  49. package/dist/kurot/components/Component.js.map +1 -0
  50. package/dist/kurot/components/DataGroup.d.ts +90 -0
  51. package/dist/kurot/components/DataGroup.d.ts.map +1 -0
  52. package/dist/kurot/components/DataGroup.js +483 -0
  53. package/dist/kurot/components/DataGroup.js.map +1 -0
  54. package/dist/kurot/components/EditableText.d.ts +44 -0
  55. package/dist/kurot/components/EditableText.d.ts.map +1 -0
  56. package/dist/kurot/components/EditableText.js +126 -0
  57. package/dist/kurot/components/EditableText.js.map +1 -0
  58. package/dist/kurot/components/Group.d.ts +133 -0
  59. package/dist/kurot/components/Group.d.ts.map +1 -0
  60. package/dist/kurot/components/Group.js +454 -0
  61. package/dist/kurot/components/Group.js.map +1 -0
  62. package/dist/kurot/components/HScrollBar.d.ts +13 -0
  63. package/dist/kurot/components/HScrollBar.d.ts.map +1 -0
  64. package/dist/kurot/components/HScrollBar.js +55 -0
  65. package/dist/kurot/components/HScrollBar.js.map +1 -0
  66. package/dist/kurot/components/HSlider.d.ts +17 -0
  67. package/dist/kurot/components/HSlider.d.ts.map +1 -0
  68. package/dist/kurot/components/HSlider.js +48 -0
  69. package/dist/kurot/components/HSlider.js.map +1 -0
  70. package/dist/kurot/components/Image.d.ts +35 -0
  71. package/dist/kurot/components/Image.d.ts.map +1 -0
  72. package/dist/kurot/components/Image.js +141 -0
  73. package/dist/kurot/components/Image.js.map +1 -0
  74. package/dist/kurot/components/ItemRenderer.d.ts +42 -0
  75. package/dist/kurot/components/ItemRenderer.d.ts.map +1 -0
  76. package/dist/kurot/components/ItemRenderer.js +117 -0
  77. package/dist/kurot/components/ItemRenderer.js.map +1 -0
  78. package/dist/kurot/components/Label.d.ts +49 -0
  79. package/dist/kurot/components/Label.d.ts.map +1 -0
  80. package/dist/kurot/components/Label.js +193 -0
  81. package/dist/kurot/components/Label.js.map +1 -0
  82. package/dist/kurot/components/List.d.ts +16 -0
  83. package/dist/kurot/components/List.d.ts.map +1 -0
  84. package/dist/kurot/components/List.js +34 -0
  85. package/dist/kurot/components/List.js.map +1 -0
  86. package/dist/kurot/components/ListBase.d.ts +61 -0
  87. package/dist/kurot/components/ListBase.d.ts.map +1 -0
  88. package/dist/kurot/components/ListBase.js +202 -0
  89. package/dist/kurot/components/ListBase.js.map +1 -0
  90. package/dist/kurot/components/Panel.d.ts +53 -0
  91. package/dist/kurot/components/Panel.d.ts.map +1 -0
  92. package/dist/kurot/components/Panel.js +145 -0
  93. package/dist/kurot/components/Panel.js.map +1 -0
  94. package/dist/kurot/components/ProgressBar.d.ts +48 -0
  95. package/dist/kurot/components/ProgressBar.d.ts.map +1 -0
  96. package/dist/kurot/components/ProgressBar.js +180 -0
  97. package/dist/kurot/components/ProgressBar.js.map +1 -0
  98. package/dist/kurot/components/RadioButton.d.ts +86 -0
  99. package/dist/kurot/components/RadioButton.d.ts.map +1 -0
  100. package/dist/kurot/components/RadioButton.js +246 -0
  101. package/dist/kurot/components/RadioButton.js.map +1 -0
  102. package/dist/kurot/components/Range.d.ts +41 -0
  103. package/dist/kurot/components/Range.d.ts.map +1 -0
  104. package/dist/kurot/components/Range.js +144 -0
  105. package/dist/kurot/components/Range.js.map +1 -0
  106. package/dist/kurot/components/Rect.d.ts +33 -0
  107. package/dist/kurot/components/Rect.d.ts.map +1 -0
  108. package/dist/kurot/components/Rect.js +125 -0
  109. package/dist/kurot/components/Rect.js.map +1 -0
  110. package/dist/kurot/components/ScrollBarBase.d.ts +27 -0
  111. package/dist/kurot/components/ScrollBarBase.d.ts.map +1 -0
  112. package/dist/kurot/components/ScrollBarBase.js +50 -0
  113. package/dist/kurot/components/ScrollBarBase.js.map +1 -0
  114. package/dist/kurot/components/Scroller.d.ts +82 -0
  115. package/dist/kurot/components/Scroller.d.ts.map +1 -0
  116. package/dist/kurot/components/Scroller.js +416 -0
  117. package/dist/kurot/components/Scroller.js.map +1 -0
  118. package/dist/kurot/components/Skin.d.ts +64 -0
  119. package/dist/kurot/components/Skin.d.ts.map +1 -0
  120. package/dist/kurot/components/Skin.js +136 -0
  121. package/dist/kurot/components/Skin.js.map +1 -0
  122. package/dist/kurot/components/SliderBase.d.ts +60 -0
  123. package/dist/kurot/components/SliderBase.d.ts.map +1 -0
  124. package/dist/kurot/components/SliderBase.js +197 -0
  125. package/dist/kurot/components/SliderBase.js.map +1 -0
  126. package/dist/kurot/components/TabBar.d.ts +29 -0
  127. package/dist/kurot/components/TabBar.d.ts.map +1 -0
  128. package/dist/kurot/components/TabBar.js +92 -0
  129. package/dist/kurot/components/TabBar.js.map +1 -0
  130. package/dist/kurot/components/TextInput.d.ts +49 -0
  131. package/dist/kurot/components/TextInput.d.ts.map +1 -0
  132. package/dist/kurot/components/TextInput.js +157 -0
  133. package/dist/kurot/components/TextInput.js.map +1 -0
  134. package/dist/kurot/components/ToggleButton.d.ts +11 -0
  135. package/dist/kurot/components/ToggleButton.d.ts.map +1 -0
  136. package/dist/kurot/components/ToggleButton.js +14 -0
  137. package/dist/kurot/components/ToggleButton.js.map +1 -0
  138. package/dist/kurot/components/ToggleSwitch.d.ts +10 -0
  139. package/dist/kurot/components/ToggleSwitch.d.ts.map +1 -0
  140. package/dist/kurot/components/ToggleSwitch.js +10 -0
  141. package/dist/kurot/components/ToggleSwitch.js.map +1 -0
  142. package/dist/kurot/components/TouchScroll.d.ts +38 -0
  143. package/dist/kurot/components/TouchScroll.d.ts.map +1 -0
  144. package/dist/kurot/components/TouchScroll.js +133 -0
  145. package/dist/kurot/components/TouchScroll.js.map +1 -0
  146. package/dist/kurot/components/UILayer.d.ts +14 -0
  147. package/dist/kurot/components/UILayer.d.ts.map +1 -0
  148. package/dist/kurot/components/UILayer.js +38 -0
  149. package/dist/kurot/components/UILayer.js.map +1 -0
  150. package/dist/kurot/components/VScrollBar.d.ts +13 -0
  151. package/dist/kurot/components/VScrollBar.d.ts.map +1 -0
  152. package/dist/kurot/components/VScrollBar.js +55 -0
  153. package/dist/kurot/components/VScrollBar.js.map +1 -0
  154. package/dist/kurot/components/VSlider.d.ts +17 -0
  155. package/dist/kurot/components/VSlider.d.ts.map +1 -0
  156. package/dist/kurot/components/VSlider.js +49 -0
  157. package/dist/kurot/components/VSlider.js.map +1 -0
  158. package/dist/kurot/components/ViewStack.d.ts +42 -0
  159. package/dist/kurot/components/ViewStack.d.ts.map +1 -0
  160. package/dist/kurot/components/ViewStack.js +160 -0
  161. package/dist/kurot/components/ViewStack.js.map +1 -0
  162. package/dist/kurot/components/index.d.ts +34 -0
  163. package/dist/kurot/components/index.d.ts.map +1 -0
  164. package/dist/kurot/components/index.js +34 -0
  165. package/dist/kurot/components/index.js.map +1 -0
  166. package/dist/kurot/core/AssetAdapterRegistry.d.ts +4 -0
  167. package/dist/kurot/core/AssetAdapterRegistry.d.ts.map +1 -0
  168. package/dist/kurot/core/AssetAdapterRegistry.js +9 -0
  169. package/dist/kurot/core/AssetAdapterRegistry.js.map +1 -0
  170. package/dist/kurot/core/DefaultAssetAdapter.d.ts +10 -0
  171. package/dist/kurot/core/DefaultAssetAdapter.d.ts.map +1 -0
  172. package/dist/kurot/core/DefaultAssetAdapter.js +22 -0
  173. package/dist/kurot/core/DefaultAssetAdapter.js.map +1 -0
  174. package/dist/kurot/core/DefaultThemeAdapter.d.ts +8 -0
  175. package/dist/kurot/core/DefaultThemeAdapter.d.ts.map +1 -0
  176. package/dist/kurot/core/DefaultThemeAdapter.js +27 -0
  177. package/dist/kurot/core/DefaultThemeAdapter.js.map +1 -0
  178. package/dist/kurot/core/Direction.d.ts +10 -0
  179. package/dist/kurot/core/Direction.d.ts.map +1 -0
  180. package/dist/kurot/core/Direction.js +10 -0
  181. package/dist/kurot/core/Direction.js.map +1 -0
  182. package/dist/kurot/core/IAssetAdapter.d.ts +15 -0
  183. package/dist/kurot/core/IAssetAdapter.d.ts.map +1 -0
  184. package/dist/kurot/core/IAssetAdapter.js +2 -0
  185. package/dist/kurot/core/IAssetAdapter.js.map +1 -0
  186. package/dist/kurot/core/IDisplayText.d.ts +12 -0
  187. package/dist/kurot/core/IDisplayText.d.ts.map +1 -0
  188. package/dist/kurot/core/IDisplayText.js +2 -0
  189. package/dist/kurot/core/IDisplayText.js.map +1 -0
  190. package/dist/kurot/core/IItemRenderer.d.ts +19 -0
  191. package/dist/kurot/core/IItemRenderer.d.ts.map +1 -0
  192. package/dist/kurot/core/IItemRenderer.js +2 -0
  193. package/dist/kurot/core/IItemRenderer.js.map +1 -0
  194. package/dist/kurot/core/IThemeAdapter.d.ts +14 -0
  195. package/dist/kurot/core/IThemeAdapter.d.ts.map +1 -0
  196. package/dist/kurot/core/IThemeAdapter.js +2 -0
  197. package/dist/kurot/core/IThemeAdapter.js.map +1 -0
  198. package/dist/kurot/core/IUIComponent.d.ts +63 -0
  199. package/dist/kurot/core/IUIComponent.d.ts.map +1 -0
  200. package/dist/kurot/core/IUIComponent.js +2 -0
  201. package/dist/kurot/core/IUIComponent.js.map +1 -0
  202. package/dist/kurot/core/IViewport.d.ts +12 -0
  203. package/dist/kurot/core/IViewport.d.ts.map +1 -0
  204. package/dist/kurot/core/IViewport.js +2 -0
  205. package/dist/kurot/core/IViewport.js.map +1 -0
  206. package/dist/kurot/core/ScrollPolicy.d.ts +9 -0
  207. package/dist/kurot/core/ScrollPolicy.d.ts.map +1 -0
  208. package/dist/kurot/core/ScrollPolicy.js +9 -0
  209. package/dist/kurot/core/ScrollPolicy.js.map +1 -0
  210. package/dist/kurot/core/Theme.d.ts +53 -0
  211. package/dist/kurot/core/Theme.d.ts.map +1 -0
  212. package/dist/kurot/core/Theme.js +169 -0
  213. package/dist/kurot/core/Theme.js.map +1 -0
  214. package/dist/kurot/core/UIComponent.d.ts +2 -0
  215. package/dist/kurot/core/UIComponent.d.ts.map +1 -0
  216. package/dist/kurot/core/UIComponent.js +4 -0
  217. package/dist/kurot/core/UIComponent.js.map +1 -0
  218. package/dist/kurot/core/UIState.d.ts +84 -0
  219. package/dist/kurot/core/UIState.d.ts.map +1 -0
  220. package/dist/kurot/core/UIState.js +512 -0
  221. package/dist/kurot/core/UIState.js.map +1 -0
  222. package/dist/kurot/core/Validator.d.ts +46 -0
  223. package/dist/kurot/core/Validator.d.ts.map +1 -0
  224. package/dist/kurot/core/Validator.js +368 -0
  225. package/dist/kurot/core/Validator.js.map +1 -0
  226. package/dist/kurot/core/index.d.ts +17 -0
  227. package/dist/kurot/core/index.d.ts.map +1 -0
  228. package/dist/kurot/core/index.js +10 -0
  229. package/dist/kurot/core/index.js.map +1 -0
  230. package/dist/kurot/events/CollectionEvent.d.ts +22 -0
  231. package/dist/kurot/events/CollectionEvent.d.ts.map +1 -0
  232. package/dist/kurot/events/CollectionEvent.js +37 -0
  233. package/dist/kurot/events/CollectionEvent.js.map +1 -0
  234. package/dist/kurot/events/ItemTapEvent.d.ts +11 -0
  235. package/dist/kurot/events/ItemTapEvent.d.ts.map +1 -0
  236. package/dist/kurot/events/ItemTapEvent.js +24 -0
  237. package/dist/kurot/events/ItemTapEvent.js.map +1 -0
  238. package/dist/kurot/events/PropertyEvent.d.ts +8 -0
  239. package/dist/kurot/events/PropertyEvent.d.ts.map +1 -0
  240. package/dist/kurot/events/PropertyEvent.js +20 -0
  241. package/dist/kurot/events/PropertyEvent.js.map +1 -0
  242. package/dist/kurot/events/ScrollerThrowEvent.d.ts +17 -0
  243. package/dist/kurot/events/ScrollerThrowEvent.d.ts.map +1 -0
  244. package/dist/kurot/events/ScrollerThrowEvent.js +22 -0
  245. package/dist/kurot/events/ScrollerThrowEvent.js.map +1 -0
  246. package/dist/kurot/events/UIEvent.d.ts +29 -0
  247. package/dist/kurot/events/UIEvent.d.ts.map +1 -0
  248. package/dist/kurot/events/UIEvent.js +39 -0
  249. package/dist/kurot/events/UIEvent.js.map +1 -0
  250. package/dist/kurot/events/index.d.ts +6 -0
  251. package/dist/kurot/events/index.d.ts.map +1 -0
  252. package/dist/kurot/events/index.js +6 -0
  253. package/dist/kurot/events/index.js.map +1 -0
  254. package/dist/kurot/layouts/BasicLayout.d.ts +13 -0
  255. package/dist/kurot/layouts/BasicLayout.d.ts.map +1 -0
  256. package/dist/kurot/layouts/BasicLayout.js +146 -0
  257. package/dist/kurot/layouts/BasicLayout.js.map +1 -0
  258. package/dist/kurot/layouts/ColumnAlign.d.ts +9 -0
  259. package/dist/kurot/layouts/ColumnAlign.d.ts.map +1 -0
  260. package/dist/kurot/layouts/ColumnAlign.js +9 -0
  261. package/dist/kurot/layouts/ColumnAlign.js.map +1 -0
  262. package/dist/kurot/layouts/HorizontalLayout.d.ts +23 -0
  263. package/dist/kurot/layouts/HorizontalLayout.d.ts.map +1 -0
  264. package/dist/kurot/layouts/HorizontalLayout.js +405 -0
  265. package/dist/kurot/layouts/HorizontalLayout.js.map +1 -0
  266. package/dist/kurot/layouts/ILayoutTarget.d.ts +25 -0
  267. package/dist/kurot/layouts/ILayoutTarget.d.ts.map +1 -0
  268. package/dist/kurot/layouts/ILayoutTarget.js +2 -0
  269. package/dist/kurot/layouts/ILayoutTarget.js.map +1 -0
  270. package/dist/kurot/layouts/JustifyAlign.d.ts +8 -0
  271. package/dist/kurot/layouts/JustifyAlign.d.ts.map +1 -0
  272. package/dist/kurot/layouts/JustifyAlign.js +8 -0
  273. package/dist/kurot/layouts/JustifyAlign.js.map +1 -0
  274. package/dist/kurot/layouts/LayoutBase.d.ts +23 -0
  275. package/dist/kurot/layouts/LayoutBase.d.ts.map +1 -0
  276. package/dist/kurot/layouts/LayoutBase.js +45 -0
  277. package/dist/kurot/layouts/LayoutBase.js.map +1 -0
  278. package/dist/kurot/layouts/LinearLayoutBase.d.ts +70 -0
  279. package/dist/kurot/layouts/LinearLayoutBase.d.ts.map +1 -0
  280. package/dist/kurot/layouts/LinearLayoutBase.js +246 -0
  281. package/dist/kurot/layouts/LinearLayoutBase.js.map +1 -0
  282. package/dist/kurot/layouts/RowAlign.d.ts +9 -0
  283. package/dist/kurot/layouts/RowAlign.d.ts.map +1 -0
  284. package/dist/kurot/layouts/RowAlign.js +9 -0
  285. package/dist/kurot/layouts/RowAlign.js.map +1 -0
  286. package/dist/kurot/layouts/TileLayout.d.ts +79 -0
  287. package/dist/kurot/layouts/TileLayout.d.ts.map +1 -0
  288. package/dist/kurot/layouts/TileLayout.js +577 -0
  289. package/dist/kurot/layouts/TileLayout.js.map +1 -0
  290. package/dist/kurot/layouts/TileOrientation.d.ts +8 -0
  291. package/dist/kurot/layouts/TileOrientation.d.ts.map +1 -0
  292. package/dist/kurot/layouts/TileOrientation.js +8 -0
  293. package/dist/kurot/layouts/TileOrientation.js.map +1 -0
  294. package/dist/kurot/layouts/VerticalLayout.d.ts +23 -0
  295. package/dist/kurot/layouts/VerticalLayout.d.ts.map +1 -0
  296. package/dist/kurot/layouts/VerticalLayout.js +406 -0
  297. package/dist/kurot/layouts/VerticalLayout.js.map +1 -0
  298. package/dist/kurot/layouts/index.d.ts +12 -0
  299. package/dist/kurot/layouts/index.d.ts.map +1 -0
  300. package/dist/kurot/layouts/index.js +11 -0
  301. package/dist/kurot/layouts/index.js.map +1 -0
  302. package/dist/kurot/states/AddItems.d.ts +17 -0
  303. package/dist/kurot/states/AddItems.d.ts.map +1 -0
  304. package/dist/kurot/states/AddItems.js +42 -0
  305. package/dist/kurot/states/AddItems.js.map +1 -0
  306. package/dist/kurot/states/IOverride.d.ts +12 -0
  307. package/dist/kurot/states/IOverride.d.ts.map +1 -0
  308. package/dist/kurot/states/IOverride.js +2 -0
  309. package/dist/kurot/states/IOverride.js.map +1 -0
  310. package/dist/kurot/states/SetProperty.d.ts +19 -0
  311. package/dist/kurot/states/SetProperty.d.ts.map +1 -0
  312. package/dist/kurot/states/SetProperty.js +50 -0
  313. package/dist/kurot/states/SetProperty.js.map +1 -0
  314. package/dist/kurot/states/SetStateProperty.d.ts +17 -0
  315. package/dist/kurot/states/SetStateProperty.d.ts.map +1 -0
  316. package/dist/kurot/states/SetStateProperty.js +35 -0
  317. package/dist/kurot/states/SetStateProperty.js.map +1 -0
  318. package/dist/kurot/states/State.d.ts +14 -0
  319. package/dist/kurot/states/State.d.ts.map +1 -0
  320. package/dist/kurot/states/State.js +18 -0
  321. package/dist/kurot/states/State.js.map +1 -0
  322. package/dist/kurot/states/index.d.ts +6 -0
  323. package/dist/kurot/states/index.d.ts.map +1 -0
  324. package/dist/kurot/states/index.js +5 -0
  325. package/dist/kurot/states/index.js.map +1 -0
  326. package/package.json +55 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/kurot/components/Button.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ToggleButton } from './ToggleButton.js';
2
+ /**
3
+ * CheckBox component — a toggle button typically rendered with a checkmark.
4
+ * Functionally identical to ToggleButton; the visual difference comes from the skin/theme.
5
+ *
6
+ * States: same as Button (`up`, `down`, `disabled`, `upAndSelected`, `downAndSelected`, `disabledAndSelected`).
7
+ */
8
+ export declare class CheckBox extends ToggleButton {
9
+ constructor();
10
+ }
11
+ //# sourceMappingURL=CheckBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckBox.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/CheckBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,YAAY;;CAIzC"}
@@ -0,0 +1,13 @@
1
+ import { ToggleButton } from './ToggleButton.js';
2
+ /**
3
+ * CheckBox component — a toggle button typically rendered with a checkmark.
4
+ * Functionally identical to ToggleButton; the visual difference comes from the skin/theme.
5
+ *
6
+ * States: same as Button (`up`, `down`, `disabled`, `upAndSelected`, `downAndSelected`, `disabledAndSelected`).
7
+ */
8
+ export class CheckBox extends ToggleButton {
9
+ constructor() {
10
+ super();
11
+ }
12
+ }
13
+ //# sourceMappingURL=CheckBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckBox.js","sourceRoot":"","sources":["../../../src/kurot/components/CheckBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,OAAO,QAAS,SAAQ,YAAY;IACzC;QACC,KAAK,EAAE,CAAC;IACT,CAAC;CACD"}
@@ -0,0 +1,93 @@
1
+ import { Component } from './Component.js';
2
+ import { List } from './List.js';
3
+ import { Scroller } from './Scroller.js';
4
+ import type { ArrayCollection } from '../collections/ArrayCollection.js';
5
+ import type { IDisplayText } from '../core/IDisplayText.js';
6
+ import type { Button } from './Button.js';
7
+ import type { Label } from './Label.js';
8
+ /**
9
+ * ComboBox — a drop-down selection component.
10
+ *
11
+ * Displays a trigger button showing the currently selected item's label,
12
+ * and a drop-down list that appears when the trigger is tapped.
13
+ *
14
+ * @skinPart labelDisplay — Label showing the selected item label
15
+ * @skinPart button — the trigger Button that toggles the drop-down
16
+ * @skinPart dropDown — the drop-down container (typically a Scroller or Group)
17
+ * @skinPart list — the List inside the drop-down for item selection
18
+ *
19
+ * States: `normal`, `open`, `disabled`.
20
+ *
21
+ * @defaultProperty dataProvider
22
+ */
23
+ export declare class ComboBox extends Component implements IDisplayText {
24
+ labelDisplay?: Label;
25
+ button?: Button;
26
+ dropDown?: Scroller;
27
+ list?: List;
28
+ private _dataProvider?;
29
+ private _selectedIndex;
30
+ private _selectedItem;
31
+ private _labelField;
32
+ private _labelFunction?;
33
+ private _isOpen;
34
+ private _prompt;
35
+ private _openParentIndex;
36
+ private _dropDownParent?;
37
+ private _dropDownParentIndex;
38
+ private _dropDownLocalMatrix?;
39
+ constructor();
40
+ /** The data provider for the drop-down list items. */
41
+ get dataProvider(): ArrayCollection | undefined;
42
+ set dataProvider(value: ArrayCollection | undefined);
43
+ /** Index of the currently selected item, or -1 if nothing is selected. */
44
+ get selectedIndex(): number;
45
+ set selectedIndex(value: number);
46
+ /** The currently selected data item. */
47
+ get selectedItem(): unknown;
48
+ set selectedItem(value: unknown);
49
+ /** Whether the drop-down list is currently visible. */
50
+ get isOpen(): boolean;
51
+ set isOpen(value: boolean);
52
+ /**
53
+ * The property name on data items to use as the label.
54
+ * Defaults to `'label'`. Used when `labelFunction` is not set.
55
+ */
56
+ get labelField(): string;
57
+ set labelField(value: string);
58
+ /**
59
+ * A function that converts a data item to a display string.
60
+ * When set, this takes priority over `labelField`.
61
+ */
62
+ get labelFunction(): ((item: unknown) => string) | undefined;
63
+ set labelFunction(value: ((item: unknown) => string) | undefined);
64
+ /** Placeholder text shown when no item is selected. */
65
+ get prompt(): string;
66
+ set prompt(value: string);
67
+ /** The displayed text (selected item label or prompt). */
68
+ get text(): string;
69
+ get textColor(): number;
70
+ set textColor(value: number);
71
+ protected getCurrentState(): string;
72
+ partAdded(partName: string, instance: unknown): void;
73
+ partRemoved(partName: string, instance: unknown): void;
74
+ $onRemoveFromStage(): void;
75
+ commitProperties(): void;
76
+ /** Open the drop-down list. */
77
+ open(): void;
78
+ /** Close the drop-down list. */
79
+ close(): void;
80
+ /**
81
+ * Convert a data item to a label string using `labelFunction` or `labelField`.
82
+ */
83
+ itemToLabel(item: unknown): string;
84
+ private _updateSelectedItem;
85
+ private _updateLabel;
86
+ private _updateDisplayOrder;
87
+ /** Move only the popup to the stage so layout siblings cannot cover it. */
88
+ private _moveDropDownToStage;
89
+ private _restoreDropDownParent;
90
+ private _onTriggerTap;
91
+ private _onListChange;
92
+ }
93
+ //# sourceMappingURL=ComboBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/ComboBox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,307 @@
1
+ import { TouchEvent, Event, DisplayObject } from '@kurot/core';
2
+ import { Component } from './Component.js';
3
+ import { List } from './List.js';
4
+ import { Scroller } from './Scroller.js';
5
+ /**
6
+ * ComboBox — a drop-down selection component.
7
+ *
8
+ * Displays a trigger button showing the currently selected item's label,
9
+ * and a drop-down list that appears when the trigger is tapped.
10
+ *
11
+ * @skinPart labelDisplay — Label showing the selected item label
12
+ * @skinPart button — the trigger Button that toggles the drop-down
13
+ * @skinPart dropDown — the drop-down container (typically a Scroller or Group)
14
+ * @skinPart list — the List inside the drop-down for item selection
15
+ *
16
+ * States: `normal`, `open`, `disabled`.
17
+ *
18
+ * @defaultProperty dataProvider
19
+ */
20
+ export class ComboBox extends Component {
21
+ // ── Instance fields ───────────────────────────────────────────────────
22
+ labelDisplay;
23
+ button;
24
+ dropDown;
25
+ list;
26
+ _dataProvider;
27
+ _selectedIndex = -1;
28
+ _selectedItem;
29
+ _labelField = 'label';
30
+ _labelFunction;
31
+ _isOpen = false;
32
+ _prompt = '';
33
+ _openParentIndex = -1;
34
+ _dropDownParent;
35
+ _dropDownParentIndex = -1;
36
+ _dropDownLocalMatrix;
37
+ // ── Constructor ───────────────────────────────────────────────────────
38
+ constructor() {
39
+ super();
40
+ this.touchChildren = true;
41
+ this.addEventListener(TouchEvent.TOUCH_TAP, this._onTriggerTap);
42
+ }
43
+ // ── Getters / Setters ─────────────────────────────────────────────────
44
+ /** The data provider for the drop-down list items. */
45
+ get dataProvider() {
46
+ return this._dataProvider;
47
+ }
48
+ set dataProvider(value) {
49
+ if (this._dataProvider === value)
50
+ return;
51
+ this._dataProvider = value;
52
+ if (this.list) {
53
+ this.list.dataProvider = value;
54
+ }
55
+ this.invalidateProperties();
56
+ }
57
+ /** Index of the currently selected item, or -1 if nothing is selected. */
58
+ get selectedIndex() {
59
+ return this._selectedIndex;
60
+ }
61
+ set selectedIndex(value) {
62
+ if (this._selectedIndex === value)
63
+ return;
64
+ this._selectedIndex = value;
65
+ this._updateSelectedItem();
66
+ this.invalidateState();
67
+ }
68
+ /** The currently selected data item. */
69
+ get selectedItem() {
70
+ return this._selectedItem;
71
+ }
72
+ set selectedItem(value) {
73
+ if (this._selectedItem === value)
74
+ return;
75
+ if (this._dataProvider) {
76
+ this.selectedIndex = this._dataProvider.getItemIndex(value);
77
+ }
78
+ else {
79
+ this._selectedItem = value;
80
+ this._updateLabel();
81
+ this.invalidateState();
82
+ }
83
+ }
84
+ /** Whether the drop-down list is currently visible. */
85
+ get isOpen() {
86
+ return this._isOpen;
87
+ }
88
+ set isOpen(value) {
89
+ if (this._isOpen === value)
90
+ return;
91
+ this._isOpen = value;
92
+ this._updateDisplayOrder(value);
93
+ this.invalidateState();
94
+ if (this.dropDown) {
95
+ this.dropDown.visible = value;
96
+ }
97
+ }
98
+ /**
99
+ * The property name on data items to use as the label.
100
+ * Defaults to `'label'`. Used when `labelFunction` is not set.
101
+ */
102
+ get labelField() {
103
+ return this._labelField;
104
+ }
105
+ set labelField(value) {
106
+ if (this._labelField === value)
107
+ return;
108
+ this._labelField = value;
109
+ this._updateLabel();
110
+ }
111
+ /**
112
+ * A function that converts a data item to a display string.
113
+ * When set, this takes priority over `labelField`.
114
+ */
115
+ get labelFunction() {
116
+ return this._labelFunction;
117
+ }
118
+ set labelFunction(value) {
119
+ if (this._labelFunction === value)
120
+ return;
121
+ this._labelFunction = value;
122
+ this._updateLabel();
123
+ }
124
+ /** Placeholder text shown when no item is selected. */
125
+ get prompt() {
126
+ return this._prompt;
127
+ }
128
+ set prompt(value) {
129
+ this._prompt = value;
130
+ if (!this._selectedItem && this.labelDisplay) {
131
+ this.labelDisplay.text = value;
132
+ }
133
+ }
134
+ /** The displayed text (selected item label or prompt). */
135
+ get text() {
136
+ if (this.labelDisplay)
137
+ return this.labelDisplay.text;
138
+ return this.itemToLabel(this._selectedItem);
139
+ }
140
+ get textColor() {
141
+ return this.labelDisplay?.textColor ?? 0;
142
+ }
143
+ set textColor(value) {
144
+ if (this.labelDisplay) {
145
+ this.labelDisplay.textColor = value;
146
+ }
147
+ }
148
+ // ── Override methods ──────────────────────────────────────────────────
149
+ getCurrentState() {
150
+ if (!this.enabled)
151
+ return 'disabled';
152
+ if (this._isOpen)
153
+ return 'open';
154
+ return 'normal';
155
+ }
156
+ partAdded(partName, instance) {
157
+ super.partAdded(partName, instance);
158
+ if (partName === 'labelDisplay' && instance === this.labelDisplay) {
159
+ this._updateLabel();
160
+ }
161
+ if (partName === 'list' && instance instanceof List) {
162
+ instance.dataProvider = this._dataProvider;
163
+ instance.addEventListener(Event.CHANGE, this._onListChange);
164
+ }
165
+ if (partName === 'dropDown' && instance instanceof Scroller) {
166
+ instance.visible = this._isOpen;
167
+ }
168
+ }
169
+ partRemoved(partName, instance) {
170
+ if (partName === 'dropDown' && instance === this.dropDown) {
171
+ this.close();
172
+ }
173
+ super.partRemoved(partName, instance);
174
+ if (partName === 'list' && instance instanceof List) {
175
+ instance.removeEventListener(Event.CHANGE, this._onListChange);
176
+ }
177
+ }
178
+ $onRemoveFromStage() {
179
+ this.close();
180
+ super.$onRemoveFromStage();
181
+ }
182
+ commitProperties() {
183
+ super.commitProperties();
184
+ // Sync selectedIndex → list
185
+ if (this.list && this.list.selectedIndex !== this._selectedIndex) {
186
+ this.list.selectedIndex = this._selectedIndex;
187
+ }
188
+ }
189
+ // ── Public methods ────────────────────────────────────────────────────
190
+ /** Open the drop-down list. */
191
+ open() {
192
+ this.isOpen = true;
193
+ }
194
+ /** Close the drop-down list. */
195
+ close() {
196
+ this.isOpen = false;
197
+ }
198
+ /**
199
+ * Convert a data item to a label string using `labelFunction` or `labelField`.
200
+ */
201
+ itemToLabel(item) {
202
+ if (item == null)
203
+ return '';
204
+ if (this._labelFunction)
205
+ return this._labelFunction(item);
206
+ if (typeof item === 'string')
207
+ return item;
208
+ if (typeof item === 'number' || typeof item === 'boolean')
209
+ return String(item);
210
+ const obj = item;
211
+ if (this._labelField && this._labelField in obj) {
212
+ return String(obj[this._labelField]);
213
+ }
214
+ return String(item);
215
+ }
216
+ // ── Private methods ───────────────────────────────────────────────────
217
+ _updateSelectedItem() {
218
+ if (this._dataProvider && this._selectedIndex >= 0 && this._selectedIndex < this._dataProvider.length) {
219
+ this._selectedItem = this._dataProvider.getItemAt(this._selectedIndex);
220
+ }
221
+ else {
222
+ this._selectedItem = undefined;
223
+ }
224
+ this._updateLabel();
225
+ this.dispatchEventWith(Event.CHANGE);
226
+ }
227
+ _updateLabel() {
228
+ if (!this.labelDisplay)
229
+ return;
230
+ if (this._selectedItem != null) {
231
+ this.labelDisplay.text = this.itemToLabel(this._selectedItem);
232
+ }
233
+ else {
234
+ this.labelDisplay.text = this._prompt;
235
+ }
236
+ }
237
+ _updateDisplayOrder(isOpen) {
238
+ if (isOpen && this._moveDropDownToStage())
239
+ return;
240
+ if (!isOpen && this._restoreDropDownParent())
241
+ return;
242
+ const parent = this.parent;
243
+ if (!parent)
244
+ return;
245
+ // A Group layout uses child index as layout order. Moving the ComboBox to
246
+ // the end would therefore move the control itself instead of only raising
247
+ // its drop-down above siblings. Layout users should place the ComboBox in
248
+ // a lightweight wrapper when overlay elevation is required.
249
+ if (parent.layout)
250
+ return;
251
+ if (isOpen) {
252
+ this._openParentIndex = parent.getChildIndex(this);
253
+ parent.setChildIndex(this, parent.numChildren - 1);
254
+ }
255
+ else if (this._openParentIndex >= 0) {
256
+ parent.setChildIndex(this, this._openParentIndex);
257
+ this._openParentIndex = -1;
258
+ }
259
+ }
260
+ /** Move only the popup to the stage so layout siblings cannot cover it. */
261
+ _moveDropDownToStage() {
262
+ const dropDown = this.dropDown;
263
+ const stage = this.stage;
264
+ const parent = dropDown?.parent;
265
+ if (!dropDown || !stage || !parent || parent === stage)
266
+ return false;
267
+ this._dropDownParent = parent;
268
+ this._dropDownParentIndex = parent.getChildIndex(dropDown);
269
+ this._dropDownLocalMatrix = dropDown.$getMatrix().clone();
270
+ const stageMatrix = dropDown.$getConcatenatedMatrix().clone();
271
+ parent.removeChild(dropDown);
272
+ stage.addChild(dropDown);
273
+ dropDown.$setMatrix(stageMatrix);
274
+ return true;
275
+ }
276
+ _restoreDropDownParent() {
277
+ const dropDown = this.dropDown;
278
+ const parent = this._dropDownParent;
279
+ const matrix = this._dropDownLocalMatrix;
280
+ if (!dropDown || !parent || !matrix)
281
+ return false;
282
+ dropDown.parent?.removeChild(dropDown);
283
+ parent.addChildAt(dropDown, Math.min(this._dropDownParentIndex, parent.numChildren));
284
+ dropDown.$setMatrix(matrix);
285
+ this._dropDownParent = undefined;
286
+ this._dropDownParentIndex = -1;
287
+ this._dropDownLocalMatrix = undefined;
288
+ return true;
289
+ }
290
+ _onTriggerTap = (e) => {
291
+ // If the tap lands inside the open drop-down (e.g. on the list),
292
+ // let the list's selection handler deal with it instead of toggling.
293
+ if (this._isOpen && this.dropDown && e.target instanceof DisplayObject && this.dropDown.contains(e.target)) {
294
+ return;
295
+ }
296
+ this.isOpen = !this._isOpen;
297
+ };
298
+ _onListChange = (_e) => {
299
+ if (this.list) {
300
+ this._selectedIndex = this.list.selectedIndex;
301
+ this._updateSelectedItem();
302
+ }
303
+ // Close after selection
304
+ this.close();
305
+ };
306
+ }
307
+ //# sourceMappingURL=ComboBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../../../src/kurot/components/ComboBox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,203 @@
1
+ import { Sprite, Rectangle, Event, type DisplayObject, type DisplayObjectEvents, type Matrix } from '@kurot/core';
2
+ import { UIState, isUIComponent } from '../core/UIState.js';
3
+ import type { IUIOwner } from '../core/UIState.js';
4
+ import type { IUIComponent } from '../core/IUIComponent.js';
5
+ import type { ILayoutTarget } from '../layouts/ILayoutTarget.js';
6
+ import type { Skin } from './Skin.js';
7
+ import { PropertyEvent } from '../events/PropertyEvent.js';
8
+ import { UIEvent } from '../events/UIEvent.js';
9
+ /**
10
+ * EventMap for Component and all its subclasses.
11
+ * Extends DisplayObjectEvents with the UI-layer event types that
12
+ * skinnable components dispatch.
13
+ */
14
+ export interface ComponentEvents extends DisplayObjectEvents {
15
+ [PropertyEvent.PROPERTY_CHANGE]: PropertyEvent;
16
+ [UIEvent.CREATION_COMPLETE]: UIEvent;
17
+ [UIEvent.CHANGE_START]: UIEvent;
18
+ [UIEvent.CHANGE_END]: UIEvent;
19
+ [UIEvent.CLOSING]: UIEvent;
20
+ [UIEvent.MOVE]: UIEvent;
21
+ }
22
+ /**
23
+ * Base class for all skinnable UI components.
24
+ *
25
+ * Subclasses should:
26
+ * 1. Override `getCurrentState()` to return the current view-state name.
27
+ * 2. Override `partAdded()` to bind skin parts to component logic.
28
+ * 3. Override `partRemoved()` to clean up skin part bindings.
29
+ * 4. Override `createChildren()` to perform one-time initialization.
30
+ */
31
+ export declare class Component extends Sprite implements IUIComponent, ILayoutTarget, IUIOwner {
32
+ readonly ui: UIState;
33
+ skinNameExplicitlySet: boolean;
34
+ private _hostComponentKey?;
35
+ private _skinName?;
36
+ private _skin?;
37
+ private _enabled;
38
+ private _explicitTouchEnabled;
39
+ private _explicitTouchChildren;
40
+ private _explicitState;
41
+ private _stateIsDirty;
42
+ constructor();
43
+ /**
44
+ * Key used to look up the default skin in the active Theme.
45
+ * Defaults to the component's class name if not set.
46
+ */
47
+ get hostComponentKey(): string;
48
+ set hostComponentKey(value: string);
49
+ /**
50
+ * Skin identifier. Can be:
51
+ * - A Skin subclass constructor
52
+ * - A Skin instance
53
+ * - A class name string (resolved via global scope)
54
+ */
55
+ get skinName(): string | (new () => Skin) | Skin | undefined;
56
+ set skinName(value: string | (new () => Skin) | Skin | undefined);
57
+ get skin(): Skin | undefined;
58
+ get enabled(): boolean;
59
+ /**
60
+ * Enable or disable this component (and its children).
61
+ *
62
+ * Mirrors egret's `$setEnabled`: writes `touchEnabled` / `touchChildren`
63
+ * directly at the display-object level (via `super`) so that:
64
+ *
65
+ * 1. The display-layer values change immediately (disabled components are
66
+ * skipped in hit-testing, just like egret).
67
+ * 2. `_explicitTouchEnabled` / `_explicitTouchChildren` survive the
68
+ * disable→enable cycle so the original intent is restored on re-enable.
69
+ */
70
+ set enabled(value: boolean);
71
+ /**
72
+ * The current view state. Setting this explicitly overrides `getCurrentState()`.
73
+ * Set to `''` to revert to the computed state.
74
+ */
75
+ get currentState(): string;
76
+ set currentState(value: string);
77
+ get includeInLayout(): boolean;
78
+ set includeInLayout(v: boolean);
79
+ get left(): number | string;
80
+ set left(v: number | string);
81
+ get right(): number | string;
82
+ set right(v: number | string);
83
+ get top(): number | string;
84
+ set top(v: number | string);
85
+ get bottom(): number | string;
86
+ set bottom(v: number | string);
87
+ get horizontalCenter(): number | string;
88
+ set horizontalCenter(v: number | string);
89
+ get verticalCenter(): number | string;
90
+ set verticalCenter(v: number | string);
91
+ get percentWidth(): number;
92
+ set percentWidth(v: number);
93
+ get percentHeight(): number;
94
+ set percentHeight(v: number);
95
+ $updateUseTransform(): void;
96
+ $setMatrix(matrix: Matrix, needUpdateProperties?: boolean): void;
97
+ $setAnchorOffsetX(value: number): void;
98
+ $setAnchorOffsetY(value: number): void;
99
+ $setX(value: number): boolean;
100
+ $setY(value: number): boolean;
101
+ get width(): number;
102
+ set width(v: number);
103
+ get height(): number;
104
+ set height(v: number);
105
+ get minWidth(): number;
106
+ set minWidth(v: number);
107
+ get maxWidth(): number;
108
+ set maxWidth(v: number);
109
+ get minHeight(): number;
110
+ set minHeight(v: number);
111
+ get maxHeight(): number;
112
+ set maxHeight(v: number);
113
+ get numElements(): number;
114
+ get contentWidth(): number;
115
+ get contentHeight(): number;
116
+ get scrollH(): number;
117
+ set scrollH(_v: number);
118
+ get scrollV(): number;
119
+ set scrollV(_v: number);
120
+ _applySkinName(skinName: string): void;
121
+ /**
122
+ * Bind a skin part instance to this component.
123
+ * Called automatically when a skin is attached.
124
+ */
125
+ setSkinPart(partName: string, instance: unknown): void;
126
+ /**
127
+ * Whether the display object receives touch events.
128
+ *
129
+ * Unlike the setter, reading this property always returns the *actual*
130
+ * display-level value — even when the component is disabled (the setter
131
+ * deliberately preserves `_explicitTouchEnabled` for the next `enabled`
132
+ * restore, so the getter must bypass that layer).
133
+ */
134
+ get touchEnabled(): boolean;
135
+ set touchEnabled(value: boolean);
136
+ get touchChildren(): boolean;
137
+ set touchChildren(value: boolean);
138
+ /**
139
+ * Mark the view state as dirty so it will be re-applied on next commit.
140
+ */
141
+ invalidateState(): void;
142
+ getElementAt(index: number): DisplayObject | undefined;
143
+ getVirtualElementAt(index: number): DisplayObject | undefined;
144
+ setVirtualElementIndicesInView(_startIndex: number, _endIndex: number): void;
145
+ setContentSize(_w: number, _h: number): void;
146
+ setMeasuredSize(w: number, h: number): void;
147
+ invalidateProperties(): void;
148
+ validateProperties(): void;
149
+ invalidateSize(): void;
150
+ validateSize(recursive?: boolean): void;
151
+ invalidateDisplayList(): void;
152
+ validateDisplayList(): void;
153
+ validateNow(): void;
154
+ setLayoutBoundsSize(lw: number, lh: number): void;
155
+ setLayoutBoundsPosition(x: number, y: number): void;
156
+ getLayoutBounds(bounds: Rectangle): void;
157
+ getPreferredBounds(bounds: Rectangle): void;
158
+ $onAddToStage(stage: unknown, $nestLevel: number): void;
159
+ childAdded(_child: unknown, _index: number): void;
160
+ childRemoved(_child: unknown, _index: number): void;
161
+ addEventListener<K extends keyof ComponentEvents & string>(type: K, listener: (event: ComponentEvents[K]) => void, useCapture?: boolean, priority?: number): void;
162
+ addEventListener(type: string, listener: (event: Event) => void, useCapture?: boolean, priority?: number): void;
163
+ removeEventListener<K extends keyof ComponentEvents & string>(type: K, listener: (event: ComponentEvents[K]) => void, useCapture?: boolean): void;
164
+ removeEventListener(type: string, listener: (event: Event) => void, useCapture?: boolean): void;
165
+ createChildren(): void;
166
+ childrenCreated(): void;
167
+ commitProperties(): void;
168
+ measure(): void;
169
+ updateDisplayList(w: number, h: number): void;
170
+ protected setSkin(skin: Skin | undefined): void;
171
+ /**
172
+ * Called when a skin part is added. Override to bind event listeners
173
+ * or apply cached property values to the part.
174
+ */
175
+ protected partAdded(_partName: string, _instance: unknown): void;
176
+ /**
177
+ * Called when a skin part is removed. Override to clean up listeners
178
+ * and cached references.
179
+ */
180
+ protected partRemoved(_partName: string, _instance: unknown): void;
181
+ /**
182
+ * Return the current view-state name. Override in subclasses.
183
+ */
184
+ protected getCurrentState(): string;
185
+ private _parseSkinName;
186
+ /**
187
+ * Invoke a skin factory function with `this` (the host component) as context.
188
+ *
189
+ * EXML-compiled skins are factory functions (not class constructors) that use
190
+ * `this` for `Binding.bindProperty(this, ...)`. Calling with `.call(this)` ensures
191
+ * the bindings watch the host component, not a `new`-target blank object.
192
+ *
193
+ * For genuine ES class constructors (e.g. a user-written `class MySkin extends Skin`),
194
+ * `.call(this)` would throw `TypeError: Class constructor cannot be invoked without
195
+ * 'new'`, so we detect class constructors by their string representation and use `new`
196
+ * instead. This secondary path never has correct binding-`this`, so user skins should
197
+ * always be factory functions when they contain EXML `{…}` bindings.
198
+ */
199
+ private _invokeSkinFactory;
200
+ private _setSkin;
201
+ }
202
+ export { isUIComponent };
203
+ //# sourceMappingURL=Component.d.ts.map