@vonage/vivid 5.24.0 → 5.25.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 (331) hide show
  1. package/README.md +1 -1
  2. package/avatar/index.cjs +10 -10
  3. package/avatar/index.js +4 -3
  4. package/breadcrumb-item/index.cjs +9 -5
  5. package/breadcrumb-item/index.js +11 -6
  6. package/bundled/affix.cjs +1 -1
  7. package/bundled/affix.js +1 -1
  8. package/bundled/definition10.cjs +2 -1
  9. package/bundled/definition10.js +3 -2
  10. package/bundled/definition11.cjs +4 -4
  11. package/bundled/definition11.js +4 -3
  12. package/bundled/definition12.cjs +1 -1
  13. package/bundled/definition12.js +1 -0
  14. package/bundled/definition15.cjs +5 -5
  15. package/bundled/definition15.js +4 -3
  16. package/bundled/definition17.cjs +7 -7
  17. package/bundled/definition17.js +22 -109
  18. package/bundled/definition18.cjs +3 -3
  19. package/bundled/definition18.js +9 -31
  20. package/bundled/definition19.cjs +19 -19
  21. package/bundled/definition19.js +3 -2
  22. package/bundled/definition21.cjs +8 -8
  23. package/bundled/definition21.js +5 -4
  24. package/bundled/definition22.cjs +2 -2
  25. package/bundled/definition22.js +2 -2
  26. package/bundled/definition24.cjs +4 -4
  27. package/bundled/definition24.js +4 -3
  28. package/bundled/definition25.cjs +3 -3
  29. package/bundled/definition25.js +32 -28
  30. package/bundled/definition3.cjs +5 -5
  31. package/bundled/definition3.js +10 -40
  32. package/bundled/definition4.cjs +6 -6
  33. package/bundled/definition4.js +4 -3
  34. package/bundled/definition6.cjs +11 -11
  35. package/bundled/definition6.js +4 -3
  36. package/bundled/definition9.cjs +12 -6
  37. package/bundled/definition9.js +66 -43
  38. package/bundled/extractOptions.cjs +1 -1
  39. package/bundled/extractOptions.js +2 -2
  40. package/bundled/icon.cjs +1 -0
  41. package/bundled/icon.js +34 -0
  42. package/bundled/listbox.cjs +1 -1
  43. package/bundled/listbox.js +5 -2
  44. package/bundled/mixins.cjs +8 -8
  45. package/bundled/mixins.js +4 -3
  46. package/bundled/optgroup.cjs +1 -0
  47. package/bundled/optgroup.js +27 -0
  48. package/bundled/option.cjs +1 -0
  49. package/bundled/option.js +93 -0
  50. package/bundled/vivid-element.cjs +1 -1
  51. package/bundled/vivid-element.js +1 -1
  52. package/card/index.cjs +22 -22
  53. package/card/index.js +4 -3
  54. package/color-picker/index.cjs +18 -18
  55. package/color-picker/index.js +4 -3
  56. package/combobox/index.cjs +7 -7
  57. package/combobox/index.js +4 -2
  58. package/custom-elements.json +4159 -3847
  59. package/data-grid/index.cjs +24 -24
  60. package/data-grid/index.js +4 -3
  61. package/dial-pad/index.cjs +21 -21
  62. package/dial-pad/index.js +4 -3
  63. package/dialog/index.cjs +14 -14
  64. package/dialog/index.js +4 -3
  65. package/empty-state/index.cjs +3 -3
  66. package/empty-state/index.js +4 -3
  67. package/file-picker/index.cjs +7 -7
  68. package/file-picker/index.js +4 -3
  69. package/icon/definition.cjs +2 -1
  70. package/icon/definition.js +2 -1
  71. package/index.cjs +148 -141
  72. package/index.js +41 -37
  73. package/lib/accordion-item/accordion-item.d.ts +1 -0
  74. package/lib/combobox/combobox.d.ts +1 -1
  75. package/lib/components.d.ts +1 -0
  76. package/lib/dial-pad/dial-pad.d.ts +0 -1
  77. package/lib/listbox/definition.d.ts +3 -0
  78. package/lib/listbox/index.d.ts +1 -0
  79. package/lib/listbox/listbox.d.ts +1302 -0
  80. package/lib/listbox/listbox.template.d.ts +3 -0
  81. package/lib/listbox/variations.browser-spec.d.ts +1 -0
  82. package/lib/menu/menu.d.ts +0 -1
  83. package/lib/number-field/number-field.d.ts +0 -1
  84. package/lib/rich-text-editor/rte/features/base.d.ts +1 -0
  85. package/lib/rich-text-editor/rte/utils/default-textblock.d.ts +2 -2
  86. package/lib/tag-name-map.d.ts +2 -1
  87. package/lib/text-field/text-field.d.ts +1 -0
  88. package/lib/toggletip/toggletip.d.ts +1 -0
  89. package/lib/tooltip/tooltip.d.ts +1 -0
  90. package/listbox/definition.cjs +5 -0
  91. package/listbox/definition.js +2 -0
  92. package/listbox/index.cjs +11 -0
  93. package/listbox/index.js +540 -0
  94. package/nav/definition.cjs +1 -1
  95. package/nav/definition.js +1 -1
  96. package/nav-disclosure/definition.cjs +1 -1
  97. package/nav-disclosure/definition.js +1 -1
  98. package/nav-disclosure/index.cjs +4 -4
  99. package/nav-disclosure/index.js +4 -3
  100. package/nav-item/definition.cjs +1 -1
  101. package/nav-item/definition.js +1 -1
  102. package/note/definition.cjs +1 -1
  103. package/note/definition.js +1 -1
  104. package/number-field/definition.cjs +1 -1
  105. package/number-field/definition.js +1 -1
  106. package/optgroup/definition.cjs +2 -1
  107. package/optgroup/definition.js +2 -1
  108. package/option/definition.cjs +2 -1
  109. package/option/definition.js +2 -1
  110. package/package.json +8 -7
  111. package/pagination/definition.cjs +1 -1
  112. package/pagination/definition.js +1 -1
  113. package/platform-switch/definition.cjs +1 -1
  114. package/platform-switch/definition.js +1 -1
  115. package/popover/definition.cjs +1 -1
  116. package/popover/definition.js +1 -1
  117. package/popover/index.cjs +5 -5
  118. package/popover/index.js +4 -3
  119. package/progress/definition.cjs +1 -1
  120. package/progress/definition.js +1 -1
  121. package/radio/definition.cjs +1 -1
  122. package/radio/definition.js +1 -1
  123. package/radio-group/definition.cjs +1 -1
  124. package/radio-group/definition.js +1 -1
  125. package/range-slider/definition.cjs +1 -1
  126. package/range-slider/definition.js +1 -1
  127. package/rich-text-editor/definition.cjs +1 -1
  128. package/rich-text-editor/definition.js +1 -1
  129. package/rich-text-editor/index.cjs +13 -13
  130. package/rich-text-editor/index.js +22 -19
  131. package/rich-text-view/definition.cjs +1 -1
  132. package/rich-text-view/definition.js +1 -1
  133. package/searchable-select/definition.cjs +1 -1
  134. package/searchable-select/definition.js +1 -1
  135. package/searchable-select/index.cjs +23 -23
  136. package/searchable-select/index.js +10 -7
  137. package/select/definition.cjs +1 -1
  138. package/select/definition.js +1 -1
  139. package/selectable-box/definition.cjs +1 -1
  140. package/selectable-box/definition.js +1 -1
  141. package/shared/listbox/commands.d.ts +17 -0
  142. package/shared/listbox/move.d.ts +6 -0
  143. package/shared/listbox/options.d.ts +12 -0
  144. package/shared/listbox/selection.d.ts +28 -0
  145. package/shared/listbox/state.d.ts +26 -0
  146. package/shared/listbox/typeahead.d.ts +8 -0
  147. package/shared/listbox/with-options-filter.d.ts +440 -0
  148. package/shared/listbox/with-options.d.ts +862 -0
  149. package/side-drawer/definition.cjs +1 -1
  150. package/side-drawer/definition.js +1 -1
  151. package/simple-color-picker/definition.cjs +1 -1
  152. package/simple-color-picker/definition.js +1 -1
  153. package/simple-color-picker/index.cjs +6 -6
  154. package/simple-color-picker/index.js +4 -3
  155. package/split-button/definition.cjs +1 -1
  156. package/split-button/definition.js +1 -1
  157. package/status/definition.cjs +1 -1
  158. package/status/definition.js +1 -1
  159. package/switch/definition.cjs +1 -1
  160. package/switch/definition.js +1 -1
  161. package/tab/definition.cjs +1 -1
  162. package/tab/definition.js +1 -1
  163. package/tab-panel/definition.cjs +1 -1
  164. package/tab-panel/definition.js +1 -1
  165. package/table/definition.cjs +1 -1
  166. package/table/definition.js +1 -1
  167. package/table/index.cjs +13 -13
  168. package/table/index.js +4 -3
  169. package/tabs/definition.cjs +1 -1
  170. package/tabs/definition.js +1 -1
  171. package/tag/definition.cjs +1 -1
  172. package/tag/definition.js +1 -1
  173. package/tag/index.cjs +11 -11
  174. package/tag/index.js +4 -3
  175. package/tag-group/definition.cjs +1 -1
  176. package/tag-group/definition.js +1 -1
  177. package/text-area/definition.cjs +1 -1
  178. package/text-area/definition.js +1 -1
  179. package/time-picker/definition.cjs +1 -1
  180. package/time-picker/definition.js +1 -1
  181. package/tree-item/definition.cjs +1 -1
  182. package/tree-item/definition.js +1 -1
  183. package/tree-view/definition.cjs +1 -1
  184. package/tree-view/definition.js +1 -1
  185. package/unbundled/affix.cjs +2 -2
  186. package/unbundled/affix.js +1 -1
  187. package/unbundled/base-progress.cjs +1 -1
  188. package/unbundled/base-progress.js +1 -1
  189. package/unbundled/button.cjs +2 -2
  190. package/unbundled/button.js +2 -2
  191. package/unbundled/definition.cjs +2 -65
  192. package/unbundled/definition.js +4 -61
  193. package/unbundled/definition11.cjs +4 -3
  194. package/unbundled/definition11.js +3 -2
  195. package/unbundled/definition12.cjs +3 -2
  196. package/unbundled/definition12.js +3 -2
  197. package/unbundled/definition14.cjs +2 -1
  198. package/unbundled/definition14.js +2 -1
  199. package/unbundled/definition17.cjs +9 -4
  200. package/unbundled/definition17.js +9 -4
  201. package/unbundled/definition2.cjs +7 -2
  202. package/unbundled/definition2.js +8 -3
  203. package/unbundled/definition21.cjs +2 -1
  204. package/unbundled/definition21.js +2 -1
  205. package/unbundled/definition23.cjs +2 -1
  206. package/unbundled/definition23.js +2 -1
  207. package/unbundled/definition24.cjs +6 -4
  208. package/unbundled/definition24.js +6 -4
  209. package/unbundled/definition25.cjs +2 -1
  210. package/unbundled/definition25.js +2 -1
  211. package/unbundled/definition26.cjs +7 -4
  212. package/unbundled/definition26.js +7 -4
  213. package/unbundled/definition27.cjs +39 -5
  214. package/unbundled/definition27.js +40 -6
  215. package/unbundled/definition28.cjs +4 -3
  216. package/unbundled/definition28.js +4 -3
  217. package/unbundled/definition29.cjs +5 -168
  218. package/unbundled/definition29.js +11 -162
  219. package/unbundled/definition30.cjs +2 -63
  220. package/unbundled/definition30.js +5 -54
  221. package/unbundled/definition31.cjs +5 -3
  222. package/unbundled/definition31.js +5 -3
  223. package/unbundled/definition32.cjs +2 -1
  224. package/unbundled/definition32.js +2 -1
  225. package/unbundled/definition35.cjs +2 -1
  226. package/unbundled/definition35.js +2 -1
  227. package/unbundled/definition37.cjs +1 -1
  228. package/unbundled/definition37.js +1 -1
  229. package/unbundled/definition39.cjs +1 -1
  230. package/unbundled/definition39.js +1 -1
  231. package/unbundled/definition40.cjs +4 -2
  232. package/unbundled/definition40.js +4 -2
  233. package/unbundled/definition41.cjs +11 -6
  234. package/unbundled/definition41.js +11 -6
  235. package/unbundled/definition42.cjs +5 -4
  236. package/unbundled/definition42.js +5 -4
  237. package/unbundled/definition44.cjs +3 -2
  238. package/unbundled/definition44.js +3 -2
  239. package/unbundled/definition45.cjs +2 -2
  240. package/unbundled/definition45.js +2 -2
  241. package/unbundled/definition49.cjs +583 -79
  242. package/unbundled/definition49.js +579 -76
  243. package/unbundled/definition50.cjs +71 -33
  244. package/unbundled/definition50.js +67 -29
  245. package/unbundled/definition51.cjs +54 -23
  246. package/unbundled/definition51.js +52 -18
  247. package/unbundled/definition52.cjs +23 -39
  248. package/unbundled/definition52.js +17 -36
  249. package/unbundled/definition53.cjs +29 -314
  250. package/unbundled/definition53.js +27 -312
  251. package/unbundled/definition54.cjs +302 -195
  252. package/unbundled/definition54.js +298 -191
  253. package/unbundled/definition55.cjs +210 -40
  254. package/unbundled/definition55.js +206 -36
  255. package/unbundled/definition56.cjs +42 -266
  256. package/unbundled/definition56.js +38 -262
  257. package/unbundled/definition57.cjs +270 -50
  258. package/unbundled/definition57.js +267 -46
  259. package/unbundled/definition58.cjs +48 -146
  260. package/unbundled/definition58.js +47 -143
  261. package/unbundled/definition59.cjs +127 -225
  262. package/unbundled/definition59.js +122 -223
  263. package/unbundled/definition6.cjs +2 -1
  264. package/unbundled/definition6.js +2 -1
  265. package/unbundled/definition60.cjs +199 -418
  266. package/unbundled/definition60.js +196 -415
  267. package/unbundled/definition61.cjs +442 -3738
  268. package/unbundled/definition61.js +432 -3565
  269. package/unbundled/definition62.cjs +3717 -730
  270. package/unbundled/definition62.js +3544 -720
  271. package/unbundled/definition63.cjs +770 -97
  272. package/unbundled/definition63.js +767 -94
  273. package/unbundled/definition64.cjs +100 -999
  274. package/unbundled/definition64.js +98 -994
  275. package/unbundled/definition65.cjs +991 -93
  276. package/unbundled/definition65.js +985 -90
  277. package/unbundled/definition66.cjs +109 -73
  278. package/unbundled/definition66.js +105 -63
  279. package/unbundled/definition67.cjs +69 -155
  280. package/unbundled/definition67.js +60 -152
  281. package/unbundled/definition68.cjs +155 -119
  282. package/unbundled/definition68.js +151 -115
  283. package/unbundled/definition69.cjs +124 -49
  284. package/unbundled/definition69.js +120 -45
  285. package/unbundled/definition70.cjs +51 -85
  286. package/unbundled/definition70.js +50 -81
  287. package/unbundled/definition71.cjs +91 -19
  288. package/unbundled/definition71.js +86 -14
  289. package/unbundled/definition72.cjs +20 -87
  290. package/unbundled/definition72.js +14 -84
  291. package/unbundled/definition73.cjs +77 -294
  292. package/unbundled/definition73.js +72 -217
  293. package/unbundled/definition74.cjs +289 -311
  294. package/unbundled/definition74.js +219 -306
  295. package/unbundled/definition75.cjs +326 -26
  296. package/unbundled/definition75.js +317 -23
  297. package/unbundled/definition76.cjs +27 -122
  298. package/unbundled/definition76.js +22 -118
  299. package/unbundled/definition77.cjs +105 -232
  300. package/unbundled/definition77.js +101 -228
  301. package/unbundled/definition78.cjs +259 -26
  302. package/unbundled/definition78.js +249 -23
  303. package/unbundled/definition79.cjs +29 -148
  304. package/unbundled/definition79.js +27 -133
  305. package/unbundled/definition80.cjs +118 -173
  306. package/unbundled/definition80.js +109 -169
  307. package/unbundled/definition81.cjs +181 -477
  308. package/unbundled/definition81.js +176 -471
  309. package/unbundled/definition82.cjs +517 -0
  310. package/unbundled/definition82.js +497 -0
  311. package/unbundled/extractOptions.cjs +5 -5
  312. package/unbundled/extractOptions.js +2 -2
  313. package/unbundled/icon.cjs +67 -0
  314. package/unbundled/icon.js +61 -0
  315. package/unbundled/linkable.cjs +1 -1
  316. package/unbundled/linkable.js +1 -1
  317. package/unbundled/listbox.cjs +8 -3
  318. package/unbundled/listbox.js +7 -2
  319. package/unbundled/mixins.cjs +2 -1
  320. package/unbundled/mixins.js +2 -1
  321. package/unbundled/optgroup.cjs +66 -0
  322. package/unbundled/optgroup.js +54 -0
  323. package/unbundled/option.cjs +176 -0
  324. package/unbundled/option.js +164 -0
  325. package/unbundled/time-selection-picker.template.cjs +1 -1
  326. package/unbundled/time-selection-picker.template.js +1 -1
  327. package/unbundled/vivid-element.cjs +1 -1
  328. package/unbundled/vivid-element.js +1 -1
  329. package/video-player/definition.cjs +1 -1
  330. package/video-player/definition.js +1 -1
  331. package/vivid.api.json +336 -193
