@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,245 +1,352 @@
1
1
  require("./chunk.cjs");
2
2
  const require_vivid_element = require("./vivid-element.cjs");
3
+ const require_definition = require("./definition.cjs");
3
4
  const require_decorate = require("./decorate.cjs");
5
+ const require_affix = require("./affix.cjs");
6
+ const require_delegates_aria = require("./delegates-aria.cjs");
7
+ const require_form_associated = require("./form-associated.cjs");
4
8
  const require_localized = require("./localized.cjs");
5
- const require_definition = require("./definition6.cjs");
9
+ const require_definition$1 = require("./definition6.cjs");
6
10
  const require_enums = require("./enums.cjs");
11
+ const require_divider = require("./divider.cjs");
12
+ const require_definition$2 = require("./definition22.cjs");
13
+ const require_mixins = require("./mixins.cjs");
14
+ const require_form_element = require("./form-element.cjs");
15
+ const require_with_error_text = require("./with-error-text.cjs");
16
+ const require_with_success_text = require("./with-success-text.cjs");
17
+ const require_definition$3 = require("./definition25.cjs");
18
+ const require_with_contextual_help = require("./with-contextual-help.cjs");
19
+ const require_definition$4 = require("./definition36.cjs");
7
20
  let _microsoft_fast_element = require("@microsoft/fast-element");
8
21
  let _microsoft_fast_web_utilities = require("@microsoft/fast-web-utilities");
9
- //#region src/lib/pagination/pagination.scss?inline
10
- 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)))}";
22
+ //#region src/lib/number-field/number-field.scss?inline
23
+ 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}";
11
24
  //#endregion
