@swiftwc/ui 0.0.0-dev.11 → 0.0.0-dev.110

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 (300) hide show
  1. package/generated/buses/alert-dialog.d.ts +2 -0
  2. package/generated/buses/alert-dialog.js +1 -0
  3. package/generated/buses/confirmation-dialog.d.ts +2 -0
  4. package/generated/buses/confirmation-dialog.js +1 -0
  5. package/generated/buses/index.d.ts +6 -0
  6. package/generated/buses/index.js +6 -0
  7. package/generated/buses/lifecycle-observer.d.ts +2 -0
  8. package/generated/buses/lifecycle-observer.js +1 -0
  9. package/generated/client/index.d.ts +24 -10
  10. package/generated/client/index.js +179 -194
  11. package/generated/components/alert-dialog.d.ts +11 -0
  12. package/generated/components/alert-dialog.js +94 -0
  13. package/generated/components/body-view.d.ts +8 -0
  14. package/generated/components/body-view.js +6 -2
  15. package/generated/components/bordered-button.d.ts +10 -0
  16. package/generated/components/bordered-button.js +36 -3
  17. package/generated/components/bordered-prominent-button.d.ts +10 -0
  18. package/generated/components/bordered-prominent-button.js +36 -3
  19. package/generated/components/borderless-button.d.ts +9 -1
  20. package/generated/components/borderless-button.js +29 -11
  21. package/generated/components/color-scheme.d.ts +12 -0
  22. package/generated/components/color-scheme.js +51 -0
  23. package/generated/components/confirmation-dialog.d.ts +4 -1
  24. package/generated/components/confirmation-dialog.js +38 -32
  25. package/generated/components/content-unavailable.d.ts +30 -0
  26. package/generated/components/content-unavailable.js +79 -0
  27. package/generated/components/date-picker.d.ts +21 -15
  28. package/generated/components/date-picker.js +126 -88
  29. package/generated/components/detail-placeholder.d.ts +11 -0
  30. package/generated/components/detail-placeholder.js +15 -0
  31. package/generated/components/disclosure-group.d.ts +8 -0
  32. package/generated/components/disclosure-group.js +18 -7
  33. package/generated/components/fine-tooltip.d.ts +15 -0
  34. package/generated/components/fine-tooltip.js +108 -0
  35. package/generated/components/form-view.d.ts +10 -0
  36. package/generated/components/form-view.js +8 -3
  37. package/generated/components/glass-button.d.ts +10 -0
  38. package/generated/components/glass-button.js +36 -3
  39. package/generated/components/glass-prominent-button.d.ts +10 -0
  40. package/generated/components/glass-prominent-button.js +36 -3
  41. package/generated/components/h-divider.d.ts +11 -0
  42. package/generated/components/h-divider.js +15 -0
  43. package/generated/components/h-stack.d.ts +22 -0
  44. package/generated/components/h-stack.js +24 -0
  45. package/generated/components/image-view.d.ts +18 -0
  46. package/generated/components/image-view.js +65 -0
  47. package/generated/components/index.d.ts +15 -3
  48. package/generated/components/index.js +15 -3
  49. package/generated/components/label-view.d.ts +19 -1
  50. package/generated/components/label-view.js +63 -62
  51. package/generated/components/labeled-content.d.ts +33 -0
  52. package/generated/components/labeled-content.js +160 -0
  53. package/generated/components/list-view.d.ts +14 -0
  54. package/generated/components/list-view.js +12 -17
  55. package/generated/components/menu-view.d.ts +12 -1
  56. package/generated/components/menu-view.js +63 -65
  57. package/generated/components/navigation-large-title.d.ts +11 -0
  58. package/generated/components/navigation-large-title.js +11 -5
  59. package/generated/components/navigation-split-view.d.ts +9 -1
  60. package/generated/components/navigation-split-view.js +10 -6
  61. package/generated/components/navigation-stack.d.ts +9 -1
  62. package/generated/components/navigation-stack.js +13 -11
  63. package/generated/components/navigation-title.d.ts +11 -1
  64. package/generated/components/navigation-title.js +58 -55
  65. package/generated/components/picker-view.d.ts +48 -7
  66. package/generated/components/picker-view.js +971 -261
  67. package/generated/components/plain-button.js +3 -3
  68. package/generated/components/progress-view.d.ts +20 -0
  69. package/generated/components/progress-view.js +120 -0
  70. package/generated/components/screen-view.js +2 -1
  71. package/generated/components/scroll-view-proxy.d.ts +13 -0
  72. package/generated/components/scroll-view-proxy.js +15 -0
  73. package/generated/components/scroll-view.d.ts +13 -1
  74. package/generated/components/scroll-view.js +140 -97
  75. package/generated/components/search-view.d.ts +12 -0
  76. package/generated/components/search-view.js +24 -0
  77. package/generated/components/section-view.d.ts +13 -1
  78. package/generated/components/section-view.js +38 -58
  79. package/generated/components/sheet-view.d.ts +4 -2
  80. package/generated/components/sheet-view.js +10 -39
  81. package/generated/components/sidebar-toggle.d.ts +9 -1
  82. package/generated/components/sidebar-toggle.js +46 -69
  83. package/generated/components/sidebar-view.d.ts +3 -0
  84. package/generated/components/sidebar-view.js +16 -9
  85. package/generated/components/sticky-container.d.ts +6 -1
  86. package/generated/components/sticky-container.js +9 -7
  87. package/generated/components/tab-bar.d.ts +3 -0
  88. package/generated/components/tab-bar.js +17 -13
  89. package/generated/components/tab-item.d.ts +3 -0
  90. package/generated/components/tab-item.js +20 -13
  91. package/generated/components/tab-view.d.ts +13 -4
  92. package/generated/components/tab-view.js +25 -89
  93. package/generated/components/table-view.d.ts +19 -0
  94. package/generated/components/table-view.js +88 -107
  95. package/generated/components/text-field.d.ts +19 -6
  96. package/generated/components/text-field.js +127 -99
  97. package/generated/components/text-view.d.ts +11 -0
  98. package/generated/components/text-view.js +16 -0
  99. package/generated/components/toggle-view.d.ts +43 -0
  100. package/generated/components/toggle-view.js +366 -0
  101. package/generated/components/tool-bar-item-group.d.ts +8 -0
  102. package/generated/components/tool-bar-item-group.js +22 -4
  103. package/generated/components/tool-bar-item.d.ts +12 -1
  104. package/generated/components/tool-bar-item.js +57 -10
  105. package/generated/components/tool-bar.d.ts +19 -0
  106. package/generated/components/tool-bar.js +48 -33
  107. package/generated/components/v-divider.d.ts +11 -0
  108. package/generated/components/v-divider.js +15 -0
  109. package/generated/components/v-keyboard.d.ts +8 -1
  110. package/generated/components/v-keyboard.js +11 -9
  111. package/generated/components/v-stack.d.ts +20 -0
  112. package/generated/components/v-stack.js +18 -2
  113. package/generated/css/index.css +4617 -1266
  114. package/generated/events/alert-dialog.d.ts +13 -0
  115. package/generated/events/alert-dialog.js +1 -0
  116. package/generated/events/confirmation-dialog.d.ts +7 -2
  117. package/generated/events/date-picker.d.ts +6 -1
  118. package/generated/events/index.d.ts +2 -0
  119. package/generated/events/index.js +2 -0
  120. package/generated/events/lifecycle-observer.d.ts +10 -2
  121. package/generated/events/picker-view.d.ts +22 -1
  122. package/generated/events/scroll-view.d.ts +10 -2
  123. package/generated/events/tab-view.d.ts +38 -8
  124. package/generated/events/text-field.d.ts +6 -1
  125. package/generated/events/toggle-view.d.ts +14 -0
  126. package/generated/events/toggle-view.js +1 -0
  127. package/generated/i18n/index.d.ts +19 -10
  128. package/generated/i18n/index.js +79 -54
  129. package/generated/i18n/locales/el.d.ts +16 -0
  130. package/generated/i18n/locales/el.js +16 -0
  131. package/generated/i18n/locales/en.d.ts +16 -0
  132. package/generated/i18n/locales/en.js +16 -0
  133. package/generated/i18n/locales/index.d.ts +4 -0
  134. package/generated/i18n/locales/index.js +4 -0
  135. package/generated/internal/class/css-style-observer.js +2 -2
  136. package/generated/internal/class/form-associated-base.d.ts +0 -4
  137. package/generated/internal/class/form-associated-base.js +22 -39
  138. package/generated/internal/class/mutation-observer-set.d.ts +9 -0
  139. package/generated/internal/class/mutation-observer-set.js +42 -0
  140. package/generated/internal/class/mutation-observer-singleton.js +18 -0
  141. package/generated/internal/class/navigation-view.d.ts +1 -1
  142. package/generated/internal/class/navigation-view.js +36 -43
  143. package/generated/internal/decorators/adaptive-slot.d.ts +1 -0
  144. package/generated/internal/decorators/adaptive-slot.js +47 -0
  145. package/generated/internal/decorators/custom-element.d.ts +1 -1
  146. package/generated/internal/decorators/custom-element.js +2 -1
  147. package/generated/internal/decorators/index.d.ts +6 -0
  148. package/generated/internal/decorators/index.js +6 -0
  149. package/generated/internal/decorators/microtask-on-connected.d.ts +39 -0
  150. package/generated/internal/decorators/microtask-on-connected.js +67 -0
  151. package/generated/internal/flags.d.ts +4 -0
  152. package/generated/internal/flags.js +1 -0
  153. package/generated/internal/privateNamespace.d.ts +10 -0
  154. package/generated/internal/privateNamespace.js +159 -1
  155. package/generated/internal/utils/$.d.ts +9 -0
  156. package/generated/internal/utils/$.js +11 -0
  157. package/generated/internal/utils/compare-big-decimals.js +7 -17
  158. package/generated/internal/utils/debug.d.ts +1 -0
  159. package/generated/internal/utils/debug.js +4 -0
  160. package/generated/internal/utils/define-translations.d.ts +1 -0
  161. package/generated/internal/utils/define-translations.js +3 -0
  162. package/generated/internal/utils/ensure-placeholder.d.ts +1 -0
  163. package/generated/internal/utils/ensure-placeholder.js +41 -0
  164. package/generated/internal/utils/index.d.ts +39 -2
  165. package/generated/internal/utils/index.js +39 -3
  166. package/generated/internal/utils/is-inside.d.ts +1 -0
  167. package/generated/internal/utils/is-inside.js +4 -0
  168. package/generated/internal/utils/kebab-case.js +6 -9
  169. package/generated/internal/utils/list-active.js +67 -12
  170. package/generated/internal/utils/touch-glass.js +5 -5
  171. package/generated/internal/vendor/morphdom.d.ts +6 -0
  172. package/generated/internal/vendor/morphdom.js +720 -0
  173. package/generated/morphdom/index.d.ts +8 -0
  174. package/generated/morphdom/index.js +8 -0
  175. package/generated/morphdom/morph.d.ts +4 -0
  176. package/generated/morphdom/morph.js +10 -0
  177. package/generated/morphdom/query-morph.d.ts +5 -0
  178. package/generated/morphdom/query-morph.js +12 -0
  179. package/generated/morphdom/render-to-string.d.ts +12 -0
  180. package/generated/morphdom/render-to-string.js +48 -0
  181. package/generated/morphdom/unsafe-html.d.ts +2 -0
  182. package/generated/morphdom/unsafe-html.js +4 -0
  183. package/generated/namespace-browser/base.d.ts +12 -3
  184. package/generated/namespace-browser/base.js +41 -18
  185. package/generated/namespace-browser/event.d.ts +10 -0
  186. package/generated/namespace-browser/event.js +1 -0
  187. package/generated/snapshot/index.d.ts +3 -1
  188. package/generated/snapshot/index.js +23 -2
  189. package/generated/tpl/html.d.ts +5 -0
  190. package/generated/tpl/html.js +7 -0
  191. package/generated/tpl/index.d.ts +6 -0
  192. package/generated/tpl/index.js +6 -0
  193. package/generated/tpl/is-template-result.d.ts +3 -0
  194. package/generated/tpl/is-template-result.js +1 -0
  195. package/generated/tpl/render.d.ts +2 -0
  196. package/generated/tpl/render.js +132 -0
  197. package/package.json +32 -7
  198. package/scss/_components.scss +15 -0
  199. package/scss/_functions.scss +10 -0
  200. package/scss/_maps.scss +293 -0
  201. package/scss/_mixins.scss +4 -0
  202. package/scss/_transitions.scss +6 -1
  203. package/scss/_utils.scss +2 -0
  204. package/scss/_vars.scss +9 -115
  205. package/scss/base/_layout.scss +17 -7
  206. package/scss/base/_reboot.scss +34 -1
  207. package/scss/base/_root.scss +143 -124
  208. package/scss/colors/_index.scss +328 -88
  209. package/scss/components/_alert-dialog.scss +111 -0
  210. package/scss/components/_bordered-button.scss +37 -0
  211. package/scss/components/_bordered-prominent-button.scss +46 -0
  212. package/scss/components/_borderless-button.scss +26 -0
  213. package/scss/components/_confirmation-dialog.scss +41 -49
  214. package/scss/components/_content-unavailable.scss +57 -0
  215. package/scss/components/_date-picker.scss +15 -15
  216. package/scss/components/_detail-placeholder.scss +1 -3
  217. package/scss/components/_disclosure-group.scss +85 -34
  218. package/scss/components/_fine-tooltip.scss +84 -0
  219. package/scss/components/_form-view.scss +63 -24
  220. package/scss/components/_glass-button.scss +37 -0
  221. package/scss/components/_glass-prominent-button.scss +47 -0
  222. package/scss/components/_group-box.scss +27 -0
  223. package/scss/components/_h-flex-stack.scss +23 -0
  224. package/scss/components/_h-stack.scss +6 -17
  225. package/scss/components/_image-view.scss +20 -0
  226. package/scss/components/_index.scss +69 -36
  227. package/scss/components/_label-view copy.scss.txt +420 -0
  228. package/scss/components/_label-view.scss +105 -120
  229. package/scss/components/_label-view.scss.txt +536 -0
  230. package/scss/components/_labeled-content.scss +67 -1
  231. package/scss/components/_list-view.scss +70 -29
  232. package/scss/components/_menu-view.scss +96 -61
  233. package/scss/components/_navigation-large-title.scss +23 -0
  234. package/scss/components/_navigation-split-view.scss +3 -3
  235. package/scss/components/_navigation-title.scss +1 -1
  236. package/scss/components/_picker-view.scss +270 -63
  237. package/scss/components/_plain-button.scss +8 -0
  238. package/scss/components/_progress-view.scss +98 -0
  239. package/scss/components/_scroll-view-proxy.scss +24 -22
  240. package/scss/components/_scroll-view-toolbars.scss +8 -2
  241. package/scss/components/_scroll-view.scss +16 -0
  242. package/scss/components/_search-view.scss +23 -0
  243. package/scss/components/_section-view.scss +23 -22
  244. package/scss/components/_sheet-view.scss +16 -6
  245. package/scss/components/_sidebar-toggle.scss +1 -4
  246. package/scss/components/_sticky-container.scss +1 -1
  247. package/scss/components/_tab-bar.scss +17 -3
  248. package/scss/components/_tab-view.scss +12 -2
  249. package/scss/components/_table-column.scss +4 -2
  250. package/scss/components/_table-row.scss +71 -3
  251. package/scss/components/_table-view.scss +27 -18
  252. package/scss/components/_text-field.scss +37 -17
  253. package/scss/components/_text-view.scss +57 -0
  254. package/scss/components/_toggle-view.scss +171 -0
  255. package/scss/components/_tool-bar-item.scss +34 -82
  256. package/scss/components/_tool-bar.scss +77 -57
  257. package/scss/components/_v-stack.scss +8 -2
  258. package/scss/final/_touch-glass.scss +31 -0
  259. package/scss/mixins/_button.scss +44 -0
  260. package/scss/mixins/_color.scss +16 -0
  261. package/scss/mixins/_dialog.scss +1 -0
  262. package/scss/mixins/_index.scss +73 -5
  263. package/scss/placeholders/_buttons.scss +46 -11
  264. package/scss/placeholders/_lists.scss +159 -126
  265. package/scss/transitions/_alert-dialog.scss +18 -0
  266. package/scss/transitions/_confirmation-dialog.scss +8 -0
  267. package/scss/transitions/_fine-tooltip.scss +21 -0
  268. package/scss/transitions/_menu-view.scss +17 -15
  269. package/scss/transitions/_progress-view.scss +23 -0
  270. package/scss/transitions/_sheet-view.scss +30 -0
  271. package/scss/transitions/_tab-bar.scss +6 -5
  272. package/scss/utils/_background.scss +52 -0
  273. package/scss/utils/_frame.scss +59 -40
  274. package/scss/utils/_index.scss +45 -56
  275. package/scss/utils/_scroll-view.scss +1 -1
  276. package/scss/utils/_spacing.scss +1 -1
  277. package/scss/utils/_stacks.scss +34 -164
  278. package/web-components.css-data/en.json +28 -0
  279. package/web-components.html-data/en.json +2456 -166
  280. package/generated/confirmation-dialog/index.d.ts +0 -1
  281. package/generated/confirmation-dialog/index.js +0 -1
  282. package/generated/internal/utils/cash/index.d.ts +0 -22
  283. package/generated/internal/utils/cash/index.js +0 -23
  284. package/generated/lifecycle-observer/index.d.ts +0 -1
  285. package/generated/lifecycle-observer/index.js +0 -1
  286. package/scss/transitions/_dialog.scss +0 -28
  287. /package/generated/internal/utils/{cash/ancestors.d.ts → ancestors.d.ts} +0 -0
  288. /package/generated/internal/utils/{cash/ancestors.js → ancestors.js} +0 -0
  289. /package/generated/internal/utils/{cash/next-all.d.ts → next-all.d.ts} +0 -0
  290. /package/generated/internal/utils/{cash/next-all.js → next-all.js} +0 -0
  291. /package/generated/internal/utils/{cash/next.d.ts → next.d.ts} +0 -0
  292. /package/generated/internal/utils/{cash/next.js → next.js} +0 -0
  293. /package/generated/internal/utils/{cash/prev-all.d.ts → prev-all.d.ts} +0 -0
  294. /package/generated/internal/utils/{cash/prev-all.js → prev-all.js} +0 -0
  295. /package/generated/internal/utils/{cash/prev.d.ts → prev.d.ts} +0 -0
  296. /package/generated/internal/utils/{cash/prev.js → prev.js} +0 -0
  297. /package/generated/internal/utils/{cash/prop.d.ts → prop.d.ts} +0 -0
  298. /package/generated/internal/utils/{cash/prop.js → prop.js} +0 -0
  299. /package/generated/internal/utils/{cash/siblings.d.ts → siblings.d.ts} +0 -0
  300. /package/generated/internal/utils/{cash/siblings.js → siblings.js} +0 -0