@@ -1,227 +1,334 @@
1
1
  import { d as createRegisterFunction, t as VividElement, u as defineVividComponent } from "./vivid-element.js";
2
+ import { t as iconDefinition } from "./definition.js";
2
3
  import { t as __decorate } from "./decorate.js";
4
+ import { t as AffixIcon } from "./affix.js";
5
+ import { n as delegateAria, t as DelegatesAria } from "./delegates-aria.js";
6
+ import { n as FormAssociated } from "./form-associated.js";
3
7
  import { t as Localized } from "./localized.js";
4
8
  import { i as Button, t as buttonDefinition } from "./definition6.js";
5
- import { d as Size, u as Shape } from "./enums.js";
6
- import { attr, children, elements, html, observable, ref, repeat, volatile, when } from "@microsoft/fast-element";
7
- import { classNames } from "@microsoft/fast-web-utilities";
8
- //#region src/lib/pagination/pagination.scss?inline
9
- var pagination_default = ".control{justify-content:space-between;display:inline-flex}.control:not(.shape-pill){border-radius:4px}.control.shape-pill{border-radius:16px}.buttons-wrapper{column-gap:4px;display:flex}.vwc-pagination-button[size=super-condensed]{--base-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16))}.vwc-pagination-button[size=condensed]{--base-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8))}.vwc-pagination-button[size=normal]{--base-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)))}.vwc-pagination-button::part(button){padding-inline:0}.dots{text-align:center;align-self:center}.dots:not(.size-super-condensed){font:var(--vvd-typography-base-bold)}.dots.size-super-condensed{font:var(--vvd-typography-base-condensed-bold);inline-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16))}.dots.size-condensed{inline-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8))}.dots.size-normal{inline-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)))}";
9
+ import { u as Shape } from "./enums.js";
10
+ import { t as Divider } from "./divider.js";
11
+ import { n as visuallyHiddenDefinition, r as VisuallyHidden } from "./definition22.js";
12
+ import { r as feedbackMessageDefinition, t as WithFeedback } from "./mixins.js";
13
+ import { t as FormElement } from "./form-element.js";
14
+ import { t as WithErrorText } from "./with-error-text.js";
15
+ import { t as WithSuccessText } from "./with-success-text.js";
16
+ import { t as contextualHelpDefinition } from "./definition25.js";
17
+ import { t as WithContextualHelp } from "./with-contextual-help.js";
18
+ import { t as dividerDefinition } from "./definition36.js";
19
+ import { Updates, attr, html, nullableNumberConverter, observable, ref, slotted, when } from "@microsoft/fast-element";
20
+ import { classNames, keyArrowDown, keyArrowUp } from "@microsoft/fast-web-utilities";
21
+ //#region src/lib/number-field/number-field.scss?inline
22
+ var number_field_default = ".label-wrapper{align-items:center;gap:var(--label-wrapper-gap,4px);flex-direction:row;display:flex}.label-wrapper[hidden]{display:none}.label:not(slot),.label::slotted(label){flex:0 auto}:host{display:inline-block}.base{--_appearance-color-text:var(--vvd-color-canvas-text);--_appearance-color-fill:var(--vvd-color-canvas);--_appearance-color-outline:var(--vvd-color-neutral-500)}.base.appearance-ghost{--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}@media (hover:hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--vvd-color-canvas-text);--_appearance-color-fill:var(--vvd-color-canvas);--_appearance-color-outline:var(--vvd-color-neutral-700)}.base:hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--vvd-color-canvas-text);--_appearance-color-fill:var(--vvd-color-canvas);--_appearance-color-outline:var(--vvd-color-neutral-700)}.base.hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}.base:disabled{--_appearance-color-text:var(--vvd-color-neutral-600);--_appearance-color-fill:var(--vvd-color-neutral-100);--_appearance-color-outline:var(--vvd-color-neutral-300)}.base:disabled.appearance-ghost{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base.disabled{--_appearance-color-text:var(--vvd-color-neutral-600);--_appearance-color-fill:var(--vvd-color-neutral-100);--_appearance-color-outline:var(--vvd-color-neutral-300)}.base.disabled.appearance-ghost{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base.readonly:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--vvd-color-canvas-text);--_appearance-color-fill:var(--vvd-color-neutral-200);--_appearance-color-outline:var(--vvd-color-neutral-400)}.base.readonly:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text:var(--vvd-color-neutral-600);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base.error:where(:not(.disabled,:disabled)){--_appearance-color-text:notset;--_appearance-color-fill:var(--vvd-color-alert-50);--_appearance-color-outline:var(--vvd-color-alert-500)}.base.error:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text:notset;--_appearance-color-fill:var(--vvd-color-alert-50);--_appearance-color-outline:transparent}.base.success:where(:not(.disabled,:disabled)){--_appearance-color-text:notset;--_appearance-color-fill:var(--vvd-color-success-50);--_appearance-color-outline:var(--vvd-color-success-500)}.base.success:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text:notset;--_appearance-color-fill:var(--vvd-color-success-50);--_appearance-color-outline:transparent}.base{--_connotation-color-primary:var(--vvd-text-field-accent-primary,var(--vvd-color-canvas-text));--_connotation-color-primary-text:var(--vvd-text-field-accent-primary-text,var(--vvd-color-canvas));--_connotation-color-primary-increment:var(--vvd-text-field-accent-primary-increment,var(--vvd-color-neutral-800));--_connotation-color-intermediate:var(--vvd-text-field-accent-intermediate,var(--vvd-color-neutral-500));--_connotation-color-firm:var(--vvd-text-field-accent-firm,var(--vvd-color-canvas-text));--_connotation-color-fierce:var(--vvd-text-field-accent-fierce,var(--vvd-color-neutral-700));--_connotation-color-faint:var(--vvd-text-field-accent-faint,var(--vvd-color-neutral-50));--_connotation-color-soft:var(--vvd-text-field-accent-soft,var(--vvd-color-neutral-100));--_text-field-gutter-start:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5);--_text-field-gutter-end:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5);--_text-field-icon-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2);--_text-field-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)));--_text-field-border-radius:8px;--_text-field-pill-border-radius:24px;grid-template-columns:min-content 1fr max-content;align-items:center;gap:4px;width:100%;display:inline-grid}.base.size-condensed{--_text-field-gutter-start:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)) / 2);--_text-field-gutter-end:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)) / 2);--_text-field-icon-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8)) / 2);--_text-field-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8));--_text-field-border-radius:4px}.base{user-select:none}.base:not(.disabled){--_low-ink-color:var(--vvd-color-neutral-600)}.base.disabled{--_low-ink-color:var(--_appearance-color-text)}.label:not(slot),.label::slotted(label){font:var(--vvd-typography-base);grid-area:1/1/auto/4;box-sizing:initial!important;padding:initial!important;margin:initial!important;color:var(--vvd-color-canvas-text)!important}.char-count+.label:not(slot),.char-count+.label::slotted(label){grid-column:1/3}.char-count{color:var(--_low-ink-color);font:var(--vvd-typography-base)}.label-wrapper{grid-area:1/1/auto/4}.char-count+.label-wrapper{grid-column:1/3}.fieldset{background-color:var(--_appearance-color-fill);font:var(--vvd-typography-base);grid-column:1/4;align-items:center;padding-block:0;transition:color .2s,background-color .2s;display:flex;position:relative}.fieldset:after{border-radius:inherit;block-size:100%;box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);content:\"\";pointer-events:none;inline-size:100%;transition:box-shadow .2s;display:block;position:absolute}.fieldset:focus-visible{outline:none}.base>.fieldset{block-size:var(--_text-field-block-size)}.base:not(.shape-pill) .fieldset{border-radius:var(--_text-field-border-radius)}.base.shape-pill .fieldset{border-radius:var(--_text-field-pill-border-radius)}.wrapper{border-radius:inherit;block-size:100%;inline-size:100%}.control{border-radius:inherit;text-align:start}.control:not(slot),.control::slotted(input){font:inherit;text-align:inherit;outline:#0000;box-sizing:border-box!important;border-radius:inherit!important;width:100%!important;margin:initial!important;appearance:none!important;block-size:100%!important;color:inherit!important;padding-block:0!important;padding-inline:var(--_text-field-gutter-start) var(--_text-field-gutter-end)!important;background-color:#0000!important;border:0!important}.control:not(slot):disabled,.control::slotted(input:disabled){cursor:not-allowed!important;opacity:1!important;-webkit-text-fill-color:var(--_appearance-color-text)!important}.control:not(slot)::placeholder{opacity:1!important;-webkit-text-fill-color:var(--_low-ink-color)!important}.control::slotted(input:-webkit-autofill){-webkit-box-shadow:0 0 0 1000px var(--_appearance-color-fill) inset;-webkit-text-fill-color:var(--_appearance-color-text)!important}.control:not(slot):-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--_appearance-color-fill) inset;-webkit-text-fill-color:var(--_appearance-color-text)!important}.has-icon .control:not(slot),.has-icon .control::slotted(input){padding-inline-start:calc(var(--_text-field-icon-size) + var(--_text-field-gutter-start) * 2)!important}.icon{z-index:1;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);line-height:1;position:absolute;inset-block-start:50%;inset-inline-start:calc(100% + var(--_text-field-gutter-start));transform:translateY(-50%)}.leading-items-wrapper{position:relative}.base.no-leading .leading-items-wrapper{display:none}.action-items-wrapper{margin-inline-end:4px}.base:not(.action-items) .action-items-wrapper{display:none}@supports selector(:has(*)){.base:not(.has-activedescendant) .fieldset:has(.wrapper .control:focus-within):after{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}}@supports not selector(:has(*)){.base:not(.has-activedescendant) .wrapper:focus-within:after{box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px));--focus-stroke-gap-color:transparent;z-index:1;border-radius:inherit;content:\"\";pointer-events:none;display:block;position:absolute;inset:0}}:host([internal-part]) .fieldset{font:var(--vvd-typography-heading-4);background-color:#0000;line-height:1.1}:host([internal-part]) .fieldset:not(:focus-within):after{block-size:1px;inset-block-end:0}@supports selector(:has(*)){:host([internal-part]) .fieldset:has(.action-items-wrapper:focus-within):after{block-size:1px;inset-block-end:0}}:host([internal-part]) .control{text-align:center}slot[name=_mirrored-helper-text]{display:none}.base{--_text-field-gutter-end:70px}.control::-webkit-outer-spin-button{appearance:none}.control::-webkit-inner-spin-button{appearance:none}.control-buttons{z-index:1;display:flex;position:absolute;right:3px}.readonly .control-buttons,.disabled .control-buttons{pointer-events:none}.control-buttons .divider{margin-block:8px}.control-buttons>*{flex-shrink:0}";
10
23
  //#endregion
