@swiftwc/ui 0.0.0-dev.3 → 0.0.0-dev.30

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 (302) hide show
  1. package/README.md +15 -0
  2. package/generated/buses/alert-dialog.d.ts +2 -0
  3. package/generated/buses/alert-dialog.js +1 -0
  4. package/generated/buses/confirmation-dialog.d.ts +2 -0
  5. package/generated/buses/confirmation-dialog.js +1 -0
  6. package/generated/buses/index.d.ts +6 -0
  7. package/generated/buses/index.js +6 -0
  8. package/generated/buses/lifecycle-observer.d.ts +2 -0
  9. package/generated/buses/lifecycle-observer.js +1 -0
  10. package/generated/client/index.d.ts +31 -2
  11. package/generated/client/index.js +415 -8
  12. package/generated/components/alert-dialog.d.ts +8 -0
  13. package/generated/components/alert-dialog.js +94 -0
  14. package/generated/components/body-view.d.ts +5 -0
  15. package/generated/components/body-view.js +11 -0
  16. package/generated/components/bordered-button.d.ts +13 -0
  17. package/generated/components/bordered-button.js +42 -0
  18. package/generated/components/bordered-prominent-button.d.ts +13 -0
  19. package/generated/components/bordered-prominent-button.js +42 -0
  20. package/generated/components/borderless-button.d.ts +13 -0
  21. package/generated/components/borderless-button.js +42 -0
  22. package/generated/components/confirmation-dialog.d.ts +9 -0
  23. package/generated/components/confirmation-dialog.js +108 -0
  24. package/generated/components/content-unavailable-view.d.ts +24 -0
  25. package/generated/components/content-unavailable-view.js +78 -0
  26. package/generated/components/date-picker.d.ts +46 -0
  27. package/generated/components/date-picker.js +442 -0
  28. package/generated/components/disclosure-group.d.ts +9 -0
  29. package/generated/components/disclosure-group.js +54 -0
  30. package/generated/components/fine-tooltip.d.ts +7 -0
  31. package/generated/components/fine-tooltip.js +104 -0
  32. package/generated/components/form-view.d.ts +6 -0
  33. package/generated/components/form-view.js +58 -0
  34. package/generated/components/glass-button.d.ts +12 -0
  35. package/generated/components/glass-button.js +39 -0
  36. package/generated/components/glass-prominent-button.d.ts +12 -0
  37. package/generated/components/glass-prominent-button.js +39 -0
  38. package/generated/components/index.d.ts +41 -1
  39. package/generated/components/index.js +41 -6
  40. package/generated/components/label-view.d.ts +9 -0
  41. package/generated/components/label-view.js +56 -0
  42. package/generated/components/list-view.d.ts +5 -0
  43. package/generated/components/list-view.js +29 -0
  44. package/generated/components/menu-view.d.ts +9 -0
  45. package/generated/components/menu-view.js +138 -0
  46. package/generated/components/navigation-large-title.d.ts +6 -0
  47. package/generated/components/navigation-large-title.js +177 -0
  48. package/generated/components/navigation-split-view.d.ts +10 -0
  49. package/generated/components/navigation-split-view.js +21 -0
  50. package/generated/components/navigation-stack.d.ts +10 -0
  51. package/generated/components/navigation-stack.js +27 -0
  52. package/generated/components/navigation-title.d.ts +8 -0
  53. package/generated/components/navigation-title.js +49 -0
  54. package/generated/components/picker-view.d.ts +27 -0
  55. package/generated/components/picker-view.js +452 -0
  56. package/generated/components/plain-button.d.ts +7 -0
  57. package/generated/components/plain-button.js +20 -0
  58. package/generated/components/progress-view.d.ts +13 -0
  59. package/generated/components/progress-view.js +122 -0
  60. package/generated/components/screen-view.d.ts +5 -0
  61. package/generated/components/screen-view.js +9 -0
  62. package/generated/components/scroll-view-proxy.d.ts +8 -0
  63. package/generated/components/scroll-view-proxy.js +14 -0
  64. package/generated/components/scroll-view.d.ts +10 -0
  65. package/generated/components/scroll-view.js +197 -0
  66. package/generated/components/section-view.d.ts +9 -0
  67. package/generated/components/section-view.js +81 -0
  68. package/generated/components/sheet-view.d.ts +8 -0
  69. package/generated/components/sheet-view.js +85 -0
  70. package/generated/components/sidebar-toggle.d.ts +7 -0
  71. package/generated/components/sidebar-toggle.js +82 -0
  72. package/generated/components/sidebar-view.d.ts +7 -0
  73. package/generated/components/sidebar-view.js +35 -0
  74. package/generated/components/sticky-container.d.ts +6 -0
  75. package/generated/components/sticky-container.js +24 -0
  76. package/generated/components/tab-bar.d.ts +10 -0
  77. package/generated/components/tab-bar.js +42 -0
  78. package/generated/components/tab-item.d.ts +7 -0
  79. package/generated/components/tab-item.js +125 -0
  80. package/generated/components/tab-view.d.ts +22 -0
  81. package/generated/components/tab-view.js +259 -0
  82. package/generated/components/table-view.d.ts +7 -0
  83. package/generated/components/table-view.js +187 -0
  84. package/generated/components/text-field.d.ts +29 -0
  85. package/generated/components/text-field.js +478 -0
  86. package/generated/components/tool-bar-item-group.d.ts +5 -0
  87. package/generated/components/tool-bar-item-group.js +28 -0
  88. package/generated/components/tool-bar-item.d.ts +7 -0
  89. package/generated/components/tool-bar-item.js +53 -0
  90. package/generated/components/tool-bar.d.ts +19 -0
  91. package/generated/components/tool-bar.js +90 -0
  92. package/generated/components/v-keyboard.d.ts +11 -0
  93. package/generated/components/v-keyboard.js +81 -0
  94. package/generated/components/v-stack.d.ts +10 -0
  95. package/generated/components/v-stack.js +16 -0
  96. package/generated/css/index.css +8067 -0
  97. package/generated/events/alert-dialog.d.ts +8 -0
  98. package/generated/events/alert-dialog.js +1 -0
  99. package/generated/events/confirmation-dialog.d.ts +9 -0
  100. package/generated/events/confirmation-dialog.js +1 -0
  101. package/generated/events/date-picker.d.ts +8 -0
  102. package/generated/events/date-picker.js +1 -0
  103. package/generated/events/index.d.ts +8 -0
  104. package/generated/events/index.js +8 -0
  105. package/generated/events/lifecycle-observer.d.ts +10 -0
  106. package/generated/events/lifecycle-observer.js +1 -0
  107. package/generated/events/picker-view.d.ts +8 -0
  108. package/generated/events/picker-view.js +1 -0
  109. package/generated/events/scroll-view.d.ts +10 -0
  110. package/generated/events/scroll-view.js +1 -0
  111. package/generated/events/tab-view.d.ts +28 -0
  112. package/generated/events/tab-view.js +1 -0
  113. package/generated/events/text-field.d.ts +8 -0
  114. package/generated/events/text-field.js +1 -0
  115. package/generated/i18n/index.d.ts +34 -0
  116. package/generated/i18n/index.js +167 -0
  117. package/generated/i18n/locales/el.d.ts +15 -0
  118. package/generated/i18n/locales/el.js +15 -0
  119. package/generated/i18n/locales/en.d.ts +15 -0
  120. package/generated/i18n/locales/en.js +15 -0
  121. package/generated/i18n/locales/index.d.ts +4 -0
  122. package/generated/i18n/locales/index.js +4 -0
  123. package/generated/index.js +1 -1
  124. package/generated/internal/class/cleanup-registry.d.ts +5 -0
  125. package/generated/internal/class/cleanup-registry.js +38 -0
  126. package/generated/internal/class/css-style-observer.d.ts +8 -0
  127. package/generated/internal/class/css-style-observer.js +25 -0
  128. package/generated/internal/class/form-associated-base.d.ts +20 -0
  129. package/generated/internal/class/form-associated-base.js +96 -0
  130. package/generated/internal/class/mutation-observer-singleton.d.ts +10 -0
  131. package/generated/internal/class/mutation-observer-singleton.js +46 -0
  132. package/generated/internal/class/navigation-path.d.ts +15 -0
  133. package/generated/internal/class/navigation-path.js +84 -0
  134. package/generated/internal/class/navigation-view.d.ts +8 -0
  135. package/generated/internal/class/navigation-view.js +77 -0
  136. package/generated/internal/class/resize-observer-singleton.d.ts +7 -0
  137. package/generated/internal/class/resize-observer-singleton.js +22 -0
  138. package/generated/internal/decorators/custom-element.d.ts +5 -0
  139. package/generated/internal/decorators/custom-element.js +4 -0
  140. package/generated/internal/privateNamespace.d.ts +4 -0
  141. package/generated/internal/privateNamespace.js +1 -0
  142. package/generated/internal/utils/add.d.ts +1 -0
  143. package/generated/internal/utils/add.js +7 -0
  144. package/generated/internal/utils/button-role.d.ts +1 -0
  145. package/generated/internal/utils/button-role.js +59 -0
  146. package/generated/internal/utils/cash/ancestors.d.ts +1 -0
  147. package/generated/internal/utils/cash/ancestors.js +27 -0
  148. package/generated/internal/utils/cash/index.d.ts +23 -0
  149. package/generated/internal/utils/cash/index.js +25 -0
  150. package/generated/internal/utils/cash/next-all.d.ts +1 -0
  151. package/generated/internal/utils/cash/next-all.js +10 -0
  152. package/generated/internal/utils/cash/next.d.ts +1 -0
  153. package/generated/internal/utils/cash/next.js +9 -0
  154. package/generated/internal/utils/cash/prev-all.d.ts +1 -0
  155. package/generated/internal/utils/cash/prev-all.js +10 -0
  156. package/generated/internal/utils/cash/prev.d.ts +1 -0
  157. package/generated/internal/utils/cash/prev.js +9 -0
  158. package/generated/internal/utils/cash/prop.d.ts +18 -0
  159. package/generated/internal/utils/cash/prop.js +30 -0
  160. package/generated/internal/utils/cash/siblings.d.ts +1 -0
  161. package/generated/internal/utils/cash/siblings.js +10 -0
  162. package/generated/internal/utils/clamp.d.ts +1 -0
  163. package/generated/internal/utils/clamp.js +4 -0
  164. package/generated/internal/utils/compare-big-decimals.d.ts +1 -0
  165. package/generated/internal/utils/compare-big-decimals.js +90 -0
  166. package/generated/internal/utils/css-time.d.ts +1 -0
  167. package/generated/internal/utils/css-time.js +3 -0
  168. package/generated/internal/utils/debounce.d.ts +1 -0
  169. package/generated/internal/utils/debounce.js +13 -0
  170. package/generated/internal/utils/frame.d.ts +1 -0
  171. package/generated/internal/utils/frame.js +6 -0
  172. package/generated/internal/utils/index.d.ts +19 -1
  173. package/generated/internal/utils/index.js +20 -1
  174. package/generated/internal/utils/is-inside.d.ts +1 -0
  175. package/generated/internal/utils/is-inside.js +4 -0
  176. package/generated/internal/utils/kebab-case.d.ts +1 -1
  177. package/generated/internal/utils/kebab-case.js +3 -3
  178. package/generated/internal/utils/list-active.d.ts +7 -0
  179. package/generated/internal/utils/list-active.js +83 -0
  180. package/generated/internal/utils/microtask.d.ts +1 -0
  181. package/generated/internal/utils/microtask.js +3 -0
  182. package/generated/internal/utils/onoff.d.ts +45 -0
  183. package/generated/internal/utils/onoff.js +31 -0
  184. package/generated/internal/utils/set.d.ts +1 -0
  185. package/generated/internal/utils/set.js +7 -0
  186. package/generated/internal/utils/sleep.d.ts +1 -0
  187. package/generated/internal/utils/sleep.js +3 -0
  188. package/generated/internal/utils/slow-hide-show.d.ts +1 -0
  189. package/generated/internal/utils/slow-hide-show.js +16 -0
  190. package/generated/internal/utils/timeout.d.ts +5 -0
  191. package/generated/internal/utils/timeout.js +16 -0
  192. package/generated/internal/utils/touch-glass.d.ts +7 -0
  193. package/generated/internal/utils/touch-glass.js +19 -0
  194. package/generated/namespace-browser/base.d.ts +36 -0
  195. package/generated/namespace-browser/base.js +92 -0
  196. package/generated/namespace-browser/index.d.ts +7 -0
  197. package/generated/namespace-browser/index.js +1 -0
  198. package/generated/snapshot/index.d.ts +9 -0
  199. package/generated/snapshot/index.js +58 -0
  200. package/package.json +36 -9
  201. package/scss/_base.scss +5 -0
  202. package/scss/_components.scss +82 -0
  203. package/scss/_final.scss +1 -0
  204. package/scss/_functions.scss +31 -0
  205. package/scss/_mixins.scss +7 -0
  206. package/scss/_placeholders.scss +3 -0
  207. package/scss/_transitions.scss +32 -0
  208. package/scss/_utils.scss +9 -0
  209. package/scss/_vars.scss +179 -3
  210. package/scss/base/_layout.scss +56 -0
  211. package/scss/base/_reboot.scss +191 -0
  212. package/scss/base/_root.scss +397 -0
  213. package/scss/colors/_index.scss +704 -0
  214. package/scss/components/_alert-dialog.scss +111 -0
  215. package/scss/components/_body-view.scss +17 -0
  216. package/scss/components/_bordered-button.scss +57 -0
  217. package/scss/components/_bordered-prominent-button.scss +63 -0
  218. package/scss/components/_borderless-button.scss +44 -0
  219. package/scss/components/_confirmation-dialog.scss +117 -0
  220. package/scss/components/_content-unavailable-view.scss +45 -0
  221. package/scss/components/_date-picker.scss +30 -0
  222. package/scss/components/_detail-placeholder.scss +153 -0
  223. package/scss/components/_disclosure-group.scss +175 -0
  224. package/scss/components/_fine-tooltip.scss +82 -0
  225. package/scss/components/_form-view.scss +195 -0
  226. package/scss/components/_full-screen.scss +15 -0
  227. package/scss/components/_glass-button.scss +59 -0
  228. package/scss/components/_glass-prominent-button.scss +68 -0
  229. package/scss/components/_h-divider.scss +13 -0
  230. package/scss/components/_h-flex-stack.scss +23 -0
  231. package/scss/components/_h-stack.scss +29 -0
  232. package/scss/components/_index.scss +249 -0
  233. package/scss/components/_label-view copy.scss.txt +420 -0
  234. package/scss/components/_label-view.scss +355 -0
  235. package/scss/components/_label-view.scss.txt +536 -0
  236. package/scss/components/_labeled-content.scss +9 -0
  237. package/scss/components/_list-view.scss +229 -0
  238. package/scss/components/_menu-view.scss +205 -0
  239. package/scss/components/_navigation-large-title.scss +27 -0
  240. package/scss/components/_navigation-split-view.scss +424 -0
  241. package/scss/components/_navigation-stack.scss +11 -0
  242. package/scss/components/_navigation-title.scss +10 -0
  243. package/scss/components/_picker-view.scss +122 -0
  244. package/scss/components/_plain-button.scss +18 -0
  245. package/scss/components/_progress-view.scss +98 -0
  246. package/scss/components/_scroll-view-proxy.scss +79 -0
  247. package/scss/components/_scroll-view-toolbars.scss +126 -0
  248. package/scss/components/_scroll-view.scss +130 -0
  249. package/scss/components/_section-view.scss +119 -0
  250. package/scss/components/_sheet-view.scss +102 -0
  251. package/scss/components/_sidebar-toggle.scss +121 -0
  252. package/scss/components/_sidebar-view.scss +53 -0
  253. package/scss/components/_sticky-container.scss +42 -0
  254. package/scss/components/_tab-bar.scss +260 -0
  255. package/scss/components/_tab-item.scss +25 -0
  256. package/scss/components/_tab-view.scss +312 -0
  257. package/scss/components/_table-column.scss +52 -0
  258. package/scss/components/_table-row.scss +172 -0
  259. package/scss/components/_table-view.scss +223 -0
  260. package/scss/components/_text-field.scss +37 -0
  261. package/scss/components/_tool-bar-item-group.scss +48 -0
  262. package/scss/components/_tool-bar-item.scss +97 -0
  263. package/scss/components/_tool-bar.scss +153 -0
  264. package/scss/components/_v-divider.scss +13 -0
  265. package/scss/components/_v-flex-stack.scss +29 -0
  266. package/scss/components/_v-keyboard.scss +14 -0
  267. package/scss/components/_v-stack.scss +25 -0
  268. package/scss/final/_touch-glass.scss +91 -0
  269. package/scss/index.scss +15 -6
  270. package/scss/mixins/_button.scss +44 -0
  271. package/scss/mixins/_color.scss +16 -0
  272. package/scss/mixins/_dialog.scss +89 -0
  273. package/scss/mixins/_index.scss +422 -0
  274. package/scss/placeholders/_buttons.scss +117 -0
  275. package/scss/placeholders/_lists.scss +561 -0
  276. package/scss/transitions/_alert-dialog.scss +18 -0
  277. package/scss/transitions/_bwd.navbar.scss +19 -0
  278. package/scss/transitions/_bwd.scss +39 -0
  279. package/scss/transitions/_confirmation-dialog.scss +13 -0
  280. package/scss/transitions/_disclosure-group.scss +35 -0
  281. package/scss/transitions/_fine-tooltip.scss +21 -0
  282. package/scss/transitions/_fwd.navbar.scss +41 -0
  283. package/scss/transitions/_fwd.scss +24 -0
  284. package/scss/transitions/_glass-button.scss +12 -0
  285. package/scss/transitions/_glass-prominent-button.scss +12 -0
  286. package/scss/transitions/_index.scss +74 -0
  287. package/scss/transitions/_menu-view.scss +26 -0
  288. package/scss/transitions/_navigation-split-view.scss +23 -0
  289. package/scss/transitions/_progress-view.scss +23 -0
  290. package/scss/transitions/_sheet-view.scss +30 -0
  291. package/scss/transitions/_sidebar-view.scss +36 -0
  292. package/scss/transitions/_tab-bar.scss +20 -0
  293. package/scss/utils/_frame.scss +91 -0
  294. package/scss/utils/_index.scss +77 -0
  295. package/scss/utils/_scroll-view.scss +14 -0
  296. package/scss/utils/_spacing.scss +25 -0
  297. package/scss/utils/_stacks.scss +247 -0
  298. package/web-components.html-data/en.json +458 -0
  299. package/generated/internal/snapshot.d.ts +0 -5
  300. package/generated/internal/snapshot.js +0 -23
  301. package/generated/styles.css +0 -8
  302. package/scss/_reboot.scss +0 -11
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @example
3
+ * compareBigDecimals("1e3", "1000") // 0
4
+ * compareBigDecimals("1e-3", "0.001") // 0
5
+ * compareBigDecimals("-10", "-2") // -1 ✅
6
+ * const arr = ["1.2","1.10","1.02","1e2","100","-0.5"]
7
+ * arr.sort(compareBigDecimals)
8
+ * console.log(arr)
9
+ * function isInRange(value: string, min: string, max: string): boolean {return compareBigDecimals(value, min) >= 0 && compareBigDecimals(value, max) <= 0}
10
+ * // examples
11
+ * isInRange("-5", "-10", "-1") // true
12
+ * isInRange("-11", "-10", "-1") // false
13
+ * isInRange("0", "-10", "-1") // false
14
+ * isInRange("-Infinity", "-Infinity", "-1") // true
15
+ * isInRange("5", "-Infinity", "Infinity") // true
16
+ */
17
+ const POSITIVE_INFINITY = 'Infinity', NEGATIVE_INFINITY = '-Infinity';
18
+ export default function (a, b) {
19
+ const aInf = isInfinity(a), bInf = isInfinity(b);
20
+ if (aInf !== 0 || bInf !== 0) {
21
+ if (aInf === bInf)
22
+ return 0;
23
+ return aInf > bInf ? 1 : -1;
24
+ }
25
+ const A = parse(a), B = parse(b);
26
+ // different signs
27
+ if (A.sign !== B.sign)
28
+ return A.sign - B.sign;
29
+ const sign = A.sign;
30
+ // compare integer length
31
+ if (A.i.length !== B.i.length)
32
+ return (A.i.length - B.i.length) * sign;
33
+ // compare integer part
34
+ if (A.i !== B.i)
35
+ return (A.i > B.i ? 1 : -1) * sign;
36
+ // compare fractional part
37
+ const max = Math.max(A.f.length, B.f.length);
38
+ for (let i = 0; i < max; i++) {
39
+ const da = A.f.charCodeAt(i) || 48, // '0'
40
+ db = B.f.charCodeAt(i) || 48;
41
+ if (da !== db)
42
+ return (da > db ? 1 : -1) * sign;
43
+ }
44
+ return 0;
45
+ }
46
+ function isInfinity(s) {
47
+ const t = s.trim();
48
+ if (t === POSITIVE_INFINITY || t === '+Infinity')
49
+ return 1;
50
+ if (t === NEGATIVE_INFINITY)
51
+ return -1;
52
+ return 0;
53
+ }
54
+ function parse(input) {
55
+ let s = input.trim(), sign = 1;
56
+ // sign
57
+ if (s[0] === '-') {
58
+ sign = -1;
59
+ s = s.slice(1);
60
+ }
61
+ else if (s[0] === '+') {
62
+ s = s.slice(1);
63
+ }
64
+ // scientific notation
65
+ let exp = 0;
66
+ const eIndex = s.search(/e/i);
67
+ if (eIndex !== -1) {
68
+ exp = parseInt(s.slice(eIndex + 1), 10) || 0;
69
+ s = s.slice(0, eIndex);
70
+ }
71
+ let [i = '0', f = ''] = s.split('.');
72
+ // remove leading zeros
73
+ i = i.replace(/^0+/, '') || '0';
74
+ // apply exponent by shifting decimal
75
+ if (exp > 0) {
76
+ const move = Math.min(exp, f.length);
77
+ i += f.slice(0, move);
78
+ f = f.slice(move) + '0'.repeat(exp - move);
79
+ }
80
+ else if (exp < 0) {
81
+ const move = Math.min(-exp, i.length);
82
+ f = i.slice(i.length - move) + f;
83
+ i = i.slice(0, i.length - move) || '0';
84
+ f = '0'.repeat(-exp - move) + f;
85
+ }
86
+ // normalize again
87
+ i = i.replace(/^0+/, '') || '0';
88
+ f = f.replace(/0+$/, '');
89
+ return { sign, i, f };
90
+ }
@@ -0,0 +1 @@
1
+ export default function (cssTime: string): number;
@@ -0,0 +1,3 @@
1
+ export default function (cssTime) {
2
+ return parseFloat(cssTime) * (/\ds$/.test(cssTime) ? 1000 : 1);
3
+ }
@@ -0,0 +1 @@
1
+ export default function <F extends (...args: any[]) => any>(fn: F, delay?: number, immediate?: boolean): (...args: Parameters<F>) => void;
@@ -0,0 +1,13 @@
1
+ import timeout from './timeout';
2
+ export default function (fn, delay = 300, immediate = false) {
3
+ const { next, pending } = timeout();
4
+ return function (...args) {
5
+ const context = this, callNow = immediate && !pending();
6
+ next(() => {
7
+ if (!immediate)
8
+ fn.apply(context, args);
9
+ }, delay);
10
+ if (callNow)
11
+ fn.apply(context, args);
12
+ };
13
+ }
@@ -0,0 +1 @@
1
+ export default function (element?: Element): Promise<number | undefined>;
@@ -0,0 +1,6 @@
1
+ export default function (element) {
2
+ return new Promise((r) => self.requestAnimationFrame(r)).then((t) => {
3
+ if (!element || element.isConnected)
4
+ return t;
5
+ });
6
+ }
@@ -1 +1,19 @@
1
- export { default as kebabCase } from "./kebab-case";
1
+ import cash from './cash';
2
+ export { default as add } from './add';
3
+ export { default as buttonRole } from './button-role';
4
+ export { default as clamp } from './clamp';
5
+ export { default as compareBigDecimals } from './compare-big-decimals';
6
+ export { default as cssTime } from './css-time';
7
+ export { default as debounce } from './debounce';
8
+ export { default as frame } from './frame';
9
+ export { default as isInside } from './is-inside';
10
+ export { default as kebabCase } from './kebab-case';
11
+ export { default as listActive } from './list-active';
12
+ export { default as microtask } from './microtask';
13
+ export { default as onoff } from './onoff';
14
+ export { default as set } from './set';
15
+ export { default as sleep } from './sleep';
16
+ export { default as slowHideShow } from './slow-hide-show';
17
+ export { default as timeout } from './timeout';
18
+ export { default as touchGlass } from './touch-glass';
19
+ export declare const $: typeof cash;
@@ -1 +1,20 @@
1
- export { default as kebabCase } from "./kebab-case";
1
+ // import * as _intl from './intl'
2
+ import cash from './cash';
3
+ export { default as add } from './add';
4
+ export { default as buttonRole } from './button-role';
5
+ export { default as clamp } from './clamp';
6
+ export { default as compareBigDecimals } from './compare-big-decimals';
7
+ export { default as cssTime } from './css-time';
8
+ export { default as debounce } from './debounce';
9
+ export { default as frame } from './frame';
10
+ export { default as isInside } from './is-inside';
11
+ export { default as kebabCase } from './kebab-case';
12
+ export { default as listActive } from './list-active';
13
+ export { default as microtask } from './microtask';
14
+ export { default as onoff } from './onoff';
15
+ export { default as set } from './set';
16
+ export { default as sleep } from './sleep';
17
+ export { default as slowHideShow } from './slow-hide-show';
18
+ export { default as timeout } from './timeout';
19
+ export { default as touchGlass } from './touch-glass';
20
+ export const $ = cash;
@@ -0,0 +1 @@
1
+ export default function (x: number, y: number, rect: DOMRect): boolean;
@@ -0,0 +1,4 @@
1
+ export default function (x, y, rect) {
2
+ const { left, right, top, bottom } = rect;
3
+ return x >= left && x <= right && y >= top && y <= bottom;
4
+ }
@@ -1 +1 @@
1
- export default function (str: String): string;
1
+ export default function (str: string): string;
@@ -1,11 +1,11 @@
1
1
  export default function (str) {
2
2
  return (str
3
3
  // Replace uppercase letters with - + lowercase
4
- .replace(/([A-Z])/g, "-$1")
4
+ .replace(/([A-Z])/g, '-$1')
5
5
  // Replace spaces and underscores with -
6
- .replace(/[\s_]+/g, "-")
6
+ .replace(/[\s_]+/g, '-')
7
7
  // Convert to lowercase
8
8
  .toLowerCase()
9
9
  // Remove leading/trailing dashes
10
- .replace(/^-+|-+$/g, ""));
10
+ .replace(/^-+|-+$/g, ''));
11
11
  }
