@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,246 @@
1
+ import { EventDispatcher, Event } from '@kurot/core';
2
+ import { ToggleButton } from './ToggleButton.js';
3
+ import { PropertyEvent } from '../events/PropertyEvent.js';
4
+ /**
5
+ * Manages a group of mutually exclusive RadioButtons.
6
+ * Only one radio button in a group can be selected at a time.
7
+ *
8
+ * Dispatches `Event.CHANGE` on interactive selection (via `buttonReleased`),
9
+ * and `PropertyEvent` for `selectedValue` on every selection change.
10
+ */
11
+ export class RadioButtonGroup extends EventDispatcher {
12
+ // ── Instance fields ───────────────────────────────────────────────────
13
+ _radioButtons = [];
14
+ _selectedValue;
15
+ _selection;
16
+ _name;
17
+ _enabled = true;
18
+ // ── Constructor ───────────────────────────────────────────────────────
19
+ constructor(name = '') {
20
+ super();
21
+ this._name = name;
22
+ }
23
+ // ── Getters / Setters ─────────────────────────────────────────────────
24
+ get name() {
25
+ return this._name;
26
+ }
27
+ get numRadioButtons() {
28
+ return this._radioButtons.length;
29
+ }
30
+ /**
31
+ * Whether the group (and therefore all its members) is enabled.
32
+ * Toggling invalidates every member's state so skins re-render.
33
+ */
34
+ get enabled() {
35
+ return this._enabled;
36
+ }
37
+ set enabled(value) {
38
+ value = !!value;
39
+ if (this._enabled === value)
40
+ return;
41
+ this._enabled = value;
42
+ for (const rb of this._radioButtons) {
43
+ rb.invalidateState();
44
+ }
45
+ }
46
+ /**
47
+ * The value of the selected radio. Falls back to the radio's `label`
48
+ * when `value` is empty.
49
+ */
50
+ get selectedValue() {
51
+ if (this._selection) {
52
+ return this._selection.value !== '' ? this._selection.value : this._selection.label;
53
+ }
54
+ return this._selectedValue;
55
+ }
56
+ set selectedValue(value) {
57
+ this._selectedValue = value;
58
+ if (value === undefined) {
59
+ this.$setSelection(undefined, false);
60
+ return;
61
+ }
62
+ for (const rb of this._radioButtons) {
63
+ if (rb.value === value || rb.label === value) {
64
+ this.$setSelection(rb, false);
65
+ this._selectedValue = undefined;
66
+ PropertyEvent.dispatchPropertyEvent(this, 'selectedValue');
67
+ break;
68
+ }
69
+ }
70
+ }
71
+ get selection() {
72
+ return this._selection;
73
+ }
74
+ set selection(value) {
75
+ if (this._selection === value)
76
+ return;
77
+ this.$setSelection(value, false);
78
+ }
79
+ // ── Public methods ────────────────────────────────────────────────────
80
+ addInstance(radioButton) {
81
+ if (this._radioButtons.indexOf(radioButton) !== -1)
82
+ return;
83
+ this._radioButtons.push(radioButton);
84
+ // Adopt an already-selected radio as the group's selection.
85
+ if (radioButton.selected) {
86
+ this.$setSelection(radioButton, false);
87
+ }
88
+ else if (this._selectedValue !== undefined) {
89
+ // A selectedValue was set before this radio joined — re-apply.
90
+ this.selectedValue = this._selectedValue;
91
+ }
92
+ }
93
+ removeInstance(radioButton) {
94
+ const idx = this._radioButtons.indexOf(radioButton);
95
+ if (idx === -1)
96
+ return;
97
+ this._radioButtons.splice(idx, 1);
98
+ if (this._selection === radioButton) {
99
+ this._selection = undefined;
100
+ }
101
+ }
102
+ /**
103
+ * The single source of truth for changing the selection.
104
+ *
105
+ * @param value The radio to select, or `undefined` to clear.
106
+ * @param fireChange If `true`, dispatches `Event.CHANGE` — use `true` for
107
+ * interactive changes (tap), `false` for programmatic ones.
108
+ */
109
+ $setSelection(value, fireChange) {
110
+ if (this._selection === value)
111
+ return false;
112
+ if (value === undefined) {
113
+ if (this._selection) {
114
+ this._selection.$setSelected(false);
115
+ this._selection = undefined;
116
+ if (fireChange)
117
+ this.dispatchEventWith(Event.CHANGE);
118
+ }
119
+ }
120
+ else {
121
+ if (this._selection)
122
+ this._selection.$setSelected(false);
123
+ this._selection = value;
124
+ this._selection.$setSelected(true);
125
+ if (fireChange)
126
+ this.dispatchEventWith(Event.CHANGE);
127
+ }
128
+ PropertyEvent.dispatchPropertyEvent(this, 'selectedValue');
129
+ return true;
130
+ }
131
+ }
132
+ // ── Global registry for named groups ─────────────────────────────────────
133
+ const _groups = {};
134
+ function getGroup(name) {
135
+ if (!_groups[name]) {
136
+ _groups[name] = new RadioButtonGroup(name);
137
+ }
138
+ return _groups[name];
139
+ }
140
+ // ── RadioButton Component ────────────────────────────────────────────────
141
+ /**
142
+ * RadioButton — a toggle button belonging to a mutually exclusive group.
143
+ * Only one radio per group can be selected at a time.
144
+ *
145
+ * Defaults to `groupName = "radioGroup"` so that radios with no explicit
146
+ * group still get mutual exclusion.
147
+ *
148
+ * States: same as Button (`up`, `down`, `disabled`, `upAndSelected`, `downAndSelected`, `disabledAndSelected`).
149
+ */
150
+ export class RadioButton extends ToggleButton {
151
+ // ── Instance fields ───────────────────────────────────────────────────
152
+ _groupName = '';
153
+ _group;
154
+ _value = '';
155
+ // ── Constructor ───────────────────────────────────────────────────────
156
+ constructor() {
157
+ super();
158
+ this.groupName = 'radioGroup';
159
+ }
160
+ // ── Getters / Setters ─────────────────────────────────────────────────
161
+ /** Enabled only if both the radio itself and its group are enabled. */
162
+ get enabled() {
163
+ if (!super.enabled)
164
+ return false;
165
+ return !this._group || this._group.enabled;
166
+ }
167
+ set enabled(value) {
168
+ super.enabled = value;
169
+ }
170
+ get group() {
171
+ return this._group;
172
+ }
173
+ set group(value) {
174
+ if (this._group === value)
175
+ return;
176
+ this._group?.removeInstance(this);
177
+ this._group = value;
178
+ this._group?.addInstance(this);
179
+ }
180
+ get groupName() {
181
+ return this._groupName;
182
+ }
183
+ set groupName(value) {
184
+ if (this._groupName === value)
185
+ return;
186
+ this._groupName = value;
187
+ this.group = value ? getGroup(value) : undefined;
188
+ }
189
+ get value() {
190
+ return this._value;
191
+ }
192
+ set value(val) {
193
+ if (this._value === val)
194
+ return;
195
+ this._value = val;
196
+ // If this radio is the current selection, notify the group so
197
+ // selectedValue bindings update.
198
+ if (this.selected && this._group) {
199
+ PropertyEvent.dispatchPropertyEvent(this._group, 'selectedValue');
200
+ }
201
+ }
202
+ get selected() {
203
+ return super.selected;
204
+ }
205
+ /**
206
+ * Keeps the group's selection in sync. Programmatic changes use
207
+ * `fireChange=false` (no `Event.CHANGE`); interactive changes go through
208
+ * `buttonReleased`, which dispatches `CHANGE` separately.
209
+ */
210
+ set selected(value) {
211
+ if (this.selected === value)
212
+ return;
213
+ super.selected = value;
214
+ if (!this._group)
215
+ return;
216
+ if (value) {
217
+ this._group.$setSelection(this, false);
218
+ }
219
+ else if (this._group.selection === this) {
220
+ this._group.$setSelection(undefined, false);
221
+ }
222
+ }
223
+ /**
224
+ * @internal Sets `selected` without triggering group sync.
225
+ * Used by `RadioButtonGroup.$setSelection` to avoid recursion.
226
+ */
227
+ $setSelected(value) {
228
+ super.selected = value;
229
+ }
230
+ /**
231
+ * Interactive tap: toggle `selected` (syncs the group with no Change via
232
+ * the setter), then dispatch `Event.CHANGE` on the group — reserved for
233
+ * interaction, not programmatic selection.
234
+ */
235
+ buttonReleased() {
236
+ if (!this.enabled || this.selected)
237
+ return;
238
+ if (!this._group) {
239
+ super.buttonReleased();
240
+ return;
241
+ }
242
+ super.buttonReleased();
243
+ this._group.dispatchEventWith(Event.CHANGE);
244
+ }
245
+ }
246
+ //# sourceMappingURL=RadioButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioButton.js","sourceRoot":"","sources":["../../../src/kurot/components/RadioButton.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { Component } from './Component.js';
2
+ /**
3
+ * Range holds a numeric value constrained between `minimum` and `maximum`.
4
+ * Optionally snaps to multiples of `snapInterval`.
5
+ *
6
+ * Base class for future Slider / ScrollBar-with-value components.
7
+ */
8
+ export declare class Range extends Component {
9
+ private _maximum;
10
+ private _maxChanged;
11
+ private _minimum;
12
+ private _minChanged;
13
+ private _value;
14
+ private _changedValue;
15
+ private _valueChanged;
16
+ private _snapInterval;
17
+ private _snapIntervalChanged;
18
+ private _explicitSnapInterval;
19
+ get maximum(): number;
20
+ set maximum(value: number);
21
+ get minimum(): number;
22
+ set minimum(value: number);
23
+ get value(): number;
24
+ set value(newValue: number);
25
+ get snapInterval(): number;
26
+ set snapInterval(value: number);
27
+ commitProperties(): void;
28
+ updateDisplayList(w: number, h: number): void;
29
+ protected setValuePending(newValue: number): boolean;
30
+ /**
31
+ * Returns the closest valid value to `value` that is between minimum and maximum
32
+ * and snaps to multiples of `interval`.
33
+ */
34
+ protected nearestValidValue(value: number, interval: number): number;
35
+ protected setValue(value: number): void;
36
+ /**
37
+ * Override to update skin parts based on minimum, maximum, and value.
38
+ */
39
+ protected updateSkinDisplayList(): void;
40
+ }
41
+ //# sourceMappingURL=Range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Range.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/Range.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,SAAS;IAGnC,OAAO,CAAC,QAAQ,CAAO;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,qBAAqB,CAAS;IAItC,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAO/B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAO/B;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,QAAQ,EAAE,MAAM,EAGhC;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,YAAY,CAAC,KAAK,EAAE,MAAM,EAYpC;IAIe,gBAAgB,IAAI,IAAI;IAqBxB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAO7D,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQpD;;;OAGG;IACH,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAuBpE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAYvC;;OAEG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;CACvC"}
@@ -0,0 +1,144 @@
1
+ import { Component } from './Component.js';
2
+ import { PropertyEvent } from '../events/PropertyEvent.js';
3
+ /**
4
+ * Range holds a numeric value constrained between `minimum` and `maximum`.
5
+ * Optionally snaps to multiples of `snapInterval`.
6
+ *
7
+ * Base class for future Slider / ScrollBar-with-value components.
8
+ */
9
+ export class Range extends Component {
10
+ // ── Instance fields ───────────────────────────────────────────────────
11
+ _maximum = 100;
12
+ _maxChanged = false;
13
+ _minimum = 0;
14
+ _minChanged = false;
15
+ _value = 0;
16
+ _changedValue = 0;
17
+ _valueChanged = false;
18
+ _snapInterval = 1;
19
+ _snapIntervalChanged = false;
20
+ _explicitSnapInterval = false;
21
+ // ── Getters / Setters ─────────────────────────────────────────────────
22
+ get maximum() {
23
+ return this._maximum;
24
+ }
25
+ set maximum(value) {
26
+ value = +value || 0;
27
+ if (this._maximum === value)
28
+ return;
29
+ this._maximum = value;
30
+ this._maxChanged = true;
31
+ this.invalidateProperties();
32
+ this.invalidateDisplayList();
33
+ }
34
+ get minimum() {
35
+ return this._minimum;
36
+ }
37
+ set minimum(value) {
38
+ value = +value || 0;
39
+ if (this._minimum === value)
40
+ return;
41
+ this._minimum = value;
42
+ this._minChanged = true;
43
+ this.invalidateProperties();
44
+ this.invalidateDisplayList();
45
+ }
46
+ get value() {
47
+ return this._valueChanged ? this._changedValue : this._value;
48
+ }
49
+ set value(newValue) {
50
+ newValue = +newValue || 0;
51
+ this.setValuePending(newValue);
52
+ }
53
+ get snapInterval() {
54
+ return this._snapInterval;
55
+ }
56
+ set snapInterval(value) {
57
+ this._explicitSnapInterval = true;
58
+ value = +value || 0;
59
+ if (value === this._snapInterval)
60
+ return;
61
+ if (isNaN(value)) {
62
+ this._snapInterval = 1;
63
+ this._explicitSnapInterval = false;
64
+ }
65
+ else {
66
+ this._snapInterval = value;
67
+ }
68
+ this._snapIntervalChanged = true;
69
+ this.invalidateProperties();
70
+ }
71
+ // ── Override methods ──────────────────────────────────────────────────
72
+ commitProperties() {
73
+ super.commitProperties();
74
+ if (this._minimum > this._maximum) {
75
+ if (!this._maxChanged) {
76
+ this._minimum = this._maximum;
77
+ }
78
+ else {
79
+ this._maximum = this._minimum;
80
+ }
81
+ }
82
+ if (this._valueChanged || this._maxChanged || this._minChanged || this._snapIntervalChanged) {
83
+ const currentValue = this._valueChanged ? this._changedValue : this._value;
84
+ this._valueChanged = false;
85
+ this._maxChanged = false;
86
+ this._minChanged = false;
87
+ this._snapIntervalChanged = false;
88
+ this.setValue(this.nearestValidValue(currentValue, this._snapInterval));
89
+ }
90
+ }
91
+ updateDisplayList(w, h) {
92
+ super.updateDisplayList(w, h);
93
+ this.updateSkinDisplayList();
94
+ }
95
+ // ── Protected methods ─────────────────────────────────────────────────
96
+ setValuePending(newValue) {
97
+ if (newValue === this.value)
98
+ return false;
99
+ this._changedValue = newValue;
100
+ this._valueChanged = true;
101
+ this.invalidateProperties();
102
+ return true;
103
+ }
104
+ /**
105
+ * Returns the closest valid value to `value` that is between minimum and maximum
106
+ * and snaps to multiples of `interval`.
107
+ */
108
+ nearestValidValue(value, interval) {
109
+ if (interval === 0) {
110
+ return Math.max(this._minimum, Math.min(this._maximum, value));
111
+ }
112
+ const maxValue = this._maximum - this._minimum;
113
+ let scale = 1;
114
+ value -= this._minimum;
115
+ if (interval !== Math.round(interval)) {
116
+ const parts = (1 + interval).toString().split('.');
117
+ scale = Math.pow(10, parts[1].length);
118
+ value = Math.round(value * scale);
119
+ interval = Math.round(interval * scale);
120
+ }
121
+ const lower = Math.max(0, Math.floor(value / interval) * interval);
122
+ const upper = Math.min(maxValue * scale, Math.floor((value + interval) / interval) * interval);
123
+ const validValue = value - lower >= (upper - lower) / 2 ? upper : lower;
124
+ return validValue / scale + this._minimum;
125
+ }
126
+ setValue(value) {
127
+ if (this._value === value)
128
+ return;
129
+ if (this._maximum > this._minimum) {
130
+ this._value = Math.min(this._maximum, Math.max(this._minimum, value));
131
+ }
132
+ else {
133
+ this._value = value;
134
+ }
135
+ this._valueChanged = false;
136
+ this.invalidateDisplayList();
137
+ PropertyEvent.dispatchPropertyEvent(this, 'value');
138
+ }
139
+ /**
140
+ * Override to update skin parts based on minimum, maximum, and value.
141
+ */
142
+ updateSkinDisplayList() { }
143
+ }
144
+ //# sourceMappingURL=Range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Range.js","sourceRoot":"","sources":["../../../src/kurot/components/Range.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { Component } from './Component.js';
2
+ /**
3
+ * A rectangular shape component with fill and stroke support.
4
+ * Extends Component and uses the inherited Graphics to draw a filled/stroked rectangle.
5
+ *
6
+ * States: none (non-interactive visual element).
7
+ */
8
+ export declare class Rect extends Component {
9
+ private _fillColor;
10
+ private _fillAlpha;
11
+ private _strokeColor;
12
+ private _strokeAlpha;
13
+ private _strokeWeight;
14
+ private _ellipseWidth;
15
+ private _ellipseHeight;
16
+ constructor(width?: number, height?: number, fillColor?: number);
17
+ get fillColor(): number;
18
+ set fillColor(value: number);
19
+ get fillAlpha(): number;
20
+ set fillAlpha(value: number);
21
+ get strokeColor(): number;
22
+ set strokeColor(value: number);
23
+ get strokeAlpha(): number;
24
+ set strokeAlpha(value: number);
25
+ get strokeWeight(): number;
26
+ set strokeWeight(value: number);
27
+ get ellipseWidth(): number;
28
+ set ellipseWidth(value: number);
29
+ get ellipseHeight(): number;
30
+ set ellipseHeight(value: number);
31
+ updateDisplayList(unscaledWidth: number, unscaledHeight: number): void;
32
+ }
33
+ //# sourceMappingURL=Rect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rect.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/Rect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;;GAKG;AACH,qBAAa,IAAK,SAAQ,SAAS;IAGlC,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;gBAIR,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAUtE,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAIjC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAIjC;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAInC;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAInC;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,YAAY,CAAC,KAAK,EAAE,MAAM,EAIpC;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,YAAY,CAAC,KAAK,EAAE,MAAM,EAIpC;IAED,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED,IAAW,aAAa,CAAC,KAAK,EAAE,MAAM,EAIrC;IAIe,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;CAiCtF"}
@@ -0,0 +1,125 @@
1
+ import { Component } from './Component.js';
2
+ /**
3
+ * A rectangular shape component with fill and stroke support.
4
+ * Extends Component and uses the inherited Graphics to draw a filled/stroked rectangle.
5
+ *
6
+ * States: none (non-interactive visual element).
7
+ */
8
+ export class Rect extends Component {
9
+ // ── Instance fields ───────────────────────────────────────────────────
10
+ _fillColor = 0x000000;
11
+ _fillAlpha = 1;
12
+ _strokeColor = 0x444444;
13
+ _strokeAlpha = 1;
14
+ _strokeWeight = 0;
15
+ _ellipseWidth = 0;
16
+ _ellipseHeight = 0;
17
+ // ── Constructor ───────────────────────────────────────────────────────
18
+ constructor(width, height, fillColor) {
19
+ super();
20
+ this.touchChildren = false;
21
+ if (width !== undefined)
22
+ this.width = width;
23
+ if (height !== undefined)
24
+ this.height = height;
25
+ if (fillColor !== undefined)
26
+ this.fillColor = fillColor;
27
+ }
28
+ // ── Getters / Setters ─────────────────────────────────────────────────
29
+ get fillColor() {
30
+ return this._fillColor;
31
+ }
32
+ set fillColor(value) {
33
+ if (value === undefined || this._fillColor === value)
34
+ return;
35
+ this._fillColor = value;
36
+ this.invalidateDisplayList();
37
+ }
38
+ get fillAlpha() {
39
+ return this._fillAlpha;
40
+ }
41
+ set fillAlpha(value) {
42
+ if (this._fillAlpha === value)
43
+ return;
44
+ this._fillAlpha = value;
45
+ this.invalidateDisplayList();
46
+ }
47
+ get strokeColor() {
48
+ return this._strokeColor;
49
+ }
50
+ set strokeColor(value) {
51
+ if (this._strokeColor === value)
52
+ return;
53
+ this._strokeColor = value;
54
+ this.invalidateDisplayList();
55
+ }
56
+ get strokeAlpha() {
57
+ return this._strokeAlpha;
58
+ }
59
+ set strokeAlpha(value) {
60
+ if (this._strokeAlpha === value)
61
+ return;
62
+ this._strokeAlpha = value;
63
+ this.invalidateDisplayList();
64
+ }
65
+ get strokeWeight() {
66
+ return this._strokeWeight;
67
+ }
68
+ set strokeWeight(value) {
69
+ if (this._strokeWeight === value)
70
+ return;
71
+ this._strokeWeight = value;
72
+ this.invalidateDisplayList();
73
+ }
74
+ get ellipseWidth() {
75
+ return this._ellipseWidth;
76
+ }
77
+ set ellipseWidth(value) {
78
+ if (this._ellipseWidth === value)
79
+ return;
80
+ this._ellipseWidth = value;
81
+ this.invalidateDisplayList();
82
+ }
83
+ get ellipseHeight() {
84
+ return this._ellipseHeight;
85
+ }
86
+ set ellipseHeight(value) {
87
+ if (this._ellipseHeight === value)
88
+ return;
89
+ this._ellipseHeight = value;
90
+ this.invalidateDisplayList();
91
+ }
92
+ // ── Override methods ──────────────────────────────────────────────────
93
+ updateDisplayList(unscaledWidth, unscaledHeight) {
94
+ super.updateDisplayList(unscaledWidth, unscaledHeight);
95
+ const g = this.graphics;
96
+ g.clear();
97
+ if (unscaledWidth <= 0 || unscaledHeight <= 0)
98
+ return;
99
+ const sw = this._strokeWeight;
100
+ const ew = this._ellipseWidth;
101
+ const eh = this._ellipseHeight;
102
+ const isRound = ew !== 0 || eh !== 0;
103
+ if (sw > 0) {
104
+ g.beginFill(this._fillColor, 0);
105
+ g.lineStyle(sw, this._strokeColor, this._strokeAlpha);
106
+ if (isRound) {
107
+ g.drawRoundRect(sw / 2, sw / 2, unscaledWidth - sw, unscaledHeight - sw, ew, eh);
108
+ }
109
+ else {
110
+ g.drawRect(sw / 2, sw / 2, unscaledWidth - sw, unscaledHeight - sw);
111
+ }
112
+ g.endFill();
113
+ }
114
+ g.beginFill(this._fillColor, this._fillAlpha);
115
+ g.lineStyle(sw, this._strokeColor, 0);
116
+ if (isRound) {
117
+ g.drawRoundRect(sw, sw, unscaledWidth - sw * 2, unscaledHeight - sw * 2, ew, eh);
118
+ }
119
+ else {
120
+ g.drawRect(sw, sw, unscaledWidth - sw * 2, unscaledHeight - sw * 2);
121
+ }
122
+ g.endFill();
123
+ }
124
+ }
125
+ //# sourceMappingURL=Rect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rect.js","sourceRoot":"","sources":["../../../src/kurot/components/Rect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { Component } from './Component.js';
2
+ import type { IViewport } from '../core/IViewport.js';
3
+ import type { IUIComponent } from '../core/IUIComponent.js';
4
+ import { PropertyEvent } from '../events/PropertyEvent.js';
5
+ /**
6
+ * Base class for scroll bars.
7
+ *
8
+ * Connects to an IViewport and positions a `thumb` skin part based on the
9
+ * viewport's scroll position relative to its content size.
10
+ *
11
+ * @skinPart thumb — the draggable thumb indicator.
12
+ */
13
+ export declare class ScrollBarBase extends Component {
14
+ thumb?: IUIComponent;
15
+ autoVisibility: boolean;
16
+ private _viewport?;
17
+ get viewport(): IViewport | undefined;
18
+ set viewport(value: IViewport | undefined);
19
+ /**
20
+ * Called when viewport properties (scrollH, scrollV, contentWidth, etc.) change.
21
+ * Override in subclasses to react.
22
+ */
23
+ protected onPropertyChanged(_event: PropertyEvent): void;
24
+ private _onPropChange;
25
+ private _onResize;
26
+ }
27
+ //# sourceMappingURL=ScrollBarBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollBarBase.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/ScrollBarBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAGpC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,cAAc,UAAQ;IAE7B,OAAO,CAAC,SAAS,CAAC,CAAY;IAI9B,IAAW,QAAQ,IAAI,SAAS,GAAG,SAAS,CAE3C;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAa/C;IAID;;;OAGG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAIxD,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,SAAS,CAEf;CACF"}