@vonage/vivid 4.16.2 → 4.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. package/custom-elements.json +3426 -506
  2. package/elevation/index.cjs +1 -1
  3. package/elevation/index.js +1 -1
  4. package/index.cjs +147 -39
  5. package/index.js +64 -59
  6. package/lib/accordion/definition.d.ts +2 -0
  7. package/lib/accordion-item/definition.d.ts +2 -0
  8. package/lib/action-group/definition.d.ts +2 -0
  9. package/lib/alert/definition.d.ts +2 -0
  10. package/lib/audio-player/definition.d.ts +2 -0
  11. package/lib/avatar/definition.d.ts +2 -0
  12. package/lib/badge/definition.d.ts +2 -0
  13. package/lib/banner/definition.d.ts +2 -0
  14. package/lib/breadcrumb/definition.d.ts +2 -0
  15. package/lib/breadcrumb-item/definition.d.ts +2 -0
  16. package/lib/button/definition.d.ts +2 -0
  17. package/lib/calendar/calendar.d.ts +2 -0
  18. package/lib/calendar/definition.d.ts +2 -0
  19. package/lib/calendar-event/definition.d.ts +2 -0
  20. package/lib/card/definition.d.ts +2 -0
  21. package/lib/checkbox/definition.d.ts +2 -0
  22. package/lib/combobox/definition.d.ts +2 -0
  23. package/lib/components.d.ts +1 -0
  24. package/lib/data-grid/definition.d.ts +4 -0
  25. package/lib/date-picker/definition.d.ts +2 -0
  26. package/lib/date-range-picker/definition.d.ts +2 -0
  27. package/lib/dial-pad/definition.d.ts +2 -0
  28. package/lib/dialog/definition.d.ts +2 -0
  29. package/lib/divider/definition.d.ts +2 -0
  30. package/lib/empty-state/definition.d.ts +2 -0
  31. package/lib/enums.d.ts +6 -0
  32. package/lib/fab/definition.d.ts +2 -0
  33. package/lib/file-picker/definition.d.ts +2 -0
  34. package/lib/header/definition.d.ts +2 -0
  35. package/lib/icon/definition.d.ts +2 -0
  36. package/lib/layout/definition.d.ts +2 -0
  37. package/lib/menu/definition.d.ts +2 -0
  38. package/lib/menu/menu.d.ts +454 -4
  39. package/lib/menu-item/definition.d.ts +2 -0
  40. package/lib/nav/definition.d.ts +2 -0
  41. package/lib/nav-disclosure/definition.d.ts +2 -0
  42. package/lib/nav-item/definition.d.ts +2 -0
  43. package/lib/note/definition.d.ts +2 -0
  44. package/lib/number-field/definition.d.ts +2 -0
  45. package/lib/option/definition.d.ts +2 -0
  46. package/lib/pagination/definition.d.ts +2 -0
  47. package/lib/popup/definition.d.ts +0 -1
  48. package/lib/popup/popup.d.ts +25 -0
  49. package/lib/progress/definition.d.ts +2 -0
  50. package/lib/progress-ring/definition.d.ts +2 -0
  51. package/lib/radio/definition.d.ts +2 -0
  52. package/lib/radio-group/definition.d.ts +2 -0
  53. package/lib/range-slider/definition.d.ts +2 -0
  54. package/lib/rich-text-editor/definition.d.ts +2 -0
  55. package/lib/rich-text-editor/facades/prose-mirror-vivid.schema.d.ts +2 -0
  56. package/lib/rich-text-editor/facades/vivid-prose-mirror.facade.d.ts +7 -0
  57. package/lib/rich-text-editor/rich-text-editor.d.ts +13 -0
  58. package/lib/rich-text-editor/rich-text-editor.template.d.ts +4 -0
  59. package/lib/searchable-select/definition.d.ts +2 -0
  60. package/lib/select/definition.d.ts +2 -0
  61. package/lib/selectable-box/definition.d.ts +2 -0
  62. package/lib/side-drawer/definition.d.ts +2 -0
  63. package/lib/slider/definition.d.ts +2 -0
  64. package/lib/split-button/definition.d.ts +2 -0
  65. package/lib/switch/definition.d.ts +2 -0
  66. package/lib/tab/definition.d.ts +2 -0
  67. package/lib/tab-panel/definition.d.ts +2 -0
  68. package/lib/tabs/definition.d.ts +2 -0
  69. package/lib/tag/definition.d.ts +2 -0
  70. package/lib/tag-group/definition.d.ts +2 -0
  71. package/lib/text-area/definition.d.ts +2 -0
  72. package/lib/text-field/definition.d.ts +2 -0
  73. package/lib/time-picker/definition.d.ts +2 -0
  74. package/lib/time-picker/inline-time-picker/columns.d.ts +13 -0
  75. package/lib/time-picker/inline-time-picker/definition.d.ts +1 -0
  76. package/lib/time-picker/inline-time-picker/inline-time-picker.d.ts +15 -0
  77. package/lib/time-picker/inline-time-picker/inline-time-picker.template.d.ts +5 -0
  78. package/lib/time-picker/time-picker.template.d.ts +1 -2
  79. package/lib/toggletip/definition.d.ts +2 -0
  80. package/lib/toggletip/toggletip.d.ts +454 -4
  81. package/lib/tooltip/definition.d.ts +2 -0
  82. package/lib/tooltip/tooltip.d.ts +454 -4
  83. package/lib/tree-item/definition.d.ts +2 -0
  84. package/lib/tree-view/definition.d.ts +2 -0
  85. package/lib/video-player/definition.d.ts +2 -0
  86. package/menu/index.js +1 -1
  87. package/package.json +7 -2
  88. package/popup/index.cjs +1 -1
  89. package/popup/index.js +1 -1
  90. package/rich-text-editor/index.cjs +5 -0
  91. package/rich-text-editor/index.js +3 -0
  92. package/searchable-select/index.cjs +1 -1
  93. package/searchable-select/index.js +1 -1
  94. package/select/index.cjs +1 -1
  95. package/select/index.js +1 -1
  96. package/selectable-box/index.cjs +1 -1
  97. package/selectable-box/index.js +1 -1
  98. package/shared/affix.cjs +1 -3
  99. package/shared/affix.js +2 -4
  100. package/shared/anchored.cjs +12 -9
  101. package/shared/anchored.js +13 -10
  102. package/shared/definition.js +1 -1
  103. package/shared/definition10.cjs +1 -0
  104. package/shared/definition10.js +2 -2
  105. package/shared/definition11.cjs +1 -1
  106. package/shared/definition11.js +2 -2
  107. package/shared/definition12.cjs +1 -1
  108. package/shared/definition12.js +2 -2
  109. package/shared/definition13.cjs +15 -2
  110. package/shared/definition13.js +16 -4
  111. package/shared/definition14.cjs +3 -2
  112. package/shared/definition14.js +4 -4
  113. package/shared/definition15.cjs +1 -1
  114. package/shared/definition15.js +2 -2
  115. package/shared/definition16.cjs +18 -18
  116. package/shared/definition16.js +6 -6
  117. package/shared/definition17.cjs +3 -0
  118. package/shared/definition17.js +2 -2
  119. package/shared/definition18.cjs +7 -7
  120. package/shared/definition18.js +4 -4
  121. package/shared/definition19.cjs +15 -15
  122. package/shared/definition19.js +4 -4
  123. package/shared/definition2.cjs +1 -0
  124. package/shared/definition2.js +2 -2
  125. package/shared/definition20.cjs +5 -4
  126. package/shared/definition20.js +6 -6
  127. package/shared/definition21.cjs +3 -2
  128. package/shared/definition21.js +4 -4
  129. package/shared/definition22.js +1 -1
  130. package/shared/definition23.cjs +2 -1
  131. package/shared/definition23.js +3 -3
  132. package/shared/definition24.cjs +2 -1
  133. package/shared/definition24.js +3 -3
  134. package/shared/definition25.cjs +14 -14
  135. package/shared/definition25.js +3 -3
  136. package/shared/definition26.cjs +2 -1
  137. package/shared/definition26.js +3 -3
  138. package/shared/definition27.cjs +1 -1
  139. package/shared/definition27.js +2 -2
  140. package/shared/definition28.cjs +1 -0
  141. package/shared/definition28.js +2 -2
  142. package/shared/definition29.cjs +53 -61
  143. package/shared/definition29.js +54 -63
  144. package/shared/definition3.cjs +1 -0
  145. package/shared/definition3.js +2 -2
  146. package/shared/definition30.cjs +1 -0
  147. package/shared/definition30.js +2 -2
  148. package/shared/definition31.cjs +1 -0
  149. package/shared/definition31.js +2 -2
  150. package/shared/definition32.cjs +1 -0
  151. package/shared/definition32.js +2 -2
  152. package/shared/definition33.cjs +2 -1
  153. package/shared/definition33.js +3 -3
  154. package/shared/definition34.cjs +25 -25
  155. package/shared/definition34.js +5 -5
  156. package/shared/definition35.cjs +1 -1
  157. package/shared/definition35.js +2 -2
  158. package/shared/definition36.cjs +2 -1
  159. package/shared/definition36.js +3 -3
  160. package/shared/definition37.cjs +1 -1
  161. package/shared/definition37.js +2 -2
  162. package/shared/definition38.cjs +2 -1
  163. package/shared/definition38.js +3 -3
  164. package/shared/definition39.cjs +1 -0
  165. package/shared/definition39.js +2 -2
  166. package/shared/definition4.cjs +3 -2
  167. package/shared/definition4.js +4 -4
  168. package/shared/definition40.cjs +1 -1
  169. package/shared/definition40.js +2 -2
  170. package/shared/definition41.cjs +30 -30
  171. package/shared/definition41.js +5 -5
  172. package/shared/definition42.cjs +12538 -1052
  173. package/shared/definition42.js +12538 -1053
  174. package/shared/definition43.cjs +927 -701
  175. package/shared/definition43.js +929 -702
  176. package/shared/definition44.cjs +874 -104
  177. package/shared/definition44.js +874 -104
  178. package/shared/definition45.cjs +114 -90
  179. package/shared/definition45.js +113 -90
  180. package/shared/definition46.cjs +88 -464
  181. package/shared/definition46.js +87 -463
  182. package/shared/definition47.cjs +463 -109
  183. package/shared/definition47.js +462 -109
  184. package/shared/definition48.cjs +108 -106
  185. package/shared/definition48.js +107 -106
  186. package/shared/definition49.cjs +139 -13
  187. package/shared/definition49.js +138 -13
  188. package/shared/definition5.cjs +3 -2
  189. package/shared/definition5.js +5 -5
  190. package/shared/definition50.cjs +16 -114
  191. package/shared/definition50.js +15 -114
  192. package/shared/definition51.cjs +79 -485
  193. package/shared/definition51.js +78 -485
  194. package/shared/definition52.cjs +503 -23
  195. package/shared/definition52.js +502 -23
  196. package/shared/definition53.cjs +25 -123
  197. package/shared/definition53.js +24 -123
  198. package/shared/definition54.cjs +96 -254
  199. package/shared/definition54.js +96 -255
  200. package/shared/definition55.cjs +261 -59
  201. package/shared/definition55.js +262 -60
  202. package/shared/definition56.cjs +72 -861
  203. package/shared/definition56.js +72 -861
  204. package/shared/definition57.cjs +880 -107
  205. package/shared/definition57.js +880 -107
  206. package/shared/definition58.cjs +104 -88
  207. package/shared/definition58.js +104 -89
  208. package/shared/definition59.cjs +80 -165
  209. package/shared/definition59.js +79 -163
  210. package/shared/definition6.cjs +2 -1
  211. package/shared/definition6.js +3 -3
  212. package/shared/definition60.cjs +142 -228
  213. package/shared/definition60.js +141 -229
  214. package/shared/definition61.cjs +233 -70146
  215. package/shared/definition61.js +232 -70146
  216. package/shared/definition62.cjs +69381 -28
  217. package/shared/definition62.js +69380 -27
  218. package/shared/definition63.cjs +28 -2163
  219. package/shared/definition63.js +27 -2161
  220. package/shared/definition64.cjs +2195 -0
  221. package/shared/definition64.js +2190 -0
  222. package/shared/definition7.cjs +2 -1
  223. package/shared/definition7.js +3 -3
  224. package/shared/definition8.cjs +2 -1
  225. package/shared/definition8.js +3 -3
  226. package/shared/definition9.cjs +1 -1
  227. package/shared/definition9.js +2 -2
  228. package/shared/enums.cjs +8 -0
  229. package/shared/enums.js +8 -1
  230. package/shared/form-associated.js +1 -1
  231. package/shared/form-elements.cjs +7 -7
  232. package/shared/form-elements.js +8 -8
  233. package/shared/foundation/vivid-element/vivid-element.d.ts +1 -0
  234. package/shared/patterns/anchored.d.ts +891 -10
  235. package/shared/patterns/trapped-focus.d.ts +2 -0
  236. package/shared/presentationDate.cjs +5 -7
  237. package/shared/presentationDate.js +5 -7
  238. package/shared/slider.template.cjs +4 -4
  239. package/shared/slider.template.js +4 -4
  240. package/shared/text-anchor.template.cjs +2 -2
  241. package/shared/text-anchor.template.js +2 -2
  242. package/shared/text-field.cjs +555 -2
  243. package/shared/text-field.js +554 -2
  244. package/shared/text-field2.cjs +2 -572
  245. package/shared/text-field2.js +2 -571
  246. package/shared/trapped-focus.cjs +7 -1
  247. package/shared/trapped-focus.js +7 -1
  248. package/shared/utils/mixins.d.ts +3 -0
  249. package/shared/vivid-element.cjs +3 -0
  250. package/shared/vivid-element.js +4 -1
  251. package/side-drawer/index.cjs +1 -1
  252. package/side-drawer/index.js +1 -1
  253. package/slider/index.cjs +1 -1
  254. package/slider/index.js +1 -1
  255. package/split-button/index.cjs +1 -1
  256. package/split-button/index.js +1 -1
  257. package/styles/core/all.css +1 -1
  258. package/styles/core/theme.css +1 -1
  259. package/styles/core/typography.css +1 -1
  260. package/styles/tokens/theme-dark.css +4 -4
  261. package/styles/tokens/theme-light.css +4 -4
  262. package/styles/tokens/vivid-2-compat.css +1 -1
  263. package/switch/index.cjs +1 -1
  264. package/switch/index.js +1 -1
  265. package/tab/index.cjs +1 -1
  266. package/tab/index.js +1 -1
  267. package/tab-panel/index.cjs +1 -1
  268. package/tab-panel/index.js +1 -1
  269. package/tabs/index.cjs +1 -1
  270. package/tabs/index.js +1 -1
  271. package/tag/index.cjs +1 -1
  272. package/tag/index.js +1 -1
  273. package/tag-group/index.cjs +1 -1
  274. package/tag-group/index.js +1 -1
  275. package/text-anchor/index.js +1 -1
  276. package/text-area/index.cjs +1 -1
  277. package/text-area/index.js +1 -1
  278. package/text-field/index.cjs +1 -1
  279. package/text-field/index.js +1 -1
  280. package/time-picker/index.cjs +1 -1
  281. package/time-picker/index.js +1 -1
  282. package/toggletip/index.cjs +1 -1
  283. package/toggletip/index.js +1 -1
  284. package/tooltip/index.cjs +1 -1
  285. package/tooltip/index.js +1 -1
  286. package/tree-item/index.cjs +1 -1
  287. package/tree-item/index.js +1 -1
  288. package/tree-view/index.cjs +1 -1
  289. package/tree-view/index.js +1 -1
  290. package/video-player/index.cjs +1 -1
  291. package/video-player/index.js +1 -1
  292. package/vivid.api.json +22795 -1