@@ -0,0 +1,7 @@
1
+ export default function (t: HTMLElement): {
2
+ types: string;
3
+ listener: EventListener;
4
+ addOptions: {
5
+ passive: boolean;
6
+ };
7
+ }[];
@@ -0,0 +1,83 @@
1
+ const touchList = new WeakMap();
2
+ function onDown({ target }) {
3
+ if (!(target instanceof HTMLElement && target))
4
+ return;
5
+ const el = target.closest('button,summary');
6
+ if (!el)
7
+ return;
8
+ touchList.set(el, setTimeout(() => {
9
+ if (!touchList.has(el))
10
+ return;
11
+ el.classList.add('active');
12
+ }, 70));
13
+ el.addEventListener('pointerleave', onLeave, { once: true, passive: true });
14
+ el.closest('scroll-view')?.addEventListener('scroll', onScroll, { once: true, passive: true });
15
+ }
16
+ function onOver({ target, buttons }) {
17
+ if (!(target instanceof HTMLElement && target))
18
+ return;
19
+ const el = target.closest('button,summary');
20
+ if (!el)
21
+ return;
22
+ if (0 === buttons)
23
+ return;
24
+ el.classList.add('active');
25
+ el.removeEventListener('pointerover', onOver);
26
+ el.addEventListener('pointerleave', onLeave, { once: true, passive: true });
27
+ }
28
+ function onLeave({ target }) {
29
+ if (!(target instanceof HTMLElement && target))
30
+ return;
31
+ const el = target.closest('button,summary');
32
+ if (!el)
33
+ return;
34
+ el.addEventListener('pointerover', onOver, { once: true, passive: true });
35
+ // self.requestAnimationFrame(() => {
36
+ el.removeEventListener('pointerleave', onLeave);
37
+ el.closest('scroll-view')?.removeEventListener('scroll', onScroll);
38
+ el.classList.remove('active');
39
+ if (touchList.has(el))
40
+ clearTimeout(touchList.get(el));
41
+ touchList.delete(el);
42
+ // })
43
+ }
44
+ function onCancel({ target }) {
45
+ if (!(target instanceof HTMLElement && target))
46
+ return;
47
+ const el = target.closest('button,summary');
48
+ if (!el)
49
+ return;
50
+ // self.requestAnimationFrame(() => {
51
+ el.removeEventListener('pointerleave', onLeave);
52
+ el.removeEventListener('pointerover', onOver);
53
+ el.closest('scroll-view')?.removeEventListener('scroll', onScroll);
54
+ el.classList.remove('active');
55
+ if (touchList.has(el))
56
+ clearTimeout(touchList.get(el));
57
+ touchList.delete(el);
58
+ // })
59
+ }
60
+ function onScroll({ target }) {
61
+ if (!(target instanceof HTMLElement && target))
62
+ return;
63
+ for (const el of target.querySelectorAll('button,summary') ?? []) {
64
+ el.classList.remove('active');
65
+ if (touchList.has(el))
66
+ clearTimeout(touchList.get(el));
67
+ touchList.delete(el);
68
+ el.removeEventListener('pointerleave', onLeave);
69
+ el.removeEventListener('pointerover', onOver);
70
+ }
71
+ }
72
+ const makePointerdownHandler = (target) => {
73
+ return onDown;
74
+ }, makePointerCancelHandler = (target) => {
75
+ return onCancel;
76
+ };
77
+ export default function (t) {
78
+ const downListener = makePointerdownHandler(t), offListener = makePointerCancelHandler(t);
79
+ return [
80
+ { types: 'pointerdown', listener: downListener, addOptions: { passive: true } },
81
+ { types: 'pointerup pointercancel', listener: offListener, addOptions: { passive: true } },
82
+ ];
83
+ }
@@ -0,0 +1 @@
1
+ export default function (): Promise<void>;
@@ -0,0 +1,3 @@
1
+ export default function () {
2
+ return Promise.resolve();
3
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * const el = document.querySelector('button')!
3
+ *
4
+ * @example
5
+ * // 1. Single — no event arg
6
+ * onoff('click', () => console.log('clicked'), el)
7
+ *
8
+ * @example
9
+ * // 2. Single — with event arg
10
+ * onoff('click', (e) => console.log(e.target), el)
11
+ *
12
+ * @example
13
+ * // 3. Single — with options
14
+ * onoff('click', (e) => console.log(e), el, { passive: true, once: true })
15
+ *
16
+ * @example
17
+ * // 4. Single — capture as boolean
18
+ * onoff('click', (e) => console.log(e), el, true)
19
+ *
20
+ * @example
21
+ * // 5. Array — shared t
22
+ * onoff([
23
+ * { types: 'click', listener: (e) => console.log('click', e) },
24
+ * { types: 'mouseover mouseout', listener: (e) => console.log('hover', e) },
25
+ * ], el)
26
+ *
27
+ * @example
28
+ * // 6. Using on/off
29
+ * const { on, off } = onoff('scroll', (e) => console.log(e), el, { passive: true })
30
+ * on() // start listening
31
+ * off() // stop listening
32
+ */
33
+ type Options = boolean | AddEventListenerOptions;
34
+ interface EventConfig {
35
+ types: string;
36
+ listener: EventListener;
37
+ addOptions?: Options;
38
+ }
39
+ declare function single(types: string, listener: EventListener, t?: EventTarget, addOptions?: Options): {
40
+ on: () => () => void;
41
+ off: () => void;
42
+ };
43
+ export default function (configs: EventConfig[], t?: EventTarget): ReturnType<typeof single>;
44
+ export default function (types: string, listener: EventListener, t?: EventTarget, addOptions?: Options): ReturnType<typeof single>;
45
+ export {};
@@ -0,0 +1,31 @@
1
+ function single(types, listener, t, addOptions) {
2
+ const events = types?.split(' ');
3
+ const removeOptions = typeof addOptions === 'boolean' ? addOptions : addOptions !== undefined && 'capture' in addOptions ? { capture: addOptions.capture } : undefined;
4
+ const off = () => {
5
+ for (const event of events)
6
+ t?.removeEventListener(event, listener, removeOptions);
7
+ }, on = () => {
8
+ for (const event of events)
9
+ t?.addEventListener(event, listener, addOptions);
10
+ return off;
11
+ };
12
+ return {
13
+ on,
14
+ off,
15
+ };
16
+ }
17
+ export default function (typesOrConfigs, listenerOrT, t, addOptions) {
18
+ if (Array.isArray(typesOrConfigs)) {
19
+ const element = listenerOrT, results = typesOrConfigs.map((c) => single(c.types, c.listener, element, c.addOptions)); //, c.t ?? element, c.addOptions))
20
+ const off = () => results.forEach((r) => r.off()), on = () => {
21
+ for (const r of results)
22
+ r.on();
23
+ return off;
24
+ };
25
+ return {
26
+ on,
27
+ off,
28
+ };
29
+ }
30
+ return single(typesOrConfigs, listenerOrT, t, addOptions);
31
+ }
@@ -0,0 +1 @@
1
+ export default function <T extends object, K extends keyof T>(obj: T, key: K, value: T[K]): boolean;
@@ -0,0 +1,7 @@
1
+ export default function (obj, key, value) {
2
+ if (!Object.is(obj[key], value)) {
3
+ obj[key] = value;
4
+ return true;
5
+ }
6
+ return false;
7
+ }
@@ -0,0 +1 @@
1
+ export default function (ms: number): Promise<void>;
@@ -0,0 +1,3 @@
1
+ export default function (ms) {
2
+ return new Promise((r) => self.setTimeout(r, ms));
3
+ }
@@ -0,0 +1 @@
1
+ export default function (to: 'show' | 'hide', el?: HTMLElement): void;
@@ -0,0 +1,16 @@
1
+ import frame from './frame';
2
+ export default function (to, el) {
3
+ const transcleanup = ({ propertyName }) => {
4
+ if ('opacity' !== propertyName)
5
+ return;
6
+ el?.removeAttribute('slow');
7
+ };
8
+ for (const eventType of ['transitionend', 'transitioncancel'])
9
+ el?.addEventListener(eventType, transcleanup, {
10
+ once: true,
11
+ });
12
+ el?.setAttribute('slow', '');
13
+ frame(el).then(() => {
14
+ el?.setAttribute('slow', to);
15
+ }); //self.requestAnimationFrame(() => el?.setAttribute('slow', to))
16
+ }
@@ -0,0 +1,5 @@
1
+ export default function (): {
2
+ next: (fn: () => void, ms: number) => void;
3
+ cancel: () => void;
4
+ pending: () => boolean;
5
+ };
@@ -0,0 +1,16 @@
1
+ export default function () {
2
+ let id;
3
+ const cancel = () => {
4
+ if (!id)
5
+ return;
6
+ self.clearTimeout(id);
7
+ id = undefined;
8
+ }, next = (fn, ms) => {
9
+ cancel();
10
+ id = self.setTimeout(() => {
11
+ fn();
12
+ id = undefined;
13
+ }, ms);
14
+ }, pending = () => undefined !== id;
15
+ return { next, cancel, pending };
16
+ }
@@ -0,0 +1,7 @@
1
+ export default function (t: HTMLElement, targetCallback: (target: HTMLElement) => HTMLElement, checkCallback: (evt: PointerEvent) => boolean): {
2
+ types: string;
3
+ listener: EventListener;
4
+ addOptions: {
5
+ passive: boolean;
6
+ };
7
+ }[];
@@ -0,0 +1,19 @@
1
+ const makePointerdownHandler = (target, targetCallback, checkCallback) => {
2
+ return function (evt) {
3
+ // if (event.pointerType !== 'touch') return
4
+ if (!checkCallback(evt))
5
+ return;
6
+ targetCallback(target).toggleAttribute('touch-glass', true);
7
+ };
8
+ }, makePointercancelHandler = (target, targetCallback) => {
9
+ return function (evt) {
10
+ targetCallback(target).toggleAttribute('touch-glass', false);
11
+ };
12
+ };
13
+ export default function (t, targetCallback, checkCallback) {
14
+ const downListener = makePointerdownHandler(t, targetCallback, checkCallback), cancelListener = makePointercancelHandler(t, targetCallback);
15
+ return [
16
+ { types: 'pointerdown', listener: downListener, addOptions: { passive: true } },
17
+ { types: 'pointerup pointercancel pointerleave', listener: cancelListener, addOptions: { passive: true } },
18
+ ];
19
+ }
@@ -0,0 +1,36 @@
1
+ export declare abstract class DialogBase extends HTMLDialogElement {
2
+ static polyfillExtends: "dialog";
3
+ static polyfillConnectedCallback(el: HTMLDialogElement): void;
4
+ static polyfillDisconnectedCallback(el: HTMLDialogElement): void;
5
+ static polyfillAttributeChangedCallback(entries: Pick<MutationRecord, 'attributeName' | 'oldValue' | 'target'>[]): void;
6
+ disconnectedCallback(): void;
7
+ connectedCallback(): void;
8
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
9
+ }
10
+ export declare abstract class ButtonBase extends HTMLButtonElement {
11
+ static polyfillExtends: "button";
12
+ static polyfillConnectedCallback(el: HTMLButtonElement): void;
13
+ static polyfillDisconnectedCallback(el: HTMLButtonElement): void;
14
+ static polyfillAttributeChangedCallback(entries: Pick<MutationRecord, 'attributeName' | 'oldValue' | 'target'>[]): void;
15
+ disconnectedCallback(): void;
16
+ connectedCallback(): void;
17
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
18
+ }
19
+ export declare abstract class DetailsBase extends HTMLDetailsElement {
20
+ static polyfillExtends: "details";
21
+ static polyfillConnectedCallback(el: HTMLDetailsElement): void;
22
+ static polyfillDisconnectedCallback(el: HTMLDetailsElement): void;
23
+ static polyfillAttributeChangedCallback(entries: Pick<MutationRecord, 'attributeName' | 'oldValue' | 'target'>[]): void;
24
+ disconnectedCallback(): void;
25
+ connectedCallback(): void;
26
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
27
+ }
28
+ export declare abstract class FormBase extends HTMLFormElement {
29
+ static polyfillExtends: "form";
30
+ static polyfillConnectedCallback(el: HTMLFormElement): void;
31
+ static polyfillDisconnectedCallback(el: HTMLFormElement): void;
32
+ static polyfillAttributeChangedCallback(entries: Pick<MutationRecord, 'attributeName' | 'oldValue' | 'target'>[]): void;
33
+ disconnectedCallback(): void;
34
+ connectedCallback(): void;
35
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
36
+ }
@@ -0,0 +1,92 @@
1
+ export class DialogBase extends HTMLDialogElement {
2
+ static polyfillExtends = 'dialog';
3
+ static polyfillConnectedCallback(el) { }
4
+ static polyfillDisconnectedCallback(el) { }
5
+ static polyfillAttributeChangedCallback(entries) { } //MutationRecord[]) {}
6
+ disconnectedCallback() {
7
+ const ctor = this.constructor;
8
+ ctor.polyfillDisconnectedCallback(this);
9
+ }
10
+ connectedCallback() {
11
+ const ctor = this.constructor;
12
+ ctor.polyfillConnectedCallback(this);
13
+ }
14
+ attributeChangedCallback(name, oldValue, newValue) {
15
+ const ctor = this.constructor;
16
+ const entry = {
17
+ attributeName: name,
18
+ oldValue,
19
+ target: this,
20
+ };
21
+ ctor.polyfillAttributeChangedCallback([entry]);
22
+ }
23
+ }
24
+ export class ButtonBase extends HTMLButtonElement {
25
+ static polyfillExtends = 'button';
26
+ static polyfillConnectedCallback(el) { }
27
+ static polyfillDisconnectedCallback(el) { }
28
+ static polyfillAttributeChangedCallback(entries) { } //MutationRecord[]) {}
29
+ disconnectedCallback() {
30
+ const ctor = this.constructor;
31
+ ctor.polyfillDisconnectedCallback(this);
32
+ }
33
+ connectedCallback() {
34
+ const ctor = this.constructor;
35
+ ctor.polyfillConnectedCallback(this);
36
+ }
37
+ attributeChangedCallback(name, oldValue, newValue) {
38
+ const ctor = this.constructor;
39
+ const entry = {
40
+ attributeName: name,
41
+ oldValue,
42
+ target: this,
43
+ };
44
+ ctor.polyfillAttributeChangedCallback([entry]);
45
+ }
46
+ }
47
+ export class DetailsBase extends HTMLDetailsElement {
48
+ static polyfillExtends = 'details';
49
+ static polyfillConnectedCallback(el) { }
50
+ static polyfillDisconnectedCallback(el) { }
51
+ static polyfillAttributeChangedCallback(entries) { } //MutationRecord[]) {}
52
+ disconnectedCallback() {
53
+ const ctor = this.constructor;
54
+ ctor.polyfillDisconnectedCallback(this);
55
+ }
56
+ connectedCallback() {
57
+ const ctor = this.constructor;
58
+ ctor.polyfillConnectedCallback(this);
59
+ }
60
+ attributeChangedCallback(name, oldValue, newValue) {
61
+ const ctor = this.constructor;
62
+ const entry = {
63
+ attributeName: name,
64
+ oldValue,
65
+ target: this,
66
+ };
67
+ ctor.polyfillAttributeChangedCallback([entry]);
68
+ }
69
+ }
70
+ export class FormBase extends HTMLFormElement {
71
+ static polyfillExtends = 'form';
72
+ static polyfillConnectedCallback(el) { }
73
+ static polyfillDisconnectedCallback(el) { }
74
+ static polyfillAttributeChangedCallback(entries) { } //MutationRecord[]) {}
75
+ disconnectedCallback() {
76
+ const ctor = this.constructor;
77
+ ctor.polyfillDisconnectedCallback(this);
78
+ }
79
+ connectedCallback() {
80
+ const ctor = this.constructor;
81
+ ctor.polyfillConnectedCallback(this);
82
+ }
83
+ attributeChangedCallback(name, oldValue, newValue) {
84
+ const ctor = this.constructor;
85
+ const entry = {
86
+ attributeName: name,
87
+ oldValue,
88
+ target: this,
89
+ };
90
+ ctor.polyfillAttributeChangedCallback([entry]);
91
+ }
92
+ }
@@ -0,0 +1,7 @@
1
+ export type WebComponentCtor = typeof HTMLElement & {
2
+ observedAttributes?: string[];
3
+ polyfillExtends?: string;
4
+ polyfillConnectedCallback(el: HTMLElement): void;
5
+ polyfillDisconnectedCallback(el: HTMLElement): void;
6
+ polyfillAttributeChangedCallback?(entries: Pick<MutationRecord, 'attributeName' | 'oldValue' | 'target'>[]): void;
7
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ export declare class Snapshot {
2
+ #private;
3
+ static get breakpoints(): ReadonlyMap<string, boolean> | undefined;
4
+ static on: EventTarget;
5
+ static readonly waitReady: Promise<[unknown, void]>;
6
+ static waitReadyFor<T extends HTMLElement>(element: T): Promise<T | null>;
7
+ static get config(): Record<string, string> | undefined;
8
+ static setOwnConfig(): Promise<void>;
9
+ }