@@ -0,0 +1,13 @@
1
+ export type AlertReturnDetail = {
2
+ returnValue: string;
3
+ };
4
+ export interface AlertReturnEvent extends CustomEvent<AlertReturnDetail> {
5
+ }
6
+ declare global {
7
+ interface HTMLElementEventMap {
8
+ 'alert:return': AlertReturnEvent;
9
+ }
10
+ interface DocumentEventMap {
11
+ 'alert:return': AlertReturnEvent;
12
+ }
13
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,9 +1,14 @@
1
- export type ReturnDetail = {
1
+ export type ConfirmationReturnDetail = {
2
2
  returnValue: string;
3
3
  positionAnchor: string;
4
4
  };
5
+ export interface ConfirmationReturnEvent extends CustomEvent<ConfirmationReturnDetail> {
6
+ }
5
7
  declare global {
6
8
  interface HTMLElementEventMap {
7
- return: CustomEvent<ReturnDetail>;
9
+ 'confirmation:return': ConfirmationReturnEvent;
10
+ }
11
+ interface DocumentEventMap {
12
+ 'confirmation:return': ConfirmationReturnEvent;
8
13
  }
9
14
  }
@@ -1,8 +1,13 @@
1
1
  export type DatePickerSelectionDetail = {
2
2
  selection: string;
3
3
  };
4
+ export interface DatePickerSelectionEvent extends CustomEvent<DatePickerSelectionDetail> {
5
+ }
4
6
  declare global {
5
7
  interface HTMLElementEventMap {
6
- selection: CustomEvent<DatePickerSelectionDetail>;
8
+ selection: DatePickerSelectionEvent;
9
+ }
10
+ interface DocumentEventMap {
11
+ selection: DatePickerSelectionEvent;
7
12
  }
8
13
  }
@@ -1,3 +1,4 @@
1
+ export * from './alert-dialog';
1
2
  export * from './confirmation-dialog';
2
3
  export * from './date-picker';
3
4
  export * from './lifecycle-observer';
@@ -5,3 +6,4 @@ export * from './picker-view';
5
6
  export * from './scroll-view';
6
7
  export * from './tab-view';
7
8
  export * from './text-field';
9
+ export * from './toggle-view';
@@ -1,3 +1,4 @@
1
+ export * from './alert-dialog';
1
2
  export * from './confirmation-dialog';
2
3
  export * from './date-picker';
3
4
  export * from './lifecycle-observer';
@@ -5,3 +6,4 @@ export * from './picker-view';
5
6
  export * from './scroll-view';
6
7
  export * from './tab-view';
7
8
  export * from './text-field';
9
+ export * from './toggle-view';
@@ -2,9 +2,17 @@ import { type ScrollView } from '../components';
2
2
  export type PageShowHideDetail = {
3
3
  page: ScrollView;
4
4
  };
5
+ export interface PageShowEvent extends CustomEvent<PageShowHideDetail> {
6
+ }
7
+ export interface PageHideEvent extends CustomEvent<PageShowHideDetail> {
8
+ }
5
9
  declare global {
6
10
  interface HTMLElementEventMap {
7
- pageshow: CustomEvent<PageShowHideDetail>;
8
- pagehide: CustomEvent<PageShowHideDetail>;
11
+ pageshow: PageShowEvent;
12
+ pagehide: PageHideEvent;
13
+ }
14
+ interface DocumentEventMap {
15
+ pageshow: PageShowEvent;
16
+ pagehide: PageHideEvent;
9
17
  }
10
18
  }
@@ -1,8 +1,29 @@
1
1
  export type PickerSelectionDetail = {
2
2
  selection: string;
3
3
  };
4
+ export type PickerSearchableDetail = {
5
+ element: HTMLElement;
6
+ search: string;
7
+ };
8
+ export interface PickerSelectionEvent extends CustomEvent<PickerSelectionDetail> {
9
+ }
10
+ export interface PickerSearchfocusEvent extends CustomEvent<PickerSearchableDetail> {
11
+ }
12
+ export interface PickerSearchblurEvent extends CustomEvent<PickerSearchableDetail> {
13
+ }
14
+ export interface PickerSearchinputEvent extends CustomEvent<PickerSearchableDetail> {
15
+ }
4
16
  declare global {
5
17
  interface HTMLElementEventMap {
6
- selection: CustomEvent<PickerSelectionDetail>;
18
+ selection: PickerSelectionEvent;
19
+ 'picker:searchfocus': PickerSearchfocusEvent;
20
+ 'picker:searchblur': PickerSearchblurEvent;
21
+ 'picker:searchinput': PickerSearchinputEvent;
22
+ }
23
+ interface DocumentEventMap {
24
+ selection: PickerSelectionEvent;
25
+ 'picker:searchfocus': PickerSearchfocusEvent;
26
+ 'picker:searchblur': PickerSearchblurEvent;
27
+ 'picker:searchinput': PickerSearchinputEvent;
7
28
  }
8
29
  }
@@ -2,9 +2,17 @@ import { type ScrollView } from '../components';
2
2
  export type PageRevealSwapDetail = {
3
3
  page: ScrollView;
4
4
  };
5
+ export interface PagerevealEvent extends CustomEvent<PageRevealSwapDetail> {
6
+ }
7
+ export interface PageswapEvent extends CustomEvent<PageRevealSwapDetail> {
8
+ }
5
9
  declare global {
6
10
  interface HTMLElementEventMap {
7
- pagereveal: CustomEvent<PageRevealSwapDetail>;
8
- pageswap: CustomEvent<PageRevealSwapDetail>;
11
+ pagereveal: PagerevealEvent;
12
+ pageswap: PageswapEvent;
13
+ }
14
+ interface DocumentEventMap {
15
+ pagereveal: PagerevealEvent;
16
+ pageswap: PageswapEvent;
9
17
  }
10
18
  }
@@ -1,5 +1,9 @@
1
1
  import { type NavigationSplitView, type NavigationStack } from '../components';
2
2
  import { type TabBarPlacement } from '../components/tab-view';
3
+ export type TabBeforeDetail = {
4
+ tag: string;
5
+ ms: number;
6
+ };
3
7
  export type TabDetail = {
4
8
  tag: string;
5
9
  };
@@ -10,15 +14,41 @@ export type TabViewAdaptableTabBarPlacementDetail = {
10
14
  oldValue?: TabBarPlacement;
11
15
  newValue?: TabBarPlacement;
12
16
  };
17
+ export interface TabshowEvent extends CustomEvent<TabDetail> {
18
+ }
19
+ export interface TabhideEvent extends CustomEvent<TabDetail> {
20
+ }
21
+ export interface TabrevealEvent extends CustomEvent<TabDetail> {
22
+ }
23
+ export interface TabswapEvent extends CustomEvent<TabDetail> {
24
+ }
25
+ export interface BeforetabrevealEvent extends CustomEvent<TabBeforeDetail> {
26
+ }
27
+ export interface BeforetabswapEvent extends CustomEvent<TabBeforeDetail> {
28
+ }
29
+ export interface TabViewToggleEvent extends CustomEvent<TabViewDetail> {
30
+ }
31
+ export interface TabViewAdaptableTabBarPlacementChangeEvent extends CustomEvent<TabViewAdaptableTabBarPlacementDetail> {
32
+ }
13
33
  declare global {
14
34
  interface HTMLElementEventMap {
15
- tabshow: CustomEvent<TabDetail>;
16
- tabhide: CustomEvent<TabDetail>;
17
- tabreveal: CustomEvent<TabDetail>;
18
- tabswap: CustomEvent<TabDetail>;
19
- beforetabreveal: CustomEvent<TabDetail>;
20
- beforetabswap: CustomEvent<TabDetail>;
21
- 'tab-view:toggle': CustomEvent<TabViewDetail>;
22
- 'tab-view:adaptable-tab-bar-placement-change': CustomEvent<TabViewAdaptableTabBarPlacementDetail>;
35
+ tabshow: TabshowEvent;
36
+ tabhide: TabhideEvent;
37
+ tabreveal: TabrevealEvent;
38
+ tabswap: TabswapEvent;
39
+ beforetabreveal: BeforetabrevealEvent;
40
+ beforetabswap: BeforetabswapEvent;
41
+ 'tab-view:toggle': TabViewToggleEvent;
42
+ 'tab-view:adaptable-tab-bar-placement-change': TabViewAdaptableTabBarPlacementChangeEvent;
43
+ }
44
+ interface DocumentEventMap {
45
+ tabshow: TabshowEvent;
46
+ tabhide: TabhideEvent;
47
+ tabreveal: TabrevealEvent;
48
+ tabswap: TabswapEvent;
49
+ beforetabreveal: BeforetabrevealEvent;
50
+ beforetabswap: BeforetabswapEvent;
51
+ 'tab-view:toggle': TabViewToggleEvent;
52
+ 'tab-view:adaptable-tab-bar-placement-change': TabViewAdaptableTabBarPlacementChangeEvent;
23
53
  }
24
54
  }
@@ -1,8 +1,13 @@
1
1
  export type TextFieldCommitDetail = {
2
2
  text: string;
3
3
  };
4
+ export interface TextFieldCommitEvent extends CustomEvent<TextFieldCommitDetail> {
5
+ }
4
6
  declare global {
5
7
  interface HTMLElementEventMap {
6
- commit: CustomEvent<TextFieldCommitDetail>;
8
+ commit: TextFieldCommitEvent;
9
+ }
10
+ interface DocumentEventMap {
11
+ commit: TextFieldCommitEvent;
7
12
  }
8
13
  }
@@ -0,0 +1,14 @@
1
+ export type ToggleChangeDetail = {
2
+ isOn: boolean;
3
+ value: string | null;
4
+ };
5
+ export interface ToggleChangeEvent extends CustomEvent<ToggleChangeDetail> {
6
+ }
7
+ declare global {
8
+ interface HTMLElementEventMap {
9
+ 'toggle:change': ToggleChangeEvent;
10
+ }
11
+ interface DocumentEventMap {
12
+ 'toggle:change': ToggleChangeEvent;
13
+ }
14
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,18 +1,25 @@
1
+ import { en } from './locales';
1
2
  type LocaleInput = Intl.UnicodeBCP47LocaleIdentifier | Intl.Locale;
2
- type I18nProps = {
3
- tag?: LocaleInput;
4
- options?: Intl.LocaleOptions;
5
- locale: Intl.Locale;
6
- decimalSeparator: string;
7
- dateSeparator: string;
8
- dateOrder: string[];
3
+ type DeepStringify<T> = {
4
+ [K in keyof T]: T[K] extends object ? DeepStringify<T[K]> : string;
9
5
  };
6
+ type EnTranslations = DeepStringify<ReturnType<typeof en>>;
7
+ /**
8
+ * @fires localechange - On html[lang] change!
9
+ */
10
10
  export declare class I18n {
11
11
  #private;
12
12
  static on: EventTarget;
13
- static _props: I18nProps;
14
- static get tag(): LocaleInput | undefined;
15
- static set tag(val: LocaleInput | undefined);
13
+ /**
14
+ * Register a translation factory for a language.
15
+ * Call this before the language is first needed.
16
+ *
17
+ * @example
18
+ * I18n.register('el', () => ({ SearchUnavailableContent: { … } }))
19
+ */
20
+ static register(lang: string, factory: () => EnTranslations): void;
21
+ static get tag(): LocaleInput;
22
+ static set tag(val: LocaleInput);
16
23
  static get options(): Intl.LocaleOptions | undefined;
17
24
  static set options(val: Intl.LocaleOptions | undefined);
18
25
  static get locale(): Intl.Locale;
@@ -20,5 +27,7 @@ export declare class I18n {
20
27
  static get dateSeparator(): string;
21
28
  static get dateOrder(): string[];
22
29
  static setOwnConfig(options?: Intl.LocaleOptions): void;
30
+ /** Look up a top-level translation key for the current language, falling back to 'en'. */
31
+ static t<K extends keyof EnTranslations>(key: K): EnTranslations[K];
23
32
  }
24
33
  export {};
@@ -1,3 +1,7 @@
1
+ import { el, en } from './locales';
2
+ /**
3
+ * @fires localechange - On html[lang] change!
4
+ */
1
5
  export class I18n {
2
6
  static #readyCalled = false;
3
7
  static #tag = 'en';
@@ -7,8 +11,30 @@ export class I18n {
7
11
  static #decimalSeparator = '.';
8
12
  static #dateSeparator = '/';
9
13
  static #dateOrder = ['month', 'day', 'year'];
14
+ static #lang = 'en';
15
+ /** Registry: language code → factory. Pre-seeded with 'en'. */
16
+ static #factories = new Map([
17
+ ['en', en],
18
+ ['el', el],
19
+ ]);
20
+ /** Cache: language code → resolved translation object. */
21
+ static #strings = new Map();
10
22
  static on = new EventTarget();
11
23
  // ----------------------------
24
+ // Public registration API
25
+ // ----------------------------
26
+ /**
27
+ * Register a translation factory for a language.
28
+ * Call this before the language is first needed.
29
+ *
30
+ * @example
31
+ * I18n.register('el', () => ({ SearchUnavailableContent: { … } }))
32
+ */
33
+ static register(lang, factory) {
34
+ this.#factories.set(lang, factory);
35
+ this.#strings.delete(lang); // bust cache so next t() re-resolves
36
+ }
37
+ // ----------------------------
12
38
  // Lazy init
13
39
  // ----------------------------
14
40
  static #ensureReady() {
@@ -16,72 +42,42 @@ export class I18n {
16
42
  this.setOwnConfig();
17
43
  }
18
44
  // ----------------------------
19
- // Proxy with typed target
20
- // ----------------------------
21
- static _props = new Proxy({}, {
22
- get: (_, prop) => {
23
- this.#ensureReady();
24
- switch (prop) {
25
- case 'tag':
26
- return this.#tag;
27
- case 'options':
28
- return this.#options;
29
- case 'locale':
30
- return this.#locale;
31
- case 'decimalSeparator':
32
- return this.#decimalSeparator;
33
- case 'dateSeparator':
34
- return this.#dateSeparator;
35
- case 'dateOrder':
36
- return this.#dateOrder;
37
- }
38
- },
39
- set: (_, prop, value) => {
40
- switch (prop) {
41
- case 'tag':
42
- this.#observer?.disconnect();
43
- this.#observer = undefined;
44
- this.#tag = value;
45
- this.#getOwnConfig();
46
- break;
47
- case 'options':
48
- this.#options = value;
49
- this.#getOwnConfig();
50
- break;
51
- }
52
- return true;
53
- },
54
- });
55
- // ----------------------------
56
45
  // Accessors
57
46
  // ----------------------------
58
47
  static get tag() {
59
- return this._props.tag;
48
+ this.#ensureReady();
49
+ return this.#tag;
60
50
  }
61
51
  static set tag(val) {
62
- this._props.tag = val;
52
+ this.#observer?.disconnect();
53
+ this.#observer = undefined;
54
+ this.#tag = val;
55
+ this.#getOwnConfig();
63
56
  }
64
57
  static get options() {
65
- return this._props.options;
58
+ this.#ensureReady();
59
+ return this.#options;
66
60
  }
67
61
  static set options(val) {
68
- this._props.options = val;
62
+ this.#options = val;
63
+ this.#getOwnConfig();
69
64
  }
70
65
  static get locale() {
71
- return this._props.locale;
66
+ this.#ensureReady();
67
+ return this.#locale;
72
68
  }
73
69
  static get decimalSeparator() {
74
- return this._props.decimalSeparator;
70
+ this.#ensureReady();
71
+ return this.#decimalSeparator;
75
72
  }
76
73
  static get dateSeparator() {
77
- return this._props.dateSeparator;
74
+ this.#ensureReady();
75
+ return this.#dateSeparator;
78
76
  }
79
77
  static get dateOrder() {
80
- return this._props.dateOrder;
78
+ this.#ensureReady();
79
+ return this.#dateOrder;
81
80
  }
82
- // ----------------------------
83
- // Core logic
84
- // ----------------------------
85
81
  static setOwnConfig(options) {
86
82
  if (!this.#readyCalled)
87
83
  this.#readyCalled = true;
@@ -100,7 +96,7 @@ export class I18n {
100
96
  return;
101
97
  this.#tag = document.documentElement.lang;
102
98
  this.#getOwnConfig();
103
- this.on.dispatchEvent(new CustomEvent('change'));
99
+ this.on.dispatchEvent(new CustomEvent('localechange', { detail: { lang: this.#tag } }));
104
100
  }
105
101
  static #getOwnConfig() {
106
102
  try {
@@ -109,7 +105,6 @@ export class I18n {
109
105
  catch {
110
106
  this.#locale = new Intl.Locale('en');
111
107
  }
112
- console.debug(this.#locale);
113
108
  try {
114
109
  const nf = new Intl.NumberFormat(this.#locale);
115
110
  const parts = nf.formatToParts(1.1);
@@ -118,11 +113,10 @@ export class I18n {
118
113
  catch {
119
114
  this.#decimalSeparator = '.';
120
115
  }
121
- console.debug(this.#decimalSeparator);
122
116
  try {
123
117
  const df = new Intl.DateTimeFormat(this.#locale);
124
118
  const parts = df.formatToParts(new Date(2000, 11, 31));
125
- this.#dateOrder = parts.filter(({ type }) => type !== 'literal')?.map(({ type }) => type) ?? ['month', 'day', 'year'];
119
+ this.#dateOrder = parts.filter(({ type }) => type !== 'literal').map(({ type }) => type) ?? ['month', 'day', 'year'];
126
120
  this.#dateSeparator =
127
121
  parts
128
122
  .filter(({ type }) => type === 'literal')
@@ -133,7 +127,38 @@ export class I18n {
133
127
  this.#dateOrder = ['month', 'day', 'year'];
134
128
  this.#dateSeparator = '/';
135
129
  }
136
- console.debug(`${I18n.name} ${this.#dateSeparator}`);
137
- console.debug(`${I18n.name} ${this.#dateOrder}`);
130
+ try {
131
+ this.#lang = this.#resolveLanguage(this.#tag);
132
+ }
133
+ catch {
134
+ this.#lang = 'en';
135
+ }
136
+ }
137
+ /**
138
+ * Resolve the best available language for a given BCP 47 tag.
139
+ * Tries the full tag, then just the base language, then falls back to 'en'.
140
+ */
141
+ static #resolveLanguage(tag) {
142
+ const lang = tag instanceof Intl.Locale ? tag.language : new Intl.Locale(tag || 'en').language;
143
+ if (this.#factories.has(String(tag)))
144
+ return String(tag);
145
+ if (this.#factories.has(lang))
146
+ return lang;
147
+ return 'en';
148
+ }
149
+ /** Look up a top-level translation key for the current language, falling back to 'en'. */
150
+ static t(key) {
151
+ this.#ensureReady();
152
+ if (!this.#strings.has(this.#lang)) {
153
+ const factory = this.#factories.get(this.#lang) ?? en;
154
+ this.#strings.set(this.#lang, factory());
155
+ }
156
+ const current = this.#strings.get(this.#lang);
157
+ if (key in current)
158
+ return current[key];
159
+ // Key missing from current language — fall back to en
160
+ if (!this.#strings.has('en'))
161
+ this.#strings.set('en', en());
162
+ return this.#strings.get('en')[key];
138
163
  }
139
164
  }
@@ -0,0 +1,16 @@
1
+ declare const _default: () => {
2
+ readonly SearchUnavailableContent: {
3
+ readonly NoLabel: "Κανένα αποτέλεσμα";
4
+ readonly Label: "Κανένα αποτέλεσμα για «{search}»";
5
+ readonly Description: "Ελέγξτε την ορθογραφία ή δοκιμάστε μια νέα αναζήτηση.";
6
+ };
7
+ readonly ButtonRole: {
8
+ readonly Back: "Πίσω";
9
+ readonly Cancel: "Ακύρωση";
10
+ readonly Close: "Κλείσιμο";
11
+ readonly Confirm: "Τέλος";
12
+ readonly Destructive: "Διαγραφή";
13
+ readonly OK: "OK";
14
+ };
15
+ };
16
+ export default _default;
@@ -0,0 +1,16 @@
1
+ import { defineTranslations } from '../../internal/utils';
2
+ export default defineTranslations(() => ({
3
+ SearchUnavailableContent: {
4
+ NoLabel: 'Κανένα αποτέλεσμα',
5
+ Label: 'Κανένα αποτέλεσμα για «{search}»',
6
+ Description: 'Ελέγξτε την ορθογραφία ή δοκιμάστε μια νέα αναζήτηση.',
7
+ },
8
+ ButtonRole: {
9
+ Back: 'Πίσω',
10
+ Cancel: 'Ακύρωση',
11
+ Close: 'Κλείσιμο',
12
+ Confirm: 'Τέλος',
13
+ Destructive: 'Διαγραφή',
14
+ OK: 'OK',
15
+ },
16
+ }));
@@ -0,0 +1,16 @@
1
+ declare const _default: () => {
2
+ readonly SearchUnavailableContent: {
3
+ readonly NoLabel: "No Results";
4
+ readonly Label: "No Results for ”{search}”";
5
+ readonly Description: "Check the spelling or try a new search.";
6
+ };
7
+ readonly ButtonRole: {
8
+ readonly Back: "Back";
9
+ readonly Cancel: "Cancel";
10
+ readonly Close: "Close";
11
+ readonly Confirm: "Confirm";
12
+ readonly Destructive: "Delete";
13
+ readonly OK: "OK";
14
+ };
15
+ };
16
+ export default _default;
@@ -0,0 +1,16 @@
1
+ import { defineTranslations } from '../../internal/utils';
2
+ export default defineTranslations(() => ({
3
+ SearchUnavailableContent: {
4
+ NoLabel: 'No Results',
5
+ Label: 'No Results for ”{search}”',
6
+ Description: 'Check the spelling or try a new search.',
7
+ },
8
+ ButtonRole: {
9
+ Back: 'Back',
10
+ Cancel: 'Cancel',
11
+ Close: 'Close',
12
+ Confirm: 'Confirm',
13
+ Destructive: 'Delete',
14
+ OK: 'OK',
15
+ },
16
+ }));
@@ -0,0 +1,4 @@
1
+ export { default as el } from './el';
2
+ export * from './el';
3
+ export { default as en } from './en';
4
+ export * from './en';
@@ -0,0 +1,4 @@
1
+ export { default as el } from './el';
2
+ export * from './el';
3
+ export { default as en } from './en';
4
+ export * from './en';
@@ -1,5 +1,5 @@
1
1
  var _a;
2
- import { onoff } from '../../internal/utils';
2
+ import { debug, onoff } from '../../internal/utils';
3
3
  export class CSSStyleObserver {
4
4
  #cleanups;
5
5
  #options;
@@ -16,7 +16,7 @@ export class CSSStyleObserver {
16
16
  this.#cleanups?.();
17
17
  }
18
18
  #handleTransitionrun = (callback, evt) => {
19
- console.debug(`${_a.name} ⚡️ ${evt?.type}`);
19
+ debug(`${_a.name} ⚡️ ${evt?.type} (${evt.propertyName})`);
20
20
  if (!this.#options?.properties.some((prop) => evt.propertyName.startsWith(prop)))
21
21
  return;
22
22
  callback?.(evt);
@@ -1,8 +1,4 @@
1
1
  export declare function getInternals(instance: FormAssociatedBase): ElementInternals;
2
- export declare function makeSlotchangeHandler(t: FormAssociatedBase): {
3
- types: string;
4
- listener: (evt: Event) => void;
5
- }[];
6
2
  export declare abstract class FormAssociatedBase extends HTMLElement {
7
3
  abstract setValidity(flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement): void;
8
4
  static get formAssociated(): boolean;