@@ -1,883 +1,94 @@
1
1
  'use strict';
2
2
 
3
- const definition$2 = require('./definition55.cjs');
4
- const definition = require('./definition63.cjs');
5
- const definition$1 = require('./definition11.cjs');
3
+ const definition = require('./definition27.cjs');
6
4
  const vividElement = require('./vivid-element.cjs');
7
- const applyMixinsWithObservables = require('./applyMixinsWithObservables.cjs');
8
- const index = require('./index.cjs');
9
- const scrollIntoView = require('./scrollIntoView.cjs');
10
- const formAssociated = require('./form-associated.cjs');
11
- const formElements = require('./form-elements.cjs');
12
- const trappedFocus = require('./trapped-focus.cjs');
13
- const localized = require('./localized.cjs');
5
+ const textField$1 = require('./text-field.cjs');
14
6
  const textField = require('./text-field2.cjs');
15
- const ref = require('./ref.cjs');
16
- const slotted = require('./slotted.cjs');
17
- const when = require('./when.cjs');
18
- const repeat = require('./repeat.cjs');
7
+ const affix = require('./affix.cjs');
19
8
  const classNames = require('./class-names.cjs');
9
+ const when = require('./when.cjs');
10
+ const slotted = require('./slotted.cjs');
11
+ const formElements = require('./form-elements.cjs');
20
12
 