12
- //#region src/lib/pagination/pagination.ts
13
- var MAX_DIGITS_AND_PLACEHOLDERS = 7;
14
- var totalConverter = {
15
- fromView: (value) => parseInt(value, 10),
16
- toView: (value) => value.toString()
25
+ //#region src/lib/number-field/number-field.ts
26
+ var STEP_DIRECTION = {
27
+ up: 1,
28
+ down: -1
17
29
  };
30
+ function makeStep(element, direction) {
31
+ const value = parseFloat(element.value);
32
+ const stepUpValue = !isNaN(value) ? value + direction * element.step : element.min > 0 ? element.min : element.max < 0 ? element.max : !element.min ? direction * element.step : 0;
33
+ element.value = Number(stepUpValue.toFixed(12)).toString();
34
+ element._updatedValueAnnouncement = element.locale.numberField.updatedValueAnnouncement(element._presentationValue);
35
+ }
36
+ var buildNumberPatterns = (decimalSeparator) => {
37
+ const ds = decimalSeparator.source;
38
+ return {
39
+ invalidCharacters: new RegExp(`[^0-9\\-+e${ds}]`, "g"),
40
+ additionalDecimalSeparators: new RegExp(`(?<=${ds}.*)${ds}`, "g"),
41
+ trailingDecimalSeparator: new RegExp(`${ds}$`),
42
+ decimalSeparator
43
+ };
44
+ };
45
+ var numberPatternsWithPeriod = buildNumberPatterns(/\./);
46
+ var numberPatternsWithComma = buildNumberPatterns(/,/);
47
+ var validNumber = /^-?((\d*\.\d+)|(\d+))$/;
18
48
  /**
19
49
  * @public
20
- * @component pagination
21
- * @event {CustomEvent<{selectedIndex: number, total: number, oldIndex: number}>} pagination-change - Fires when the page changes.
22
- * @vueModel modelValue selectedIndex pagination-change `event.currentTarget.selectedIndex`
23
- * @testAction clickNext click #nextButton
24
- * @testAction clickPrev click #prevButton
25
- * @testAction clickPageIndex clickPaginationPage
26
- * @testQuery total total
27
- * @testQuery selectedPage paginationSelectedPage
28
- * @testRef nextButton shadow .next-button
29
- * @testRef prevButton shadow .prev-button
50
+ * @component number-field
51
+ * @slot helper-text - Describes how to use the Number Field. Alternative to the `helper-text` attribute.
52
+ * @event {CustomEvent<undefined>} input - Fires a custom 'input' event when the value has changed
53
+ * @event {CustomEvent<undefined>} change - Fires a custom 'change' event when the value has changed
54
+ * @vueModel modelValue value input,@lazy:change `event.currentTarget.value`
55
+ * @vueModel valueAsNumber valueAsNumber input,@lazy:change `event.currentTarget.valueAsNumber`
56
+ * @testAction fill fill #control
57
+ * @testAction clear clear #control
58
+ * @testAction clickIncrement clickButton #incrementButton
59
+ * @testAction clickDecrement clickButton #decrementButton
60
+ * @testQuery valueAsNumber valueAsNumber
61
+ * @testRef control shadow input.control
62
+ * @testRef incrementButton shadowButton #add
63
+ * @testRef decrementButton shadowButton #subtract
30
64
  */
31
- var Pagination = class extends require_localized.Localized(require_vivid_element.VividElement) {
32
- get pagesList() {
33
- return new Array(this.total < MAX_DIGITS_AND_PLACEHOLDERS ? this.total : MAX_DIGITS_AND_PLACEHOLDERS).fill(0).map((_, i, arr) => {
34
- if (i === 0) return 1;
35
- if (i === arr.length - 1) return this.total;
36
- if (this.selectedIndex !== void 0 && this.total > MAX_DIGITS_AND_PLACEHOLDERS) {
37
- if (this.selectedIndex < 4) {
38
- if (i === MAX_DIGITS_AND_PLACEHOLDERS - 2) return "...";
39
- }
40
- if (this.selectedIndex >= 4 && this.selectedIndex <= this.total - 5) {
41
- if (i > 1 && i < MAX_DIGITS_AND_PLACEHOLDERS - 2) return this.selectedIndex + (i - 2);
42
- /* v8 ignore else -- @preserve */
43
- if (i === 1 || i === MAX_DIGITS_AND_PLACEHOLDERS - 2) return "...";
44
- }
45
- if (this.selectedIndex > this.total - 5) {
46
- if (i > 1) return this.total - (6 - i);
47
- /* v8 ignore else -- @preserve */
48
- if (i === 1) return "...";
49
- }
50
- }
51
- return i + 1;
52
- });
65
+ var NumberField = class extends require_with_contextual_help.WithContextualHelp(require_mixins.WithFeedback(require_with_error_text.WithErrorText(require_with_success_text.WithSuccessText(require_form_element.FormElement(require_affix.AffixIcon(require_localized.Localized(require_delegates_aria.DelegatesAria(require_form_associated.FormAssociated(require_vivid_element.VividElement))))))))) {
66
+ constructor(..._args) {
67
+ super(..._args);
68
+ this.proxy = document.createElement("input");
69
+ this.readOnly = false;
70
+ this.autofocus = false;
71
+ this.step = 1;
72
+ this.isUserInput = false;
73
+ this._presentationValue = "";
74
+ this._updatedValueAnnouncement = "";
75
+ this.incrementButtonAriaLabel = null;
76
+ this.decrementButtonAriaLabel = null;
53
77
  }
54
- constructor() {
55
- super();
56
- this.navIcons = false;
57
- this.total = 0;
58
- this.selectedIndex = 0;
59
- this.addEventListener("tabpressed", (e) => {
60
- const { value: currentLabel, shiftKey } = e.detail;
61
- const index = this.paginationButtons.findIndex((button) => Number(button.label) === currentLabel);
62
- const focusDirection = shiftKey ? -1 : 1;
63
- const newIndex = index + focusDirection;
64
- if (newIndex < 0) {
65
- this.prevButton.focus();
66
- return;
67
- }
68
- if (newIndex > this.paginationButtons.length - 1) {
69
- this.nextButton.focus();
70
- return;
71
- }
72
- /* v8 ignore else -- @preserve */
73
- if (this.paginationButtons) this.paginationButtons[index + focusDirection].focus();
74
- });
78
+ /** @internal */
79
+ stepChanged(_, next) {
80
+ this.proxy.setAttribute("step", Number.isFinite(next) ? next.toString() : "");
81
+ }
82
+ /**
83
+ * Ensures that the max is greater than the min and that the value
84
+ * is less than the max
85
+ *
86
+ * @internal
87
+ */
88
+ maxChanged(_, next) {
89
+ this.max = Math.max(next, this.min ?? next);
90
+ this.proxy.max = this.max.toString();
91
+ this.validate();
92
+ }
93
+ /**
94
+ * Ensures that the min is less than the max and that the value
95
+ * is greater than the min
96
+ *
97
+ * @internal
98
+ */
99
+ minChanged(_, next) {
100
+ this.min = Math.min(next, this.max ?? next);
101
+ this.proxy.min = this.min.toString();
102
+ this.validate();
103
+ }
104
+ /** The value property, typed as a number. */
105
+ get valueAsNumber() {
106
+ return parseFloat(this.value);
107
+ }
108
+ set valueAsNumber(next) {
109
+ this.value = next.toString();
75
110
  }
76
111
  /** @internal */
77
- totalChanged(_, newValue) {
78
- if (newValue < 0) {
79
- this.total = 0;
80
- return;
112
+ valueChanged(previous, next) {
113
+ this.value = validNumber.test(next) ? next : "";
114
+ if (next !== this.value) return;
115
+ if (this.control && !this.isUserInput) this._presentationValue = this.#valueToPresentationValue(this.value);
116
+ super.valueChanged(previous, this.value);
117
+ if (previous !== void 0 && !this.isUserInput) {
118
+ this.$emit("input");
119
+ this.$emit("change");
81
120
  }
82
- this.#constrainSelectedIndex();
83
121
  }
84
122
  /** @internal */
85
- selectedIndexChanged(oldValue, newValue) {
86
- if (oldValue === void 0) return;
87
- this.$emit("pagination-change", {
88
- selectedIndex: newValue,
89
- total: this.total,
90
- oldIndex: oldValue
91
- });
92
- this.#constrainSelectedIndex();
123
+ get _numberPatterns() {
124
+ return this.locale.common.useCommaAsDecimalSeparator ? numberPatternsWithComma : numberPatternsWithPeriod;
93
125
  }
94
- /** @internal */
95
- paginationButtonsChanged(_, newValue) {
96
- newValue.forEach((button) => {
97
- button.shadowRoot.querySelector("button").setAttribute("part", "button");
98
- });
126
+ #valueToPresentationValue(value) {
127
+ return value.replace(".", this.locale.common.useCommaAsDecimalSeparator ? "," : ".");
128
+ }
129
+ #inputToPresentationValue(input) {
130
+ return input.replace(this._numberPatterns.invalidCharacters, "").replace(this._numberPatterns.additionalDecimalSeparators, "");
99
131
  }
100
- get #constrainedSelectedIndex() {
101
- return Math.max(0, Math.min(this.selectedIndex ?? 0, this.total - 1));
132
+ #presentationValueToValue(presentationValue) {
133
+ const candidate = presentationValue.replace(this._numberPatterns.trailingDecimalSeparator, "").replace(this._numberPatterns.decimalSeparator, ".");
134
+ return validNumber.test(candidate) ? candidate : "";
102
135
  }
103
- #constrainSelectedIndex() {
104
- if (this.selectedIndex !== this.#constrainedSelectedIndex) window.queueMicrotask(() => {
105
- if (this.selectedIndex !== this.#constrainedSelectedIndex) this.selectedIndex = this.#constrainedSelectedIndex;
136
+ /** Validates the Number Field against its constraints (e.g. `min`, `max`, `required`) and updates its validity state. */
137
+ validate() {
138
+ super.validate(this.control);
139
+ }
140
+ /** Increments the value using the step value */
141
+ stepUp() {
142
+ makeStep(this, STEP_DIRECTION.up);
143
+ }
144
+ /** Decrements the value using the step value */
145
+ stepDown() {
146
+ makeStep(this, STEP_DIRECTION.down);
147
+ }
148
+ /**
149
+ * Sets up the initial state of the number field
150
+ * @internal
151
+ */
152
+ connectedCallback() {
153
+ super.connectedCallback();
154
+ this.proxy.setAttribute("type", "number");
155
+ this.validate();
156
+ this._presentationValue = this.#valueToPresentationValue(this.value);
157
+ if (this.autofocus) _microsoft_fast_element.Updates.enqueue(() => {
158
+ this.focus();
106
159
  });
107
160
  }
161
+ /** Selects all the text in the number field */
162
+ select() {
163
+ this.control.select();
164
+ /**
165
+ * The select event does not permeate the shadow DOM boundary.
166
+ * This fn effectively proxies the select event,
167
+ * emitting a `select` event whenever the internal
168
+ * control emits a `select` event
169
+ */
170
+ this.$emit("select");
171
+ }
172
+ /**
173
+ * Handles the internal control's `input` event
174
+ * @internal
175
+ */
176
+ handleTextInput() {
177
+ this._presentationValue = this.#inputToPresentationValue(this.control.value);
178
+ if (this.control.value !== this._presentationValue) this.control.value = this._presentationValue;
179
+ this.isUserInput = true;
180
+ this.value = this.#presentationValueToValue(this._presentationValue);
181
+ this.isUserInput = false;
182
+ }
183
+ /**
184
+ * Change event handler for inner control.
185
+ * @remarks
186
+ * "Change" events are not `composable` so they will not
187
+ * permeate the shadow DOM boundary. This fn effectively proxies
188
+ * the change event, emitting a `change` event whenever the internal
189
+ * control emits a `change` event
190
+ * @internal
191
+ */
192
+ handleChange() {
193
+ this.$emit("change");
194
+ }
195
+ /**
196
+ * Handles the internal control's `keydown` event
197
+ * @internal
198
+ */
199
+ handleKeyDown(e) {
200
+ switch (e.key) {
201
+ case _microsoft_fast_web_utilities.keyArrowUp:
202
+ this.stepUp();
203
+ return false;
204
+ case _microsoft_fast_web_utilities.keyArrowDown:
205
+ this.stepDown();
206
+ return false;
207
+ }
208
+ return true;
209
+ }
108
210
  };
109
- require_decorate.__decorate([_microsoft_fast_element.attr], Pagination.prototype, "size", void 0);
110
- require_decorate.__decorate([_microsoft_fast_element.attr], Pagination.prototype, "shape", void 0);
111
- require_decorate.__decorate([_microsoft_fast_element.observable], Pagination.prototype, "paginationButtons", void 0);
112
- require_decorate.__decorate([_microsoft_fast_element.observable], Pagination.prototype, "prevButton", void 0);
113
- require_decorate.__decorate([_microsoft_fast_element.observable], Pagination.prototype, "nextButton", void 0);
114
211
  require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
115
- attribute: "nav-icons",
212
+ attribute: "readonly",
116
213
  mode: "boolean"
117
- })], Pagination.prototype, "navIcons", void 0);
118
- require_decorate.__decorate([_microsoft_fast_element.volatile], Pagination.prototype, "pagesList", null);
119
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
120
- mode: "reflect",
121
- converter: totalConverter
122
- })], Pagination.prototype, "total", void 0);
123
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
124
- mode: "reflect",
125
- converter: totalConverter,
126
- attribute: "selected-index"
127
- })], Pagination.prototype, "selectedIndex", void 0);
214
+ })], NumberField.prototype, "readOnly", void 0);
215
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], NumberField.prototype, "autofocus", void 0);
216
+ require_decorate.__decorate([_microsoft_fast_element.attr], NumberField.prototype, "placeholder", void 0);
217
+ require_decorate.__decorate([_microsoft_fast_element.attr], NumberField.prototype, "list", void 0);
218
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ converter: _microsoft_fast_element.nullableNumberConverter })], NumberField.prototype, "maxlength", void 0);
219
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ converter: _microsoft_fast_element.nullableNumberConverter })], NumberField.prototype, "minlength", void 0);
220
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ converter: _microsoft_fast_element.nullableNumberConverter })], NumberField.prototype, "size", void 0);
221
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)()], NumberField.prototype, "scale", void 0);
222
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ converter: _microsoft_fast_element.nullableNumberConverter })], NumberField.prototype, "step", void 0);
223
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ converter: _microsoft_fast_element.nullableNumberConverter })], NumberField.prototype, "max", void 0);
224
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ converter: _microsoft_fast_element.nullableNumberConverter })], NumberField.prototype, "min", void 0);
225
+ require_decorate.__decorate([_microsoft_fast_element.observable], NumberField.prototype, "defaultSlottedNodes", void 0);
226
+ require_decorate.__decorate([_microsoft_fast_element.observable], NumberField.prototype, "_presentationValue", void 0);
227
+ require_decorate.__decorate([_microsoft_fast_element.observable], NumberField.prototype, "_updatedValueAnnouncement", void 0);
228
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "increment-button-aria-label" })], NumberField.prototype, "incrementButtonAriaLabel", void 0);
229
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "decrement-button-aria-label" })], NumberField.prototype, "decrementButtonAriaLabel", void 0);
230
+ require_decorate.__decorate([_microsoft_fast_element.attr], NumberField.prototype, "appearance", void 0);
231
+ require_decorate.__decorate([_microsoft_fast_element.attr], NumberField.prototype, "shape", void 0);
232
+ require_decorate.__decorate([_microsoft_fast_element.attr], NumberField.prototype, "autoComplete", void 0);
128
233
  //#endregion
