@swiftwc/ui 0.0.0-dev.1 → 0.0.0-dev.101

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 (360) 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 +30 -2
  11. package/generated/client/index.js +279 -8
  12. package/generated/components/alert-dialog.d.ts +11 -0
  13. package/generated/components/alert-dialog.js +102 -0
  14. package/generated/components/body-view.d.ts +13 -0
  15. package/generated/components/body-view.js +17 -0
  16. package/generated/components/bordered-button.d.ts +17 -0
  17. package/generated/components/bordered-button.js +56 -0
  18. package/generated/components/bordered-prominent-button.d.ts +17 -0
  19. package/generated/components/bordered-prominent-button.js +56 -0
  20. package/generated/components/borderless-button.d.ts +17 -0
  21. package/generated/components/borderless-button.js +56 -0
  22. package/generated/components/color-scheme.d.ts +12 -0
  23. package/generated/components/color-scheme.js +54 -0
  24. package/generated/components/confirmation-dialog.d.ts +12 -0
  25. package/generated/components/confirmation-dialog.js +116 -0
  26. package/generated/components/content-unavailable.d.ts +30 -0
  27. package/generated/components/content-unavailable.js +82 -0
  28. package/generated/components/date-picker.d.ts +52 -0
  29. package/generated/components/date-picker.js +480 -0
  30. package/generated/components/detail-placeholder.d.ts +11 -0
  31. package/generated/components/detail-placeholder.js +19 -0
  32. package/generated/components/disclosure-group.d.ts +17 -0
  33. package/generated/components/disclosure-group.js +66 -0
  34. package/generated/components/fine-tooltip.d.ts +15 -0
  35. package/generated/components/fine-tooltip.js +111 -0
  36. package/generated/components/form-view.d.ts +16 -0
  37. package/generated/components/form-view.js +65 -0
  38. package/generated/components/glass-button.d.ts +16 -0
  39. package/generated/components/glass-button.js +53 -0
  40. package/generated/components/glass-prominent-button.d.ts +16 -0
  41. package/generated/components/glass-prominent-button.js +53 -0
  42. package/generated/components/h-stack.d.ts +22 -0
  43. package/generated/components/h-stack.js +26 -0
  44. package/generated/components/image-view.d.ts +18 -0
  45. package/generated/components/image-view.js +68 -0
  46. package/generated/components/index.d.ts +49 -1
  47. package/generated/components/index.js +49 -6
  48. package/generated/components/label-view.d.ts +27 -0
  49. package/generated/components/label-view.js +87 -0
  50. package/generated/components/labeled-content.d.ts +33 -0
  51. package/generated/components/labeled-content.js +163 -0
  52. package/generated/components/list-view.d.ts +18 -0
  53. package/generated/components/list-view.js +25 -0
  54. package/generated/components/menu-view.d.ts +20 -0
  55. package/generated/components/menu-view.js +140 -0
  56. package/generated/components/navigation-large-title.d.ts +18 -0
  57. package/generated/components/navigation-large-title.js +188 -0
  58. package/generated/components/navigation-split-view.d.ts +15 -0
  59. package/generated/components/navigation-split-view.js +25 -0
  60. package/generated/components/navigation-stack.d.ts +15 -0
  61. package/generated/components/navigation-stack.js +29 -0
  62. package/generated/components/navigation-title.d.ts +18 -0
  63. package/generated/components/navigation-title.js +72 -0
  64. package/generated/components/picker-view.d.ts +68 -0
  65. package/generated/components/picker-view.js +1153 -0
  66. package/generated/components/plain-button.d.ts +7 -0
  67. package/generated/components/plain-button.js +22 -0
  68. package/generated/components/progress-view.d.ts +20 -0
  69. package/generated/components/progress-view.js +125 -0
  70. package/generated/components/screen-view.d.ts +5 -0
  71. package/generated/components/screen-view.js +11 -0
  72. package/generated/components/scroll-view-proxy.d.ts +13 -0
  73. package/generated/components/scroll-view-proxy.js +17 -0
  74. package/generated/components/scroll-view.d.ts +22 -0
  75. package/generated/components/scroll-view.js +237 -0
  76. package/generated/components/search-view.d.ts +12 -0
  77. package/generated/components/search-view.js +27 -0
  78. package/generated/components/section-view.d.ts +21 -0
  79. package/generated/components/section-view.js +64 -0
  80. package/generated/components/sheet-view.d.ts +11 -0
  81. package/generated/components/sheet-view.js +45 -0
  82. package/generated/components/sidebar-toggle.d.ts +15 -0
  83. package/generated/components/sidebar-toggle.js +88 -0
  84. package/generated/components/sidebar-view.d.ts +10 -0
  85. package/generated/components/sidebar-view.js +37 -0
  86. package/generated/components/sticky-container.d.ts +11 -0
  87. package/generated/components/sticky-container.js +26 -0
  88. package/generated/components/tab-bar.d.ts +10 -0
  89. package/generated/components/tab-bar.js +40 -0
  90. package/generated/components/tab-item.d.ts +10 -0
  91. package/generated/components/tab-item.js +134 -0
  92. package/generated/components/tab-view.d.ts +31 -0
  93. package/generated/components/tab-view.js +198 -0
  94. package/generated/components/table-view.d.ts +26 -0
  95. package/generated/components/table-view.js +161 -0
  96. package/generated/components/text-field.d.ts +42 -0
  97. package/generated/components/text-field.js +526 -0
  98. package/generated/components/text-view.d.ts +11 -0
  99. package/generated/components/text-view.js +19 -0
  100. package/generated/components/toggle-view.d.ts +43 -0
  101. package/generated/components/toggle-view.js +371 -0
  102. package/generated/components/tool-bar-item-group.d.ts +13 -0
  103. package/generated/components/tool-bar-item-group.js +31 -0
  104. package/generated/components/tool-bar-item.d.ts +16 -0
  105. package/generated/components/tool-bar-item.js +69 -0
  106. package/generated/components/tool-bar.d.ts +26 -0
  107. package/generated/components/tool-bar.js +95 -0
  108. package/generated/components/v-keyboard.d.ts +18 -0
  109. package/generated/components/v-keyboard.js +87 -0
  110. package/generated/components/v-stack.d.ts +25 -0
  111. package/generated/components/v-stack.js +29 -0
  112. package/generated/css/index.css +10732 -0
  113. package/generated/events/alert-dialog.d.ts +13 -0
  114. package/generated/events/alert-dialog.js +1 -0
  115. package/generated/events/confirmation-dialog.d.ts +14 -0
  116. package/generated/events/confirmation-dialog.js +1 -0
  117. package/generated/events/date-picker.d.ts +13 -0
  118. package/generated/events/date-picker.js +1 -0
  119. package/generated/events/index.d.ts +9 -0
  120. package/generated/events/index.js +9 -0
  121. package/generated/events/lifecycle-observer.d.ts +18 -0
  122. package/generated/events/lifecycle-observer.js +1 -0
  123. package/generated/events/picker-view.d.ts +29 -0
  124. package/generated/events/picker-view.js +1 -0
  125. package/generated/events/scroll-view.d.ts +18 -0
  126. package/generated/events/scroll-view.js +1 -0
  127. package/generated/events/tab-view.d.ts +54 -0
  128. package/generated/events/tab-view.js +1 -0
  129. package/generated/events/text-field.d.ts +13 -0
  130. package/generated/events/text-field.js +1 -0
  131. package/generated/events/toggle-view.d.ts +14 -0
  132. package/generated/events/toggle-view.js +1 -0
  133. package/generated/i18n/index.d.ts +33 -0
  134. package/generated/i18n/index.js +164 -0
  135. package/generated/i18n/locales/el.d.ts +16 -0
  136. package/generated/i18n/locales/el.js +16 -0
  137. package/generated/i18n/locales/en.d.ts +16 -0
  138. package/generated/i18n/locales/en.js +16 -0
  139. package/generated/i18n/locales/index.d.ts +4 -0
  140. package/generated/i18n/locales/index.js +4 -0
  141. package/generated/index.js +1 -1
  142. package/generated/internal/class/cleanup-registry.d.ts +5 -0
  143. package/generated/internal/class/cleanup-registry.js +38 -0
  144. package/generated/internal/class/css-style-observer.d.ts +8 -0
  145. package/generated/internal/class/css-style-observer.js +26 -0
  146. package/generated/internal/class/form-associated-base.d.ts +16 -0
  147. package/generated/internal/class/form-associated-base.js +78 -0
  148. package/generated/internal/class/mutation-observer-set.d.ts +9 -0
  149. package/generated/internal/class/mutation-observer-set.js +42 -0
  150. package/generated/internal/class/mutation-observer-singleton.d.ts +10 -0
  151. package/generated/internal/class/mutation-observer-singleton.js +64 -0
  152. package/generated/internal/class/navigation-path.d.ts +15 -0
  153. package/generated/internal/class/navigation-path.js +84 -0
  154. package/generated/internal/class/navigation-view.d.ts +8 -0
  155. package/generated/internal/class/navigation-view.js +72 -0
  156. package/generated/internal/class/resize-observer-singleton.d.ts +7 -0
  157. package/generated/internal/class/resize-observer-singleton.js +22 -0
  158. package/generated/internal/decorators/adaptive-slot.d.ts +1 -0
  159. package/generated/internal/decorators/adaptive-slot.js +50 -0
  160. package/generated/internal/decorators/custom-element.d.ts +5 -0
  161. package/generated/internal/decorators/custom-element.js +5 -0
  162. package/generated/internal/decorators/index.d.ts +6 -0
  163. package/generated/internal/decorators/index.js +6 -0
  164. package/generated/internal/decorators/microtask-on-connected.d.ts +39 -0
  165. package/generated/internal/decorators/microtask-on-connected.js +67 -0
  166. package/generated/internal/privateNamespace.d.ts +14 -0
  167. package/generated/internal/privateNamespace.js +168 -0
  168. package/generated/internal/utils/add.d.ts +1 -0
  169. package/generated/internal/utils/add.js +7 -0
  170. package/generated/internal/utils/cash/ancestors.d.ts +1 -0
  171. package/generated/internal/utils/cash/ancestors.js +27 -0
  172. package/generated/internal/utils/cash/index.d.ts +24 -0
  173. package/generated/internal/utils/cash/index.js +27 -0
  174. package/generated/internal/utils/cash/next-all.d.ts +1 -0
  175. package/generated/internal/utils/cash/next-all.js +10 -0
  176. package/generated/internal/utils/cash/next.d.ts +1 -0
  177. package/generated/internal/utils/cash/next.js +9 -0
  178. package/generated/internal/utils/cash/prev-all.d.ts +1 -0
  179. package/generated/internal/utils/cash/prev-all.js +10 -0
  180. package/generated/internal/utils/cash/prev.d.ts +1 -0
  181. package/generated/internal/utils/cash/prev.js +9 -0
  182. package/generated/internal/utils/cash/prop.d.ts +18 -0
  183. package/generated/internal/utils/cash/prop.js +30 -0
  184. package/generated/internal/utils/cash/siblings.d.ts +1 -0
  185. package/generated/internal/utils/cash/siblings.js +10 -0
  186. package/generated/internal/utils/clamp.d.ts +1 -0
  187. package/generated/internal/utils/clamp.js +4 -0
  188. package/generated/internal/utils/compare-big-decimals.d.ts +1 -0
  189. package/generated/internal/utils/compare-big-decimals.js +80 -0
  190. package/generated/internal/utils/css-time.d.ts +1 -0
  191. package/generated/internal/utils/css-time.js +3 -0
  192. package/generated/internal/utils/debounce.d.ts +1 -0
  193. package/generated/internal/utils/debounce.js +13 -0
  194. package/generated/internal/utils/define-translations.d.ts +1 -0
  195. package/generated/internal/utils/define-translations.js +3 -0
  196. package/generated/internal/utils/dev-flags.d.ts +3 -0
  197. package/generated/internal/utils/dev-flags.js +5 -0
  198. package/generated/internal/utils/ensure-placeholder.d.ts +1 -0
  199. package/generated/internal/utils/ensure-placeholder.js +41 -0
  200. package/generated/internal/utils/frame.d.ts +1 -0
  201. package/generated/internal/utils/frame.js +6 -0
  202. package/generated/internal/utils/index.d.ts +20 -1
  203. package/generated/internal/utils/index.js +23 -1
  204. package/generated/internal/utils/is-inside.d.ts +1 -0
  205. package/generated/internal/utils/is-inside.js +4 -0
  206. package/generated/internal/utils/kebab-case.d.ts +1 -1
  207. package/generated/internal/utils/kebab-case.js +6 -9
  208. package/generated/internal/utils/list-active.d.ts +7 -0
  209. package/generated/internal/utils/list-active.js +83 -0
  210. package/generated/internal/utils/microtask.d.ts +1 -0
  211. package/generated/internal/utils/microtask.js +3 -0
  212. package/generated/internal/utils/onoff.d.ts +45 -0
  213. package/generated/internal/utils/onoff.js +31 -0
  214. package/generated/internal/utils/set.d.ts +1 -0
  215. package/generated/internal/utils/set.js +7 -0
  216. package/generated/internal/utils/sleep.d.ts +1 -0
  217. package/generated/internal/utils/sleep.js +3 -0
  218. package/generated/internal/utils/slow-hide-show.d.ts +1 -0
  219. package/generated/internal/utils/slow-hide-show.js +16 -0
  220. package/generated/internal/utils/timeout.d.ts +5 -0
  221. package/generated/internal/utils/timeout.js +16 -0
  222. package/generated/internal/utils/touch-glass.d.ts +7 -0
  223. package/generated/internal/utils/touch-glass.js +19 -0
  224. package/generated/internal/vendor/morphdom.d.ts +6 -0
  225. package/generated/internal/vendor/morphdom.js +720 -0
  226. package/generated/morphdom/index.d.ts +8 -0
  227. package/generated/morphdom/index.js +8 -0
  228. package/generated/morphdom/morph.d.ts +4 -0
  229. package/generated/morphdom/morph.js +10 -0
  230. package/generated/morphdom/query-morph.d.ts +5 -0
  231. package/generated/morphdom/query-morph.js +12 -0
  232. package/generated/morphdom/render-to-string.d.ts +12 -0
  233. package/generated/morphdom/render-to-string.js +48 -0
  234. package/generated/morphdom/unsafe-html.d.ts +2 -0
  235. package/generated/morphdom/unsafe-html.js +4 -0
  236. package/generated/namespace-browser/base.d.ts +45 -0
  237. package/generated/namespace-browser/base.js +115 -0
  238. package/generated/namespace-browser/event.d.ts +10 -0
  239. package/generated/namespace-browser/event.js +1 -0
  240. package/generated/namespace-browser/index.d.ts +7 -0
  241. package/generated/namespace-browser/index.js +1 -0
  242. package/generated/snapshot/index.d.ts +9 -0
  243. package/generated/snapshot/index.js +60 -0
  244. package/generated/tpl/html.d.ts +5 -0
  245. package/generated/tpl/html.js +7 -0
  246. package/generated/tpl/index.d.ts +6 -0
  247. package/generated/tpl/index.js +6 -0
  248. package/generated/tpl/is-template-result.d.ts +3 -0
  249. package/generated/tpl/is-template-result.js +1 -0
  250. package/generated/tpl/render.d.ts +2 -0
  251. package/generated/tpl/render.js +132 -0
  252. package/package.json +49 -8
  253. package/scss/_base.scss +5 -0
  254. package/scss/_components.scss +90 -0
  255. package/scss/_final.scss +1 -0
  256. package/scss/_functions.scss +31 -0
  257. package/scss/_maps.scss +293 -0
  258. package/scss/_mixins.scss +7 -0
  259. package/scss/_placeholders.scss +3 -0
  260. package/scss/_transitions.scss +32 -0
  261. package/scss/_utils.scss +9 -0
  262. package/scss/_vars.scss +68 -0
  263. package/scss/base/_layout.scss +66 -0
  264. package/scss/base/_reboot.scss +191 -0
  265. package/scss/base/_root.scss +415 -0
  266. package/scss/colors/_index.scss +881 -0
  267. package/scss/components/_alert-dialog.scss +111 -0
  268. package/scss/components/_body-view.scss +17 -0
  269. package/scss/components/_bordered-button.scss +59 -0
  270. package/scss/components/_bordered-prominent-button.scss +65 -0
  271. package/scss/components/_borderless-button.scss +45 -0
  272. package/scss/components/_confirmation-dialog.scss +102 -0
  273. package/scss/components/_content-unavailable.scss +57 -0
  274. package/scss/components/_date-picker.scss +30 -0
  275. package/scss/components/_detail-placeholder.scss +153 -0
  276. package/scss/components/_disclosure-group.scss +179 -0
  277. package/scss/components/_fine-tooltip.scss +84 -0
  278. package/scss/components/_form-view.scss +234 -0
  279. package/scss/components/_full-screen.scss +15 -0
  280. package/scss/components/_glass-button.scss +61 -0
  281. package/scss/components/_glass-prominent-button.scss +71 -0
  282. package/scss/components/_group-box.scss +27 -0
  283. package/scss/components/_h-divider.scss +13 -0
  284. package/scss/components/_h-flex-stack.scss +23 -0
  285. package/scss/components/_h-stack.scss +28 -0
  286. package/scss/components/_image-view.scss +20 -0
  287. package/scss/components/_index.scss +272 -0
  288. package/scss/components/_label-view copy.scss.txt +420 -0
  289. package/scss/components/_label-view.scss +371 -0
  290. package/scss/components/_label-view.scss.txt +536 -0
  291. package/scss/components/_labeled-content.scss +75 -0
  292. package/scss/components/_list-view.scss +270 -0
  293. package/scss/components/_menu-view.scss +223 -0
  294. package/scss/components/_navigation-large-title.scss +44 -0
  295. package/scss/components/_navigation-split-view.scss +424 -0
  296. package/scss/components/_navigation-stack.scss +11 -0
  297. package/scss/components/_navigation-title.scss +10 -0
  298. package/scss/components/_picker-view.scss +329 -0
  299. package/scss/components/_plain-button.scss +19 -0
  300. package/scss/components/_progress-view.scss +98 -0
  301. package/scss/components/_scroll-view-proxy.scss +81 -0
  302. package/scss/components/_scroll-view-toolbars.scss +132 -0
  303. package/scss/components/_scroll-view.scss +134 -0
  304. package/scss/components/_search-view.scss +23 -0
  305. package/scss/components/_section-view.scss +120 -0
  306. package/scss/components/_sheet-view.scss +103 -0
  307. package/scss/components/_sidebar-toggle.scss +121 -0
  308. package/scss/components/_sidebar-view.scss +53 -0
  309. package/scss/components/_sticky-container.scss +42 -0
  310. package/scss/components/_tab-bar.scss +268 -0
  311. package/scss/components/_tab-item.scss +25 -0
  312. package/scss/components/_tab-view.scss +320 -0
  313. package/scss/components/_table-column.scss +54 -0
  314. package/scss/components/_table-row.scss +240 -0
  315. package/scss/components/_table-view.scss +232 -0
  316. package/scss/components/_text-field.scss +57 -0
  317. package/scss/components/_text-view.scss +57 -0
  318. package/scss/components/_toggle-view.scss +161 -0
  319. package/scss/components/_tool-bar-item-group.scss +48 -0
  320. package/scss/components/_tool-bar-item.scss +97 -0
  321. package/scss/components/_tool-bar.scss +153 -0
  322. package/scss/components/_v-divider.scss +13 -0
  323. package/scss/components/_v-flex-stack.scss +29 -0
  324. package/scss/components/_v-keyboard.scss +14 -0
  325. package/scss/components/_v-stack.scss +24 -0
  326. package/scss/final/_touch-glass.scss +98 -0
  327. package/scss/index.scss +18 -1
  328. package/scss/mixins/_button.scss +44 -0
  329. package/scss/mixins/_color.scss +16 -0
  330. package/scss/mixins/_dialog.scss +89 -0
  331. package/scss/mixins/_index.scss +473 -0
  332. package/scss/placeholders/_buttons.scss +118 -0
  333. package/scss/placeholders/_lists.scss +622 -0
  334. package/scss/transitions/_alert-dialog.scss +18 -0
  335. package/scss/transitions/_bwd.navbar.scss +19 -0
  336. package/scss/transitions/_bwd.scss +39 -0
  337. package/scss/transitions/_confirmation-dialog.scss +27 -0
  338. package/scss/transitions/_disclosure-group.scss +35 -0
  339. package/scss/transitions/_fine-tooltip.scss +21 -0
  340. package/scss/transitions/_fwd.navbar.scss +41 -0
  341. package/scss/transitions/_fwd.scss +24 -0
  342. package/scss/transitions/_glass-button.scss +12 -0
  343. package/scss/transitions/_glass-prominent-button.scss +12 -0
  344. package/scss/transitions/_index.scss +74 -0
  345. package/scss/transitions/_menu-view.scss +28 -0
  346. package/scss/transitions/_navigation-split-view.scss +23 -0
  347. package/scss/transitions/_progress-view.scss +23 -0
  348. package/scss/transitions/_sheet-view.scss +30 -0
  349. package/scss/transitions/_sidebar-view.scss +36 -0
  350. package/scss/transitions/_tab-bar.scss +20 -0
  351. package/scss/utils/_frame.scss +103 -0
  352. package/scss/utils/_index.scss +54 -0
  353. package/scss/utils/_scroll-view.scss +14 -0
  354. package/scss/utils/_spacing.scss +25 -0
  355. package/scss/utils/_stacks.scss +112 -0
  356. package/web-components.css-data/en.json +28 -0
  357. package/web-components.html-data/en.json +2612 -0
  358. package/generated/internal/snapshot.d.ts +0 -5
  359. package/generated/internal/snapshot.js +0 -23
  360. package/generated/styles.css +0 -1