21
- const styles = ":host{display:inline-block}.base,.control{inline-size:100%}.dialog{display:inline-flex;flex-direction:column}.dialog .footer{display:flex;align-items:center;justify-content:flex-end;padding:8px;border-top:1px solid var(--vvd-color-neutral-200);gap:8px}.time-pickers{display:flex;overflow:hidden;justify-content:center;padding:4px;block-size:188px;gap:4px}.time-pickers .picker{position:relative;display:flex;overflow:hidden;flex-direction:column;padding:0;border-radius:4px;margin:0;gap:4px;inline-size:50px;list-style:none}.time-pickers .picker:hover{overflow-y:auto}.time-pickers .picker:after{display:block;flex-shrink:0;block-size:156px;content:\"\"}.time-pickers .picker:focus-visible{--focus-stroke-gap-color: transparent;--focus-inset: -2px;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}.time-pickers .item{--_connotation-color-primary: var(--vvd-time-picker-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-firm: var(--vvd-time-picker-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-time-picker-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-time-picker-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-dim: var(--vvd-time-picker-accent-dim, var(--vvd-color-neutral-200));--_connotation-color-pale: var(--vvd-time-picker-accent-pale, var(--vvd-color-neutral-300))}.time-pickers .item{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.time-pickers .item:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.time-pickers .item:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.time-pickers .item:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.time-pickers .item:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.time-pickers .item:where(.selected):where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: transparent}.time-pickers .item{display:flex;flex-shrink:0;align-items:center;justify-content:center;border-radius:4px;background-color:var(--_appearance-color-fill);block-size:28px;color:var(--_appearance-color-text);cursor:pointer;font:var(--vvd-typography-base);inline-size:50px}";
22
-
23
- class _TimePicker extends vividElement.VividElement {
24
- }
25
- class FormAssociatedTimePicker extends formAssociated.FormAssociated(_TimePicker) {
26
- constructor() {
27
- super(...arguments);
28
- this.proxy = document.createElement("input");
29
- }
30
- }
31
-
32
- const isValidTimeStr = (timeStr) => {
33
- const parts = timeStr.split(":");
34
- if (parts.length !== 3) {
35
- return false;
36
- }
37
- const [hours, minutes, seconds] = parts;
38
- if (hours.length !== 2 || minutes.length !== 2 || seconds.length !== 2) {
39
- return false;
40
- }
41
- const hoursNum = parseInt(hours, 10);
42
- const minutesNum = parseInt(minutes, 10);
43
- const secondsNum = parseInt(seconds, 10);
44
- if (isNaN(hoursNum) || isNaN(minutesNum) || isNaN(secondsNum)) {
45
- return false;
46
- }
47
- if (hoursNum < 0 || hoursNum > 23) {
48
- return false;
49
- }
50
- if (minutesNum < 0 || minutesNum > 59) {
51
- return false;
52
- }
53
- if (secondsNum < 0 || secondsNum > 59) {
54
- return false;
55
- }
56
- return true;
57
- };
58
- const parseTimePart = (partStr) => Number.parseInt(partStr, 10);
59
- const formatTimePart = (part) => part.toString().padStart(2, "0");
60
- const parseTimeStr = (timeStr) => {
61
- const [hoursStr, minutesStr, secondsStr] = timeStr.split(":");
62
- const hours = parseTimePart(hoursStr);
63
- const minutes = parseTimePart(minutesStr);
64
- const seconds = parseTimePart(secondsStr);
65
- return {
66
- hourStr: hoursStr,
67
- hours,
68
- minuteStr: minutesStr,
69
- minutes,
70
- secondStr: secondsStr,
71
- seconds,
72
- meridiem: hours < 12 ? "AM" : "PM"
73
- };
74
- };
75
- const hoursAs12hClock = (hour) => hour % 12 || 12;
76
-
77
- const formatPresentationTime = (timeStr, includeSeconds, use12HourClock) => {
78
- const time = parseTimeStr(timeStr);
79
- const hoursStr = formatTimePart(
80
- use12HourClock ? hoursAs12hClock(time.hours) : time.hours
81
- );
82
- let result = `${hoursStr}:${time.minuteStr}`;
83
- if (includeSeconds) {
84
- result += `:${time.secondStr}`;
85
- }
86
- if (use12HourClock) {
87
- result += ` ${time.meridiem}`;
88
- }
89
- return result;
90
- };
91
- const isDigit = (char) => char >= "0" && char <= "9";
92
- const parsePresentationTime = (input, use12HourClock) => {
93
- const cleanedInput = input.toLowerCase();
94
- const numerals = [];
95
- let meridiem;
96
- for (let i = 0; i < cleanedInput.length; i++) {
97
- const char = cleanedInput[i];
98
- if (char === "a" && cleanedInput[i + 1] === "m") {
99
- i++;
100
- meridiem = "AM";
101
- }
102
- if (char === "p" && cleanedInput[i + 1] === "m") {
103
- i++;
104
- meridiem = "PM";
105
- }
106
- if (isDigit(char)) {
107
- let numeral = char;
108
- while (isDigit(cleanedInput[i + 1])) {
109
- i++;
110
- numeral += cleanedInput[i];
111
- }
112
- numerals.push(Number.parseInt(numeral, 10));
113
- }
114
- }
115
- if (numerals.length === 0 || numerals.length > 3) {
116
- throw new Error("Invalid time format");
117
- }
118
- if (meridiem && (numerals[0] < 1 || numerals[0] > 12)) {
119
- throw new Error("Invalid time format");
120
- }
121
- if (meridiem || use12HourClock) {
122
- if (numerals[0] === 12) {
123
- numerals[0] = 0;
124
- }
125
- }
126
- if (meridiem === "PM") {
127
- numerals[0] = numerals[0] + 12;
128
- }
129
- const [hours, minutes = 0, seconds = 0] = numerals;
130
- if (hours > 23 || minutes > 59 || seconds > 59) {
131
- throw new Error("Invalid value");
132
- }
133
- return [hours, minutes, seconds].map(formatTimePart).join(":");
134
- };
135
-
136
- const fallsIntoMeridiem = (meridiem, hour) => meridiem === "AM" && hour < 12 || meridiem === "PM" && hour >= 12;
137
- const getHoursOptions = (min, max, forMeridiem) => {
138
- const result = [];
139
- const minHour = min ? parseTimeStr(min).hours : 0;
140
- const maxHour = max ? parseTimeStr(max).hours : 23;
141
- for (let i = minHour; i <= maxHour; i++) {
142
- if (forMeridiem && !fallsIntoMeridiem(forMeridiem, i)) {
143
- continue;
144
- }
145
- result.push({
146
- value: formatTimePart(i),
147
- label: formatTimePart(forMeridiem ? hoursAs12hClock(i) : i)
148
- });
149
- }
150
- return result;
151
- };
152
- const getMinutesOptions = (step, value, min, max) => {
153
- const result = [];
154
- let minMinute = 0;
155
- let maxMinute = 59;
156
- if (min) {
157
- const { hourStr: minHourStr, minutes: minMinutes } = parseTimeStr(min);
158
- if (value && parseTimeStr(value).hourStr === minHourStr) {
159
- minMinute = minMinutes;
160
- }
161
- }
162
- if (max) {
163
- const { hourStr: maxHourStr, minutes: maxMinutes } = parseTimeStr(max);
164
- if (value && parseTimeStr(value).hourStr === maxHourStr) {
165
- maxMinute = maxMinutes;
166
- }
167
- }
168
- for (let i = minMinute; i <= maxMinute; i += Math.max(1, step ?? 1)) {
169
- const minutes = formatTimePart(i);
170
- result.push({
171
- value: minutes,
172
- label: minutes
173
- });
174
- }
175
- return result;
176
- };
177
- const getSecondsOptions = (step, value, min, max) => {
178
- const result = [];
179
- let minSecond = 0;
180
- let maxSecond = 59;
181
- if (min) {
182
- const minTime = parseTimeStr(min);
183
- if (value && (parseTimeStr(value).hourStr === minTime.hourStr && parseTimeStr(value).minuteStr) === minTime.minuteStr) {
184
- minSecond = minTime.seconds;
185
- }
186
- }
187
- if (max) {
188
- const maxTime = parseTimeStr(max);
189
- if (value && (parseTimeStr(value).hourStr === maxTime.hourStr && parseTimeStr(value).minuteStr) === maxTime.minuteStr) {
190
- maxSecond = maxTime.seconds;
191
- }
192
- }
193
- for (let i = minSecond; i <= maxSecond; i += Math.max(1, step)) {
194
- const seconds = formatTimePart(i);
195
- result.push({
196
- value: seconds,
197
- label: seconds
198
- });
199
- }
200
- return result;
201
- };
202
- const getMeridiesOptions = (min, max) => {
203
- const result = [];
204
- const hideAM = min ? parseTimeStr(min).meridiem === "PM" : false;
205
- if (!hideAM) {
206
- result.push({
207
- value: "AM",
208
- label: "AM"
209
- });
210
- }
211
- const hidePM = max ? parseTimeStr(max).meridiem === "AM" : false;
212
- if (!hidePM) {
213
- result.push({
214
- value: "PM",
215
- label: "PM"
216
- });
217
- }
218
- return result;
219
- };
220
-
221
- var __defProp = Object.defineProperty;
222
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
223
- var __typeError = (msg) => {
224
- throw TypeError(msg);
225
- };
226
- var __decorateClass = (decorators, target, key, kind) => {
227
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
228
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
229
- if (decorator = decorators[i])
230
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
231
- if (kind && result) __defProp(target, key, result);
232
- return result;
233
- };
234
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
235
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
236
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
237
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
238
- var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
239
- var _clockChangeHandler, _clockChangeObserver, _getFocusableEls, _TimePicker_instances, updateValueDueToUserInteraction_fn, _onFocusIn, _onFocusOut, _dismissOnClickOutside, openPopupIfPossible_fn, scrollToItem_fn;
240
- const ValidTimeFilter = {
241
- fromView: (value) => {
242
- if (value && isValidTimeStr(value)) {
243
- return value;
244
- }
245
- return "";
246
- },
247
- toView(value) {
248
- return value;
249
- }
250
- };
251
- let TimePicker = class extends FormAssociatedTimePicker {
252
- constructor() {
253
- super();
254
- __privateAdd(this, _TimePicker_instances);
255
- this.readOnly = false;
256
- this.minutesStep = null;
257
- this.secondsStep = null;
258
- // Reformat the presentation value when the clock changes
259
- __privateAdd(this, _clockChangeHandler, {
260
- handleChange: () => {
261
- if (this.value) {
262
- this._presentationValue = formatPresentationTime(
263
- this.value,
264
- this._displaySeconds,
265
- this._use12hClock
266
- );
267
- }
268
- }
269
- });
270
- __privateAdd(this, _clockChangeObserver);
271
- __privateAdd(this, _getFocusableEls, () => this.shadowRoot.querySelectorAll(`
272
- .dialog [tabindex="0"],
273
- .dialog .vwc-button:not(:disabled)
274
- `));
275
- __privateAdd(this, _onFocusIn, () => {
276
- this.$emit("focus", void 0, { bubbles: false });
277
- });
278
- __privateAdd(this, _onFocusOut, () => {
279
- this.$emit("blur", void 0, { bubbles: false });
280
- });
281
- this._popupOpen = false;
282
- __privateAdd(this, _dismissOnClickOutside, (event) => {
283
- if (!this._popupOpen) {
284
- return;
285
- }
286
- const path = event.composedPath();
287
- const elementsToIgnoreClicksOn = [this._dialogEl, this._clockButtonEl];
288
- if (!elementsToIgnoreClicksOn.some((element) => path.includes(element))) {
289
- this._closePopup(false);
290
- }
291
- });
292
- this._presentationValue = "";
293
- this.value = "";
294
- this.min = "";
295
- this.max = "";
296
- this.proxy.type = "time";
297
- this.proxy.step = "1";
298
- }
299
- /**
300
- * @internal
301
- */
302
- readOnlyChanged() {
303
- if (this.proxy instanceof HTMLInputElement) {
304
- this.proxy.readOnly = this.readOnly;
305
- this.validate();
306
- }
307
- }
308
- /**
309
- * @internal
310
- */
311
- minChanged(_, newMin) {
312
- if (this.proxy instanceof HTMLInputElement) {
313
- this.proxy.min = newMin;
314
- this.validate();
315
- }
316
- }
317
- /**
318
- * @internal
319
- */
320
- maxChanged(_, newMax) {
321
- if (this.proxy instanceof HTMLInputElement) {
322
- this.proxy.max = newMax;
323
- this.validate();
324
- }
325
- }
326
- // --- Core ---
327
- /**
328
- * @internal
329
- */
330
- get _displaySeconds() {
331
- return this.secondsStep !== null;
332
- }
333
- get _use12hClock() {
334
- return this.clock ? this.clock === "12h" : this.locale.timePicker.defaultTo12HourClock;
335
- }
336
- /**
337
- * @internal
338
- */
339
- valueChanged(previous, next) {
340
- super.valueChanged(previous, next);
341
- if (this.value) {
342
- if (!isValidTimeStr(this.value)) {
343
- this.value = "";
344
- return;
345
- }
346
- this._presentationValue = formatPresentationTime(
347
- this.value,
348
- this._displaySeconds,
349
- this._use12hClock
350
- );
351
- } else {
352
- this._presentationValue = "";
353
- }
354
- }
355
- connectedCallback() {
356
- super.connectedCallback();
357
- document.addEventListener("click", __privateGet(this, _dismissOnClickOutside));
358
- this.addEventListener("focusin", __privateGet(this, _onFocusIn));
359
- this.addEventListener("focusout", __privateGet(this, _onFocusOut));
360
- __privateSet(this, _clockChangeObserver, vividElement.Observable.binding(
361
- () => this._use12hClock,
362
- __privateGet(this, _clockChangeHandler)
363
- ));
364
- __privateGet(this, _clockChangeObserver).observe(this, vividElement.defaultExecutionContext);
365
- }
366
- disconnectedCallback() {
367
- super.disconnectedCallback();
368
- document.removeEventListener("click", __privateGet(this, _dismissOnClickOutside));
369
- this.removeEventListener("focusin", __privateGet(this, _onFocusIn));
370
- this.removeEventListener("focusout", __privateGet(this, _onFocusOut));
371
- __privateGet(this, _clockChangeObserver).disconnect();
372
- }
373
- /**
374
- * @internal
375
- */
376
- _closePopup(restoreFocusToTextField = true) {
377
- this._popupOpen = false;
378
- if (restoreFocusToTextField) {
379
- this._textFieldEl.focus();
380
- }
381
- }
382
- /**
383
- * On keydown anywhere in the time picker.
384
- * @internal
385
- */
386
- _onBaseKeyDown(event) {
387
- if (index.handleEscapeKeyAndStopPropogation(event)) {
388
- this._closePopup();
389
- return false;
390
- }
391
- if (this._trappedFocus(event, __privateGet(this, _getFocusableEls))) {
392
- return false;
393
- }
394
- return true;
395
- }
396
- /**
397
- * @internal
398
- */
399
- _presentationValueChanged() {
400
- this.dirtyValue = true;
401
- this.validate();
402
- }
403
- /**
404
- * @internal
405
- */
406
- get _textFieldPlaceholder() {
407
- let format = "hh:mm";
408
- if (this._displaySeconds) {
409
- format += ":ss";
410
- }
411
- if (this._use12hClock) {
412
- format += " aa";
413
- }
414
- return format;
415
- }
416
- /**
417
- * @internal
418
- */
419
- _onTextFieldInput(event) {
420
- const textField = event.currentTarget;
421
- this._presentationValue = textField.value;
422
- }
423
- /**
424
- * @internal
425
- */
426
- _onTextFieldChange() {
427
- if (this._presentationValue === "") {
428
- __privateMethod(this, _TimePicker_instances, updateValueDueToUserInteraction_fn).call(this, "");
429
- return;
430
- }
431
- try {
432
- __privateMethod(this, _TimePicker_instances, updateValueDueToUserInteraction_fn).call(this, parsePresentationTime(this._presentationValue, this._use12hClock));
433
- } catch (_) {
434
- return;
435
- }
436
- }
437
- // --- Clock button ---
438
- /**
439
- * @internal
440
- */
441
- get _clockButtonLabel() {
442
- if (this.value) {
443
- return this.locale.timePicker.changeTimeLabel(
444
- formatPresentationTime(
445
- this.value,
446
- this._displaySeconds,
447
- this._use12hClock
448
- )
449
- );
450
- }
451
- return this.locale.timePicker.chooseTimeLabel;
452
- }
453
- /**
454
- * @internal
455
- */
456
- _onClockButtonClick() {
457
- if (this._popupOpen) {
458
- this._closePopup();
459
- } else {
460
- __privateMethod(this, _TimePicker_instances, openPopupIfPossible_fn).call(this);
461
- vividElement.DOM.processUpdates();
462
- if (this._selectedHour) {
463
- __privateMethod(this, _TimePicker_instances, scrollToItem_fn).call(this, "hours", this._selectedHour, "start");
464
- }
465
- if (this._selectedMinute) {
466
- __privateMethod(this, _TimePicker_instances, scrollToItem_fn).call(this, "minutes", this._selectedMinute, "start");
467
- }
468
- if (this._displaySeconds && this._selectedSecond) {
469
- __privateMethod(this, _TimePicker_instances, scrollToItem_fn).call(this, "seconds", this._selectedSecond, "start");
470
- }
471
- if (this._use12hClock && this._selectedMeridiem) {
472
- __privateMethod(this, _TimePicker_instances, scrollToItem_fn).call(this, "meridies", this._selectedMeridiem, "start");
473
- }
474
- __privateGet(this, _getFocusableEls).call(this)[0].focus();
475
- }
476
- }
477
- // --- Pickers ---
478
- /**
479
- * @internal
480
- */
481
- get _hours() {
482
- return getHoursOptions(
483
- this.min,
484
- this.max,
485
- this._use12hClock ? this._selectedMeridiem ?? this._meridies[0].value : void 0
486
- );
487
- }
488
- /**
489
- * @internal
490
- */
491
- get _selectedHour() {
492
- return this.value ? parseTimeStr(this.value).hourStr : void 0;
493
- }
494
- /**
495
- * @internal
496
- */
497
- set _selectedHour(value) {
498
- if (this.value) {
499
- const { minuteStr, secondStr } = parseTimeStr(this.value);
500
- this.value = `${value}:${minuteStr}:${secondStr}`;
501
- } else {
502
- this.value = `${value}:00:00`;
503
- }
504
- }
505
- /**
506
- * @internal
507
- */
508
- get _minutes() {
509
- return getMinutesOptions(this.minutesStep, this.value, this.min, this.max);
510
- }
511
- /**
512
- * @internal
513
- */
514
- get _selectedMinute() {
515
- return this.value ? parseTimeStr(this.value).minuteStr : void 0;
516
- }
517
- /**
518
- * @internal
519
- */
520
- set _selectedMinute(value) {
521
- if (this.value) {
522
- const { hourStr, secondStr } = parseTimeStr(this.value);
523
- this.value = `${hourStr}:${value}:${secondStr}`;
524
- } else {
525
- this.value = `00:${value}:00`;
526
- }
527
- }
528
- /**
529
- * @internal
530
- */
531
- get _seconds() {
532
- return getSecondsOptions(this.secondsStep, this.value, this.min, this.max);
533
- }
534
- /**
535
- * @internal
536
- */
537
- get _selectedSecond() {
538
- return this.value ? parseTimeStr(this.value).secondStr : void 0;
539
- }
540
- /**
541
- * @internal
542
- */
543
- set _selectedSecond(value) {
544
- if (this.value) {
545
- const { hourStr, minuteStr } = parseTimeStr(this.value);
546
- this.value = `${hourStr}:${minuteStr}:${value}`;
547
- } else {
548
- this.value = `00:00:${value}`;
549
- }
550
- }
551
- /**
552
- * @internal
553
- */
554
- get _meridies() {
555
- return getMeridiesOptions(this.min, this.max);
556
- }
557
- /**
558
- * @internal
559
- */
560
- get _selectedMeridiem() {
561
- return this.value ? parseTimeStr(this.value).meridiem : void 0;
562
- }
563
- /**
564
- * @internal
565
- */
566
- set _selectedMeridiem(value) {
567
- if (this.value) {
568
- const { hours, minuteStr, secondStr } = parseTimeStr(this.value);
569
- let adjustedHours = hours;
570
- if (value === "AM" && hours >= 12) {
571
- adjustedHours -= 12;
572
- } else if (value === "PM" && hours < 12) {
573
- adjustedHours += 12;
574
- }
575
- this.value = `${formatTimePart(adjustedHours)}:${minuteStr}:${secondStr}`;
576
- } else {
577
- if (value === "AM") {
578
- this.value = "00:00:00";
579
- } else {
580
- this.value = "12:00:00";
581
- }
582
- }
583
- }
584
- /**
585
- * @internal
586
- */
587
- _onPickerKeyDown(picker, options, selectedValue, setSelectedValue, event) {
588
- const offset = {
589
- ArrowUp: -1,
590
- ArrowDown: 1
591
- }[event.key];
592
- if (offset) {
593
- event.preventDefault();
594
- const index = options.findIndex((h) => h.value === selectedValue);
595
- const newRawIndex = index === -1 ? 0 : index + offset;
596
- const newIndex = (newRawIndex + options.length) % options.length;
597
- const newValue = options[newIndex].value;
598
- setSelectedValue(newValue);
599
- __privateMethod(this, _TimePicker_instances, scrollToItem_fn).call(this, picker, newValue, "nearest");
600
- __privateMethod(this, _TimePicker_instances, updateValueDueToUserInteraction_fn).call(this, this.value);
601
- }
602
- return true;
603
- }
604
- /**
605
- * @internal
606
- */
607
- _onPickerItemClick(picker, setSelectedValue, value) {
608
- setSelectedValue(value);
609
- __privateMethod(this, _TimePicker_instances, scrollToItem_fn).call(this, picker, value, "start");
610
- __privateMethod(this, _TimePicker_instances, updateValueDueToUserInteraction_fn).call(this, this.value);
611
- const nextPickerEl = this.shadowRoot.querySelector(
612
- `#${picker} + .picker`
613
- );
614
- if (nextPickerEl) {
615
- nextPickerEl.focus();
616
- } else {
617
- this._closePopup();
618
- }
619
- }
620
- // --- Dialog footer ---
621
- /**
622
- * @internal
623
- */
624
- _onOkClick() {
625
- this._closePopup();
626
- }
627
- /**
628
- * @internal
629
- */
630
- _onClearClick() {
631
- __privateMethod(this, _TimePicker_instances, updateValueDueToUserInteraction_fn).call(this, "");
632
- this._closePopup();
633
- }
634
- // --- Validation ---
635
- /**
636
- * @internal
637
- */
638
- validate() {
639
- if (this.proxy) {
640
- this.proxy.setCustomValidity(this._getCustomValidationError() ?? "");
641
- }
642
- super.validate(this._textFieldEl?.querySelector("input") ?? void 0);
643
- }
644
- /**
645
- * @internal
646
- */
647
- _getCustomValidationError() {
648
- if (this._isPresentationValueInvalid()) {
649
- return this.locale.timePicker.invalidTimeError;
650
- }
651
- return null;
652
- }
653
- /**
654
- * @internal
655
- */
656
- _isPresentationValueInvalid() {
657
- if (this._presentationValue === "") {
658
- return false;
659
- }
660
- try {
661
- parsePresentationTime(this._presentationValue, this._use12hClock);
662
- return false;
663
- } catch (_) {
664
- return true;
665
- }
666
- }
667
- };
668
- _clockChangeHandler = new WeakMap();
669
- _clockChangeObserver = new WeakMap();
670
- _getFocusableEls = new WeakMap();
671
- _TimePicker_instances = new WeakSet();
672
- updateValueDueToUserInteraction_fn = function(newValue) {
673
- this.value = newValue;
674
- this.$emit("change");
675
- this.$emit("input");
676
- };
677
- _onFocusIn = new WeakMap();
678
- _onFocusOut = new WeakMap();
679
- _dismissOnClickOutside = new WeakMap();
680
- openPopupIfPossible_fn = function() {
681
- if (!this.readOnly) {
682
- this._popupOpen = true;
683
- }
684
- };
685
- scrollToItem_fn = function(picker, selectedValue, position) {
686
- const element = this.shadowRoot.querySelector(
687
- `#${picker}-${selectedValue}`
688
- );
689
- if (!element) {
690
- return;
691
- }
692
- scrollIntoView.scrollIntoView(element, element.parentElement, position);
693
- };
694
- __decorateClass([
695
- vividElement.attr({ attribute: "readonly", mode: "boolean" })
696
- ], TimePicker.prototype, "readOnly", 2);
697
- __decorateClass([
698
- vividElement.attr({ attribute: "minutes-step", converter: vividElement.nullableNumberConverter })
699
- ], TimePicker.prototype, "minutesStep", 2);
700
- __decorateClass([
701
- vividElement.attr({ attribute: "seconds-step", converter: vividElement.nullableNumberConverter })
702
- ], TimePicker.prototype, "secondsStep", 2);
703
- __decorateClass([
704
- vividElement.attr
705
- ], TimePicker.prototype, "clock", 2);
706
- __decorateClass([
707
- vividElement.attr({ converter: ValidTimeFilter })
708
- ], TimePicker.prototype, "min", 2);
709
- __decorateClass([
710
- vividElement.attr({ converter: ValidTimeFilter })
711
- ], TimePicker.prototype, "max", 2);
712
- __decorateClass([
713
- vividElement.volatile
714
- ], TimePicker.prototype, "_use12hClock", 1);
715
- __decorateClass([
716
- vividElement.observable
717
- ], TimePicker.prototype, "_popupOpen", 2);
718
- __decorateClass([
719
- vividElement.observable
720
- ], TimePicker.prototype, "_presentationValue", 2);
721
- TimePicker = __decorateClass([
722
- formElements.errorText,
723
- formElements.formElements
724
- ], TimePicker);
725
- applyMixinsWithObservables.applyMixinsWithObservables(
726
- TimePicker,
727
- localized.Localized,
728
- formElements.FormElementHelperText,
729
- trappedFocus.TrappedFocus
13
+ const getStateClasses = ({
14
+ errorValidationMessage,
15
+ disabled,
16
+ value,
17
+ readOnly,
18
+ placeholder,
19
+ appearance,
20
+ shape,
21
+ label,
22
+ successText,
23
+ actionItemsSlottedContent,
24
+ leadingActionItemsSlottedContent,
25
+ icon,
26
+ scale
27
+ }) => classNames.classNames(
28
+ ["error", Boolean(errorValidationMessage)],
29
+ ["disabled", disabled],
30
+ ["has-value", Boolean(value)],
31
+ ["readonly", readOnly],
32
+ ["placeholder", Boolean(placeholder)],
33
+ [`appearance-${appearance}`, Boolean(appearance)],
34
+ [`shape-${shape}`, Boolean(shape)],
35
+ ["no-label", !label],
36
+ ["has-icon", !!icon],
37
+ ["success", Boolean(successText)],
38
+ ["action-items", !!actionItemsSlottedContent?.length],
39
+ ["leading-action-items", !!leadingActionItemsSlottedContent?.length],
40
+ ["no-leading", !(leadingActionItemsSlottedContent?.length || icon)],
41
+ [`size-${scale}`, Boolean(scale)]
730
42
  );
731
-
732
- const renderPicker = (id, getLabel, getSelected, setSelected, getOptions) => {
43
+ function renderCharCount() {
733
44
  return vividElement.html`
734
- <ul
735
- id="${id}"
736
- class="picker"
737
- role="listbox"
738
- tabindex="0"
739
- aria-label="${getLabel}"
740
- aria-activedescendant="${(x) => getSelected(x) ? `${id}-${getSelected(x)}` : void 0}"
741
- @keydown="${(x, c) => x._onPickerKeyDown(
742
- id,
743
- getOptions(x),
744
- getSelected(x),
745
- setSelected(x),
746
- c.event
747
- )}"
45
+ <span class="char-count"
46
+ >${(x) => x.value ? x.value.length : 0} / ${(x) => x.maxlength}</span
748
47
  >
749
- ${repeat.repeat(
750
- getOptions,
751
- vividElement.html`
752
- <li
753
- id="${(x) => `${id}-${x.value}`}"
754
- class="${(x, c) => classNames.classNames("item", [
755
- "selected",
756
- getSelected(c.parent) === x.value
757
- ])}"
758
- role="option"
759
- aria-selected="${(x, c) => getSelected(c.parent) === x.value}"
760
- @click="${(x, c) => c.parent._onPickerItemClick(id, setSelected(c.parent), x.value)}"
761
- >
762
- ${(x) => x.label}
763
- </li>
764
- `
765
- )}
766
- </ul>
767
48
  `;
