@aurelia-ui-toolkits/headless 1.0.0

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 (284) hide show
  1. package/dist/alert/ui-alert.html +19 -0
  2. package/dist/alert/ui-alert.js +67 -0
  3. package/dist/alert/ui-alert.js.map +1 -0
  4. package/dist/alert-service/alert-configuration.js +11 -0
  5. package/dist/alert-service/alert-configuration.js.map +1 -0
  6. package/dist/alert-service/alert-modal/alert-modal.html +12 -0
  7. package/dist/alert-service/alert-modal/alert-modal.js +31 -0
  8. package/dist/alert-service/alert-modal/alert-modal.js.map +1 -0
  9. package/dist/alert-service/alert-modal/i-alert-modal-payload.js +2 -0
  10. package/dist/alert-service/alert-modal/i-alert-modal-payload.js.map +1 -0
  11. package/dist/alert-service/alert-service.js +108 -0
  12. package/dist/alert-service/alert-service.js.map +1 -0
  13. package/dist/alert-service/decorators/confirm-action.js +14 -0
  14. package/dist/alert-service/decorators/confirm-action.js.map +1 -0
  15. package/dist/alert-service/decorators/using-progress.js +23 -0
  16. package/dist/alert-service/decorators/using-progress.js.map +1 -0
  17. package/dist/alert-service/exceptions-tracker.js +4 -0
  18. package/dist/alert-service/exceptions-tracker.js.map +1 -0
  19. package/dist/alert-service/prompt-dialog/prompt-dialog.html +13 -0
  20. package/dist/alert-service/prompt-dialog/prompt-dialog.js +39 -0
  21. package/dist/alert-service/prompt-dialog/prompt-dialog.js.map +1 -0
  22. package/dist/badge/ui-badge.html +6 -0
  23. package/dist/badge/ui-badge.js +44 -0
  24. package/dist/badge/ui-badge.js.map +1 -0
  25. package/dist/base/boolean-attr.js +4 -0
  26. package/dist/base/boolean-attr.js.map +1 -0
  27. package/dist/base/i-validated-element.js +2 -0
  28. package/dist/base/i-validated-element.js.map +1 -0
  29. package/dist/base/keys.js +14 -0
  30. package/dist/base/keys.js.map +1 -0
  31. package/dist/breadcrumbs/ui-breadcrumbs.html +10 -0
  32. package/dist/breadcrumbs/ui-breadcrumbs.js +31 -0
  33. package/dist/breadcrumbs/ui-breadcrumbs.js.map +1 -0
  34. package/dist/button/enhance-ui-button.js +25 -0
  35. package/dist/button/enhance-ui-button.js.map +1 -0
  36. package/dist/button/ui-button.html +20 -0
  37. package/dist/button/ui-button.js +77 -0
  38. package/dist/button/ui-button.js.map +1 -0
  39. package/dist/button/ui-icon-button.html +20 -0
  40. package/dist/button/ui-icon-button.js +77 -0
  41. package/dist/button/ui-icon-button.js.map +1 -0
  42. package/dist/checkbox/ui-checkbox.html +32 -0
  43. package/dist/checkbox/ui-checkbox.js +186 -0
  44. package/dist/checkbox/ui-checkbox.js.map +1 -0
  45. package/dist/chip/ui-chip.html +32 -0
  46. package/dist/chip/ui-chip.js +129 -0
  47. package/dist/chip/ui-chip.js.map +1 -0
  48. package/dist/combobox/enhance-ui-combobox.js +26 -0
  49. package/dist/combobox/enhance-ui-combobox.js.map +1 -0
  50. package/dist/combobox/ui-combobox.html +76 -0
  51. package/dist/combobox/ui-combobox.js +478 -0
  52. package/dist/combobox/ui-combobox.js.map +1 -0
  53. package/dist/disclosure/ui-disclosure.html +28 -0
  54. package/dist/disclosure/ui-disclosure.js +75 -0
  55. package/dist/disclosure/ui-disclosure.js.map +1 -0
  56. package/dist/drawer/ui-drawer.html +35 -0
  57. package/dist/drawer/ui-drawer.js +246 -0
  58. package/dist/drawer/ui-drawer.js.map +1 -0
  59. package/dist/index.js +135 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/input/enhance-ui-input.js +26 -0
  62. package/dist/input/enhance-ui-input.js.map +1 -0
  63. package/dist/input/ui-input.html +56 -0
  64. package/dist/input/ui-input.js +259 -0
  65. package/dist/input/ui-input.js.map +1 -0
  66. package/dist/list/ui-list-item.html +22 -0
  67. package/dist/list/ui-list-item.js +59 -0
  68. package/dist/list/ui-list-item.js.map +1 -0
  69. package/dist/list/ui-list.html +10 -0
  70. package/dist/list/ui-list.js +316 -0
  71. package/dist/list/ui-list.js.map +1 -0
  72. package/dist/menu/ui-menu.html +20 -0
  73. package/dist/menu/ui-menu.js +154 -0
  74. package/dist/menu/ui-menu.js.map +1 -0
  75. package/dist/popup/ui-popup.html +16 -0
  76. package/dist/popup/ui-popup.js +397 -0
  77. package/dist/popup/ui-popup.js.map +1 -0
  78. package/dist/progress/ui-progress.html +17 -0
  79. package/dist/progress/ui-progress.js +76 -0
  80. package/dist/progress/ui-progress.js.map +1 -0
  81. package/dist/radio/ui-radio-group.html +27 -0
  82. package/dist/radio/ui-radio-group.js +259 -0
  83. package/dist/radio/ui-radio-group.js.map +1 -0
  84. package/dist/radio/ui-radio.html +11 -0
  85. package/dist/radio/ui-radio.js +55 -0
  86. package/dist/radio/ui-radio.js.map +1 -0
  87. package/dist/segmented-control/ui-segment.html +10 -0
  88. package/dist/segmented-control/ui-segment.js +44 -0
  89. package/dist/segmented-control/ui-segment.js.map +1 -0
  90. package/dist/segmented-control/ui-segmented-control.html +9 -0
  91. package/dist/segmented-control/ui-segmented-control.js +134 -0
  92. package/dist/segmented-control/ui-segmented-control.js.map +1 -0
  93. package/dist/select/enhance-ui-select.js +26 -0
  94. package/dist/select/enhance-ui-select.js.map +1 -0
  95. package/dist/select/ui-select.html +70 -0
  96. package/dist/select/ui-select.js +323 -0
  97. package/dist/select/ui-select.js.map +1 -0
  98. package/dist/slider/ui-slider.html +69 -0
  99. package/dist/slider/ui-slider.js +362 -0
  100. package/dist/slider/ui-slider.js.map +1 -0
  101. package/dist/splitter/ui-splitter.html +14 -0
  102. package/dist/splitter/ui-splitter.js +257 -0
  103. package/dist/splitter/ui-splitter.js.map +1 -0
  104. package/dist/switch/ui-switch.html +23 -0
  105. package/dist/switch/ui-switch.js +121 -0
  106. package/dist/switch/ui-switch.js.map +1 -0
  107. package/dist/table/enhance-ui-table.js +25 -0
  108. package/dist/table/enhance-ui-table.js.map +1 -0
  109. package/dist/table/ui-table-column.html +17 -0
  110. package/dist/table/ui-table-column.js +127 -0
  111. package/dist/table/ui-table-column.js.map +1 -0
  112. package/dist/table/ui-table.html +56 -0
  113. package/dist/table/ui-table.js +225 -0
  114. package/dist/table/ui-table.js.map +1 -0
  115. package/dist/tabs/ui-tab.html +10 -0
  116. package/dist/tabs/ui-tab.js +52 -0
  117. package/dist/tabs/ui-tab.js.map +1 -0
  118. package/dist/tabs/ui-tabs.html +3 -0
  119. package/dist/tabs/ui-tabs.js +112 -0
  120. package/dist/tabs/ui-tabs.js.map +1 -0
  121. package/dist/toast/ui-toast-region.html +11 -0
  122. package/dist/toast/ui-toast-region.js +38 -0
  123. package/dist/toast/ui-toast-region.js.map +1 -0
  124. package/dist/toast/ui-toast-service.js +70 -0
  125. package/dist/toast/ui-toast-service.js.map +1 -0
  126. package/dist/tooltip/ui-tooltip-service.js +63 -0
  127. package/dist/tooltip/ui-tooltip-service.js.map +1 -0
  128. package/dist/tooltip/ui-tooltip.js +221 -0
  129. package/dist/tooltip/ui-tooltip.js.map +1 -0
  130. package/dist/top-app-bar/ui-top-app-bar.html +24 -0
  131. package/dist/top-app-bar/ui-top-app-bar.js +68 -0
  132. package/dist/top-app-bar/ui-top-app-bar.js.map +1 -0
  133. package/dist/tree/ui-tree.html +38 -0
  134. package/dist/tree/ui-tree.js +340 -0
  135. package/dist/tree/ui-tree.js.map +1 -0
  136. package/dist/types/alert/ui-alert.d.ts +11 -0
  137. package/dist/types/alert-service/alert-configuration.d.ts +8 -0
  138. package/dist/types/alert-service/alert-modal/alert-modal.d.ts +7 -0
  139. package/dist/types/alert-service/alert-modal/i-alert-modal-payload.d.ts +14 -0
  140. package/dist/types/alert-service/alert-service.d.ts +17 -0
  141. package/dist/types/alert-service/decorators/confirm-action.d.ts +3 -0
  142. package/dist/types/alert-service/decorators/using-progress.d.ts +6 -0
  143. package/dist/types/alert-service/exceptions-tracker.d.ts +3 -0
  144. package/dist/types/alert-service/prompt-dialog/prompt-dialog.d.ts +17 -0
  145. package/dist/types/badge/ui-badge.d.ts +7 -0
  146. package/dist/types/base/boolean-attr.d.ts +1 -0
  147. package/dist/types/base/i-validated-element.d.ts +10 -0
  148. package/dist/types/base/keys.d.ts +12 -0
  149. package/dist/types/breadcrumbs/ui-breadcrumbs.d.ts +8 -0
  150. package/dist/types/button/enhance-ui-button.d.ts +3 -0
  151. package/dist/types/button/ui-button.d.ts +16 -0
  152. package/dist/types/button/ui-icon-button.d.ts +18 -0
  153. package/dist/types/checkbox/ui-checkbox.d.ts +32 -0
  154. package/dist/types/chip/ui-chip.d.ts +26 -0
  155. package/dist/types/combobox/enhance-ui-combobox.d.ts +3 -0
  156. package/dist/types/combobox/ui-combobox.d.ts +79 -0
  157. package/dist/types/disclosure/ui-disclosure.d.ts +18 -0
  158. package/dist/types/drawer/ui-drawer.d.ts +38 -0
  159. package/dist/types/index.d.ts +91 -0
  160. package/dist/types/input/enhance-ui-input.d.ts +3 -0
  161. package/dist/types/input/ui-input.d.ts +44 -0
  162. package/dist/types/list/ui-list-item.d.ts +10 -0
  163. package/dist/types/list/ui-list.d.ts +45 -0
  164. package/dist/types/menu/ui-menu.d.ts +29 -0
  165. package/dist/types/popup/ui-popup.d.ts +61 -0
  166. package/dist/types/progress/ui-progress.d.ts +15 -0
  167. package/dist/types/radio/ui-radio-group.d.ts +37 -0
  168. package/dist/types/radio/ui-radio.d.ts +11 -0
  169. package/dist/types/segmented-control/ui-segment.d.ts +8 -0
  170. package/dist/types/segmented-control/ui-segmented-control.d.ts +17 -0
  171. package/dist/types/select/enhance-ui-select.d.ts +3 -0
  172. package/dist/types/select/ui-select.d.ts +50 -0
  173. package/dist/types/slider/ui-slider.d.ts +58 -0
  174. package/dist/types/splitter/ui-splitter.d.ts +39 -0
  175. package/dist/types/switch/ui-switch.d.ts +23 -0
  176. package/dist/types/table/enhance-ui-table.d.ts +3 -0
  177. package/dist/types/table/ui-table-column.d.ts +22 -0
  178. package/dist/types/table/ui-table.d.ts +51 -0
  179. package/dist/types/tabs/ui-tab.d.ts +10 -0
  180. package/dist/types/tabs/ui-tabs.d.ts +16 -0
  181. package/dist/types/toast/ui-toast-region.d.ts +6 -0
  182. package/dist/types/toast/ui-toast-service.d.ts +28 -0
  183. package/dist/types/tooltip/ui-tooltip-service.d.ts +23 -0
  184. package/dist/types/tooltip/ui-tooltip.d.ts +35 -0
  185. package/dist/types/top-app-bar/ui-top-app-bar.d.ts +9 -0
  186. package/dist/types/tree/ui-tree.d.ts +70 -0
  187. package/dist/types/validation/ui-validation-controller-factory.d.ts +7 -0
  188. package/dist/types/validation/ui-validation-result-presenter.d.ts +4 -0
  189. package/dist/types/validation/validate.d.ts +13 -0
  190. package/dist/validation/ui-validation-controller-factory.js +17 -0
  191. package/dist/validation/ui-validation-controller-factory.js.map +1 -0
  192. package/dist/validation/ui-validation-result-presenter.js +23 -0
  193. package/dist/validation/ui-validation-result-presenter.js.map +1 -0
  194. package/dist/validation/validate.js +24 -0
  195. package/dist/validation/validate.js.map +1 -0
  196. package/package.json +50 -0
  197. package/src/alert/ui-alert.html +19 -0
  198. package/src/alert/ui-alert.ts +33 -0
  199. package/src/alert-service/alert-configuration.ts +11 -0
  200. package/src/alert-service/alert-modal/alert-modal.html +12 -0
  201. package/src/alert-service/alert-modal/alert-modal.ts +19 -0
  202. package/src/alert-service/alert-modal/i-alert-modal-payload.ts +14 -0
  203. package/src/alert-service/alert-service.ts +116 -0
  204. package/src/alert-service/decorators/confirm-action.ts +18 -0
  205. package/src/alert-service/decorators/using-progress.ts +32 -0
  206. package/src/alert-service/exceptions-tracker.ts +3 -0
  207. package/src/alert-service/prompt-dialog/prompt-dialog.html +13 -0
  208. package/src/alert-service/prompt-dialog/prompt-dialog.ts +37 -0
  209. package/src/badge/ui-badge.html +6 -0
  210. package/src/badge/ui-badge.ts +17 -0
  211. package/src/base/boolean-attr.ts +3 -0
  212. package/src/base/i-validated-element.ts +11 -0
  213. package/src/base/keys.ts +12 -0
  214. package/src/breadcrumbs/ui-breadcrumbs.html +10 -0
  215. package/src/breadcrumbs/ui-breadcrumbs.ts +14 -0
  216. package/src/button/enhance-ui-button.ts +9 -0
  217. package/src/button/ui-button.html +20 -0
  218. package/src/button/ui-button.ts +60 -0
  219. package/src/button/ui-icon-button.html +20 -0
  220. package/src/button/ui-icon-button.ts +62 -0
  221. package/src/checkbox/ui-checkbox.html +32 -0
  222. package/src/checkbox/ui-checkbox.ts +188 -0
  223. package/src/chip/ui-chip.html +32 -0
  224. package/src/chip/ui-chip.ts +118 -0
  225. package/src/combobox/enhance-ui-combobox.ts +10 -0
  226. package/src/combobox/ui-combobox.html +76 -0
  227. package/src/combobox/ui-combobox.ts +450 -0
  228. package/src/disclosure/ui-disclosure.html +28 -0
  229. package/src/disclosure/ui-disclosure.ts +68 -0
  230. package/src/drawer/ui-drawer.html +35 -0
  231. package/src/drawer/ui-drawer.ts +219 -0
  232. package/src/index.ts +152 -0
  233. package/src/input/enhance-ui-input.ts +10 -0
  234. package/src/input/ui-input.html +56 -0
  235. package/src/input/ui-input.ts +225 -0
  236. package/src/list/ui-list-item.html +22 -0
  237. package/src/list/ui-list-item.ts +25 -0
  238. package/src/list/ui-list.html +10 -0
  239. package/src/list/ui-list.ts +330 -0
  240. package/src/menu/ui-menu.html +20 -0
  241. package/src/menu/ui-menu.ts +103 -0
  242. package/src/popup/ui-popup.html +16 -0
  243. package/src/popup/ui-popup.ts +391 -0
  244. package/src/progress/ui-progress.html +17 -0
  245. package/src/progress/ui-progress.ts +51 -0
  246. package/src/radio/ui-radio-group.html +27 -0
  247. package/src/radio/ui-radio-group.ts +250 -0
  248. package/src/radio/ui-radio.html +11 -0
  249. package/src/radio/ui-radio.ts +35 -0
  250. package/src/resource.d.ts +4 -0
  251. package/src/segmented-control/ui-segment.html +10 -0
  252. package/src/segmented-control/ui-segment.ts +20 -0
  253. package/src/segmented-control/ui-segmented-control.html +9 -0
  254. package/src/segmented-control/ui-segmented-control.ts +119 -0
  255. package/src/select/enhance-ui-select.ts +10 -0
  256. package/src/select/ui-select.html +70 -0
  257. package/src/select/ui-select.ts +294 -0
  258. package/src/slider/ui-slider.html +69 -0
  259. package/src/slider/ui-slider.ts +329 -0
  260. package/src/splitter/ui-splitter.html +14 -0
  261. package/src/splitter/ui-splitter.ts +249 -0
  262. package/src/switch/ui-switch.html +23 -0
  263. package/src/switch/ui-switch.ts +121 -0
  264. package/src/table/enhance-ui-table.ts +9 -0
  265. package/src/table/ui-table-column.html +17 -0
  266. package/src/table/ui-table-column.ts +108 -0
  267. package/src/table/ui-table.html +56 -0
  268. package/src/table/ui-table.ts +209 -0
  269. package/src/tabs/ui-tab.html +10 -0
  270. package/src/tabs/ui-tab.ts +30 -0
  271. package/src/tabs/ui-tabs.html +3 -0
  272. package/src/tabs/ui-tabs.ts +105 -0
  273. package/src/toast/ui-toast-region.html +11 -0
  274. package/src/toast/ui-toast-region.ts +18 -0
  275. package/src/toast/ui-toast-service.ts +100 -0
  276. package/src/tooltip/ui-tooltip-service.ts +84 -0
  277. package/src/tooltip/ui-tooltip.ts +200 -0
  278. package/src/top-app-bar/ui-top-app-bar.html +24 -0
  279. package/src/top-app-bar/ui-top-app-bar.ts +27 -0
  280. package/src/tree/ui-tree.html +38 -0
  281. package/src/tree/ui-tree.ts +363 -0
  282. package/src/validation/ui-validation-controller-factory.ts +20 -0
  283. package/src/validation/ui-validation-result-presenter.ts +26 -0
  284. package/src/validation/validate.ts +35 -0
