@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,55 @@
1
+ import { Rectangle } from '@kurot/core';
2
+ import { ScrollBarBase } from './ScrollBarBase.js';
3
+ /**
4
+ * Horizontal scroll bar.
5
+ *
6
+ * Positions the `thumb` skin part proportionally based on the viewport's
7
+ * horizontal scroll position (`scrollH`) relative to content width.
8
+ */
9
+ export class HScrollBar extends ScrollBarBase {
10
+ // ── Override methods ──────────────────────────────────────────────────
11
+ updateDisplayList(unscaledWidth, unscaledHeight) {
12
+ super.updateDisplayList(unscaledWidth, unscaledHeight);
13
+ const thumb = this.thumb;
14
+ const viewport = this.viewport;
15
+ if (!thumb || !viewport)
16
+ return;
17
+ const bounds = new Rectangle();
18
+ thumb.getPreferredBounds(bounds);
19
+ const minThumbWidth = bounds.width;
20
+ const thumbY = bounds.y;
21
+ const hsp = viewport.scrollH;
22
+ const contentWidth = viewport.contentWidth;
23
+ const vpBounds = new Rectangle();
24
+ viewport.getLayoutBounds(vpBounds);
25
+ const vpWidth = vpBounds.width;
26
+ const proportionalWidth = contentWidth > 0 ? Math.round((unscaledWidth * vpWidth) / contentWidth) : unscaledWidth;
27
+ const thumbWidth = Math.min(unscaledWidth, Math.max(minThumbWidth, proportionalWidth));
28
+ if (hsp <= 0) {
29
+ let scaleWidth = thumbWidth * (1 - -hsp / (vpWidth * 0.5));
30
+ scaleWidth = Math.max(5, Math.round(scaleWidth));
31
+ thumb.setLayoutBoundsSize(scaleWidth, NaN);
32
+ thumb.setLayoutBoundsPosition(0, thumbY);
33
+ }
34
+ else if (hsp >= contentWidth - vpWidth) {
35
+ let scaleWidth = thumbWidth * (1 - (hsp - contentWidth + vpWidth) / (vpWidth * 0.5));
36
+ scaleWidth = Math.max(5, Math.round(scaleWidth));
37
+ thumb.setLayoutBoundsSize(scaleWidth, NaN);
38
+ thumb.setLayoutBoundsPosition(unscaledWidth - scaleWidth, thumbY);
39
+ }
40
+ else {
41
+ const thumbX = ((unscaledWidth - thumbWidth) * hsp) / (contentWidth - vpWidth);
42
+ thumb.setLayoutBoundsSize(thumbWidth, NaN);
43
+ thumb.setLayoutBoundsPosition(thumbX, thumbY);
44
+ }
45
+ }
46
+ onPropertyChanged(event) {
47
+ switch (event.property) {
48
+ case 'scrollH':
49
+ case 'contentWidth':
50
+ this.invalidateDisplayList();
51
+ break;
52
+ }
53
+ }
54
+ }
55
+ //# sourceMappingURL=HScrollBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HScrollBar.js","sourceRoot":"","sources":["../../../src/kurot/components/HScrollBar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { SliderBase } from './SliderBase.js';
2
+ /**
3
+ * HSlider — a horizontal slider (left-to-right).
4
+ *
5
+ * Overrides `pointToValue` and `updateSkinDisplayList` to position the thumb
6
+ * using the track's layout bounds (not the slider's own width), matching egret.
7
+ */
8
+ export declare class HSlider extends SliderBase {
9
+ constructor();
10
+ /**
11
+ * Range of thumb movement = track width − thumb width.
12
+ */
13
+ private _getThumbRange;
14
+ protected pointToValue(x: number, _y: number): number;
15
+ protected updateSkinDisplayList(): void;
16
+ }
17
+ //# sourceMappingURL=HSlider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HSlider.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/HSlider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C;;;;;GAKG;AACH,qBAAa,OAAQ,SAAQ,UAAU;;IAOtC;;OAEG;IACH,OAAO,CAAC,cAAc;cAWH,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;cAM3C,qBAAqB,IAAI,IAAI;CAahD"}
@@ -0,0 +1,48 @@
1
+ import { Rectangle } from '@kurot/core';
2
+ import { SliderBase } from './SliderBase.js';
3
+ import { Direction } from '../core/Direction.js';
4
+ import { isUIComponent } from '../core/UIComponent.js';
5
+ /**
6
+ * HSlider — a horizontal slider (left-to-right).
7
+ *
8
+ * Overrides `pointToValue` and `updateSkinDisplayList` to position the thumb
9
+ * using the track's layout bounds (not the slider's own width), matching egret.
10
+ */
11
+ export class HSlider extends SliderBase {
12
+ constructor() {
13
+ super();
14
+ this.direction = Direction.LTR;
15
+ }
16
+ /**
17
+ * Range of thumb movement = track width − thumb width.
18
+ */
19
+ _getThumbRange() {
20
+ const track = this.track;
21
+ const thumb = this.thumb;
22
+ if (!track || !thumb || !isUIComponent(track) || !isUIComponent(thumb))
23
+ return 0;
24
+ const b = new Rectangle();
25
+ track.getLayoutBounds(b);
26
+ const trackWidth = b.width;
27
+ thumb.getLayoutBounds(b);
28
+ return trackWidth - b.width;
29
+ }
30
+ pointToValue(x, _y) {
31
+ const range = this.maximum - this.minimum;
32
+ const thumbRange = this._getThumbRange();
33
+ return this.minimum + (thumbRange !== 0 ? (x / thumbRange) * range : 0);
34
+ }
35
+ updateSkinDisplayList() {
36
+ const thumb = this.thumb;
37
+ const track = this.track;
38
+ if (!thumb || !track || !isUIComponent(track))
39
+ return;
40
+ const thumbRange = this._getThumbRange();
41
+ const range = this.maximum - this.minimum;
42
+ const ratio = range > 0 ? (this.value - this.minimum) / range : 0;
43
+ const trackBounds = new Rectangle();
44
+ track.getLayoutBounds(trackBounds);
45
+ thumb.x = trackBounds.x + ratio * thumbRange;
46
+ }
47
+ }
48
+ //# sourceMappingURL=HSlider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HSlider.js","sourceRoot":"","sources":["../../../src/kurot/components/HSlider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,OAAO,OAAQ,SAAQ,UAAU;IAEtC;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC;IAChC,CAAC;IAED;;OAEG;IACK,cAAc;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC;QAC3B,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC;IAC7B,CAAC;IAEkB,YAAY,CAAC,CAAS,EAAE,EAAU;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAEkB,qBAAqB;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO;QAEtD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,WAAW,GAAG,IAAI,SAAS,EAAE,CAAC;QACpC,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACnC,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC;IAC9C,CAAC;CACD"}
@@ -0,0 +1,35 @@
1
+ import { Component } from './Component.js';
2
+ import { Texture, Bitmap, BitmapFillMode, Rectangle } from '@kurot/core';
3
+ /**
4
+ * Image component that displays bitmap data.
5
+ *
6
+ * Supports setting `source` to a URL string (loaded via the asset adapter)
7
+ * or a Texture instance directly.
8
+ *
9
+ * States: none (non-interactive visual element).
10
+ */
11
+ export declare class Image extends Component {
12
+ private _source?;
13
+ private _sourceChanged;
14
+ private _bitmap?;
15
+ private _scale9Grid?;
16
+ private _fillMode;
17
+ private _smoothing;
18
+ constructor(source?: string | Texture);
19
+ get source(): string | Texture | undefined;
20
+ set source(value: string | Texture | undefined);
21
+ get scale9Grid(): Rectangle | undefined;
22
+ set scale9Grid(value: Rectangle | undefined);
23
+ get fillMode(): BitmapFillMode;
24
+ set fillMode(value: BitmapFillMode);
25
+ get smoothing(): boolean;
26
+ set smoothing(value: boolean);
27
+ get bitmap(): Bitmap | undefined;
28
+ commitProperties(): void;
29
+ createChildren(): void;
30
+ measure(): void;
31
+ updateDisplayList(unscaledWidth: number, unscaledHeight: number): void;
32
+ private _parseSource;
33
+ private _applyTexture;
34
+ }
35
+ //# sourceMappingURL=Image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/Image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAS,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGhF;;;;;;;GAOG;AACH,qBAAa,KAAM,SAAQ,SAAS;IAGnC,OAAO,CAAC,OAAO,CAAC,CAAmB;IACnC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,WAAW,CAAC,CAAY;IAChC,OAAO,CAAC,SAAS,CAAwC;IACzD,OAAO,CAAC,UAAU,CAAQ;gBAIP,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAO5C,IAAW,MAAM,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS,CAEhD;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,EASpD;IAED,IAAW,UAAU,IAAI,SAAS,GAAG,SAAS,CAE7C;IAED,IAAW,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAKjD;IAED,IAAW,QAAQ,IAAI,cAAc,CAEpC;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,cAAc,EAKxC;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,OAAO,EAKlC;IAED,IAAW,MAAM,IAAI,MAAM,GAAG,SAAS,CAEtC;IAIe,gBAAgB,IAAI,IAAI;IAQxB,cAAc,IAAI,IAAI;IAQtB,OAAO,IAAI,IAAI;IASf,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAUtF,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,aAAa;CAYrB"}
@@ -0,0 +1,141 @@
1
+ import { Component } from './Component.js';
2
+ import { Event, Bitmap, BitmapFillMode } from '@kurot/core';
3
+ import { getAssetAdapter } from '../core/AssetAdapterRegistry.js';
4
+ /**
5
+ * Image component that displays bitmap data.
6
+ *
7
+ * Supports setting `source` to a URL string (loaded via the asset adapter)
8
+ * or a Texture instance directly.
9
+ *
10
+ * States: none (non-interactive visual element).
11
+ */
12
+ export class Image extends Component {
13
+ // ── Instance fields ───────────────────────────────────────────────────
14
+ _source;
15
+ _sourceChanged = false;
16
+ _bitmap;
17
+ _scale9Grid;
18
+ _fillMode = BitmapFillMode.SCALE;
19
+ _smoothing = true;
20
+ // ── Constructor ───────────────────────────────────────────────────────
21
+ constructor(source) {
22
+ super();
23
+ if (source)
24
+ this.source = source;
25
+ }
26
+ // ── Getters / Setters ─────────────────────────────────────────────────
27
+ get source() {
28
+ return this._source;
29
+ }
30
+ set source(value) {
31
+ if (this._source === value)
32
+ return;
33
+ this._source = value;
34
+ if (value && typeof value === 'string') {
35
+ this._sourceChanged = true;
36
+ this.invalidateProperties();
37
+ }
38
+ else {
39
+ this._applyTexture(value ?? undefined);
40
+ }
41
+ }
42
+ get scale9Grid() {
43
+ return this._scale9Grid;
44
+ }
45
+ set scale9Grid(value) {
46
+ if (this._scale9Grid === value)
47
+ return;
48
+ this._scale9Grid = value;
49
+ if (this._bitmap)
50
+ this._bitmap.scale9Grid = value;
51
+ this.invalidateDisplayList();
52
+ }
53
+ get fillMode() {
54
+ return this._fillMode;
55
+ }
56
+ set fillMode(value) {
57
+ if (this._fillMode === value)
58
+ return;
59
+ this._fillMode = value;
60
+ if (this._bitmap)
61
+ this._bitmap.fillMode = value;
62
+ this.invalidateDisplayList();
63
+ }
64
+ get smoothing() {
65
+ return this._smoothing;
66
+ }
67
+ set smoothing(value) {
68
+ if (this._smoothing === value)
69
+ return;
70
+ this._smoothing = value;
71
+ if (this._bitmap)
72
+ this._bitmap.smoothing = value;
73
+ this.invalidateDisplayList();
74
+ }
75
+ get bitmap() {
76
+ return this._bitmap;
77
+ }
78
+ // ── Override methods ──────────────────────────────────────────────────
79
+ commitProperties() {
80
+ super.commitProperties();
81
+ if (this._sourceChanged) {
82
+ this._sourceChanged = false;
83
+ this._parseSource();
84
+ }
85
+ }
86
+ createChildren() {
87
+ super.createChildren();
88
+ if (this._sourceChanged) {
89
+ this._sourceChanged = false;
90
+ this._parseSource();
91
+ }
92
+ }
93
+ measure() {
94
+ const texture = this._bitmap?.texture;
95
+ if (texture) {
96
+ this.setMeasuredSize(texture.textureWidth, texture.textureHeight);
97
+ }
98
+ else {
99
+ this.setMeasuredSize(0, 0);
100
+ }
101
+ }
102
+ updateDisplayList(unscaledWidth, unscaledHeight) {
103
+ super.updateDisplayList(unscaledWidth, unscaledHeight);
104
+ if (this._bitmap) {
105
+ this._bitmap.width = unscaledWidth;
106
+ this._bitmap.height = unscaledHeight;
107
+ }
108
+ }
109
+ // ── Private methods ───────────────────────────────────────────────────
110
+ _parseSource() {
111
+ const source = this._source;
112
+ if (source && typeof source === 'string') {
113
+ const capturedSource = source;
114
+ getAssetAdapter().getAsset(capturedSource, content => {
115
+ if (this._source !== capturedSource)
116
+ return;
117
+ this._applyTexture(content ?? undefined);
118
+ if (content) {
119
+ this.dispatchEventWith(Event.COMPLETE);
120
+ }
121
+ });
122
+ }
123
+ else {
124
+ this._applyTexture(source ?? undefined);
125
+ }
126
+ }
127
+ _applyTexture(texture) {
128
+ if (!this._bitmap) {
129
+ this._bitmap = new Bitmap();
130
+ this._bitmap.smoothing = this._smoothing;
131
+ this._bitmap.fillMode = this._fillMode;
132
+ if (this._scale9Grid)
133
+ this._bitmap.scale9Grid = this._scale9Grid;
134
+ this.addChild(this._bitmap);
135
+ }
136
+ this._bitmap.texture = texture;
137
+ this.invalidateSize();
138
+ this.invalidateDisplayList();
139
+ }
140
+ }
141
+ //# sourceMappingURL=Image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../src/kurot/components/Image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAW,KAAK,EAAE,MAAM,EAAE,cAAc,EAAa,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,OAAO,KAAM,SAAQ,SAAS;IACnC,yEAAyE;IAEjE,OAAO,CAAoB;IAC3B,cAAc,GAAG,KAAK,CAAC;IACvB,OAAO,CAAU;IACjB,WAAW,CAAa;IACxB,SAAS,GAAmB,cAAc,CAAC,KAAK,CAAC;IACjD,UAAU,GAAG,IAAI,CAAC;IAE1B,yEAAyE;IAEzE,YAAmB,MAAyB;QAC3C,KAAK,EAAE,CAAC;QACR,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAClC,CAAC;IAED,yEAAyE;IAEzE,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,IAAW,MAAM,CAAC,KAAmC;QACpD,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;YAAE,OAAO;QACnC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,aAAa,CAAE,KAAiB,IAAI,SAAS,CAAC,CAAC;QACrD,CAAC;IACF,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,IAAW,UAAU,CAAC,KAA4B;QACjD,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK;YAAE,OAAO;QACvC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;QAClD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC9B,CAAC;IAED,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED,IAAW,QAAQ,CAAC,KAAqB;QACxC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK;YAAE,OAAO;QACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAChD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC9B,CAAC;IAED,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,IAAW,SAAS,CAAC,KAAc;QAClC,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK;YAAE,OAAO;QACtC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;QACjD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC9B,CAAC;IAED,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,yEAAyE;IAEzD,gBAAgB;QAC/B,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;IACF,CAAC;IAEe,cAAc;QAC7B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;IACF,CAAC;IAEe,OAAO;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QACtC,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IAEe,iBAAiB,CAAC,aAAqB,EAAE,cAAsB;QAC9E,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC;QACtC,CAAC;IACF,CAAC;IAED,yEAAyE;IAEjE,YAAY;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,cAAc,GAAG,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE;gBACpD,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc;oBAAE,OAAO;gBAC5C,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;gBACzC,IAAI,OAAO,EAAE,CAAC;oBACb,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACxC,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,aAAa,CAAE,MAAkB,IAAI,SAAS,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;IAEO,aAAa,CAAC,OAA4B;QACjD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YACvC,IAAI,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC9B,CAAC;CACD"}
@@ -0,0 +1,42 @@
1
+ import { Component } from './Component.js';
2
+ import { Label } from './Label.js';
3
+ import type { IItemRenderer } from '../core/IItemRenderer.js';
4
+ /**
5
+ * Base class for item renderers used in data-driven containers
6
+ * (DataGroup, List, TabBar…).
7
+ *
8
+ * States: `up` | `down` | `disabled` | `upAndSelected` | `downAndSelected`
9
+ *
10
+ * @skinPart iconDisplay — optional DisplayObject for an icon
11
+ * @skinPart labelDisplay — optional Label for the item label
12
+ */
13
+ export declare class ItemRenderer extends Component implements IItemRenderer {
14
+ itemIndex: number;
15
+ private _data;
16
+ private _selected;
17
+ private _touchCaptured;
18
+ private _touchStage?;
19
+ /**
20
+ * Skin part: the label. When present, `data` is auto-synced to its `text`
21
+ * (fallback for when the EXML `{data}` binding isn't compiled in).
22
+ */
23
+ labelDisplay?: Label;
24
+ constructor();
25
+ get data(): unknown;
26
+ set data(value: unknown);
27
+ get selected(): boolean;
28
+ set selected(value: boolean);
29
+ protected partAdded(partName: string, instance: unknown): void;
30
+ protected partRemoved(partName: string, instance: unknown): void;
31
+ protected getCurrentState(): string;
32
+ $onRemoveFromStage(): void;
33
+ /**
34
+ * Called after `data` changes. Override to update the view.
35
+ */
36
+ protected dataChanged(): void;
37
+ private _syncLabel;
38
+ private _onTouchBegin;
39
+ private _onStageTouchEnd;
40
+ private _releaseTouchCapture;
41
+ }
42
+ //# sourceMappingURL=ItemRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ItemRenderer.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/ItemRenderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,SAAU,YAAW,aAAa;IAG5D,SAAS,SAAM;IAEtB,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAC,CAAQ;IAE5B;;;OAGG;IACI,YAAY,CAAC,EAAE,KAAK,CAAC;;IAW5B,IAAW,IAAI,IAAI,OAAO,CAEzB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,OAAO,EAK7B;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAIjC;cAIkB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;cAQpD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;cAOtD,eAAe,IAAI,MAAM;IAU5B,kBAAkB,IAAI,IAAI;IAO1C;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAI7B,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,aAAa,CASnB;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,oBAAoB;CAQ5B"}
@@ -0,0 +1,117 @@
1
+ import { TouchEvent } from '@kurot/core';
2
+ import { Component } from './Component.js';
3
+ import { Label } from './Label.js';
4
+ import { PropertyEvent } from '../events/PropertyEvent.js';
5
+ /**
6
+ * Base class for item renderers used in data-driven containers
7
+ * (DataGroup, List, TabBar…).
8
+ *
9
+ * States: `up` | `down` | `disabled` | `upAndSelected` | `downAndSelected`
10
+ *
11
+ * @skinPart iconDisplay — optional DisplayObject for an icon
12
+ * @skinPart labelDisplay — optional Label for the item label
13
+ */
14
+ export class ItemRenderer extends Component {
15
+ // ── Instance fields ───────────────────────────────────────────────────
16
+ itemIndex = -1;
17
+ _data;
18
+ _selected = false;
19
+ _touchCaptured = false;
20
+ _touchStage;
21
+ /**
22
+ * Skin part: the label. When present, `data` is auto-synced to its `text`
23
+ * (fallback for when the EXML `{data}` binding isn't compiled in).
24
+ */
25
+ labelDisplay;
26
+ // ── Constructor ───────────────────────────────────────────────────────
27
+ constructor() {
28
+ super();
29
+ this.addEventListener(TouchEvent.TOUCH_BEGIN, this._onTouchBegin);
30
+ }
31
+ // ── Getters / Setters ─────────────────────────────────────────────────
32
+ get data() {
33
+ return this._data;
34
+ }
35
+ set data(value) {
36
+ if (this._data === value)
37
+ return;
38
+ this._data = value;
39
+ PropertyEvent.dispatchPropertyEvent(this, 'data');
40
+ this.dataChanged();
41
+ }
42
+ get selected() {
43
+ return this._selected;
44
+ }
45
+ set selected(value) {
46
+ if (this._selected === value)
47
+ return;
48
+ this._selected = value;
49
+ this.invalidateState();
50
+ }
51
+ // ── Override methods ──────────────────────────────────────────────────
52
+ partAdded(partName, instance) {
53
+ super.partAdded(partName, instance);
54
+ if (partName === 'labelDisplay' && instance instanceof Label) {
55
+ this.labelDisplay = instance;
56
+ this._syncLabel();
57
+ }
58
+ }
59
+ partRemoved(partName, instance) {
60
+ super.partRemoved(partName, instance);
61
+ if (partName === 'labelDisplay') {
62
+ this.labelDisplay = undefined;
63
+ }
64
+ }
65
+ getCurrentState() {
66
+ if (!this.enabled)
67
+ return 'disabled';
68
+ if (this._touchCaptured)
69
+ return this._selected ? 'downAndSelected' : 'down';
70
+ if (this._selected) {
71
+ if (this.skin?.hasState('upAndSelected'))
72
+ return 'upAndSelected';
73
+ return 'down';
74
+ }
75
+ return 'up';
76
+ }
77
+ $onRemoveFromStage() {
78
+ this._releaseTouchCapture();
79
+ super.$onRemoveFromStage();
80
+ }
81
+ // ── Protected methods ─────────────────────────────────────────────────
82
+ /**
83
+ * Called after `data` changes. Override to update the view.
84
+ */
85
+ dataChanged() {
86
+ this._syncLabel();
87
+ }
88
+ _syncLabel() {
89
+ if (this.labelDisplay) {
90
+ this.labelDisplay.text = this._data == null ? '' : String(this._data);
91
+ }
92
+ }
93
+ // ── Private methods ───────────────────────────────────────────────────
94
+ _onTouchBegin = (e) => {
95
+ const stage = this.stage;
96
+ if (!stage)
97
+ return;
98
+ this._touchStage = stage;
99
+ stage.addEventListener(TouchEvent.TOUCH_END, this._onStageTouchEnd);
100
+ stage.addEventListener(TouchEvent.TOUCH_CANCEL, this._onStageTouchEnd);
101
+ this._touchCaptured = true;
102
+ this.invalidateState();
103
+ e.updateAfterEvent();
104
+ };
105
+ _onStageTouchEnd = (_e) => {
106
+ this._releaseTouchCapture();
107
+ };
108
+ _releaseTouchCapture() {
109
+ const stage = this._touchStage;
110
+ stage?.removeEventListener(TouchEvent.TOUCH_END, this._onStageTouchEnd);
111
+ stage?.removeEventListener(TouchEvent.TOUCH_CANCEL, this._onStageTouchEnd);
112
+ this._touchStage = undefined;
113
+ this._touchCaptured = false;
114
+ this.invalidateState();
115
+ }
116
+ }
117
+ //# sourceMappingURL=ItemRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ItemRenderer.js","sourceRoot":"","sources":["../../../src/kurot/components/ItemRenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { Component } from './Component.js';
2
+ import { TextField } from '@kurot/core';
3
+ import type { IDisplayText } from '../core/IDisplayText.js';
4
+ /**
5
+ * Label component for displaying text.
6
+ * Wraps a TextField and integrates it with the UI component lifecycle.
7
+ *
8
+ * States: none (non-interactive visual element).
9
+ */
10
+ export declare class Label extends Component implements IDisplayText {
11
+ protected _textField: TextField;
12
+ private _widthConstraint;
13
+ constructor(text?: string);
14
+ get text(): string;
15
+ set text(value: string);
16
+ get fontFamily(): string;
17
+ set fontFamily(value: string);
18
+ get size(): number;
19
+ set size(value: number);
20
+ get bold(): boolean;
21
+ set bold(value: boolean);
22
+ get italic(): boolean;
23
+ set italic(value: boolean);
24
+ get textColor(): number;
25
+ set textColor(value: number);
26
+ get strokeColor(): number;
27
+ set strokeColor(value: number);
28
+ get stroke(): number;
29
+ set stroke(value: number);
30
+ get textAlign(): string;
31
+ set textAlign(value: string);
32
+ get verticalAlign(): string;
33
+ set verticalAlign(value: string);
34
+ get multiline(): boolean;
35
+ set multiline(value: boolean);
36
+ get wordWrap(): boolean;
37
+ set wordWrap(value: boolean);
38
+ get lineSpacing(): number;
39
+ set lineSpacing(value: number);
40
+ get maxChars(): number;
41
+ set maxChars(value: number);
42
+ get displayAsPassword(): boolean;
43
+ set displayAsPassword(value: boolean);
44
+ createChildren(): void;
45
+ measure(): void;
46
+ setLayoutBoundsSize(layoutWidth: number, layoutHeight: number): void;
47
+ updateDisplayList(unscaledWidth: number, unscaledHeight: number): void;
48
+ }
49
+ //# sourceMappingURL=Label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/Label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,SAAU,YAAW,YAAY;IAG3D,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;IAEhC,OAAO,CAAC,gBAAgB,CAAO;gBAIZ,IAAI,CAAC,EAAE,MAAM;IAShC,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,EAM5B;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,UAAU,CAAC,KAAK,EAAE,MAAM,EAKlC;IAED,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,EAK5B;IAED,IAAW,IAAI,IAAI,OAAO,CAEzB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,OAAO,EAK7B;IAED,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,OAAO,EAK/B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAEjC;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAEnC;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,MAAM,EAE9B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAKjC;IAED,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED,IAAW,aAAa,CAAC,KAAK,EAAE,MAAM,EAKrC;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,OAAO,EAKlC;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAKjC;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAKnC;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,MAAM,EAEhC;IAED,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IAED,IAAW,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAE1C;IAIe,cAAc,IAAI,IAAI;IAKtB,OAAO,IAAI,IAAI;IAoBf,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAepE,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;CAKtF"}