tweak-ui 0.5.0 → 0.8.2

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 (239) hide show
  1. package/dist/.assetsignore +2 -0
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/lib/builder.d.ts +78 -140
  5. package/dist/lib/builder.d.ts.map +1 -1
  6. package/dist/lib/color/adapter.d.ts +7 -0
  7. package/dist/lib/color/adapter.d.ts.map +1 -0
  8. package/dist/lib/color/array-format.d.ts +9 -0
  9. package/dist/lib/color/array-format.d.ts.map +1 -0
  10. package/dist/lib/color/converter.d.ts.map +1 -0
  11. package/dist/lib/color/css-string-format.d.ts +8 -0
  12. package/dist/lib/color/css-string-format.d.ts.map +1 -0
  13. package/dist/lib/color/formatter.d.ts +9 -0
  14. package/dist/lib/color/formatter.d.ts.map +1 -0
  15. package/dist/lib/color/hex-string-format.d.ts +9 -0
  16. package/dist/lib/color/hex-string-format.d.ts.map +1 -0
  17. package/dist/lib/color/index.d.ts.map +1 -0
  18. package/dist/lib/color/number-format.d.ts +9 -0
  19. package/dist/lib/color/number-format.d.ts.map +1 -0
  20. package/dist/lib/{color-formats → color}/object-format.d.ts +4 -4
  21. package/dist/lib/color/object-format.d.ts.map +1 -0
  22. package/dist/lib/{color-formats → color}/types.d.ts +15 -9
  23. package/dist/lib/color/types.d.ts.map +1 -0
  24. package/dist/lib/components/container/bar.d.ts +28 -0
  25. package/dist/lib/components/container/bar.d.ts.map +1 -0
  26. package/dist/lib/components/container/dialog.d.ts +14 -0
  27. package/dist/lib/components/container/dialog.d.ts.map +1 -0
  28. package/dist/lib/components/container/grid.d.ts +22 -0
  29. package/dist/lib/components/container/grid.d.ts.map +1 -0
  30. package/dist/lib/components/container/group.d.ts +55 -0
  31. package/dist/lib/components/container/group.d.ts.map +1 -0
  32. package/dist/lib/components/container/index.d.ts +10 -0
  33. package/dist/lib/components/container/index.d.ts.map +1 -0
  34. package/dist/lib/components/container/list.d.ts +25 -0
  35. package/dist/lib/components/container/list.d.ts.map +1 -0
  36. package/dist/lib/components/container/section.d.ts +28 -0
  37. package/dist/lib/components/container/section.d.ts.map +1 -0
  38. package/dist/lib/components/container/split.d.ts +40 -0
  39. package/dist/lib/components/container/split.d.ts.map +1 -0
  40. package/dist/lib/components/container/tabs.d.ts +23 -0
  41. package/dist/lib/components/container/tabs.d.ts.map +1 -0
  42. package/dist/lib/components/container/tree.d.ts +25 -0
  43. package/dist/lib/components/container/tree.d.ts.map +1 -0
  44. package/dist/lib/components/controls/angle.d.ts +29 -33
  45. package/dist/lib/components/controls/angle.d.ts.map +1 -1
  46. package/dist/lib/components/controls/bitmask.d.ts +41 -0
  47. package/dist/lib/components/controls/bitmask.d.ts.map +1 -0
  48. package/dist/lib/components/controls/bool.d.ts +52 -0
  49. package/dist/lib/components/controls/bool.d.ts.map +1 -0
  50. package/dist/lib/components/controls/color-picker.d.ts +12 -27
  51. package/dist/lib/components/controls/color-picker.d.ts.map +1 -1
  52. package/dist/lib/components/controls/color.d.ts +12 -26
  53. package/dist/lib/components/controls/color.d.ts.map +1 -1
  54. package/dist/lib/components/controls/index.d.ts +9 -5
  55. package/dist/lib/components/controls/index.d.ts.map +1 -1
  56. package/dist/lib/components/controls/input.d.ts +44 -0
  57. package/dist/lib/components/controls/input.d.ts.map +1 -0
  58. package/dist/lib/components/controls/matrix.d.ts +58 -0
  59. package/dist/lib/components/controls/matrix.d.ts.map +1 -0
  60. package/dist/lib/components/controls/point.d.ts +15 -16
  61. package/dist/lib/components/controls/point.d.ts.map +1 -1
  62. package/dist/lib/components/controls/poll.d.ts +12 -0
  63. package/dist/lib/components/controls/poll.d.ts.map +1 -0
  64. package/dist/lib/components/controls/scalar.d.ts +67 -0
  65. package/dist/lib/components/controls/scalar.d.ts.map +1 -0
  66. package/dist/lib/components/controls/select.d.ts +8 -14
  67. package/dist/lib/components/controls/select.d.ts.map +1 -1
  68. package/dist/lib/components/controls/spherical.d.ts +23 -55
  69. package/dist/lib/components/controls/spherical.d.ts.map +1 -1
  70. package/dist/lib/components/controls/string.d.ts +46 -0
  71. package/dist/lib/components/controls/string.d.ts.map +1 -0
  72. package/dist/lib/components/controls/vector.d.ts +54 -0
  73. package/dist/lib/components/controls/vector.d.ts.map +1 -0
  74. package/dist/lib/components/elements/button.d.ts +36 -0
  75. package/dist/lib/components/elements/button.d.ts.map +1 -0
  76. package/dist/lib/components/elements/divider.d.ts +4 -0
  77. package/dist/lib/components/elements/divider.d.ts.map +1 -0
  78. package/dist/lib/components/elements/graph.d.ts +8 -0
  79. package/dist/lib/components/elements/graph.d.ts.map +1 -0
  80. package/dist/lib/components/elements/image.d.ts +33 -0
  81. package/dist/lib/components/elements/image.d.ts.map +1 -0
  82. package/dist/lib/components/elements/index.d.ts +6 -0
  83. package/dist/lib/components/elements/index.d.ts.map +1 -0
  84. package/dist/lib/components/elements/widget.d.ts +31 -0
  85. package/dist/lib/components/elements/widget.d.ts.map +1 -0
  86. package/dist/lib/components/index.d.ts +2 -4
  87. package/dist/lib/components/index.d.ts.map +1 -1
  88. package/dist/lib/core/control.d.ts +20 -0
  89. package/dist/lib/core/control.d.ts.map +1 -0
  90. package/dist/lib/core/index.d.ts +1 -2
  91. package/dist/lib/core/index.d.ts.map +1 -1
  92. package/dist/lib/core/render.d.ts +7 -9
  93. package/dist/lib/core/render.d.ts.map +1 -1
  94. package/dist/lib/core/types.d.ts +46 -60
  95. package/dist/lib/core/types.d.ts.map +1 -1
  96. package/dist/lib/core/utils.d.ts +19 -33
  97. package/dist/lib/core/utils.d.ts.map +1 -1
  98. package/dist/lib/index.d.ts +2 -2
  99. package/dist/lib/index.d.ts.map +1 -1
  100. package/dist/lib/mount.d.ts +6 -16
  101. package/dist/lib/mount.d.ts.map +1 -1
  102. package/dist/lib/stats/index.d.ts +2 -0
  103. package/dist/lib/stats/index.d.ts.map +1 -0
  104. package/dist/lib/stats/sampler.d.ts +66 -0
  105. package/dist/lib/stats/sampler.d.ts.map +1 -0
  106. package/dist/lib/stats/stats-renderer.d.ts +16 -0
  107. package/dist/lib/stats/stats-renderer.d.ts.map +1 -0
  108. package/dist/style.css +1 -0
  109. package/dist/style.d.ts +4 -0
  110. package/dist/tweak-ui.module.js +2959 -2738
  111. package/dist/tweak-ui.module.js.map +1 -1
  112. package/dist/tweak-ui.umd.js +33 -2
  113. package/dist/tweak-ui.umd.js.map +1 -1
  114. package/dist/wrangler.json +1 -0
  115. package/package.json +34 -23
  116. package/dist/lib/builder.js +0 -250
  117. package/dist/lib/builder.js.map +0 -1
  118. package/dist/lib/color-formats/array-format.d.ts +0 -9
  119. package/dist/lib/color-formats/array-format.d.ts.map +0 -1
  120. package/dist/lib/color-formats/array-format.js +0 -18
  121. package/dist/lib/color-formats/array-format.js.map +0 -1
  122. package/dist/lib/color-formats/converter.d.ts.map +0 -1
  123. package/dist/lib/color-formats/converter.js +0 -85
  124. package/dist/lib/color-formats/converter.js.map +0 -1
  125. package/dist/lib/color-formats/css-string-format.d.ts +0 -8
  126. package/dist/lib/color-formats/css-string-format.d.ts.map +0 -1
  127. package/dist/lib/color-formats/css-string-format.js +0 -28
  128. package/dist/lib/color-formats/css-string-format.js.map +0 -1
  129. package/dist/lib/color-formats/formatter.d.ts +0 -9
  130. package/dist/lib/color-formats/formatter.d.ts.map +0 -1
  131. package/dist/lib/color-formats/formatter.js +0 -35
  132. package/dist/lib/color-formats/formatter.js.map +0 -1
  133. package/dist/lib/color-formats/hex-string-format.d.ts +0 -8
  134. package/dist/lib/color-formats/hex-string-format.d.ts.map +0 -1
  135. package/dist/lib/color-formats/hex-string-format.js +0 -28
  136. package/dist/lib/color-formats/hex-string-format.js.map +0 -1
  137. package/dist/lib/color-formats/index.d.ts.map +0 -1
  138. package/dist/lib/color-formats/index.js +0 -4
  139. package/dist/lib/color-formats/index.js.map +0 -1
  140. package/dist/lib/color-formats/number-format.d.ts +0 -9
  141. package/dist/lib/color-formats/number-format.d.ts.map +0 -1
  142. package/dist/lib/color-formats/number-format.js +0 -23
  143. package/dist/lib/color-formats/number-format.js.map +0 -1
  144. package/dist/lib/color-formats/object-format.d.ts.map +0 -1
  145. package/dist/lib/color-formats/object-format.js +0 -23
  146. package/dist/lib/color-formats/object-format.js.map +0 -1
  147. package/dist/lib/color-formats/types.d.ts.map +0 -1
  148. package/dist/lib/color-formats/types.js +0 -2
  149. package/dist/lib/color-formats/types.js.map +0 -1
  150. package/dist/lib/components/button.d.ts +0 -29
  151. package/dist/lib/components/button.d.ts.map +0 -1
  152. package/dist/lib/components/button.js +0 -15
  153. package/dist/lib/components/button.js.map +0 -1
  154. package/dist/lib/components/content.d.ts +0 -22
  155. package/dist/lib/components/content.d.ts.map +0 -1
  156. package/dist/lib/components/content.js +0 -10
  157. package/dist/lib/components/content.js.map +0 -1
  158. package/dist/lib/components/controls/angle.js +0 -201
  159. package/dist/lib/components/controls/angle.js.map +0 -1
  160. package/dist/lib/components/controls/checkbox.d.ts +0 -29
  161. package/dist/lib/components/controls/checkbox.d.ts.map +0 -1
  162. package/dist/lib/components/controls/checkbox.js +0 -31
  163. package/dist/lib/components/controls/checkbox.js.map +0 -1
  164. package/dist/lib/components/controls/color-picker.js +0 -267
  165. package/dist/lib/components/controls/color-picker.js.map +0 -1
  166. package/dist/lib/components/controls/color.js +0 -77
  167. package/dist/lib/components/controls/color.js.map +0 -1
  168. package/dist/lib/components/controls/index.js +0 -11
  169. package/dist/lib/components/controls/index.js.map +0 -1
  170. package/dist/lib/components/controls/number.d.ts +0 -48
  171. package/dist/lib/components/controls/number.d.ts.map +0 -1
  172. package/dist/lib/components/controls/number.js +0 -142
  173. package/dist/lib/components/controls/number.js.map +0 -1
  174. package/dist/lib/components/controls/point.js +0 -137
  175. package/dist/lib/components/controls/point.js.map +0 -1
  176. package/dist/lib/components/controls/position.d.ts +0 -56
  177. package/dist/lib/components/controls/position.d.ts.map +0 -1
  178. package/dist/lib/components/controls/position.js +0 -36
  179. package/dist/lib/components/controls/position.js.map +0 -1
  180. package/dist/lib/components/controls/select.js +0 -132
  181. package/dist/lib/components/controls/select.js.map +0 -1
  182. package/dist/lib/components/controls/spherical.js +0 -302
  183. package/dist/lib/components/controls/spherical.js.map +0 -1
  184. package/dist/lib/components/controls/text.d.ts +0 -36
  185. package/dist/lib/components/controls/text.d.ts.map +0 -1
  186. package/dist/lib/components/controls/text.js +0 -24
  187. package/dist/lib/components/controls/text.js.map +0 -1
  188. package/dist/lib/components/groups/accordion.d.ts +0 -22
  189. package/dist/lib/components/groups/accordion.d.ts.map +0 -1
  190. package/dist/lib/components/groups/accordion.js +0 -34
  191. package/dist/lib/components/groups/accordion.js.map +0 -1
  192. package/dist/lib/components/groups/container.d.ts +0 -25
  193. package/dist/lib/components/groups/container.d.ts.map +0 -1
  194. package/dist/lib/components/groups/container.js +0 -19
  195. package/dist/lib/components/groups/container.js.map +0 -1
  196. package/dist/lib/components/groups/group.d.ts +0 -49
  197. package/dist/lib/components/groups/group.d.ts.map +0 -1
  198. package/dist/lib/components/groups/group.js +0 -50
  199. package/dist/lib/components/groups/group.js.map +0 -1
  200. package/dist/lib/components/groups/index.d.ts +0 -5
  201. package/dist/lib/components/groups/index.d.ts.map +0 -1
  202. package/dist/lib/components/groups/index.js +0 -5
  203. package/dist/lib/components/groups/index.js.map +0 -1
  204. package/dist/lib/components/groups/tabs.d.ts +0 -22
  205. package/dist/lib/components/groups/tabs.d.ts.map +0 -1
  206. package/dist/lib/components/groups/tabs.js +0 -31
  207. package/dist/lib/components/groups/tabs.js.map +0 -1
  208. package/dist/lib/components/image.d.ts +0 -37
  209. package/dist/lib/components/image.d.ts.map +0 -1
  210. package/dist/lib/components/image.js +0 -46
  211. package/dist/lib/components/image.js.map +0 -1
  212. package/dist/lib/components/index.js +0 -6
  213. package/dist/lib/components/index.js.map +0 -1
  214. package/dist/lib/core/index.js +0 -5
  215. package/dist/lib/core/index.js.map +0 -1
  216. package/dist/lib/core/registry.d.ts +0 -18
  217. package/dist/lib/core/registry.d.ts.map +0 -1
  218. package/dist/lib/core/registry.js +0 -30
  219. package/dist/lib/core/registry.js.map +0 -1
  220. package/dist/lib/core/render.js +0 -19
  221. package/dist/lib/core/render.js.map +0 -1
  222. package/dist/lib/core/types.js +0 -2
  223. package/dist/lib/core/types.js.map +0 -1
  224. package/dist/lib/core/utils.js +0 -193
  225. package/dist/lib/core/utils.js.map +0 -1
  226. package/dist/lib/core/value-accessor.d.ts +0 -18
  227. package/dist/lib/core/value-accessor.d.ts.map +0 -1
  228. package/dist/lib/core/value-accessor.js +0 -52
  229. package/dist/lib/core/value-accessor.js.map +0 -1
  230. package/dist/lib/index.js +0 -29
  231. package/dist/lib/index.js.map +0 -1
  232. package/dist/lib/mount.js +0 -85
  233. package/dist/lib/mount.js.map +0 -1
  234. package/dist/tweak-ui.css +0 -648
  235. package/dist/tweak-ui.css.map +0 -1
  236. package/dist/tweak-ui.min.css +0 -1
  237. package/dist/tweak-ui.min.css.map +0 -1
  238. /package/dist/lib/{color-formats → color}/converter.d.ts +0 -0
  239. /package/dist/lib/{color-formats → color}/index.d.ts +0 -0