package/README.md ADDED
@@ -0,0 +1,15 @@
1
+ # @swiftwc/ui
2
+
3
+ [README](https://github.com/swiftwc/ui/blob/main/README.md)
4
+
5
+ ## Documentation
6
+
7
+ Visit [swiftwc.github.io/ui/](https://swiftwc.github.io/ui/) to view the documentation.
8
+
9
+ ## Contributing
10
+
11
+ Please read the [contributing guide](https://github.com/swiftwc/ui/blob/main/CONTRIBUTING.md).
12
+
13
+ ## License
14
+
15
+ Licensed under the [MIT license](https://github.com/swiftwc/ui/blob/main/LICENSE.md).
@@ -0,0 +1,2 @@
1
+ declare const _default: EventTarget;
2
+ export default _default;
@@ -0,0 +1 @@
1
+ export default new EventTarget();
@@ -0,0 +1,2 @@
1
+ declare const _default: EventTarget;
2
+ export default _default;
@@ -0,0 +1 @@
1
+ export default new EventTarget();
@@ -0,0 +1,6 @@
1
+ export { default as alertDialog } from './alert-dialog';
2
+ export * from './alert-dialog';
3
+ export { default as confirmationDialog } from './confirmation-dialog';
4
+ export * from './confirmation-dialog';
5
+ export { default as lifecycleObserver } from './lifecycle-observer';
6
+ export * from './lifecycle-observer';
@@ -0,0 +1,6 @@
1
+ export { default as alertDialog } from './alert-dialog';
2
+ export * from './alert-dialog';
3
+ export { default as confirmationDialog } from './confirmation-dialog';
4
+ export * from './confirmation-dialog';
5
+ export { default as lifecycleObserver } from './lifecycle-observer';
6
+ export * from './lifecycle-observer';
@@ -0,0 +1,2 @@
1
+ declare const _default: EventTarget;
2
+ export default _default;
@@ -0,0 +1 @@
1
+ export default new EventTarget();
@@ -1,2 +1,30 @@
1
- import { Snapshot } from "../internal/snapshot";
2
- export { Snapshot };
1
+ import { lifecycleObserver } from '../buses';
2
+ import { I18n } from '../i18n';
3
+ import { NavigationPath } from '../internal/class/navigation-path';
4
+ import { type NavigationHost, queryInsertPosition, startViewTransition } from '../internal/privateNamespace';
5
+ import { type WebComponentCtor } from '../namespace-browser';
6
+ import { Snapshot } from '../snapshot';
7
+ export declare const polyfills: Map<string, WebComponentCtor>;
8
+ /**
9
+ * Presents an alert with a message using the given data to produce the alert’s content and a string variable as a title.
10
+ */
11
+ export declare const alert: (title?: string, message?: string, actions?: {
12
+ label?: string;
13
+ image?: string;
14
+ role?: string;
15
+ }[], options?: {
16
+ titleVisibility?: boolean;
17
+ signal?: AbortSignal;
18
+ }) => Promise<string | undefined> & {
19
+ dismiss: (reason?: unknown) => void;
20
+ };
21
+ export declare const confirmationDialog: (trigger: HTMLElement, title: string, message?: string, actions?: {
22
+ label?: string;
23
+ image?: string;
24
+ role?: string;
25
+ }[], options?: {
26
+ controller?: AbortController;
27
+ titleVisibility?: boolean;
28
+ }) => Promise<string>;
29
+ export { I18n, lifecycleObserver, NavigationPath, queryInsertPosition, Snapshot, startViewTransition };
30
+ export { type NavigationHost };
@@ -1,8 +1,279 @@
1
- import { kebabCase } from "../internal/utils";
2
- console.log(kebabCase(`Hello client!`));
3
- import { Snapshot } from "../internal/snapshot";
4
- console.log(77, Snapshot);
5
- console.log(88, Snapshot.count);
6
- Snapshot.getSnapshot();
7
- console.log(99, Snapshot);
8
- export { Snapshot };
1
+ import { alertDialog, confirmationDialog as confirmationDialogBus, lifecycleObserver } from '../buses';
2
+ import * as Components from '../components';
3
+ import { I18n } from '../i18n';
4
+ import { NavigationPath } from '../internal/class/navigation-path';
5
+ import { queryInsertPosition, startViewTransition } from '../internal/privateNamespace';
6
+ import { $, devFlags, kebabCase, onoff } from '../internal/utils';
7
+ import { Snapshot } from '../snapshot';
8
+ import { html, render } from '../tpl';
9
+ //#region polyfills
10
+ export const polyfills = new Map();
11
+ for (const [k, Ctor] of Object.entries(Components)) {
12
+ const is = kebabCase(k);
13
+ if ('polyfillExtends' in Ctor && 'string' === typeof Ctor.polyfillExtends) {
14
+ if (customElements.get(is))
15
+ continue;
16
+ customElements.define(is, Ctor, { extends: Ctor.polyfillExtends });
17
+ if (!(document.createElement(Ctor.polyfillExtends, { is }) instanceof Ctor))
18
+ polyfills.set(is, Ctor);
19
+ // const testEl = document.createElement('template')
20
+ // testEl.innerHTML = `<${Ctor.polyfillExtends} is="${is}"></${Ctor.polyfillExtends}>`
21
+ // const testNode = testEl.content.firstElementChild,
22
+ if (!($(html `<${Ctor.polyfillExtends} is="${is}"></${Ctor.polyfillExtends}>`, '>1') instanceof Ctor))
23
+ polyfills.set(is, Ctor);
24
+ continue;
25
+ }
26
+ if (!customElements.get(is))
27
+ customElements.define(is, Ctor);
28
+ }
29
+ if (devFlags.debug)
30
+ console.debug(polyfills);
31
+ if (0 < polyfills.size) {
32
+ const polyfillTagNamesCache = new Set([...polyfills.values()].map((v) => String(v.polyfillExtends ?? '').toUpperCase()).filter(Boolean)); // ['TAG-NAME1', 'TAG-NAME2', ...]
33
+ const handlers = new WeakMap();
34
+ const observe = (el, polyfill) => {
35
+ if (!Array.isArray(polyfill.observedAttributes))
36
+ return;
37
+ if (0 === polyfill?.observedAttributes.length)
38
+ return;
39
+ if (!polyfill.polyfillAttributeChangedCallback)
40
+ return;
41
+ const observer = new MutationObserver(polyfill.polyfillAttributeChangedCallback);
42
+ observer.observe(el, {
43
+ attributes: true,
44
+ attributeFilter: polyfill.observedAttributes,
45
+ attributeOldValue: true,
46
+ });
47
+ handlers.set(el, observer);
48
+ for (const attributeName of polyfill.observedAttributes)
49
+ if (el.hasAttribute(attributeName)) {
50
+ const entry = {
51
+ attributeName,
52
+ oldValue: null,
53
+ target: el,
54
+ };
55
+ polyfill.polyfillAttributeChangedCallback([entry]);
56
+ }
57
+ }, unobserve = (el) => {
58
+ handlers.delete(el);
59
+ }, polyfillTagNamesCacheSelector = [...polyfillTagNamesCache.values()].map((v) => `${v}`.toLowerCase()).join(','), flatten = (node) => [node, ...(node.querySelectorAll?.(polyfillTagNamesCacheSelector) ?? [])];
60
+ if (devFlags.debug)
61
+ console.debug(polyfillTagNamesCache, polyfillTagNamesCacheSelector);
62
+ for (const [is, polyfill] of polyfills)
63
+ for (const el of document.querySelectorAll(`${polyfill.polyfillExtends}[is="${CSS.escape(is)}"]`)) {
64
+ polyfill.polyfillConnectedCallback(el);
65
+ observe(el, polyfill);
66
+ }
67
+ // observer callback
68
+ const observer = new MutationObserver((mutations) => {
69
+ for (const { addedNodes, removedNodes } of mutations) {
70
+ for (const root of addedNodes) {
71
+ if (!(root instanceof HTMLElement))
72
+ continue;
73
+ for (const node of flatten(root)) {
74
+ if (!(node instanceof HTMLElement))
75
+ continue;
76
+ if (!polyfillTagNamesCache.has(node.tagName))
77
+ continue;
78
+ const is = node?.getAttribute('is') ?? '';
79
+ if (!polyfills.has(is))
80
+ continue;
81
+ polyfills.get(is)?.polyfillConnectedCallback(node);
82
+ observe(node, polyfills.get(is));
83
+ }
84
+ }
85
+ for (const root of removedNodes) {
86
+ if (!(root instanceof HTMLElement))
87
+ continue;
88
+ for (const node of flatten(root)) {
89
+ if (!(node instanceof HTMLElement))
90
+ continue;
91
+ if (!polyfillTagNamesCache.has(node.tagName))
92
+ continue;
93
+ const is = node?.getAttribute('is') ?? '';
94
+ if (!polyfills.has(is))
95
+ continue;
96
+ polyfills.get(is)?.polyfillDisconnectedCallback(node);
97
+ unobserve(node);
98
+ }
99
+ }
100
+ }
101
+ });
102
+ observer.observe(document.body, {
103
+ childList: true,
104
+ subtree: true,
105
+ });
106
+ }
107
+ // SECTION: Safari polyfill
108
+ document.addEventListener('touchstart', () => { }, { passive: true });
109
+ //#endregion
110
+ // SECTION
111
+ const handleHelp = ({ target, relatedTarget }) => {
112
+ if (!(target instanceof HTMLElement))
113
+ return;
114
+ const trigger = target.closest('[help]');
115
+ if (!trigger)
116
+ return;
117
+ if (['PICKER-VIEW'].includes(trigger.tagName))
118
+ return;
119
+ if (relatedTarget instanceof HTMLElement && trigger.contains(relatedTarget))
120
+ return;
121
+ const newAnchorName = `--help-${self.crypto.randomUUID()}`;
122
+ const tooltip = $(html `<fine-tooltip></fine-tooltip>`, '>1');
123
+ trigger.style.setProperty('anchor-name', newAnchorName);
124
+ tooltip.style.setProperty('position-anchor', newAnchorName);
125
+ document.body.appendChild(tooltip);
126
+ // setInterval(() => {
127
+ // trigger.setAttribute('help', trigger.getAttribute('help') + 'h')
128
+ // }, 2000)
129
+ // console.log(999, trigger)
130
+ }, handleDone = ({ target, relatedTarget }) => {
131
+ if (!(target instanceof HTMLElement))
132
+ return;
133
+ const trigger = target.closest('[help]');
134
+ if (!trigger)
135
+ return;
136
+ if (['PICKER-VIEW'].includes(trigger.tagName))
137
+ return;
138
+ if (relatedTarget instanceof HTMLElement && trigger.contains(relatedTarget))
139
+ return;
140
+ const anchorName = trigger.style.anchorName;
141
+ if (!anchorName.startsWith('--help-'))
142
+ return;
143
+ // for (const el of document.querySelectorAll<HTMLElement>(`[style*="--help-${CSS.escape(anchorName)}"][help]`)) el.style.removeProperty('anchor-name') //trigger.style.removeProperty('anchor-name')
144
+ // for (const el of document.querySelectorAll(`[style*="${CSS.escape(anchorName)}"]:not([help])`)) el.remove()
145
+ // return
146
+ // }
147
+ const tooltip = document.querySelector(`[style*="${CSS.escape(anchorName)}"]:not([help])`);
148
+ if (!tooltip)
149
+ return;
150
+ // for (const el of document.querySelectorAll<HTMLElement>(`[style*="--help-${CSS.escape(anchorName)}"][help]`)) el.style.removeProperty('anchor-name') //trigger.style.removeProperty('anchor-name')
151
+ // for (const el of document.querySelectorAll(`[style*="${CSS.escape(anchorName)}"]:not([help])`)) el.remove()
152
+ // return
153
+ // }
154
+ // trigger.style.removeProperty('anchor-name')
155
+ tooltip.hidePopover(); // tooltip.remove?.()
156
+ };
157
+ const mediaQueryList = self.matchMedia(`(pointer: fine)`);
158
+ mediaQueryList.addEventListener('change', ({ matches }) => {
159
+ for (const [k, v] of [
160
+ ['pointerover', handleHelp],
161
+ ['pointerout', handleDone],
162
+ ])
163
+ document.removeEventListener(k, v);
164
+ if (matches)
165
+ for (const [k, v] of [
166
+ ['pointerover', handleHelp],
167
+ ['pointerout', handleDone],
168
+ ])
169
+ document.addEventListener(k, v, { passive: true });
170
+ });
171
+ if (mediaQueryList.matches)
172
+ for (const [k, v] of [
173
+ ['pointerover', handleHelp],
174
+ ['pointerout', handleDone],
175
+ ])
176
+ document.addEventListener(k, v, { passive: true });
177
+ //#region fns
178
+ // const a = alert('Saving…', 'Please wait')
179
+ // // later, e.g. save completed early
180
+ // a.dismiss() // silently resolves undefined, closes+removes dialog
181
+ // // or
182
+ // a.dismiss(new Error('cancelled')) // rejects instead
183
+ // const result = await a // still works normally if not dismissed
184
+ // const ac = new AbortController()
185
+ // const a = alert('Uploading…', 'Please wait', undefined, { signal: ac.signal })
186
+ // // elsewhere, e.g. upload finished before the user dismissed
187
+ // ac.abort() // dialog closes silently, a rejects with AbortError
188
+ // // or still works standalone
189
+ // a.dismiss() // same effect, no signal needed
190
+ /**
191
+ * Presents an alert with a message using the given data to produce the alert’s content and a string variable as a title.
192
+ */
193
+ export const alert = (title, message, actions, options) => {
194
+ const { promise, resolve, reject } = Promise.withResolvers();
195
+ let dialog;
196
+ let off;
197
+ const dismiss = (reason) => {
198
+ off?.();
199
+ dialog?.close();
200
+ // dialog?.remove()
201
+ reason === undefined ? resolve(undefined) : reject(reason instanceof Error ? reason : new DOMException('Alert dismissed', 'AbortError'));
202
+ };
203
+ if (options?.signal)
204
+ if (options.signal.aborted)
205
+ dismiss(options.signal.reason); // already aborted before we even started — settle immediately, skip showing anything
206
+ else
207
+ options.signal.addEventListener('abort', () => dismiss(options.signal.reason), { once: true });
208
+ navigator.locks
209
+ .request('alert:', async () => {
210
+ if (options?.signal?.aborted)
211
+ return; // in case it was aborted while queued behind another lock holder
212
+ const mount = document.createElement('div');
213
+ render(html `<dialog is="alert-dialog">
214
+ <v-stack spacing="1" alignment="fill">
215
+ ${title ? html `<label-view font="headline" title="${title}"></label-view>` : null}
216
+ ${message ? html `<label-view foreground="secondary" font="callout" title="${message}"></label-view>` : null}
217
+ </v-stack>
218
+ ${(actions ?? [{ role: 'close' }]).map((action, index) => html `
219
+ <button type="button" tabindex="0" is="bordered-button" value="${index}" role="${action.role ?? null}">
220
+ ${action.label || action.image ? html `<label-view title="${action.label ?? null}" system-image="${action.image ?? null}"></label-view>` : null}
221
+ </button>
222
+ `)}
223
+ </dialog>`, mount);
224
+ dialog = mount.firstElementChild;
225
+ document.body.insertAdjacentElement('beforeend', dialog);
226
+ dialog.showModal();
227
+ off = onoff('alert:return', (evt) => {
228
+ const { detail } = evt;
229
+ off?.();
230
+ resolve(detail.returnValue);
231
+ }, alertDialog, { once: true }).on();
232
+ return promise;
233
+ })
234
+ .catch(() => { });
235
+ return Object.assign(promise, { dismiss });
236
+ };
237
+ export const confirmationDialog = async (trigger, title, message, actions, options) => {
238
+ const newAnchorName = `--confirmation-dialog-${self.crypto.randomUUID()}`;
239
+ const dialog = $(html `<dialog is="confirmation-dialog"></dialog>`, '>1'), vStack = dialog.querySelector(':scope>v-stack') ?? dialog.appendChild($(html `<v-stack spacing="1" alignment="fill"></v-stack>`, '>1'));
240
+ trigger.style.setProperty('anchor-name', newAnchorName, 'important'); //$.prop('anchor-name', newAnchorName, trigger, 'important')
241
+ dialog.style.setProperty('position-anchor', newAnchorName); //$.prop('position-anchor', newAnchorName, dialog)
242
+ if (title && false !== options?.titleVisibility) {
243
+ const label = $(html `<label-view font="headline"></label-view>`, '>1');
244
+ label.setAttribute('title', title);
245
+ vStack.insertAdjacentElement('beforeend', label);
246
+ }
247
+ if (message && false !== options?.titleVisibility) {
248
+ const label = $(html `<label-view foreground="secondary" font="callout"></label-view>`, '>1');
249
+ label.setAttribute('title', message);
250
+ vStack.insertAdjacentElement('beforeend', label);
251
+ }
252
+ for (const [index, action] of (actions ?? []).entries()) {
253
+ const btn = $(html `<button type="button" tabindex="0" is="bordered-button"></button>`, '>1');
254
+ btn.setAttribute('value', `${index}`);
255
+ if (action?.role)
256
+ btn.setAttribute('role', action.role);
257
+ if (action.label || action.image) {
258
+ const label = $(html `<label-view></label-view>`, '>1');
259
+ if (action.label)
260
+ label.setAttribute('title', action.label);
261
+ if (action.image)
262
+ label.setAttribute('system-image', action.image);
263
+ btn.appendChild(label);
264
+ }
265
+ dialog.insertAdjacentElement('beforeend', btn);
266
+ }
267
+ trigger.closest('body-view,dialog')?.insertAdjacentElement('beforeend', dialog); // dialog.showModal()
268
+ const { promise, resolve } = Promise.withResolvers(), off = onoff('confirmation:return', (evt) => {
269
+ const { detail } = evt;
270
+ off();
271
+ resolve(detail.returnValue);
272
+ }, confirmationDialogBus, { once: true }).on();
273
+ return promise;
274
+ };
275
+ //#endregion
276
+ void Snapshot.waitReady;
277
+ //#region exports
278
+ export { I18n, lifecycleObserver, NavigationPath, queryInsertPosition, Snapshot, startViewTransition };
279
+ //#endregion
@@ -0,0 +1,11 @@
1
+ import { DialogBase } from '../namespace-browser/base';
2
+ /**
3
+ * @summary A dialog that shows a message. Use it from the client module like `void alert('Save failed.')`.
4
+ */
5
+ export declare class AlertDialog extends DialogBase {
6
+ #private;
7
+ constructor();
8
+ static polyfillDisconnectedCallback(el: AlertDialog): void;
9
+ static polyfillConnectedCallback(el: AlertDialog): void;
10
+ static polyfillAttributeChangedCallback([{ attributeName, target, oldValue }]: Pick<MutationRecord, 'attributeName' | 'oldValue' | 'target'>[]): void;
11
+ }
@@ -0,0 +1,102 @@
1
+ import { alertDialog } from '../buses';
2
+ import { CleanupRegistry } from '../internal/class/cleanup-registry';
3
+ import { devFlags, onoff, touchGlass } from '../internal/utils';
4
+ import { DialogBase } from '../namespace-browser/base';
5
+ /**
6
+ * @summary A dialog that shows a message. Use it from the client module like `void alert('Save failed.')`.
7
+ */
8
+ export class AlertDialog extends DialogBase {
9
+ constructor() {
10
+ super();
11
+ }
12
+ static polyfillDisconnectedCallback(el) {
13
+ if (devFlags.debug)
14
+ console.debug(`${AlertDialog.name} ⚡️ disconnect`);
15
+ CleanupRegistry.unregister(el);
16
+ alertDialog.dispatchEvent(new CustomEvent('alert:return', {
17
+ detail: { returnValue: el.returnValue },
18
+ bubbles: true,
19
+ composed: true,
20
+ }));
21
+ }
22
+ static polyfillConnectedCallback(el) {
23
+ if (devFlags.debug)
24
+ console.debug(`${AlertDialog.name} ⚡️ connect`);
25
+ CleanupRegistry.register(el, onoff([
26
+ { types: 'click', listener: this.#handleDialogClick },
27
+ { types: 'close', listener: this.#handleDialogClose },
28
+ { types: 'cancel', listener: this.#handleDialogCancel },
29
+ ], el).on());
30
+ CleanupRegistry.register(el, onoff(touchGlass(el, (t) => t, ({ target }) => {
31
+ if (!(target instanceof HTMLElement))
32
+ return true;
33
+ if (target.matches('[is=alert-dialog]'))
34
+ return false;
35
+ return true;
36
+ }), el).on());
37
+ if (devFlags.debug)
38
+ console.debug(`${AlertDialog.name} ⚡️ will-open`);
39
+ el.removeAttribute('closing');
40
+ el.scrollTop = 0;
41
+ el.returnValue = '';
42
+ el.autofocus = true;
43
+ el.showModal();
44
+ }
45
+ static polyfillAttributeChangedCallback([{ attributeName, target, oldValue }]) {
46
+ if (devFlags.debug)
47
+ console.debug(`${AlertDialog.name} ⚡️ attr-change [${attributeName}] ("${oldValue}" → "${target.getAttribute(attributeName ?? '')}")`);
48
+ switch (attributeName) {
49
+ case 'label':
50
+ //
51
+ break;
52
+ }
53
+ }
54
+ static #handleDialogClick = (evt) => {
55
+ if (devFlags.debug)
56
+ console.debug(`${AlertDialog.name} ⚡️ ${evt?.type}`);
57
+ const { target, currentTarget: dialog } = evt;
58
+ if (!(dialog instanceof HTMLDialogElement))
59
+ return;
60
+ if (!(target instanceof HTMLElement))
61
+ return;
62
+ const button = target.closest('button');
63
+ if (!button)
64
+ return;
65
+ button.scrollIntoView({
66
+ behavior: self.matchMedia('(prefers-reduced-motion: no-preference)').matches ? 'smooth' : 'instant',
67
+ block: 'nearest',
68
+ inline: 'nearest',
69
+ });
70
+ dialog.returnValue = button.value;
71
+ dialog.requestClose(button.value);
72
+ evt.stopPropagation();
73
+ evt.stopImmediatePropagation();
74
+ };
75
+ static #handleDialogCancel = (evt) => {
76
+ if (devFlags.debug)
77
+ console.debug(`${AlertDialog.name} ⚡️ ${evt?.type}`);
78
+ if (!evt.cancelable)
79
+ return;
80
+ const { target } = evt;
81
+ if (!(target instanceof HTMLDialogElement))
82
+ return;
83
+ evt.preventDefault();
84
+ target.inert = true;
85
+ if (devFlags.debug)
86
+ console.debug(`${AlertDialog.name} ⚡️ will-close`);
87
+ target.setAttribute('closing', '');
88
+ Promise.allSettled(target.getAnimations().map(({ finished }) => finished)).then(() => {
89
+ if (!target.hasAttribute('closing'))
90
+ return;
91
+ target?.close(target?.returnValue);
92
+ target.removeAttribute('closing');
93
+ });
94
+ };
95
+ static #handleDialogClose = ({ type, target }) => {
96
+ if (devFlags.debug)
97
+ console.debug(`${AlertDialog.name} ⚡️ ${type}`);
98
+ if (!(target instanceof HTMLDialogElement))
99
+ return;
100
+ target.remove();
101
+ };
102
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @summary A container view that wraps a scroll view, marking it as a screen your app can navigate to.
3
+ */
4
+ export declare class BodyView extends HTMLElement {
5
+ constructor();
6
+ disconnectedCallback(): void;
7
+ connectedCallback(): void;
8
+ }
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ 'body-view': BodyView;
12
+ }
13
+ }
@@ -0,0 +1,17 @@
1
+ import { devFlags } from '../internal/utils';
2
+ /**
3
+ * @summary A container view that wraps a scroll view, marking it as a screen your app can navigate to.
4
+ */
5
+ export class BodyView extends HTMLElement {
6
+ constructor() {
7
+ super();
8
+ }
9
+ disconnectedCallback() {
10
+ if (devFlags.debug)
11
+ console.debug(`${BodyView.name} ⚡️ disconnect`);
12
+ }
13
+ connectedCallback() {
14
+ if (devFlags.debug)
15
+ console.debug(`${BodyView.name} ⚡️ connect`);
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ import { ButtonBase } from '../namespace-browser/base';
2
+ /**
3
+ * @summary A control that starts an action. Styled with a standard border, adapting to the button’s surroundings.
4
+ *
5
+ * @example <button is="bordered-button"><label-view system-image="hand-tap" title="Tap Me"></label-view></button> — Creating a bordered button
6
+ *
7
+ * @slot overlay
8
+ *
9
+ */
10
+ export declare class BorderedButton extends ButtonBase {
11
+ #private;
12
+ static get observedAttributes(): string[];
13
+ constructor();
14
+ static polyfillDisconnectedCallback(el: BorderedButton): void;
15
+ static polyfillConnectedCallback(el: BorderedButton): void;
16
+ static polyfillAttributeChangedCallback([{ attributeName, target, oldValue }]: Pick<MutationRecord, 'attributeName' | 'oldValue' | 'target'>[]): void;
17
+ }
@@ -0,0 +1,56 @@
1
+ import { CleanupRegistry } from '../internal/class/cleanup-registry';
2
+ import { devFlags, ensurePlaceholder, onoff } from '../internal/utils';
3
+ import { ButtonBase } from '../namespace-browser/base';
4
+ import { Snapshot } from '../snapshot';
5
+ /**
6
+ * @summary A control that starts an action. Styled with a standard border, adapting to the button’s surroundings.
7
+ *
8
+ * @example <button is="bordered-button"><label-view system-image="hand-tap" title="Tap Me"></label-view></button> — Creating a bordered button
9
+ *
10
+ * @slot overlay
11
+ *
12
+ */
13
+ export class BorderedButton extends ButtonBase {
14
+ static get observedAttributes() {
15
+ return [
16
+ /**
17
+ * A value that describes the purpose of a button
18
+ * @type {destructive|confirm}
19
+ */
20
+ 'role',
21
+ 'title-key',
22
+ ];
23
+ }
24
+ constructor() {
25
+ super();
26
+ }
27
+ static polyfillDisconnectedCallback(el) {
28
+ if (devFlags.debug)
29
+ console.debug(`${BorderedButton.name} ⚡️ disconnect`);
30
+ CleanupRegistry.unregister(el);
31
+ }
32
+ static polyfillConnectedCallback(el) {
33
+ if (devFlags.debug)
34
+ console.debug(`${BorderedButton.name} ⚡️ connect`);
35
+ el.tabIndex = 0;
36
+ CleanupRegistry.register(el, onoff('click', BorderedButton.#handleClick, el).on());
37
+ }
38
+ static polyfillAttributeChangedCallback([{ attributeName, target, oldValue }]) {
39
+ if (devFlags.debug)
40
+ console.debug(`${BorderedButton.name} ⚡️ attr-change [${attributeName}] ("${oldValue}" → "${target.getAttribute(attributeName ?? '')}")`);
41
+ const node = target instanceof HTMLButtonElement;
42
+ if (!node)
43
+ return;
44
+ switch (attributeName) {
45
+ case 'title-key':
46
+ case 'role':
47
+ Snapshot.waitReady.then(() => {
48
+ ensurePlaceholder(target, target.getAttribute('role'), target.getAttribute('title-key'), Snapshot.config);
49
+ });
50
+ break;
51
+ }
52
+ }
53
+ static #handleClick = async (evt) => {
54
+ //
55
+ };
56
+ }
@@ -0,0 +1,17 @@
1
+ import { ButtonBase } from '../namespace-browser/base';
2
+ /**
3
+ * @summary A control that starts an action. Styled with a prominent border, adapting to the button’s surroundings.
4
+ *
5
+ * @example <button is="bordered-prominent-button"><label-view system-image="hand-tap" title="Tap Me"></label-view></button> — Creating a prominent bordered button
6
+ *
7
+ * @slot overlay
8
+ *
9
+ */
10
+ export declare class BorderedProminentButton extends ButtonBase {
11
+ #private;
12
+ static get observedAttributes(): string[];
13
+ constructor();
14
+ static polyfillDisconnectedCallback(el: BorderedProminentButton): void;
15
+ static polyfillConnectedCallback(el: BorderedProminentButton): void;
16
+ static polyfillAttributeChangedCallback([{ attributeName, target, oldValue }]: Pick<MutationRecord, 'attributeName' | 'oldValue' | 'target'>[]): void;
17
+ }