11
- //#region src/lib/pagination/pagination.ts
12
- var MAX_DIGITS_AND_PLACEHOLDERS = 7;
13
- var totalConverter = {
14
- fromView: (value) => parseInt(value, 10),
15
- toView: (value) => value.toString()
24
+ //#region src/lib/number-field/number-field.ts
25
+ var STEP_DIRECTION = {
26
+ up: 1,
27
+ down: -1
16
28
  };
29
+ function makeStep(element, direction) {
30
+ const value = parseFloat(element.value);
31
+ const stepUpValue = !isNaN(value) ? value + direction * element.step : element.min > 0 ? element.min : element.max < 0 ? element.max : !element.min ? direction * element.step : 0;
32
+ element.value = Number(stepUpValue.toFixed(12)).toString();
33
+ element._updatedValueAnnouncement = element.locale.numberField.updatedValueAnnouncement(element._presentationValue);
34
+ }
35
+ var buildNumberPatterns = (decimalSeparator) => {
36
+ const ds = decimalSeparator.source;
37
+ return {
38
+ invalidCharacters: new RegExp(`[^0-9\\-+e${ds}]`, "g"),
39
+ additionalDecimalSeparators: new RegExp(`(?<=${ds}.*)${ds}`, "g"),
40
+ trailingDecimalSeparator: new RegExp(`${ds}$`),
41
+ decimalSeparator
42
+ };
43
+ };
44
+ var numberPatternsWithPeriod = buildNumberPatterns(/\./);
45
+ var numberPatternsWithComma = buildNumberPatterns(/,/);
46
+ var validNumber = /^-?((\d*\.\d+)|(\d+))$/;
17
47
  /**
18
48
  * @public
19
- * @component pagination
20
- * @event {CustomEvent<{selectedIndex: number, total: number, oldIndex: number}>} pagination-change - Fires when the page changes.
21
- * @vueModel modelValue selectedIndex pagination-change `event.currentTarget.selectedIndex`
22
- * @testAction clickNext click #nextButton
23
- * @testAction clickPrev click #prevButton
24
- * @testAction clickPageIndex clickPaginationPage
25
- * @testQuery total total
26
- * @testQuery selectedPage paginationSelectedPage
27
- * @testRef nextButton shadow .next-button
28
- * @testRef prevButton shadow .prev-button
49
+ * @component number-field
50
+ * @slot helper-text - Describes how to use the Number Field. Alternative to the `helper-text` attribute.
51
+ * @event {CustomEvent<undefined>} input - Fires a custom 'input' event when the value has changed
52
+ * @event {CustomEvent<undefined>} change - Fires a custom 'change' event when the value has changed
53
+ * @vueModel modelValue value input,@lazy:change `event.currentTarget.value`
54
+ * @vueModel valueAsNumber valueAsNumber input,@lazy:change `event.currentTarget.valueAsNumber`
55
+ * @testAction fill fill #control
56
+ * @testAction clear clear #control
57
+ * @testAction clickIncrement clickButton #incrementButton
58
+ * @testAction clickDecrement clickButton #decrementButton
59
+ * @testQuery valueAsNumber valueAsNumber
60
+ * @testRef control shadow input.control
61
+ * @testRef incrementButton shadowButton #add
62
+ * @testRef decrementButton shadowButton #subtract
29
63
  */
30
- var Pagination = class extends Localized(VividElement) {
31
- get pagesList() {
32
- return new Array(this.total < MAX_DIGITS_AND_PLACEHOLDERS ? this.total : MAX_DIGITS_AND_PLACEHOLDERS).fill(0).map((_, i, arr) => {
33
- if (i === 0) return 1;
34
- if (i === arr.length - 1) return this.total;
35
- if (this.selectedIndex !== void 0 && this.total > MAX_DIGITS_AND_PLACEHOLDERS) {
36
- if (this.selectedIndex < 4) {
37
- if (i === MAX_DIGITS_AND_PLACEHOLDERS - 2) return "...";
38
- }
39
- if (this.selectedIndex >= 4 && this.selectedIndex <= this.total - 5) {
40
- if (i > 1 && i < MAX_DIGITS_AND_PLACEHOLDERS - 2) return this.selectedIndex + (i - 2);
41
- /* v8 ignore else -- @preserve */
42
- if (i === 1 || i === MAX_DIGITS_AND_PLACEHOLDERS - 2) return "...";
43
- }
44
- if (this.selectedIndex > this.total - 5) {
45
- if (i > 1) return this.total - (6 - i);
46
- /* v8 ignore else -- @preserve */
47
- if (i === 1) return "...";
48
- }
49
- }
50
- return i + 1;
51
- });
64
+ var NumberField = class extends WithContextualHelp(WithFeedback(WithErrorText(WithSuccessText(FormElement(AffixIcon(Localized(DelegatesAria(FormAssociated(VividElement))))))))) {
65
+ constructor(..._args) {
66
+ super(..._args);
67
+ this.proxy = document.createElement("input");
68
+ this.readOnly = false;
69
+ this.autofocus = false;
70
+ this.step = 1;
71
+ this.isUserInput = false;
72
+ this._presentationValue = "";
73
+ this._updatedValueAnnouncement = "";
74
+ this.incrementButtonAriaLabel = null;
75
+ this.decrementButtonAriaLabel = null;
52
76
  }
53
- constructor() {
54
- super();
55
- this.navIcons = false;
56
- this.total = 0;
57
- this.selectedIndex = 0;
58
- this.addEventListener("tabpressed", (e) => {
59
- const { value: currentLabel, shiftKey } = e.detail;
60
- const index = this.paginationButtons.findIndex((button) => Number(button.label) === currentLabel);
61
- const focusDirection = shiftKey ? -1 : 1;
62
- const newIndex = index + focusDirection;
63
- if (newIndex < 0) {
64
- this.prevButton.focus();
65
- return;
66
- }
67
- if (newIndex > this.paginationButtons.length - 1) {
68
- this.nextButton.focus();
69
- return;
70
- }
71
- /* v8 ignore else -- @preserve */
72
- if (this.paginationButtons) this.paginationButtons[index + focusDirection].focus();
73
- });
77
+ /** @internal */
78
+ stepChanged(_, next) {
79
+ this.proxy.setAttribute("step", Number.isFinite(next) ? next.toString() : "");
80
+ }
81
+ /**
82
+ * Ensures that the max is greater than the min and that the value
83
+ * is less than the max
84
+ *
85
+ * @internal
86
+ */
87
+ maxChanged(_, next) {
88
+ this.max = Math.max(next, this.min ?? next);
89
+ this.proxy.max = this.max.toString();
90
+ this.validate();
91
+ }
92
+ /**
93
+ * Ensures that the min is less than the max and that the value
94
+ * is greater than the min
95
+ *
96
+ * @internal
97
+ */
98
+ minChanged(_, next) {
99
+ this.min = Math.min(next, this.max ?? next);
100
+ this.proxy.min = this.min.toString();
101
+ this.validate();
102
+ }
103
+ /** The value property, typed as a number. */
104
+ get valueAsNumber() {
105
+ return parseFloat(this.value);
106
+ }
107
+ set valueAsNumber(next) {
108
+ this.value = next.toString();
74
109
  }
75
110
  /** @internal */
76
- totalChanged(_, newValue) {
77
- if (newValue < 0) {
78
- this.total = 0;
79
- return;
111
+ valueChanged(previous, next) {
112
+ this.value = validNumber.test(next) ? next : "";
113
+ if (next !== this.value) return;
114
+ if (this.control && !this.isUserInput) this._presentationValue = this.#valueToPresentationValue(this.value);
115
+ super.valueChanged(previous, this.value);
116
+ if (previous !== void 0 && !this.isUserInput) {
117
+ this.$emit("input");
118
+ this.$emit("change");
80
119
  }
81
- this.#constrainSelectedIndex();
82
120
  }
83
121
  /** @internal */
84
- selectedIndexChanged(oldValue, newValue) {
85
- if (oldValue === void 0) return;
86
- this.$emit("pagination-change", {
87
- selectedIndex: newValue,
88
- total: this.total,
89
- oldIndex: oldValue
90
- });
91
- this.#constrainSelectedIndex();
122
+ get _numberPatterns() {
123
+ return this.locale.common.useCommaAsDecimalSeparator ? numberPatternsWithComma : numberPatternsWithPeriod;
92
124
  }
93
- /** @internal */
94
- paginationButtonsChanged(_, newValue) {
95
- newValue.forEach((button) => {
96
- button.shadowRoot.querySelector("button").setAttribute("part", "button");
97
- });
125
+ #valueToPresentationValue(value) {
126
+ return value.replace(".", this.locale.common.useCommaAsDecimalSeparator ? "," : ".");
127
+ }
128
+ #inputToPresentationValue(input) {
129
+ return input.replace(this._numberPatterns.invalidCharacters, "").replace(this._numberPatterns.additionalDecimalSeparators, "");
130
+ }
131
+ #presentationValueToValue(presentationValue) {
132
+ const candidate = presentationValue.replace(this._numberPatterns.trailingDecimalSeparator, "").replace(this._numberPatterns.decimalSeparator, ".");
133
+ return validNumber.test(candidate) ? candidate : "";
134
+ }
135
+ /** Validates the Number Field against its constraints (e.g. `min`, `max`, `required`) and updates its validity state. */
136
+ validate() {
137
+ super.validate(this.control);
138
+ }
139
+ /** Increments the value using the step value */
140
+ stepUp() {
141
+ makeStep(this, STEP_DIRECTION.up);
98
142
  }
99
- get #constrainedSelectedIndex() {
100
- return Math.max(0, Math.min(this.selectedIndex ?? 0, this.total - 1));
143
+ /** Decrements the value using the step value */
144
+ stepDown() {
145
+ makeStep(this, STEP_DIRECTION.down);
101
146
  }
102
- #constrainSelectedIndex() {
103
- if (this.selectedIndex !== this.#constrainedSelectedIndex) window.queueMicrotask(() => {
104
- if (this.selectedIndex !== this.#constrainedSelectedIndex) this.selectedIndex = this.#constrainedSelectedIndex;
147
+ /**
148
+ * Sets up the initial state of the number field
149
+ * @internal
150
+ */
151
+ connectedCallback() {
152
+ super.connectedCallback();
153
+ this.proxy.setAttribute("type", "number");
154
+ this.validate();
155
+ this._presentationValue = this.#valueToPresentationValue(this.value);
156
+ if (this.autofocus) Updates.enqueue(() => {
157
+ this.focus();
105
158
  });
106
159
  }
160
+ /** Selects all the text in the number field */
161
+ select() {
162
+ this.control.select();
163
+ /**
164
+ * The select event does not permeate the shadow DOM boundary.
165
+ * This fn effectively proxies the select event,
166
+ * emitting a `select` event whenever the internal
167
+ * control emits a `select` event
168
+ */
169
+ this.$emit("select");
170
+ }
171
+ /**
172
+ * Handles the internal control's `input` event
173
+ * @internal
174
+ */
175
+ handleTextInput() {
176
+ this._presentationValue = this.#inputToPresentationValue(this.control.value);
177
+ if (this.control.value !== this._presentationValue) this.control.value = this._presentationValue;
178
+ this.isUserInput = true;
179
+ this.value = this.#presentationValueToValue(this._presentationValue);
180
+ this.isUserInput = false;
181
+ }
182
+ /**
183
+ * Change event handler for inner control.
184
+ * @remarks
185
+ * "Change" events are not `composable` so they will not
186
+ * permeate the shadow DOM boundary. This fn effectively proxies
187
+ * the change event, emitting a `change` event whenever the internal
188
+ * control emits a `change` event
189
+ * @internal
190
+ */
191
+ handleChange() {
192
+ this.$emit("change");
193
+ }
194
+ /**
195
+ * Handles the internal control's `keydown` event
196
+ * @internal
197
+ */
198
+ handleKeyDown(e) {
199
+ switch (e.key) {
200
+ case keyArrowUp:
201
+ this.stepUp();
202
+ return false;
203
+ case keyArrowDown:
204
+ this.stepDown();
205
+ return false;
206
+ }
207
+ return true;
208
+ }
107
209
  };
108
- __decorate([attr], Pagination.prototype, "size", void 0);
109
- __decorate([attr], Pagination.prototype, "shape", void 0);
110
- __decorate([observable], Pagination.prototype, "paginationButtons", void 0);
111
- __decorate([observable], Pagination.prototype, "prevButton", void 0);
112
- __decorate([observable], Pagination.prototype, "nextButton", void 0);
113
210
  __decorate([attr({
114
- attribute: "nav-icons",
211
+ attribute: "readonly",
115
212
  mode: "boolean"
116
- })], Pagination.prototype, "navIcons", void 0);
117
- __decorate([volatile], Pagination.prototype, "pagesList", null);
118
- __decorate([attr({
119
- mode: "reflect",
120
- converter: totalConverter
121
- })], Pagination.prototype, "total", void 0);
122
- __decorate([attr({
123
- mode: "reflect",
124
- converter: totalConverter,
125
- attribute: "selected-index"
126
- })], Pagination.prototype, "selectedIndex", void 0);
213
+ })], NumberField.prototype, "readOnly", void 0);
214
+ __decorate([attr({ mode: "boolean" })], NumberField.prototype, "autofocus", void 0);
215
+ __decorate([attr], NumberField.prototype, "placeholder", void 0);
216
+ __decorate([attr], NumberField.prototype, "list", void 0);
217
+ __decorate([attr({ converter: nullableNumberConverter })], NumberField.prototype, "maxlength", void 0);
218
+ __decorate([attr({ converter: nullableNumberConverter })], NumberField.prototype, "minlength", void 0);
219
+ __decorate([attr({ converter: nullableNumberConverter })], NumberField.prototype, "size", void 0);
220
+ __decorate([attr()], NumberField.prototype, "scale", void 0);
221
+ __decorate([attr({ converter: nullableNumberConverter })], NumberField.prototype, "step", void 0);
222
+ __decorate([attr({ converter: nullableNumberConverter })], NumberField.prototype, "max", void 0);
223
+ __decorate([attr({ converter: nullableNumberConverter })], NumberField.prototype, "min", void 0);
224
+ __decorate([observable], NumberField.prototype, "defaultSlottedNodes", void 0);
225
+ __decorate([observable], NumberField.prototype, "_presentationValue", void 0);
226
+ __decorate([observable], NumberField.prototype, "_updatedValueAnnouncement", void 0);
227
+ __decorate([attr({ attribute: "increment-button-aria-label" })], NumberField.prototype, "incrementButtonAriaLabel", void 0);
228
+ __decorate([attr({ attribute: "decrement-button-aria-label" })], NumberField.prototype, "decrementButtonAriaLabel", void 0);
229
+ __decorate([attr], NumberField.prototype, "appearance", void 0);
230
+ __decorate([attr], NumberField.prototype, "shape", void 0);
231
+ __decorate([attr], NumberField.prototype, "autoComplete", void 0);
127
232
  //#endregion
128
- //#region src/lib/pagination/pagination.template.ts
129
- var ALLOWED_SIZES = [
130
- Size.SuperCondensed,
131
- Size.Condensed,
132
- Size.Normal
133
- ];
134
- var ALLOWED_SHAPES = [Shape.Rounded, Shape.Pill];
135
- var handleSelection = (value, { parent: x }) => {
136
- return x.selectedIndex = Number(value) - 1;
137
- };
138
- var handleKeyDown = (value, { event, parent }) => {
139
- if (event.key === " " || event.key === "Enter") handleSelection(value, { parent });
140
- if (event.key === "Tab") event.target.dispatchEvent(new CustomEvent("tabpressed", {
141
- detail: {
142
- value,
143
- shiftKey: event.shiftKey
144
- },
145
- bubbles: true,
146
- composed: true
147
- }));
148
- };
149
- var getClasses = (_) => classNames("control");
150
- function getButtonAppearance(value, { parent }) {
151
- return parent.selectedIndex === Number(value) - 1 ? "filled" : "ghost";
233
+ //#region src/lib/number-field/number-field.template.ts
234
+ function renderLabel() {
235
+ return html` <label for="control" class="label">
236
+ ${(x) => x.label}
237
+ </label>`;
152
238
  }
153
- var paginationButtonRenderer = (buttonTag) => html` ${when((value) => value !== "...", html`
154
- <${buttonTag} class="vwc-pagination-button"
155
- label="${(value) => value}"
156
- appearance="${getButtonAppearance}"
157
- size="${(_, { parent: x }) => getPaginationSize(x)}"
158
- shape="${(_, { parent: x }) => getPaginationShape(x)}"
159
- style="inline-size: ${(value) => getPaginationButtonWidth(value)};"
160
- tabindex="0"
161
- aria-label="${(value, { parent: x }) => x.locale.pagination.goToPageLabel(value)}"
162
- aria-current="${(value, { parent }) => parent.selectedIndex === Number(value) - 1}"
163
- @click="${handleSelection}"
164
- @keydown="${handleKeyDown}">
165
- </${buttonTag}>
166
- `)}
167
- ${when((value) => value === "...", html` <div
168
- class="dots size-${(_, { parent: x }) => getPaginationSize(x)}"
169
- aria-hidden="true"
170
- >
171
- ...
172
- </div>`)}`;
173
- var getPaginationSize = (x) => {
174
- if (!x.size || !ALLOWED_SIZES.includes(x.size)) return Size.SuperCondensed;
175
- return x.size;
176
- };
177
- var getPaginationShape = (x) => {
178
- if (!x.shape || !ALLOWED_SHAPES.includes(x.shape)) return Shape.Rounded;
179
- return x.shape;
180
- };
181
- var getPaginationButtonWidth = (value) => {
182
- return `calc(var(--base-size) + ${String(value).length - 1}ch)`;
183
- };
184
- var PaginationTemplate = (context) => {
239
+ function setControlButtonShape(numberField) {
240
+ return numberField.shape === Shape.Pill ? Shape.Pill : null;
241
+ }
242
+ function getTabIndex(numberField) {
243
+ return numberField.disabled || numberField.readOnly ? "-1" : null;
244
+ }
245
+ /** @param context - element definition context */
246
+ function numberControlButtons(context) {
185
247
  const buttonTag = context.tagFor(Button);
186
- const buttonTagName = context.tagFor(Button, true);
187
- const paginationButtonTemplate = paginationButtonRenderer(buttonTag);
248
+ const dividerTag = context.tagFor(Divider);
249
+ return html`
250
+ <div class="control-buttons" ?inert="${(x) => x.disabled || x.readOnly}">
251
+ <${buttonTag} id="subtract" icon="minus-line"
252
+ ?disabled="${(x) => x.disabled || x.readOnly}"
253
+ aria-label=${(x) => x.decrementButtonAriaLabel || x.locale.numberField.decrementButtonLabel(x.step)}
254
+ shape="${setControlButtonShape}"
255
+ type="button"
256
+ size="${(x) => x.scale === "condensed" ? "super-condensed" : "condensed"}"
257
+ tabindex="${getTabIndex}"
258
+ @click="${(x) => x.stepDown()}"></${buttonTag}>
259
+ <${dividerTag} class="divider" orientation="vertical"></${dividerTag}>
260
+ <${buttonTag} id="add" icon="plus-line"
261
+ ?disabled="${(x) => x.disabled || x.readOnly}"
262
+ aria-label=${(x) => x.incrementButtonAriaLabel || x.locale.numberField.incrementButtonLabel(x.step)}
263
+ shape="${setControlButtonShape}"
264
+ type="button"
265
+ size="${(x) => x.scale === "condensed" ? "super-condensed" : "condensed"}"
266
+ tabindex="${getTabIndex}"
267
+ @click="${(x) => x.stepUp()}"></${buttonTag}>
268
+ </div>
269
+ `;
270
+ }
271
+ var NumberFieldTemplate = (context) => {
272
+ const visuallyHiddenTag = context.tagFor(VisuallyHidden);
188
273
  return html`
189
- <div class="${getClasses}">
190
- <${buttonTag} class="prev-button" ${ref("prevButton")}
191
- label="${(x) => !x.navIcons ? "Previous" : null}"
192
- icon="${(x) => x.navIcons ? "chevron-left-line" : null}"
193
- size="${getPaginationSize}"
194
- shape="${getPaginationShape}"
195
- ?disabled="${(x) => x.total === 0 || x.selectedIndex === 0}"
196
- @click="${(x) => x.selectedIndex !== void 0 && x.selectedIndex--}"
197
- aria-label="${(x) => x.locale.pagination.previousPageLabel}"
198
- ></${buttonTag}>
199
- <div id="buttons-wrapper" class="buttons-wrapper" ${children({
200
- property: "paginationButtons",
201
- filter: elements(buttonTagName)
202
- })}>
203
- ${repeat((x) => x.pagesList, paginationButtonTemplate, { positioning: true })}
274
+ <div class="base ${(x) => classNames(["error", Boolean(x.errorValidationMessage)], ["disabled", x.disabled], ["has-value", Boolean(x.value)], ["readonly", x.readOnly], ["placeholder", Boolean(x.placeholder)], [`appearance-${x.appearance}`, Boolean(x.appearance)], [`shape-${x.shape}`, Boolean(x.shape)], ["no-label", !x.label], ["success", !!x.successText], [`size-${x.scale}`, Boolean(x.scale)])}">
275
+ <div class="label-wrapper" ?hidden=${(x) => !x.label && !x._hasContextualHelp}>
276
+ ${when((x) => x.label, renderLabel())}
277
+ <slot name="contextual-help" ${slotted("_contextualHelpSlottedContent")}></slot>
278
+ </div>
279
+ <div class="fieldset">
280
+ <div class="wrapper">
281
+ <input
282
+ class="control"
283
+ id="control"
284
+ @input="${(x) => x.handleTextInput()}"
285
+ @change="${(x) => x.handleChange()}"
286
+ @keydown="${(x, c) => x.handleKeyDown(c.event)}"
287
+ ?autofocus="${(x) => x.autofocus}"
288
+ ?disabled="${(x) => x.disabled}"
289
+ list="${(x) => x.list}"
290
+ maxlength="${(x) => x.maxlength}"
291
+ minlength="${(x) => x.minlength}"
292
+ placeholder="${(x) => x.placeholder}"
293
+ ?readonly="${(x) => x.readOnly}"
294
+ ?required="${(x) => x.required}"
295
+ size="${(x) => x.size}"
296
+ autocomplete="${(x) => x.autoComplete}"
297
+ name="${(x) => x.name}"
298
+ ?spellcheck="${(x) => x.spellcheck}"
299
+ :value="${(x) => x._presentationValue}"
300
+ type="text"
301
+ ${delegateAria({ ariaDescribedBy: (x) => x._feedbackDescribedBy })}
302
+ ${ref("control")}
303
+ />
304
+ </div>
305
+ ${() => numberControlButtons(context)}
306
+ </div>
307
+ ${(x) => x._getFeedbackTemplate(context)}
308
+ <${visuallyHiddenTag} id="value-announcement" role="status" aria-atomic="true">
309
+ ${(x) => x._updatedValueAnnouncement}</${visuallyHiddenTag}>
204
310
  </div>
205
- <${buttonTag} class="next-button" ${ref("nextButton")}
206
- label="${(x) => !x.navIcons ? "Next" : null}"
207
- icon="${(x) => x.navIcons ? "chevron-right-line" : null}"
208
- size="${getPaginationSize}"
209
- shape="${getPaginationShape}"
210
- ?disabled="${(x) => x.total === 0 || x.selectedIndex === x.total - 1}"
211
- @click="${(x) => x.selectedIndex !== void 0 && x.selectedIndex++}"
212
- aria-label="${(x) => x.locale.pagination.nextPageLabel}"
213
- ></${buttonTag}>
214
- </div>`;
311
+ `;
215
312
  };
216
313
  //#endregion
217
- //#region src/lib/pagination/definition.ts
314
+ //#region src/lib/number-field/definition.ts
218
315
  /** @internal */
219
- var paginationDefinition = defineVividComponent("pagination", Pagination, PaginationTemplate, [buttonDefinition], { styles: pagination_default });
316
+ var numberFieldDefinition = defineVividComponent("number-field", NumberField, NumberFieldTemplate, [
317
+ buttonDefinition,
318
+ dividerDefinition,
319
+ iconDefinition,
320
+ feedbackMessageDefinition,
321
+ visuallyHiddenDefinition,
322
+ contextualHelpDefinition
323
+ ], {
324
+ styles: number_field_default,
325
+ shadowOptions: { delegatesFocus: true }
326
+ });
220
327
  /**
221
- * Registers the pagination element with the design system.
328
+ * Registers the number-field elements with the design system.
222
329
  *
223
330
  * @param prefix - the prefix to use for the component name
224
331
  */
225
- var registerPagination = createRegisterFunction(paginationDefinition);
332
+ var registerNumberField = createRegisterFunction(numberFieldDefinition);
226
333
  //#endregion
227
- export { registerPagination as n, Pagination as r, paginationDefinition as t };
334
+ export { registerNumberField as n, NumberField as r, numberFieldDefinition as t };