package/dist/lib/index.js DELETED
@@ -1,29 +0,0 @@
1
- /**
2
- * Tweak UI is a lightweight js library for building input controls with data binding
3
- *
4
- * @remarks
5
- * The library provides a set of common ui components built with mithriljs. The main objective
6
- * is to allow a developer to rapidly scaffold input interfaces for manipulating javascript objects
7
- * at runtime.
8
- *
9
- * Similar projects are:
10
- * {@link https://github.com/dataarts/dat.gui | dat.GUI}
11
- * {@link https://github.com/automat/controlkit.js | controlkit}
12
- * {@link https://github.com/colejd/guify | guify}
13
- *
14
- * @packageDocumentation
15
- */
16
- import './components';
17
- export * from './builder';
18
- export * from './color-formats';
19
- export * from './components';
20
- export * from './core';
21
- export * from './mount';
22
- // declare const VERSION_STRING: string
23
- // /**
24
- // * The version string
25
- // *
26
- // * @public
27
- // */
28
- // export const VERSION = VERSION_STRING
29
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,cAAc,CAAA;AAErB,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AAEvB,uCAAuC;AAEvC,MAAM;AACN,wBAAwB;AACxB,KAAK;AACL,aAAa;AACb,MAAM;AACN,wCAAwC","sourcesContent":["/**\n * Tweak UI is a lightweight js library for building input controls with data binding\n *\n * @remarks\n * The library provides a set of common ui components built with mithriljs. The main objective\n * is to allow a developer to rapidly scaffold input interfaces for manipulating javascript objects\n * at runtime.\n *\n * Similar projects are:\n * {@link https://github.com/dataarts/dat.gui | dat.GUI}\n * {@link https://github.com/automat/controlkit.js | controlkit}\n * {@link https://github.com/colejd/guify | guify}\n *\n * @packageDocumentation\n */\n\nimport './components'\n\nexport * from './builder'\nexport * from './color-formats'\nexport * from './components'\nexport * from './core'\nexport * from './mount'\n\n// declare const VERSION_STRING: string\n\n// /**\n// * The version string\n// *\n// * @public\n// */\n// export const VERSION = VERSION_STRING\n"]}
package/dist/lib/mount.js DELETED
@@ -1,85 +0,0 @@
1
- import { default as m } from 'mithril';
2
- import { Builder } from './builder';
3
- import { isFunction } from './core/utils';
4
- import { renderModel } from './core';
5
- /**
6
- * Mithril's hyperscript function.
7
- *
8
- * @public
9
- * @remarks
10
- * Useful to create custom components
11
- */
12
- export const h = m;
13
- /**
14
- * Runs the function through a builder system and returns the created controls
15
- *
16
- * @param fn - The builder function
17
- * @returns
18
- */
19
- export function build(fn) {
20
- const builder = new Builder();
21
- fn(builder);
22
- return builder.controls;
23
- }
24
- /**
25
- * Mounts a ui to the given element
26
- *
27
- * @public
28
- * @param el - The ui host element
29
- * @param data - The ui definition object
30
- */
31
- export function mount(el, data) {
32
- el = typeof el === 'string' ? document.querySelector(el) : el;
33
- el.classList.add('twui-root');
34
- if (!data) {
35
- m.mount(el, null);
36
- }
37
- else if (Array.isArray(data)) {
38
- m.mount(el, {
39
- view: () => renderModel({
40
- type: 'group',
41
- children: data,
42
- }),
43
- });
44
- }
45
- else if (isFunction(data)) {
46
- const builder = new Builder();
47
- data(builder);
48
- m.mount(el, {
49
- view: () => renderModel({
50
- type: 'group',
51
- children: builder.controls,
52
- }),
53
- });
54
- }
55
- else {
56
- m.mount(el, {
57
- view: () => renderModel(data),
58
- });
59
- }
60
- }
61
- /**
62
- * Unmounts the ui from given host element
63
- *
64
- * @public
65
- * @param el - The ui host element
66
- */
67
- export function unmount(el) {
68
- el = typeof el === 'string' ? document.querySelector(el) : el;
69
- m.mount(el, null);
70
- }
71
- /**
72
- * Redraws the ui
73
- *
74
- * @public
75
- * @remarks
76
- * When changing the ui description object qui callbacks (e.g. `onInput` or `onChange`)
77
- * the ui will redraw automatically.
78
- *
79
- * However if the ui description object is changed from outside the qui callback
80
- * then this method must be called in order to update the visual state.
81
- */
82
- export function redraw() {
83
- m.redraw();
84
- }
85
- //# sourceMappingURL=mount.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mount.js","sourceRoot":"","sources":["../../src/lib/mount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAa,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAGpC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAElB;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,EAAa;IACjC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAC7B,EAAE,CAAC,OAAO,CAAC,CAAA;IACX,OAAO,OAAO,CAAC,QAAQ,CAAA;AACzB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAA2B,EAAoB,EAAE,IAA8B;IAClG,EAAE,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7D,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IACnB,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YACV,IAAI,EAAE,GAAG,EAAE,CACT,WAAW,CAAa;gBACtB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,IAAI;aACf,CAAC;SACL,CAAC,CAAA;IACJ,CAAC;SAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;QAC7B,IAAI,CAAC,OAAO,CAAC,CAAA;QACb,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YACV,IAAI,EAAE,GAAG,EAAE,CACT,WAAW,CAAa;gBACtB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,CAAC;SACL,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YACV,IAAI,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;SAC9B,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,EAAoB;IAC1C,EAAE,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7D,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;AACnB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM;IACpB,CAAC,CAAC,MAAM,EAAE,CAAA;AACZ,CAAC","sourcesContent":["import type { ComponentModel } from './core/types'\nimport { default as m } from 'mithril'\nimport { Builder, BuilderFn } from './builder'\nimport { isFunction } from './core/utils'\nimport { renderModel } from './core'\nimport { GroupModel } from './components'\n\n/**\n * Mithril's hyperscript function.\n *\n * @public\n * @remarks\n * Useful to create custom components\n */\nexport const h = m\n\n/**\n * Runs the function through a builder system and returns the created controls\n *\n * @param fn - The builder function\n * @returns\n */\nexport function build(fn: BuilderFn) {\n const builder = new Builder()\n fn(builder)\n return builder.controls\n}\n\n/**\n * Mounts a ui to the given element\n *\n * @public\n * @param el - The ui host element\n * @param data - The ui definition object\n */\nexport function mount<T extends ComponentModel>(el: Element | string, data: T | Array<T> | BuilderFn) {\n el = typeof el === 'string' ? document.querySelector(el) : el\n el.classList.add('twui-root')\n if (!data) {\n m.mount(el, null)\n } else if (Array.isArray(data)) {\n m.mount(el, {\n view: () =>\n renderModel<GroupModel>({\n type: 'group',\n children: data,\n }),\n })\n } else if (isFunction(data)) {\n const builder = new Builder()\n data(builder)\n m.mount(el, {\n view: () =>\n renderModel<GroupModel>({\n type: 'group',\n children: builder.controls,\n }),\n })\n } else {\n m.mount(el, {\n view: () => renderModel(data),\n })\n }\n}\n\n/**\n * Unmounts the ui from given host element\n *\n * @public\n * @param el - The ui host element\n */\nexport function unmount(el: Element | string) {\n el = typeof el === 'string' ? document.querySelector(el) : el\n m.mount(el, null)\n}\n\n/**\n * Redraws the ui\n *\n * @public\n * @remarks\n * When changing the ui description object qui callbacks (e.g. `onInput` or `onChange`)\n * the ui will redraw automatically.\n *\n * However if the ui description object is changed from outside the qui callback\n * then this method must be called in order to update the visual state.\n */\nexport function redraw() {\n m.redraw()\n}\n"]}