768
- };
769
- const TimePickerTemplate = (context) => {
770
- const popupTag = context.tagFor(definition.Popup);
771
- const textFieldTag = context.tagFor(textField.TextField);
772
- const buttonTag = context.tagFor(definition$1.Button);
773
- return vividElement.html`<div class="base" @keydown="${(x, { event }) => x._onBaseKeyDown(event)}">
774
- <${textFieldTag} id="text-field"
775
- ${ref.ref("_textFieldEl")}
776
- class="control"
777
- label="${(x) => x.label}"
778
- helper-text="${(x) => x.helperText}"
779
- error-text="${(x) => x.errorValidationMessage}"
780
- placeholder="${(x) => x._textFieldPlaceholder}"
781
- current-value="${(x) => x._presentationValue}"
782
- ?disabled="${(x) => x.disabled}"
783
- ?readonly="${(x) => x.readOnly}"
784
- @input="${(x, c) => x._onTextFieldInput(c.event)}"
785
- @change="${(x) => x._onTextFieldChange()}"
786
- >
787
- <slot
788
- slot="${(x) => x._helperTextSlottedContent?.length ? "helper-text" : void 0}"
789
- name="helper-text"
790
- ${slotted.slotted("_helperTextSlottedContent")}
791
- ></slot>
792
- <${buttonTag}
793
- id="clock-button"
794
- ${ref.ref("_clockButtonEl")}
795
- slot="action-items"
796
- size="condensed"
797
- icon="clock-line"
798
- appearance="ghost"
799
- ?disabled="${(x) => x.disabled || x.readOnly}"
800
- aria-label="${(x) => x._clockButtonLabel}"
801
- @click="${(x) => x._onClockButtonClick()}"
802
- ></${buttonTag}>
803
- </${textFieldTag}>
804
- <${popupTag}
805
- ?open="${(x) => x._popupOpen}"
806
- :anchor="${(x) => x._textFieldEl}"
807
- placement="bottom-start"
808
- class="popup">
809
- <div class="dialog" role="dialog" ${ref.ref(
810
- "_dialogEl"
811
- )} aria-modal="true" aria-label="${(x) => x.locale.timePicker.chooseTimeLabel}">
812
- <div class="time-pickers">
813
- ${renderPicker(
814
- "hours",
815
- (x) => x.locale.timePicker.hoursLabel,
816
- (x) => x._selectedHour,
817
- (x) => (v) => x._selectedHour = v,
818
- (x) => x._hours
819
- )}
820
- ${renderPicker(
821
- "minutes",
822
- (x) => x.locale.timePicker.minutesLabel,
823
- (x) => x._selectedMinute,
824
- (x) => (v) => x._selectedMinute = v,
825
- (x) => x._minutes
826
- )}
827
- ${when.when(
828
- (x) => x._displaySeconds,
829
- renderPicker(
830
- "seconds",
831
- (x) => x.locale.timePicker.secondsLabel,
832
- (x) => x._selectedSecond,
833
- (x) => (v) => x._selectedSecond = v,
834
- (x) => x._seconds
835
- )
836
- )}
837
- ${when.when(
838
- (x) => x._use12hClock,
839
- renderPicker(
840
- "meridies",
841
- (x) => x.locale.timePicker.meridiesLabel,
842
- (x) => x._selectedMeridiem,
843
- (x) => (v) => x._selectedMeridiem = v,
844
- (x) => x._meridies
845
- )
846
- )}
49
+ }
50
+ const TextfieldTemplate = (context) => {
51
+ const affixIconTemplate = affix.affixIconTemplateFactory(context);
52
+ return vividElement.html` <div class="base ${getStateClasses}">
53
+ ${when.when((x) => x.charCount && x.maxlength, renderCharCount())}
54
+ <slot class="label" name="_label"></slot>
55
+ <div class="fieldset">
56
+ <div class="leading-items-wrapper">
57
+ <slot
58
+ name="leading-action-items"
59
+ ${slotted.slotted("leadingActionItemsSlottedContent")}
60
+ ></slot>
61
+ ${(x) => affixIconTemplate(x.icon)}
62
+ </div>
63
+
64
+ <div class="wrapper">
65
+ <slot class="control" name="_control"></slot>
847
66
  </div>
848
- <div class="footer">
849
- <${buttonTag}
850
- class="vwc-button"
851
- size="condensed"
852
- label="${(x) => x.locale.timePicker.clearLabel}"
853
- @click="${(x) => x._onClearClick()}"
854
- ></${buttonTag}>
855
- <${buttonTag}
856
- class="vwc-button"
857
- size="condensed"
858
- appearance="filled"
859
- label="${(x) => x.locale.timePicker.okLabel}"
860
- @click="${(x) => x._onOkClick()}"
861
- ></${buttonTag}>
67
+ <div class="action-items-wrapper">
68
+ <slot
69
+ name="action-items"
70
+ ${slotted.slotted("actionItemsSlottedContent")}
71
+ ></slot>
862
72
  </div>
863
73
  </div>
864
- </${popupTag}>
865
- </div>`;
74
+ ${formElements.getFeedbackTemplate(context)}
75
+ </div>
76
+ <slot name="_mirrored-helper-text"></slot>`;
866
77
  };
867
78
 
868
- const timePickerDefinition = vividElement.defineVividComponent(
869
- "time-picker",
870
- TimePicker,
871
- TimePickerTemplate,
872
- [definition$2.textFieldDefinition, definition.popupDefinition, definition$1.buttonDefinition],
79
+ const textFieldDefinition = vividElement.defineVividComponent(
80
+ "text-field",
81
+ textField$1.TextField,
82
+ TextfieldTemplate,
83
+ [definition.iconDefinition],
873
84
  {
874
- styles,
85
+ styles: textField.styles,
875
86
  shadowOptions: {
876
87
  delegatesFocus: true
877
88
  }
878
89
  }
879
90
  );
880
- const registerTimePicker = vividElement.createRegisterFunction(timePickerDefinition);
91
+ const registerTextField = vividElement.createRegisterFunction(textFieldDefinition);
881
92
 
882
- exports.registerTimePicker = registerTimePicker;
883
- exports.timePickerDefinition = timePickerDefinition;
93
+ exports.registerTextField = registerTextField;
94
+ exports.textFieldDefinition = textFieldDefinition;