129
- //#region src/lib/pagination/pagination.template.ts
130
- var ALLOWED_SIZES = [
131
- require_enums.Size.SuperCondensed,
132
- require_enums.Size.Condensed,
133
- require_enums.Size.Normal
134
- ];
135
- var ALLOWED_SHAPES = [require_enums.Shape.Rounded, require_enums.Shape.Pill];
136
- var handleSelection = (value, { parent: x }) => {
137
- return x.selectedIndex = Number(value) - 1;
138
- };
139
- var handleKeyDown = (value, { event, parent }) => {
140
- if (event.key === " " || event.key === "Enter") handleSelection(value, { parent });
141
- if (event.key === "Tab") event.target.dispatchEvent(new CustomEvent("tabpressed", {
142
- detail: {
143
- value,
144
- shiftKey: event.shiftKey
145
- },
146
- bubbles: true,
147
- composed: true
148
- }));
149
- };
150
- var getClasses = (_) => (0, _microsoft_fast_web_utilities.classNames)("control");
151
- function getButtonAppearance(value, { parent }) {
152
- return parent.selectedIndex === Number(value) - 1 ? "filled" : "ghost";
234
+ //#region src/lib/number-field/number-field.template.ts
235
+ function renderLabel() {
236
+ return _microsoft_fast_element.html` <label for="control" class="label">
237
+ ${(x) => x.label}
238
+ </label>`;
153
239
  }
154
- var paginationButtonRenderer = (buttonTag) => _microsoft_fast_element.html` ${(0, _microsoft_fast_element.when)((value) => value !== "...", _microsoft_fast_element.html`
155
- <${buttonTag} class="vwc-pagination-button"
156
- label="${(value) => value}"
157
- appearance="${getButtonAppearance}"
158
- size="${(_, { parent: x }) => getPaginationSize(x)}"
159
- shape="${(_, { parent: x }) => getPaginationShape(x)}"
160
- style="inline-size: ${(value) => getPaginationButtonWidth(value)};"
161
- tabindex="0"
162
- aria-label="${(value, { parent: x }) => x.locale.pagination.goToPageLabel(value)}"
163
- aria-current="${(value, { parent }) => parent.selectedIndex === Number(value) - 1}"
164
- @click="${handleSelection}"
165
- @keydown="${handleKeyDown}">
166
- </${buttonTag}>
167
- `)}
168
- ${(0, _microsoft_fast_element.when)((value) => value === "...", _microsoft_fast_element.html` <div
169
- class="dots size-${(_, { parent: x }) => getPaginationSize(x)}"
170
- aria-hidden="true"
171
- >
172
- ...
173
- </div>`)}`;
174
- var getPaginationSize = (x) => {
175
- if (!x.size || !ALLOWED_SIZES.includes(x.size)) return require_enums.Size.SuperCondensed;
176
- return x.size;
177
- };
178
- var getPaginationShape = (x) => {
179
- if (!x.shape || !ALLOWED_SHAPES.includes(x.shape)) return require_enums.Shape.Rounded;
180
- return x.shape;
181
- };
182
- var getPaginationButtonWidth = (value) => {
183
- return `calc(var(--base-size) + ${String(value).length - 1}ch)`;
184
- };
185
- var PaginationTemplate = (context) => {
186
- const buttonTag = context.tagFor(require_definition.Button);
187
- const buttonTagName = context.tagFor(require_definition.Button, true);
188
- const paginationButtonTemplate = paginationButtonRenderer(buttonTag);
240
+ function setControlButtonShape(numberField) {
241
+ return numberField.shape === require_enums.Shape.Pill ? require_enums.Shape.Pill : null;
242
+ }
243
+ function getTabIndex(numberField) {
244
+ return numberField.disabled || numberField.readOnly ? "-1" : null;
245
+ }
246
+ /** @param context - element definition context */
247
+ function numberControlButtons(context) {
248
+ const buttonTag = context.tagFor(require_definition$1.Button);
249
+ const dividerTag = context.tagFor(require_divider.Divider);
250
+ return _microsoft_fast_element.html`
251
+ <div class="control-buttons" ?inert="${(x) => x.disabled || x.readOnly}">
252
+ <${buttonTag} id="subtract" icon="minus-line"
253
+ ?disabled="${(x) => x.disabled || x.readOnly}"
254
+ aria-label=${(x) => x.decrementButtonAriaLabel || x.locale.numberField.decrementButtonLabel(x.step)}
255
+ shape="${setControlButtonShape}"
256
+ type="button"
257
+ size="${(x) => x.scale === "condensed" ? "super-condensed" : "condensed"}"
258
+ tabindex="${getTabIndex}"
259
+ @click="${(x) => x.stepDown()}"></${buttonTag}>
260
+ <${dividerTag} class="divider" orientation="vertical"></${dividerTag}>
261
+ <${buttonTag} id="add" icon="plus-line"
262
+ ?disabled="${(x) => x.disabled || x.readOnly}"
263
+ aria-label=${(x) => x.incrementButtonAriaLabel || x.locale.numberField.incrementButtonLabel(x.step)}
264
+ shape="${setControlButtonShape}"
265
+ type="button"
266
+ size="${(x) => x.scale === "condensed" ? "super-condensed" : "condensed"}"
267
+ tabindex="${getTabIndex}"
268
+ @click="${(x) => x.stepUp()}"></${buttonTag}>
269
+ </div>
270
+ `;
271
+ }
272
+ var NumberFieldTemplate = (context) => {
273
+ const visuallyHiddenTag = context.tagFor(require_definition$2.VisuallyHidden);
189
274
  return _microsoft_fast_element.html`
190
- <div class="${getClasses}">
191
- <${buttonTag} class="prev-button" ${(0, _microsoft_fast_element.ref)("prevButton")}
192
- label="${(x) => !x.navIcons ? "Previous" : null}"
193
- icon="${(x) => x.navIcons ? "chevron-left-line" : null}"
194
- size="${getPaginationSize}"
195
- shape="${getPaginationShape}"
196
- ?disabled="${(x) => x.total === 0 || x.selectedIndex === 0}"
197
- @click="${(x) => x.selectedIndex !== void 0 && x.selectedIndex--}"
198
- aria-label="${(x) => x.locale.pagination.previousPageLabel}"
199
- ></${buttonTag}>
200
- <div id="buttons-wrapper" class="buttons-wrapper" ${(0, _microsoft_fast_element.children)({
201
- property: "paginationButtons",
202
- filter: (0, _microsoft_fast_element.elements)(buttonTagName)
203
- })}>
204
- ${(0, _microsoft_fast_element.repeat)((x) => x.pagesList, paginationButtonTemplate, { positioning: true })}
275
+ <div class="base ${(x) => (0, _microsoft_fast_web_utilities.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)])}">
276
+ <div class="label-wrapper" ?hidden=${(x) => !x.label && !x._hasContextualHelp}>
277
+ ${(0, _microsoft_fast_element.when)((x) => x.label, renderLabel())}
278
+ <slot name="contextual-help" ${(0, _microsoft_fast_element.slotted)("_contextualHelpSlottedContent")}></slot>
279
+ </div>
280
+ <div class="fieldset">
281
+ <div class="wrapper">
282
+ <input
283
+ class="control"
284
+ id="control"
285
+ @input="${(x) => x.handleTextInput()}"
286
+ @change="${(x) => x.handleChange()}"
287
+ @keydown="${(x, c) => x.handleKeyDown(c.event)}"
288
+ ?autofocus="${(x) => x.autofocus}"
289
+ ?disabled="${(x) => x.disabled}"
290
+ list="${(x) => x.list}"
291
+ maxlength="${(x) => x.maxlength}"
292
+ minlength="${(x) => x.minlength}"
293
+ placeholder="${(x) => x.placeholder}"
294
+ ?readonly="${(x) => x.readOnly}"
295
+ ?required="${(x) => x.required}"
296
+ size="${(x) => x.size}"
297
+ autocomplete="${(x) => x.autoComplete}"
298
+ name="${(x) => x.name}"
299
+ ?spellcheck="${(x) => x.spellcheck}"
300
+ :value="${(x) => x._presentationValue}"
301
+ type="text"
302
+ ${require_delegates_aria.delegateAria({ ariaDescribedBy: (x) => x._feedbackDescribedBy })}
303
+ ${(0, _microsoft_fast_element.ref)("control")}
304
+ />
305
+ </div>
306
+ ${() => numberControlButtons(context)}
307
+ </div>
308
+ ${(x) => x._getFeedbackTemplate(context)}
309
+ <${visuallyHiddenTag} id="value-announcement" role="status" aria-atomic="true">
310
+ ${(x) => x._updatedValueAnnouncement}</${visuallyHiddenTag}>
205
311
  </div>
206
- <${buttonTag} class="next-button" ${(0, _microsoft_fast_element.ref)("nextButton")}
207
- label="${(x) => !x.navIcons ? "Next" : null}"
208
- icon="${(x) => x.navIcons ? "chevron-right-line" : null}"
209
- size="${getPaginationSize}"
210
- shape="${getPaginationShape}"
211
- ?disabled="${(x) => x.total === 0 || x.selectedIndex === x.total - 1}"
212
- @click="${(x) => x.selectedIndex !== void 0 && x.selectedIndex++}"
213
- aria-label="${(x) => x.locale.pagination.nextPageLabel}"
214
- ></${buttonTag}>
215
- </div>`;
312
+ `;
216
313
  };
217
314
  //#endregion
218
- //#region src/lib/pagination/definition.ts
315
+ //#region src/lib/number-field/definition.ts
219
316
  /** @internal */
220
- var paginationDefinition = require_vivid_element.defineVividComponent("pagination", Pagination, PaginationTemplate, [require_definition.buttonDefinition], { styles: pagination_default });
317
+ var numberFieldDefinition = require_vivid_element.defineVividComponent("number-field", NumberField, NumberFieldTemplate, [
318
+ require_definition$1.buttonDefinition,
319
+ require_definition$4.dividerDefinition,
320
+ require_definition.iconDefinition,
321
+ require_mixins.feedbackMessageDefinition,
322
+ require_definition$2.visuallyHiddenDefinition,
323
+ require_definition$3.contextualHelpDefinition
324
+ ], {
325
+ styles: number_field_default,
326
+ shadowOptions: { delegatesFocus: true }
327
+ });
221
328
  /**
222
- * Registers the pagination element with the design system.
329
+ * Registers the number-field elements with the design system.
223
330
  *
224
331
  * @param prefix - the prefix to use for the component name
225
332
  */
226
- var registerPagination = require_vivid_element.createRegisterFunction(paginationDefinition);
333
+ var registerNumberField = require_vivid_element.createRegisterFunction(numberFieldDefinition);
227
334
  //#endregion
228
- Object.defineProperty(exports, "Pagination", {
335
+ Object.defineProperty(exports, "NumberField", {
229
336
  enumerable: true,
230
337
  get: function() {
231
- return Pagination;
338
+ return NumberField;
232
339
  }
233
340
  });
234
- Object.defineProperty(exports, "paginationDefinition", {
341
+ Object.defineProperty(exports, "numberFieldDefinition", {
235
342
  enumerable: true,
236
343
  get: function() {
237
- return paginationDefinition;
344
+ return numberFieldDefinition;
238
345
  }
239
346
  });
240
- Object.defineProperty(exports, "registerPagination", {
347
+ Object.defineProperty(exports, "registerNumberField", {
241
348
  enumerable: true,
242
349
  get: function() {
243
- return registerPagination;
350
+ return registerNumberField;
244
351
  }
245
352
  });