@@ -0,0 +1,20 @@
1
+ <template class="ui-button"
2
+ role="button"
3
+ tabindex.bind="disabled ? -1 : 0"
4
+ aria-disabled.attr="disabled ? '' : null"
5
+ data-disabled.attr="disabled ? '' : null"
6
+ data-hover.attr="hover ? '' : null"
7
+ data-focus.attr="focus ? '' : null"
8
+ data-active.attr="active ? '' : null"
9
+ data-primary.attr="primary ? '' : null"
10
+ data-outlined.attr="outlined ? '' : null"
11
+ mouseenter.trigger="onMouseEnter()"
12
+ mouseleave.trigger="onMouseLeave()"
13
+ focusin.trigger="onFocusIn()"
14
+ focusout.trigger="onFocusOut()"
15
+ pointerdown.trigger="onPointerDown()"
16
+ pointerup.trigger="onPointerUp()"
17
+ pointerleave.trigger="onPointerLeave()"
18
+ click.trigger="onClick($event)">
19
+ <au-slot></au-slot>
20
+ </template>
@@ -0,0 +1,77 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { bindable, customElement } from 'aurelia';
3
+ import { booleanAttr } from '../base/boolean-attr';
4
+ import template from './ui-button.html?raw';
5
+ let UiButton = (() => {
6
+ let _classDecorators = [customElement({ name: 'ui-button', template })];
7
+ let _classDescriptor;
8
+ let _classExtraInitializers = [];
9
+ let _classThis;
10
+ let _disabled_decorators;
11
+ let _disabled_initializers = [];
12
+ let _disabled_extraInitializers = [];
13
+ let _primary_decorators;
14
+ let _primary_initializers = [];
15
+ let _primary_extraInitializers = [];
16
+ let _outlined_decorators;
17
+ let _outlined_initializers = [];
18
+ let _outlined_extraInitializers = [];
19
+ var UiButton = class {
20
+ static { _classThis = this; }
21
+ static {
22
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
23
+ _disabled_decorators = [bindable({ set: booleanAttr })];
24
+ _primary_decorators = [bindable({ set: booleanAttr })];
25
+ _outlined_decorators = [bindable({ set: booleanAttr })];
26
+ __esDecorate(null, null, _disabled_decorators, { kind: "field", name: "disabled", static: false, private: false, access: { has: obj => "disabled" in obj, get: obj => obj.disabled, set: (obj, value) => { obj.disabled = value; } }, metadata: _metadata }, _disabled_initializers, _disabled_extraInitializers);
27
+ __esDecorate(null, null, _primary_decorators, { kind: "field", name: "primary", static: false, private: false, access: { has: obj => "primary" in obj, get: obj => obj.primary, set: (obj, value) => { obj.primary = value; } }, metadata: _metadata }, _primary_initializers, _primary_extraInitializers);
28
+ __esDecorate(null, null, _outlined_decorators, { kind: "field", name: "outlined", static: false, private: false, access: { has: obj => "outlined" in obj, get: obj => obj.outlined, set: (obj, value) => { obj.outlined = value; } }, metadata: _metadata }, _outlined_initializers, _outlined_extraInitializers);
29
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
30
+ UiButton = _classThis = _classDescriptor.value;
31
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
32
+ __runInitializers(_classThis, _classExtraInitializers);
33
+ }
34
+ disabled = __runInitializers(this, _disabled_initializers, false);
35
+ primary = (__runInitializers(this, _disabled_extraInitializers), __runInitializers(this, _primary_initializers, false));
36
+ outlined = (__runInitializers(this, _primary_extraInitializers), __runInitializers(this, _outlined_initializers, false));
37
+ hover = (__runInitializers(this, _outlined_extraInitializers), false);
38
+ focus = false;
39
+ active = false;
40
+ onMouseEnter() {
41
+ if (!this.disabled) {
42
+ this.hover = true;
43
+ }
44
+ }
45
+ onMouseLeave() {
46
+ this.hover = false;
47
+ }
48
+ onFocusIn() {
49
+ if (!this.disabled) {
50
+ this.focus = true;
51
+ }
52
+ }
53
+ onFocusOut() {
54
+ this.focus = false;
55
+ }
56
+ onPointerDown() {
57
+ if (!this.disabled) {
58
+ this.active = true;
59
+ }
60
+ }
61
+ onPointerUp() {
62
+ this.active = false;
63
+ }
64
+ onPointerLeave() {
65
+ this.active = false;
66
+ }
67
+ onClick(event) {
68
+ if (this.disabled) {
69
+ event.preventDefault();
70
+ event.stopImmediatePropagation();
71
+ }
72
+ }
73
+ };
74
+ return UiButton = _classThis;
75
+ })();
76
+ export { UiButton };
77
+ //# sourceMappingURL=ui-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-button.js","sourceRoot":"","sources":["../../src/button/ui-button.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,QAAQ,MAAM,sBAAsB,CAAC;IAG/B,QAAQ;4BADpB,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;;;;;;;;;;;;;;;;;oCAE5C,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;mCAG9B,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;oCAG9B,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;YAL/B,0KAAA,QAAQ,6BAAR,QAAQ,2FAAkB;YAG1B,uKAAA,OAAO,6BAAP,OAAO,yFAAkB;YAGzB,0KAAA,QAAQ,6BAAR,QAAQ,2FAAkB;YAR5B,6KAsDC;;;YAtDY,uDAAQ;;QAEnB,QAAQ,mDAAY,KAAK,EAAC;QAG1B,OAAO,yGAAY,KAAK,GAAC;QAGzB,QAAQ,yGAAY,KAAK,GAAC;QAE1B,KAAK,0DAAY,KAAK,EAAC;QACvB,KAAK,GAAY,KAAK,CAAC;QACvB,MAAM,GAAY,KAAK,CAAC;QAExB,YAAY;YACV,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,CAAC;QACH,CAAC;QAED,YAAY;YACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,SAAS;YACP,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,CAAC;QACH,CAAC;QAED,UAAU;YACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,aAAa;YACX,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;QAED,WAAW;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,cAAc;YACZ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,OAAO,CAAC,KAAiB;YACvB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;;;;SArDU,QAAQ","sourcesContent":["import { bindable, customElement } from 'aurelia';\nimport { booleanAttr } from '../base/boolean-attr';\nimport template from './ui-button.html?raw';\n\n@customElement({ name: 'ui-button', template })\nexport class UiButton {\n @bindable({ set: booleanAttr })\n disabled: boolean = false;\n\n @bindable({ set: booleanAttr })\n primary: boolean = false;\n\n @bindable({ set: booleanAttr })\n outlined: boolean = false;\n\n hover: boolean = false;\n focus: boolean = false;\n active: boolean = false;\n\n onMouseEnter(): void {\n if (!this.disabled) {\n this.hover = true;\n }\n }\n\n onMouseLeave(): void {\n this.hover = false;\n }\n\n onFocusIn(): void {\n if (!this.disabled) {\n this.focus = true;\n }\n }\n\n onFocusOut(): void {\n this.focus = false;\n }\n\n onPointerDown(): void {\n if (!this.disabled) {\n this.active = true;\n }\n }\n\n onPointerUp(): void {\n this.active = false;\n }\n\n onPointerLeave(): void {\n this.active = false;\n }\n\n onClick(event: MouseEvent): void {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n}\n"]}
@@ -0,0 +1,20 @@
1
+ <template class="ui-icon-button"
2
+ role="button"
3
+ tabindex.bind="disabled ? -1 : 0"
4
+ aria-disabled.attr="disabled ? '' : null"
5
+ data-disabled.attr="disabled ? '' : null"
6
+ data-hover.attr="hover ? '' : null"
7
+ data-focus.attr="focus ? '' : null"
8
+ data-active.attr="active ? '' : null"
9
+ data-size.attr="size"
10
+ data-outlined.attr="outlined ? '' : null"
11
+ mouseenter.trigger="onMouseEnter()"
12
+ mouseleave.trigger="onMouseLeave()"
13
+ focusin.trigger="onFocusIn()"
14
+ focusout.trigger="onFocusOut()"
15
+ pointerdown.trigger="onPointerDown()"
16
+ pointerup.trigger="onPointerUp()"
17
+ pointerleave.trigger="onPointerLeave()"
18
+ click.trigger="onClick($event)">
19
+ <au-slot></au-slot>
20
+ </template>
@@ -0,0 +1,77 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { bindable, customElement } from 'aurelia';
3
+ import { booleanAttr } from '../base/boolean-attr';
4
+ import template from './ui-icon-button.html?raw';
5
+ let UiIconButton = (() => {
6
+ let _classDecorators = [customElement({ name: 'ui-icon-button', template })];
7
+ let _classDescriptor;
8
+ let _classExtraInitializers = [];
9
+ let _classThis;
10
+ let _disabled_decorators;
11
+ let _disabled_initializers = [];
12
+ let _disabled_extraInitializers = [];
13
+ let _size_decorators;
14
+ let _size_initializers = [];
15
+ let _size_extraInitializers = [];
16
+ let _outlined_decorators;
17
+ let _outlined_initializers = [];
18
+ let _outlined_extraInitializers = [];
19
+ var UiIconButton = class {
20
+ static { _classThis = this; }
21
+ static {
22
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
23
+ _disabled_decorators = [bindable({ set: booleanAttr })];
24
+ _size_decorators = [bindable];
25
+ _outlined_decorators = [bindable({ set: booleanAttr })];
26
+ __esDecorate(null, null, _disabled_decorators, { kind: "field", name: "disabled", static: false, private: false, access: { has: obj => "disabled" in obj, get: obj => obj.disabled, set: (obj, value) => { obj.disabled = value; } }, metadata: _metadata }, _disabled_initializers, _disabled_extraInitializers);
27
+ __esDecorate(null, null, _size_decorators, { kind: "field", name: "size", static: false, private: false, access: { has: obj => "size" in obj, get: obj => obj.size, set: (obj, value) => { obj.size = value; } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
28
+ __esDecorate(null, null, _outlined_decorators, { kind: "field", name: "outlined", static: false, private: false, access: { has: obj => "outlined" in obj, get: obj => obj.outlined, set: (obj, value) => { obj.outlined = value; } }, metadata: _metadata }, _outlined_initializers, _outlined_extraInitializers);
29
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
30
+ UiIconButton = _classThis = _classDescriptor.value;
31
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
32
+ __runInitializers(_classThis, _classExtraInitializers);
33
+ }
34
+ disabled = __runInitializers(this, _disabled_initializers, false);
35
+ size = (__runInitializers(this, _disabled_extraInitializers), __runInitializers(this, _size_initializers, 'medium'));
36
+ outlined = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _outlined_initializers, false));
37
+ hover = (__runInitializers(this, _outlined_extraInitializers), false);
38
+ focus = false;
39
+ active = false;
40
+ onMouseEnter() {
41
+ if (!this.disabled) {
42
+ this.hover = true;
43
+ }
44
+ }
45
+ onMouseLeave() {
46
+ this.hover = false;
47
+ }
48
+ onFocusIn() {
49
+ if (!this.disabled) {
50
+ this.focus = true;
51
+ }
52
+ }
53
+ onFocusOut() {
54
+ this.focus = false;
55
+ }
56
+ onPointerDown() {
57
+ if (!this.disabled) {
58
+ this.active = true;
59
+ }
60
+ }
61
+ onPointerUp() {
62
+ this.active = false;
63
+ }
64
+ onPointerLeave() {
65
+ this.active = false;
66
+ }
67
+ onClick(event) {
68
+ if (this.disabled) {
69
+ event.preventDefault();
70
+ event.stopImmediatePropagation();
71
+ }
72
+ }
73
+ };
74
+ return UiIconButton = _classThis;
75
+ })();
76
+ export { UiIconButton };
77
+ //# sourceMappingURL=ui-icon-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-icon-button.js","sourceRoot":"","sources":["../../src/button/ui-icon-button.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,QAAQ,MAAM,2BAA2B,CAAC;IAKpC,YAAY;4BADxB,aAAa,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;;;;;;;;;;;;;;;;;oCAEjD,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;gCAG9B,QAAQ;oCAGR,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;YAL/B,0KAAA,QAAQ,6BAAR,QAAQ,2FAAkB;YAG1B,8JAAA,IAAI,6BAAJ,IAAI,mFAA4B;YAGhC,0KAAA,QAAQ,6BAAR,QAAQ,2FAAkB;YAR5B,6KAsDC;;;YAtDY,uDAAY;;QAEvB,QAAQ,mDAAY,KAAK,EAAC;QAG1B,IAAI,sGAAmB,QAAQ,GAAC;QAGhC,QAAQ,sGAAY,KAAK,GAAC;QAE1B,KAAK,0DAAY,KAAK,EAAC;QACvB,KAAK,GAAY,KAAK,CAAC;QACvB,MAAM,GAAY,KAAK,CAAC;QAExB,YAAY;YACV,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,CAAC;QACH,CAAC;QAED,YAAY;YACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,SAAS;YACP,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,CAAC;QACH,CAAC;QAED,UAAU;YACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,aAAa;YACX,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;QAED,WAAW;YACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,cAAc;YACZ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,OAAO,CAAC,KAAiB;YACvB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;;;;SArDU,YAAY","sourcesContent":["import { bindable, customElement } from 'aurelia';\nimport { booleanAttr } from '../base/boolean-attr';\nimport template from './ui-icon-button.html?raw';\n\ntype IconButtonSize = 'small' | 'medium' | 'large';\n\n@customElement({ name: 'ui-icon-button', template })\nexport class UiIconButton {\n @bindable({ set: booleanAttr })\n disabled: boolean = false;\n\n @bindable\n size: IconButtonSize = 'medium';\n\n @bindable({ set: booleanAttr })\n outlined: boolean = false;\n\n hover: boolean = false;\n focus: boolean = false;\n active: boolean = false;\n\n onMouseEnter(): void {\n if (!this.disabled) {\n this.hover = true;\n }\n }\n\n onMouseLeave(): void {\n this.hover = false;\n }\n\n onFocusIn(): void {\n if (!this.disabled) {\n this.focus = true;\n }\n }\n\n onFocusOut(): void {\n this.focus = false;\n }\n\n onPointerDown(): void {\n if (!this.disabled) {\n this.active = true;\n }\n }\n\n onPointerUp(): void {\n this.active = false;\n }\n\n onPointerLeave(): void {\n this.active = false;\n }\n\n onClick(event: MouseEvent): void {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n}\n"]}
@@ -0,0 +1,32 @@
1
+ <template class="ui-checkbox"
2
+ role="checkbox"
3
+ tabindex.bind="disabled ? null : tabIndex"
4
+ aria-checked.attr="indeterminate ? 'mixed' : checked ? 'true' : 'false'"
5
+ aria-disabled.attr="disabled ? '' : null"
6
+ data-checked.attr="checked ? '' : null"
7
+ data-disabled.attr="disabled ? '' : null"
8
+ data-indeterminate.attr="indeterminate ? '' : null"
9
+ data-hover.attr="hover ? '' : null"
10
+ data-focus.attr="focus ? '' : null"
11
+ data-active.attr="active ? '' : null"
12
+ data-changing.attr="changing ? '' : null"
13
+ click.trigger="onClick($event)"
14
+ keyup.trigger="onKeyUp($event)"
15
+ keypress.trigger="onKeyPress($event)"
16
+ mouseenter.trigger="onMouseEnter()"
17
+ mouseleave.trigger="onMouseLeave()"
18
+ focusin.trigger="onFocusIn()"
19
+ focusout.trigger="onFocusOut()"
20
+ pointerdown.trigger="onPointerDown()"
21
+ pointerup.trigger="onPointerUp()"
22
+ pointerleave.trigger="onPointerLeave()">
23
+ <input ref="controlEl"
24
+ class="ui-checkbox__control"
25
+ type="checkbox"
26
+ id.attr="id || null"
27
+ checked.bind="checked"
28
+ disabled.bind="disabled"
29
+ click.trigger="onInputClick($event)"
30
+ change.trigger="onInputChange($event)">
31
+ <span class="ui-checkbox__indicator" aria-hidden="true"></span>
32
+ </template>
@@ -0,0 +1,186 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { bindable, BindingMode, customElement } from 'aurelia';
3
+ import { booleanAttr } from '../base/boolean-attr';
4
+ import { Keys } from '../base/keys';
5
+ import template from './ui-checkbox.html?raw';
6
+ let UiCheckbox = (() => {
7
+ let _classDecorators = [customElement({ name: 'ui-checkbox', template })];
8
+ let _classDescriptor;
9
+ let _classExtraInitializers = [];
10
+ let _classThis;
11
+ let _checked_decorators;
12
+ let _checked_initializers = [];
13
+ let _checked_extraInitializers = [];
14
+ let _disabled_decorators;
15
+ let _disabled_initializers = [];
16
+ let _disabled_extraInitializers = [];
17
+ let _indeterminate_decorators;
18
+ let _indeterminate_initializers = [];
19
+ let _indeterminate_extraInitializers = [];
20
+ let _id_decorators;
21
+ let _id_initializers = [];
22
+ let _id_extraInitializers = [];
23
+ let _tabIndex_decorators;
24
+ let _tabIndex_initializers = [];
25
+ let _tabIndex_extraInitializers = [];
26
+ var UiCheckbox = class {
27
+ static { _classThis = this; }
28
+ static {
29
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
30
+ _checked_decorators = [bindable({ mode: BindingMode.twoWay, set: booleanAttr })];
31
+ _disabled_decorators = [bindable({ set: booleanAttr })];
32
+ _indeterminate_decorators = [bindable({ mode: BindingMode.twoWay, set: booleanAttr })];
33
+ _id_decorators = [bindable];
34
+ _tabIndex_decorators = [bindable];
35
+ __esDecorate(null, null, _checked_decorators, { kind: "field", name: "checked", static: false, private: false, access: { has: obj => "checked" in obj, get: obj => obj.checked, set: (obj, value) => { obj.checked = value; } }, metadata: _metadata }, _checked_initializers, _checked_extraInitializers);
36
+ __esDecorate(null, null, _disabled_decorators, { kind: "field", name: "disabled", static: false, private: false, access: { has: obj => "disabled" in obj, get: obj => obj.disabled, set: (obj, value) => { obj.disabled = value; } }, metadata: _metadata }, _disabled_initializers, _disabled_extraInitializers);
37
+ __esDecorate(null, null, _indeterminate_decorators, { kind: "field", name: "indeterminate", static: false, private: false, access: { has: obj => "indeterminate" in obj, get: obj => obj.indeterminate, set: (obj, value) => { obj.indeterminate = value; } }, metadata: _metadata }, _indeterminate_initializers, _indeterminate_extraInitializers);
38
+ __esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
39
+ __esDecorate(null, null, _tabIndex_decorators, { kind: "field", name: "tabIndex", static: false, private: false, access: { has: obj => "tabIndex" in obj, get: obj => obj.tabIndex, set: (obj, value) => { obj.tabIndex = value; } }, metadata: _metadata }, _tabIndex_initializers, _tabIndex_extraInitializers);
40
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
41
+ UiCheckbox = _classThis = _classDescriptor.value;
42
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
43
+ __runInitializers(_classThis, _classExtraInitializers);
44
+ }
45
+ checked = __runInitializers(this, _checked_initializers, false);
46
+ disabled = (__runInitializers(this, _checked_extraInitializers), __runInitializers(this, _disabled_initializers, false));
47
+ indeterminate = (__runInitializers(this, _disabled_extraInitializers), __runInitializers(this, _indeterminate_initializers, false));
48
+ id = (__runInitializers(this, _indeterminate_extraInitializers), __runInitializers(this, _id_initializers, ''));
49
+ tabIndex = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _tabIndex_initializers, 0));
50
+ hover = (__runInitializers(this, _tabIndex_extraInitializers), false);
51
+ focus = false;
52
+ active = false;
53
+ changing = false;
54
+ controlEl;
55
+ changingFrame;
56
+ onClick(event) {
57
+ if (event.target instanceof HTMLInputElement) {
58
+ return;
59
+ }
60
+ event.preventDefault();
61
+ this.toggle();
62
+ }
63
+ onInputClick(event) {
64
+ event.stopPropagation();
65
+ }
66
+ onInputChange(event) {
67
+ if (!(event.target instanceof HTMLInputElement) || this.disabled) {
68
+ return;
69
+ }
70
+ this.changing = true;
71
+ this.checked = event.target.checked;
72
+ this.indeterminate = false;
73
+ if (this.changingFrame) {
74
+ cancelAnimationFrame(this.changingFrame);
75
+ }
76
+ this.changingFrame = requestAnimationFrame(() => {
77
+ this.changing = false;
78
+ this.changingFrame = undefined;
79
+ });
80
+ }
81
+ onKeyUp(event) {
82
+ if (this.disabled) {
83
+ return;
84
+ }
85
+ if (event.key === Keys.Space) {
86
+ event.preventDefault();
87
+ this.toggle();
88
+ return;
89
+ }
90
+ if (event.key === Keys.Enter) {
91
+ this.submitClosestForm(event.currentTarget);
92
+ }
93
+ }
94
+ onKeyPress(event) {
95
+ if (event.key === Keys.Space || event.key === Keys.Enter) {
96
+ event.preventDefault();
97
+ }
98
+ }
99
+ onMouseEnter() {
100
+ if (!this.disabled) {
101
+ this.hover = true;
102
+ }
103
+ }
104
+ onMouseLeave() {
105
+ this.hover = false;
106
+ }
107
+ onFocusIn() {
108
+ if (!this.disabled) {
109
+ this.focus = true;
110
+ }
111
+ }
112
+ onFocusOut() {
113
+ this.focus = false;
114
+ }
115
+ onPointerDown() {
116
+ if (!this.disabled) {
117
+ this.active = true;
118
+ }
119
+ }
120
+ onPointerUp() {
121
+ this.active = false;
122
+ }
123
+ onPointerLeave() {
124
+ this.active = false;
125
+ }
126
+ detaching() {
127
+ if (this.changingFrame) {
128
+ cancelAnimationFrame(this.changingFrame);
129
+ this.changingFrame = undefined;
130
+ }
131
+ }
132
+ attached() {
133
+ this.syncControlIndeterminate();
134
+ }
135
+ indeterminateChanged() {
136
+ this.syncControlIndeterminate();
137
+ }
138
+ toggle() {
139
+ if (this.disabled) {
140
+ return;
141
+ }
142
+ this.changing = true;
143
+ if (this.indeterminate) {
144
+ this.indeterminate = false;
145
+ this.checked = true;
146
+ }
147
+ else {
148
+ this.checked = !this.checked;
149
+ }
150
+ this.dispatchValueEvent('input');
151
+ this.dispatchValueEvent('change');
152
+ if (this.changingFrame) {
153
+ cancelAnimationFrame(this.changingFrame);
154
+ }
155
+ this.changingFrame = requestAnimationFrame(() => {
156
+ this.changing = false;
157
+ this.changingFrame = undefined;
158
+ });
159
+ }
160
+ submitClosestForm(target) {
161
+ const element = target instanceof HTMLElement ? target : null;
162
+ const form = element?.closest('form');
163
+ if (!form || this.disabled) {
164
+ return;
165
+ }
166
+ if (typeof form.requestSubmit === 'function') {
167
+ form.requestSubmit();
168
+ return;
169
+ }
170
+ form.submit();
171
+ }
172
+ syncControlIndeterminate() {
173
+ if (this.controlEl) {
174
+ this.controlEl.indeterminate = this.indeterminate;
175
+ }
176
+ }
177
+ dispatchValueEvent(type) {
178
+ this.controlEl.checked = this.checked;
179
+ this.controlEl.indeterminate = this.indeterminate;
180
+ this.controlEl.dispatchEvent(new Event(type, { bubbles: true }));
181
+ }
182
+ };
183
+ return UiCheckbox = _classThis;
184
+ })();
185
+ export { UiCheckbox };
186
+ //# sourceMappingURL=ui-checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-checkbox.js","sourceRoot":"","sources":["../../src/checkbox/ui-checkbox.ts"],"names":[],"mappings":"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","sourcesContent":["import { bindable, BindingMode, customElement } from 'aurelia';\nimport { booleanAttr } from '../base/boolean-attr';\nimport { Keys } from '../base/keys';\nimport template from './ui-checkbox.html?raw';\n\n@customElement({ name: 'ui-checkbox', template })\nexport class UiCheckbox {\n @bindable({ mode: BindingMode.twoWay, set: booleanAttr })\n checked: boolean = false;\n\n @bindable({ set: booleanAttr })\n disabled: boolean = false;\n\n @bindable({ mode: BindingMode.twoWay, set: booleanAttr })\n indeterminate: boolean = false;\n\n @bindable\n id: string = '';\n\n @bindable\n tabIndex: number = 0;\n\n hover: boolean = false;\n focus: boolean = false;\n active: boolean = false;\n changing: boolean = false;\n\n controlEl!: HTMLInputElement;\n\n private changingFrame: number | undefined;\n\n onClick(event: MouseEvent): void {\n if (event.target instanceof HTMLInputElement) {\n return;\n }\n\n event.preventDefault();\n this.toggle();\n }\n\n onInputClick(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n onInputChange(event: Event): void {\n if (!(event.target instanceof HTMLInputElement) || this.disabled) {\n return;\n }\n\n this.changing = true;\n this.checked = event.target.checked;\n this.indeterminate = false;\n\n if (this.changingFrame) {\n cancelAnimationFrame(this.changingFrame);\n }\n\n this.changingFrame = requestAnimationFrame(() => {\n this.changing = false;\n this.changingFrame = undefined;\n });\n }\n\n onKeyUp(event: KeyboardEvent): void {\n if (this.disabled) {\n return;\n }\n\n if (event.key === Keys.Space) {\n event.preventDefault();\n this.toggle();\n return;\n }\n\n if (event.key === Keys.Enter) {\n this.submitClosestForm(event.currentTarget);\n }\n }\n\n onKeyPress(event: KeyboardEvent): void {\n if (event.key === Keys.Space || event.key === Keys.Enter) {\n event.preventDefault();\n }\n }\n\n onMouseEnter(): void {\n if (!this.disabled) {\n this.hover = true;\n }\n }\n\n onMouseLeave(): void {\n this.hover = false;\n }\n\n onFocusIn(): void {\n if (!this.disabled) {\n this.focus = true;\n }\n }\n\n onFocusOut(): void {\n this.focus = false;\n }\n\n onPointerDown(): void {\n if (!this.disabled) {\n this.active = true;\n }\n }\n\n onPointerUp(): void {\n this.active = false;\n }\n\n onPointerLeave(): void {\n this.active = false;\n }\n\n detaching(): void {\n if (this.changingFrame) {\n cancelAnimationFrame(this.changingFrame);\n this.changingFrame = undefined;\n }\n }\n\n attached(): void {\n this.syncControlIndeterminate();\n }\n\n indeterminateChanged(): void {\n this.syncControlIndeterminate();\n }\n\n private toggle(): void {\n if (this.disabled) {\n return;\n }\n\n this.changing = true;\n if (this.indeterminate) {\n this.indeterminate = false;\n this.checked = true;\n } else {\n this.checked = !this.checked;\n }\n\n this.dispatchValueEvent('input');\n this.dispatchValueEvent('change');\n\n if (this.changingFrame) {\n cancelAnimationFrame(this.changingFrame);\n }\n\n this.changingFrame = requestAnimationFrame(() => {\n this.changing = false;\n this.changingFrame = undefined;\n });\n }\n\n private submitClosestForm(target: EventTarget | null): void {\n const element = target instanceof HTMLElement ? target : null;\n const form = element?.closest('form');\n\n if (!form || this.disabled) {\n return;\n }\n\n if (typeof form.requestSubmit === 'function') {\n form.requestSubmit();\n return;\n }\n\n form.submit();\n }\n\n private syncControlIndeterminate(): void {\n if (this.controlEl) {\n this.controlEl.indeterminate = this.indeterminate;\n }\n }\n\n private dispatchValueEvent(type: 'input' | 'change'): void {\n this.controlEl.checked = this.checked;\n this.controlEl.indeterminate = this.indeterminate;\n this.controlEl.dispatchEvent(new Event(type, { bubbles: true }));\n }\n}\n"]}
@@ -0,0 +1,32 @@
1
+ <template class="ui-chip"
2
+ role="button"
3
+ tabindex.bind="disabled ? -1 : 0"
4
+ aria-pressed.attr="selected ? 'true' : 'false'"
5
+ aria-disabled.attr="disabled ? 'true' : null"
6
+ data-tone.attr="tone"
7
+ data-selected.attr="selected ? '' : null"
8
+ data-disabled.attr="disabled ? '' : null"
9
+ data-removable.attr="removable ? '' : null"
10
+ data-hover.attr="hover ? '' : null"
11
+ data-focus.attr="focus ? '' : null"
12
+ data-active.attr="active ? '' : null"
13
+ click.trigger="onClick($event)"
14
+ keydown.trigger="onKeyDown($event)"
15
+ mouseenter.trigger="onMouseEnter()"
16
+ mouseleave.trigger="onMouseLeave()"
17
+ focusin.trigger="onFocusIn()"
18
+ focusout.trigger="onFocusOut()"
19
+ pointerdown.trigger="onPointerDown()"
20
+ pointerup.trigger="onPointerUp()"
21
+ pointerleave.trigger="onPointerLeave()">
22
+ <span class="ui-chip__content"><au-slot></au-slot></span>
23
+ <button class="ui-chip__remove"
24
+ if.bind="removable"
25
+ type="button"
26
+ tabindex="-1"
27
+ aria-label="Remove"
28
+ disabled.bind="disabled"
29
+ click.trigger="onRemoveClick($event)">
30
+ <span class="ui-chip__remove-icon" aria-hidden="true"></span>
31
+ </button>
32
+ </template>
@@ -0,0 +1,129 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { bindable, BindingMode, customElement, INode, resolve } from 'aurelia';
3
+ import { booleanAttr } from '../base/boolean-attr';
4
+ import { Keys } from '../base/keys';
5
+ import template from './ui-chip.html?raw';
6
+ let UiChip = (() => {
7
+ let _classDecorators = [customElement({ name: 'ui-chip', template })];
8
+ let _classDescriptor;
9
+ let _classExtraInitializers = [];
10
+ let _classThis;
11
+ let _selected_decorators;
12
+ let _selected_initializers = [];
13
+ let _selected_extraInitializers = [];
14
+ let _disabled_decorators;
15
+ let _disabled_initializers = [];
16
+ let _disabled_extraInitializers = [];
17
+ let _removable_decorators;
18
+ let _removable_initializers = [];
19
+ let _removable_extraInitializers = [];
20
+ let _value_decorators;
21
+ let _value_initializers = [];
22
+ let _value_extraInitializers = [];
23
+ let _tone_decorators;
24
+ let _tone_initializers = [];
25
+ let _tone_extraInitializers = [];
26
+ var UiChip = class {
27
+ static { _classThis = this; }
28
+ static {
29
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
30
+ _selected_decorators = [bindable({ mode: BindingMode.twoWay, set: booleanAttr })];
31
+ _disabled_decorators = [bindable({ set: booleanAttr })];
32
+ _removable_decorators = [bindable({ set: booleanAttr })];
33
+ _value_decorators = [bindable];
34
+ _tone_decorators = [bindable];
35
+ __esDecorate(null, null, _selected_decorators, { kind: "field", name: "selected", static: false, private: false, access: { has: obj => "selected" in obj, get: obj => obj.selected, set: (obj, value) => { obj.selected = value; } }, metadata: _metadata }, _selected_initializers, _selected_extraInitializers);
36
+ __esDecorate(null, null, _disabled_decorators, { kind: "field", name: "disabled", static: false, private: false, access: { has: obj => "disabled" in obj, get: obj => obj.disabled, set: (obj, value) => { obj.disabled = value; } }, metadata: _metadata }, _disabled_initializers, _disabled_extraInitializers);
37
+ __esDecorate(null, null, _removable_decorators, { kind: "field", name: "removable", static: false, private: false, access: { has: obj => "removable" in obj, get: obj => obj.removable, set: (obj, value) => { obj.removable = value; } }, metadata: _metadata }, _removable_initializers, _removable_extraInitializers);
38
+ __esDecorate(null, null, _value_decorators, { kind: "field", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
39
+ __esDecorate(null, null, _tone_decorators, { kind: "field", name: "tone", static: false, private: false, access: { has: obj => "tone" in obj, get: obj => obj.tone, set: (obj, value) => { obj.tone = value; } }, metadata: _metadata }, _tone_initializers, _tone_extraInitializers);
40
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
41
+ UiChip = _classThis = _classDescriptor.value;
42
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
43
+ __runInitializers(_classThis, _classExtraInitializers);
44
+ }
45
+ host = resolve(INode);
46
+ selected = __runInitializers(this, _selected_initializers, false);
47
+ disabled = (__runInitializers(this, _selected_extraInitializers), __runInitializers(this, _disabled_initializers, false));
48
+ removable = (__runInitializers(this, _disabled_extraInitializers), __runInitializers(this, _removable_initializers, false));
49
+ value = (__runInitializers(this, _removable_extraInitializers), __runInitializers(this, _value_initializers, void 0));
50
+ tone = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _tone_initializers, 'neutral'));
51
+ hover = (__runInitializers(this, _tone_extraInitializers), false);
52
+ focus = false;
53
+ active = false;
54
+ onClick(event) {
55
+ if (this.disabled || this.isRemoveTarget(event.target)) {
56
+ return;
57
+ }
58
+ this.toggleSelected();
59
+ }
60
+ onKeyDown(event) {
61
+ if (this.disabled) {
62
+ return;
63
+ }
64
+ if (event.key === Keys.Space || event.key === Keys.Enter) {
65
+ event.preventDefault();
66
+ this.toggleSelected();
67
+ return;
68
+ }
69
+ if (this.removable && (event.key === 'Backspace' || event.key === 'Delete')) {
70
+ event.preventDefault();
71
+ this.remove();
72
+ }
73
+ }
74
+ onRemoveClick(event) {
75
+ event.preventDefault();
76
+ event.stopPropagation();
77
+ this.remove();
78
+ }
79
+ onMouseEnter() {
80
+ if (!this.disabled) {
81
+ this.hover = true;
82
+ }
83
+ }
84
+ onMouseLeave() {
85
+ this.hover = false;
86
+ }
87
+ onFocusIn() {
88
+ if (!this.disabled) {
89
+ this.focus = true;
90
+ }
91
+ }
92
+ onFocusOut() {
93
+ this.focus = false;
94
+ }
95
+ onPointerDown() {
96
+ if (!this.disabled) {
97
+ this.active = true;
98
+ }
99
+ }
100
+ onPointerUp() {
101
+ this.active = false;
102
+ }
103
+ onPointerLeave() {
104
+ this.active = false;
105
+ }
106
+ toggleSelected() {
107
+ this.selected = !this.selected;
108
+ this.host.dispatchEvent(new CustomEvent('chip-select', {
109
+ bubbles: true,
110
+ detail: { selected: this.selected, value: this.value }
111
+ }));
112
+ }
113
+ remove() {
114
+ if (this.disabled || !this.removable) {
115
+ return;
116
+ }
117
+ this.host.dispatchEvent(new CustomEvent('chip-remove', {
118
+ bubbles: true,
119
+ detail: { value: this.value }
120
+ }));
121
+ }
122
+ isRemoveTarget(target) {
123
+ return target instanceof HTMLElement && !!target.closest('.ui-chip__remove');
124
+ }
125
+ };
126
+ return UiChip = _classThis;
127
+ })();
128
+ export { UiChip };
129
+ //# sourceMappingURL=ui-chip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-chip.js","sourceRoot":"","sources":["../../src/chip/ui-chip.ts"],"names":[],"mappings":"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","sourcesContent":["import { bindable, BindingMode, customElement, INode, resolve } from 'aurelia';\nimport { booleanAttr } from '../base/boolean-attr';\nimport { Keys } from '../base/keys';\nimport template from './ui-chip.html?raw';\n\ntype ChipTone = 'neutral' | 'primary' | 'success' | 'warning' | 'danger';\n\n@customElement({ name: 'ui-chip', template })\nexport class UiChip {\n private readonly host = resolve(INode) as HTMLElement;\n\n @bindable({ mode: BindingMode.twoWay, set: booleanAttr })\n selected = false;\n\n @bindable({ set: booleanAttr })\n disabled = false;\n\n @bindable({ set: booleanAttr })\n removable = false;\n\n @bindable\n value: unknown;\n\n @bindable\n tone: ChipTone = 'neutral';\n\n hover = false;\n focus = false;\n active = false;\n\n onClick(event: MouseEvent): void {\n if (this.disabled || this.isRemoveTarget(event.target)) {\n return;\n }\n\n this.toggleSelected();\n }\n\n onKeyDown(event: KeyboardEvent): void {\n if (this.disabled) {\n return;\n }\n\n if (event.key === Keys.Space || event.key === Keys.Enter) {\n event.preventDefault();\n this.toggleSelected();\n return;\n }\n\n if (this.removable && (event.key === 'Backspace' || event.key === 'Delete')) {\n event.preventDefault();\n this.remove();\n }\n }\n\n onRemoveClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.remove();\n }\n\n onMouseEnter(): void {\n if (!this.disabled) {\n this.hover = true;\n }\n }\n\n onMouseLeave(): void {\n this.hover = false;\n }\n\n onFocusIn(): void {\n if (!this.disabled) {\n this.focus = true;\n }\n }\n\n onFocusOut(): void {\n this.focus = false;\n }\n\n onPointerDown(): void {\n if (!this.disabled) {\n this.active = true;\n }\n }\n\n onPointerUp(): void {\n this.active = false;\n }\n\n onPointerLeave(): void {\n this.active = false;\n }\n\n private toggleSelected(): void {\n this.selected = !this.selected;\n this.host.dispatchEvent(new CustomEvent('chip-select', {\n bubbles: true,\n detail: { selected: this.selected, value: this.value }\n }));\n }\n\n private remove(): void {\n if (this.disabled || !this.removable) {\n return;\n }\n\n this.host.dispatchEvent(new CustomEvent('chip-remove', {\n bubbles: true,\n detail: { value: this.value }\n }));\n }\n\n private isRemoveTarget(target: EventTarget | null): boolean {\n return target instanceof HTMLElement && !!target.closest('.ui-chip__remove');\n }\n}\n"]}