@ds-mo/ui 15.4.0 → 15.5.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 (477) hide show
  1. package/NOTICE +7 -1
  2. package/dist/.package-ready.json +1 -1
  3. package/dist/agent-patterns.json +1 -1
  4. package/dist/agent.json +64 -8
  5. package/dist/angular/boolean-value-accessor.js +3 -3
  6. package/dist/angular/ds-agent-activity.js +3 -3
  7. package/dist/angular/ds-agent-questionnaire.js +3 -3
  8. package/dist/angular/ds-agent-response.js +3 -3
  9. package/dist/angular/ds-agent-source-list.js +3 -3
  10. package/dist/angular/ds-agent-tool-call.js +3 -3
  11. package/dist/angular/ds-attachment-list.js +3 -3
  12. package/dist/angular/ds-avatar.js +3 -3
  13. package/dist/angular/ds-badge.js +3 -3
  14. package/dist/angular/ds-banner.js +3 -3
  15. package/dist/angular/ds-bar-action.js +3 -3
  16. package/dist/angular/ds-bar-nav.js +3 -3
  17. package/dist/angular/ds-bar-page-title.js +3 -3
  18. package/dist/angular/ds-bar-title.js +3 -3
  19. package/dist/angular/ds-bar-workflow.js +3 -3
  20. package/dist/angular/ds-breadcrumb.js +3 -3
  21. package/dist/angular/ds-button-filled.js +3 -3
  22. package/dist/angular/ds-button-inverted.js +3 -3
  23. package/dist/angular/ds-button-unfilled.js +3 -3
  24. package/dist/angular/ds-calendar.js +3 -3
  25. package/dist/angular/ds-card-action-center.js +3 -3
  26. package/dist/angular/ds-card-chart.js +3 -3
  27. package/dist/angular/ds-card-navigation.js +3 -3
  28. package/dist/angular/ds-card-overview.js +3 -3
  29. package/dist/angular/ds-card-setting.js +3 -3
  30. package/dist/angular/ds-card-settings-scope.js +3 -3
  31. package/dist/angular/ds-chart-legend.js +3 -3
  32. package/dist/angular/ds-chart.js +3 -3
  33. package/dist/angular/ds-checkbox-group.js +3 -3
  34. package/dist/angular/ds-checkbox.d.ts +1 -1
  35. package/dist/angular/ds-checkbox.js +5 -5
  36. package/dist/angular/ds-chip.js +3 -3
  37. package/dist/angular/ds-code-block.js +3 -3
  38. package/dist/angular/ds-conversation-list-item.js +3 -3
  39. package/dist/angular/ds-conversation-list-section.js +3 -3
  40. package/dist/angular/ds-conversation-list.js +3 -3
  41. package/dist/angular/ds-data-customize.js +3 -3
  42. package/dist/angular/ds-data-filter.js +3 -3
  43. package/dist/angular/ds-data-group.js +3 -3
  44. package/dist/angular/ds-data-preferences.js +3 -3
  45. package/dist/angular/ds-data-saved-views.js +3 -3
  46. package/dist/angular/ds-data-search.js +3 -3
  47. package/dist/angular/ds-data-sort.js +3 -3
  48. package/dist/angular/ds-data-toolbar.js +3 -3
  49. package/dist/angular/ds-divider.js +3 -3
  50. package/dist/angular/ds-empty-state.js +3 -3
  51. package/dist/angular/ds-field.js +3 -3
  52. package/dist/angular/ds-filter-menu.js +3 -3
  53. package/dist/angular/ds-icon.js +3 -3
  54. package/dist/angular/ds-inline-banner-settings.js +3 -3
  55. package/dist/angular/ds-input-date.js +3 -3
  56. package/dist/angular/ds-input-time.js +3 -3
  57. package/dist/angular/ds-input.js +3 -3
  58. package/dist/angular/ds-loader.js +3 -3
  59. package/dist/angular/ds-map-cluster-marker.js +3 -3
  60. package/dist/angular/ds-map-entity-marker.js +3 -3
  61. package/dist/angular/ds-markdown.js +3 -3
  62. package/dist/angular/ds-menu.js +3 -3
  63. package/dist/angular/ds-message-actions.js +3 -3
  64. package/dist/angular/ds-message-bubble.js +3 -3
  65. package/dist/angular/ds-message-composer.js +3 -3
  66. package/dist/angular/ds-message-scroller.js +3 -3
  67. package/dist/angular/ds-message.js +3 -3
  68. package/dist/angular/ds-mobile-bar-nav.js +3 -3
  69. package/dist/angular/ds-mobile-header.js +3 -3
  70. package/dist/angular/ds-mobile-section-switcher.js +3 -3
  71. package/dist/angular/ds-mobile-sheet-nav.js +3 -3
  72. package/dist/angular/ds-modal.js +3 -3
  73. package/dist/angular/ds-pagination.js +3 -3
  74. package/dist/angular/ds-panel-nav.js +3 -3
  75. package/dist/angular/ds-panel-sub-nav.js +3 -3
  76. package/dist/angular/ds-panel-tool-header.js +3 -3
  77. package/dist/angular/ds-panel-tool-search.js +3 -3
  78. package/dist/angular/ds-panel-tools.js +3 -3
  79. package/dist/angular/ds-paper-texture.js +3 -3
  80. package/dist/angular/ds-radio-tile.js +3 -3
  81. package/dist/angular/ds-radio.js +3 -3
  82. package/dist/angular/ds-score.js +3 -3
  83. package/dist/angular/ds-scroll-overlay.js +3 -3
  84. package/dist/angular/ds-select.d.ts +1 -1
  85. package/dist/angular/ds-select.js +5 -5
  86. package/dist/angular/ds-setting-row-checkbox.js +3 -3
  87. package/dist/angular/ds-setting-row-radio.js +3 -3
  88. package/dist/angular/ds-setting-row-toggle.js +3 -3
  89. package/dist/angular/ds-shell-app.js +3 -3
  90. package/dist/angular/ds-shell-page.js +3 -3
  91. package/dist/angular/ds-shell-tools.js +3 -3
  92. package/dist/angular/ds-skeleton.js +3 -3
  93. package/dist/angular/ds-slider.js +3 -3
  94. package/dist/angular/ds-swatch-picker.js +3 -3
  95. package/dist/angular/ds-switch.js +3 -3
  96. package/dist/angular/ds-tab-group.js +3 -3
  97. package/dist/angular/ds-table.d.ts +7 -1
  98. package/dist/angular/ds-table.js +13 -7
  99. package/dist/angular/ds-tag.js +3 -3
  100. package/dist/angular/ds-text.js +3 -3
  101. package/dist/angular/ds-textarea.js +3 -3
  102. package/dist/angular/ds-time-picker.js +3 -3
  103. package/dist/angular/ds-toast.js +3 -3
  104. package/dist/angular/ds-tooltip-chart.js +3 -3
  105. package/dist/angular/ds-tooltip.js +3 -3
  106. package/dist/angular/ds-typing-indicator.js +3 -3
  107. package/dist/angular/number-value-accessor.js +3 -3
  108. package/dist/angular/radio-value-accessor.js +3 -3
  109. package/dist/angular/select-value-accessor.js +3 -3
  110. package/dist/angular/text-value-accessor.js +3 -3
  111. package/dist/angular/value-accessor.js +3 -3
  112. package/dist/components/THIRD-PARTY-NOTICES +1791 -0
  113. package/dist/components/bundled-dependencies.json +478 -0
  114. package/dist/components/ds-agent-activity.js +1 -1
  115. package/dist/components/ds-agent-questionnaire.js +1 -1
  116. package/dist/components/ds-agent-response.js +1 -1
  117. package/dist/components/ds-agent-source-list.js +1 -1
  118. package/dist/components/ds-agent-tool-call.js +1 -1
  119. package/dist/components/ds-attachment-list.js +1 -1
  120. package/dist/components/ds-avatar.js +1 -1
  121. package/dist/components/ds-banner.js +1 -1
  122. package/dist/components/ds-banner.js.map +1 -1
  123. package/dist/components/ds-bar-nav.js +1 -1
  124. package/dist/components/ds-bar-page-title.js +1 -1
  125. package/dist/components/ds-bar-title.js +1 -1
  126. package/dist/components/ds-bar-workflow.js +1 -1
  127. package/dist/components/ds-breadcrumb.js +1 -1
  128. package/dist/components/ds-button-filled.js +1 -1
  129. package/dist/components/ds-button-inverted.js +1 -1
  130. package/dist/components/ds-button-unfilled.js +1 -1
  131. package/dist/components/ds-calendar.js +1 -1
  132. package/dist/components/ds-card-action-center.js +1 -1
  133. package/dist/components/ds-card-chart.js +1 -1
  134. package/dist/components/ds-card-navigation.js +1 -1
  135. package/dist/components/ds-card-overview.js +1 -1
  136. package/dist/components/ds-card-overview.js.map +1 -1
  137. package/dist/components/ds-card-setting.js +1 -1
  138. package/dist/components/ds-chart-legend.js +1 -1
  139. package/dist/components/ds-chart-legend.js.map +1 -1
  140. package/dist/components/ds-chart.js +1 -1
  141. package/dist/components/ds-chart.js.map +1 -1
  142. package/dist/components/ds-checkbox.js +1 -1
  143. package/dist/components/ds-chip.js +1 -1
  144. package/dist/components/ds-code-block.js +1 -1
  145. package/dist/components/ds-conversation-list.js +1 -1
  146. package/dist/components/ds-conversation-list.js.map +1 -1
  147. package/dist/components/ds-data-customize.js +1 -1
  148. package/dist/components/ds-data-filter.js +1 -1
  149. package/dist/components/ds-data-group.js +1 -1
  150. package/dist/components/ds-data-preferences.js +1 -1
  151. package/dist/components/ds-data-preferences.js.map +1 -1
  152. package/dist/components/ds-data-saved-views.js +1 -1
  153. package/dist/components/ds-data-search.js +1 -1
  154. package/dist/components/ds-data-sort.js +1 -1
  155. package/dist/components/ds-data-toolbar.js +1 -1
  156. package/dist/components/ds-divider.js +1 -1
  157. package/dist/components/ds-empty-state.js +1 -1
  158. package/dist/components/ds-filter-menu.js +1 -1
  159. package/dist/components/ds-icon.js +1 -1
  160. package/dist/components/ds-input-date.js +1 -1
  161. package/dist/components/ds-input-date.js.map +1 -1
  162. package/dist/components/ds-input-time.js +1 -1
  163. package/dist/components/ds-input-time.js.map +1 -1
  164. package/dist/components/ds-input.js +1 -1
  165. package/dist/components/ds-map-entity-marker.js +1 -1
  166. package/dist/components/ds-markdown.js +1 -1
  167. package/dist/components/ds-menu.js +1 -1
  168. package/dist/components/ds-message-actions.js +1 -1
  169. package/dist/components/ds-message-bubble.js +1 -1
  170. package/dist/components/ds-message-composer.js +1 -1
  171. package/dist/components/ds-message-scroller.js +1 -1
  172. package/dist/components/ds-message.js +1 -1
  173. package/dist/components/ds-mobile-bar-nav.js +1 -1
  174. package/dist/components/ds-mobile-header.js +1 -1
  175. package/dist/components/ds-mobile-section-switcher.js +1 -1
  176. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  177. package/dist/components/ds-modal.js +1 -1
  178. package/dist/components/ds-pagination.js +1 -1
  179. package/dist/components/ds-panel-nav.js +1 -1
  180. package/dist/components/ds-panel-sub-nav.js +1 -1
  181. package/dist/components/ds-panel-tool-header.js +1 -1
  182. package/dist/components/ds-panel-tool-search.js +1 -1
  183. package/dist/components/ds-panel-tools.js +1 -1
  184. package/dist/components/ds-radio-tile.js +1 -1
  185. package/dist/components/ds-radio-tile.js.map +1 -1
  186. package/dist/components/ds-radio.js +1 -1
  187. package/dist/components/ds-scroll-overlay.js +1 -1
  188. package/dist/components/ds-scroll-overlay.js.map +1 -1
  189. package/dist/components/ds-select.js +1 -1
  190. package/dist/components/ds-setting-row-toggle.js +1 -1
  191. package/dist/components/ds-shell-app.js +1 -1
  192. package/dist/components/ds-shell-app.js.map +1 -1
  193. package/dist/components/ds-shell-page.js +1 -1
  194. package/dist/components/ds-shell-tools.js +1 -1
  195. package/dist/components/ds-slider.js +1 -1
  196. package/dist/components/ds-slider.js.map +1 -1
  197. package/dist/components/ds-switch.js +1 -1
  198. package/dist/components/ds-tab-group.js +1 -1
  199. package/dist/components/ds-table.js +1 -1
  200. package/dist/components/ds-table.js.map +1 -1
  201. package/dist/components/ds-tag.js +1 -1
  202. package/dist/components/ds-textarea.js +1 -1
  203. package/dist/components/ds-textarea.js.map +1 -1
  204. package/dist/components/ds-time-picker.js +1 -1
  205. package/dist/components/ds-toast.js +1 -1
  206. package/dist/components/ds-tooltip-chart.js +1 -1
  207. package/dist/components/ds-tooltip.js +1 -1
  208. package/dist/components/p--STJbKuN.js +2 -0
  209. package/dist/components/p--STJbKuN.js.map +1 -0
  210. package/dist/components/{p-Co1rUdOR.js → p--pJyciTI.js} +2 -2
  211. package/dist/components/p--pJyciTI.js.map +1 -0
  212. package/dist/components/p-02k7d7BH.js +2 -0
  213. package/dist/components/p-02k7d7BH.js.map +1 -0
  214. package/dist/components/{p-CZNZTcYS.js → p-5-gQbIIz.js} +2 -2
  215. package/dist/components/{p-DRdoGSGX.js → p-7MwoWtTJ.js} +2 -2
  216. package/dist/components/p-B0uO3-Dp.js +2 -0
  217. package/dist/components/p-B0uO3-Dp.js.map +1 -0
  218. package/dist/components/p-B6TX55c5.js +2 -0
  219. package/dist/components/p-B6TX55c5.js.map +1 -0
  220. package/dist/components/p-B95UP66y.js +2 -0
  221. package/dist/components/p-B95UP66y.js.map +1 -0
  222. package/dist/components/p-BGSG6xIS.js +2 -0
  223. package/dist/components/p-BGSG6xIS.js.map +1 -0
  224. package/dist/components/p-BNarCFJZ.js +2 -0
  225. package/dist/components/p-BNarCFJZ.js.map +1 -0
  226. package/dist/components/{p-DJDbskZf.js → p-BO5URdZF.js} +2 -2
  227. package/dist/components/{p-DmSnHVW6.js → p-BVxK8ce0.js} +2 -2
  228. package/dist/components/{p-B0EpvBDs.js → p-BYeG0b5N.js} +2 -2
  229. package/dist/components/p-BcpIK9S6.js +2 -0
  230. package/dist/components/p-BcpIK9S6.js.map +1 -0
  231. package/dist/components/p-Bf-BphXP.js +2 -0
  232. package/dist/components/p-Bf-BphXP.js.map +1 -0
  233. package/dist/components/{p-Bk3poU91.js → p-BmIllmq2.js} +2 -2
  234. package/dist/components/p-BmIllmq2.js.map +1 -0
  235. package/dist/components/p-Bq_ypMSy.js +2 -0
  236. package/dist/components/p-Bq_ypMSy.js.map +1 -0
  237. package/dist/components/p-ByLH5RAD.js +2 -0
  238. package/dist/components/p-ByLH5RAD.js.map +1 -0
  239. package/dist/components/{p-DzvTC27M.js → p-C1ZfBbJ_.js} +2 -2
  240. package/dist/components/p-C1ZfBbJ_.js.map +1 -0
  241. package/dist/components/p-C1oczmAc.js +2 -0
  242. package/dist/components/p-C1oczmAc.js.map +1 -0
  243. package/dist/components/p-C5BBIDVm.js +2 -0
  244. package/dist/components/p-C5BBIDVm.js.map +1 -0
  245. package/dist/components/{p-CJ1NnOEW.js → p-CA3iQ1ME.js} +2 -2
  246. package/dist/components/p-CE6MaXBg.js +2 -0
  247. package/dist/components/p-CE6MaXBg.js.map +1 -0
  248. package/dist/components/p-CXGjCWSh.js +2 -0
  249. package/dist/components/p-CXGjCWSh.js.map +1 -0
  250. package/dist/components/{p-DYQa1DVF.js → p-C_9VGgPf.js} +2 -2
  251. package/dist/components/p-CbrDF2gA.js +2 -0
  252. package/dist/components/p-CbrDF2gA.js.map +1 -0
  253. package/dist/components/{p-7TVdPhGR.js → p-CgQB8Ct5.js} +2 -2
  254. package/dist/components/{p-D6FRqNhN.js → p-D-J7GgjY.js} +2 -2
  255. package/dist/components/{p-DSZPO06T.js → p-D9_iDlkT.js} +2 -2
  256. package/dist/components/{p-BwdnVqAY.js → p-DEYCF-oJ.js} +2 -2
  257. package/dist/components/p-DGVZhrMd.js +2 -0
  258. package/dist/components/p-DGVZhrMd.js.map +1 -0
  259. package/dist/components/{p-C8V4lkVy.js → p-DKGW3gRa.js} +2 -2
  260. package/dist/components/p-DPFg5d4_.js +2 -0
  261. package/dist/components/p-DPFg5d4_.js.map +1 -0
  262. package/dist/components/{p-C4huuwed.js → p-DR_8IPn9.js} +2 -2
  263. package/dist/components/p-DXL5D30P.js +2 -0
  264. package/dist/components/p-DXL5D30P.js.map +1 -0
  265. package/dist/components/{p-B0BQCVkq.js → p-D_iZPukF.js} +2 -2
  266. package/dist/components/{p-JBki_jyY.js → p-DfMTDFcE.js} +2 -2
  267. package/dist/components/{p-MOJmB6vX.js → p-Dg6hnCc2.js} +2 -2
  268. package/dist/components/{p-DXk1eml1.js → p-DjbT9kKm.js} +2 -2
  269. package/dist/components/p-Dka0lUI_.js +2 -0
  270. package/dist/components/p-Dka0lUI_.js.map +1 -0
  271. package/dist/components/p-DlsjHRU3.js +2 -0
  272. package/dist/components/p-DlsjHRU3.js.map +1 -0
  273. package/dist/components/{p-_IqSPt5V.js → p-Dr5rkAhe.js} +2 -2
  274. package/dist/components/p-DuCCuJKI.js +2 -0
  275. package/dist/components/p-DuCCuJKI.js.map +1 -0
  276. package/dist/components/{p-DIQiHX0q.js → p-DvGrsLgt.js} +2 -2
  277. package/dist/components/{p-Doa2blZT.js → p-PtxCwf5S.js} +2 -2
  278. package/dist/components/p-PzYJqN8B.js +2 -0
  279. package/dist/components/p-PzYJqN8B.js.map +1 -0
  280. package/dist/components/p-S1Ct3FJV.js +2 -0
  281. package/dist/components/p-S1Ct3FJV.js.map +1 -0
  282. package/dist/components/p-YC7UM4jH.js +2 -0
  283. package/dist/components/p-YC7UM4jH.js.map +1 -0
  284. package/dist/components/{p-B9TM6FqC.js → p-d76Ry5nh.js} +2 -2
  285. package/dist/components/p-ioGH5SoA.js +2 -0
  286. package/dist/components/p-ioGH5SoA.js.map +1 -0
  287. package/dist/components/p-jp7hwRtC.js +2 -0
  288. package/dist/components/p-jp7hwRtC.js.map +1 -0
  289. package/dist/components/{p-BFHpU-uU.js → p-kwS-vkau.js} +2 -2
  290. package/dist/components/{p-DjkUFlDW.js → p-pPtjNRqC.js} +3 -2
  291. package/dist/components/p-pPtjNRqC.js.map +1 -0
  292. package/dist/components/{p-B39iJO8F.js → p-rmPIcWED.js} +2 -2
  293. package/dist/components/p-t2Ebn8si.js +2 -0
  294. package/dist/components/p-t2Ebn8si.js.map +1 -0
  295. package/dist/components/p-wRhYxngW.js +2 -0
  296. package/dist/components/p-wRhYxngW.js.map +1 -0
  297. package/dist/docs/components.json +477 -82
  298. package/dist/lib/components/Icon/icon-cache.d.ts +6 -0
  299. package/dist/lib/utils/clock-time.d.ts +1 -0
  300. package/dist/lib/utils/date-filter-value.d.ts +2 -0
  301. package/dist/lib/utils/form-association.d.ts +2 -1
  302. package/dist/lib/utils/format-percentage.d.ts +1 -1
  303. package/dist/lib/utils/index.js +113 -93
  304. package/dist/lib/utils/index.js.map +4 -4
  305. package/dist/lib/utils/intl-formatters.d.ts +3 -0
  306. package/dist/lib/utils/resolve-css-length-px.d.ts +4 -3
  307. package/dist/lint/THIRD-PARTY-NOTICES +97 -40
  308. package/dist/lint/bundled-dependencies.json +162 -0
  309. package/dist/lint/index.js +1341 -1333
  310. package/dist/mcp/THIRD-PARTY-NOTICES +470 -0
  311. package/dist/mcp/bundled-dependencies.json +29 -0
  312. package/dist/mcp-data/registry/agent-tool-call.json +1 -1
  313. package/dist/mcp-data/registry/banner.json +1 -1
  314. package/dist/mcp-data/registry/bar-nav.json +1 -1
  315. package/dist/mcp-data/registry/bar-page-title.json +1 -1
  316. package/dist/mcp-data/registry/breadcrumb.json +1 -1
  317. package/dist/mcp-data/registry/calendar.json +4 -4
  318. package/dist/mcp-data/registry/card-overview.json +1 -1
  319. package/dist/mcp-data/registry/chart.json +3 -3
  320. package/dist/mcp-data/registry/checkbox.json +17 -1
  321. package/dist/mcp-data/registry/conversation-list.json +1 -1
  322. package/dist/mcp-data/registry/data-group.json +1 -1
  323. package/dist/mcp-data/registry/data-preferences.json +1 -1
  324. package/dist/mcp-data/registry/filter-menu.json +1 -1
  325. package/dist/mcp-data/registry/icon.json +6 -5
  326. package/dist/mcp-data/registry/input-date.json +1 -1
  327. package/dist/mcp-data/registry/input-time.json +1 -1
  328. package/dist/mcp-data/registry/markdown.json +1 -1
  329. package/dist/mcp-data/registry/menu.json +1 -1
  330. package/dist/mcp-data/registry/message.json +4 -4
  331. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
  332. package/dist/mcp-data/registry/modal.json +1 -1
  333. package/dist/mcp-data/registry/panel-nav.json +1 -1
  334. package/dist/mcp-data/registry/radio-tile.json +1 -1
  335. package/dist/mcp-data/registry/radio.json +1 -1
  336. package/dist/mcp-data/registry/registry.json +63 -7
  337. package/dist/mcp-data/registry/scroll-overlay.json +1 -1
  338. package/dist/mcp-data/registry/select.json +70 -3
  339. package/dist/mcp-data/registry/shell-app.json +1 -1
  340. package/dist/mcp-data/registry/slider.json +3 -3
  341. package/dist/mcp-data/registry/switch.json +1 -1
  342. package/dist/mcp-data/registry/table.json +140 -14
  343. package/dist/mcp-data/registry/tooltip-chart.json +1 -1
  344. package/dist/react/ds-table.d.ts +3 -1
  345. package/dist/react/ds-table.js +2 -0
  346. package/dist/styles/table.css +405 -8
  347. package/dist/types/components/AgentToolCall/AgentToolCall.d.ts +3 -0
  348. package/dist/types/components/Banner/Banner.d.ts +1 -0
  349. package/dist/types/components/BarNav/BarNav.d.ts +4 -0
  350. package/dist/types/components/BarPageTitle/BarPageTitle.d.ts +4 -0
  351. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts +5 -0
  352. package/dist/types/components/Calendar/Calendar.d.ts +2 -0
  353. package/dist/types/components/CardOverview/CardOverview.d.ts +3 -0
  354. package/dist/types/components/Chart/Chart.d.ts +7 -1
  355. package/dist/types/components/Checkbox/Checkbox.d.ts +3 -0
  356. package/dist/types/components/ConversationList/ConversationList.d.ts +3 -0
  357. package/dist/types/components/DataGroup/DataGroup.d.ts +3 -0
  358. package/dist/types/components/DataPreferences/DataPreferences.d.ts +1 -0
  359. package/dist/types/components/FilterMenu/FilterMenu.d.ts +1 -0
  360. package/dist/types/components/Icon/icon-cache.d.ts +6 -0
  361. package/dist/types/components/Icon/icon-svg.d.ts +10 -24
  362. package/dist/types/components/Markdown/Markdown.d.ts +4 -0
  363. package/dist/types/components/Menu/Menu.d.ts +3 -0
  364. package/dist/types/components/Message/Message.d.ts +1 -1
  365. package/dist/types/components/MobileSectionSwitcher/MobileSectionSwitcher.d.ts +5 -0
  366. package/dist/types/components/Modal/Modal.d.ts +3 -0
  367. package/dist/types/components/PanelNav/PanelNav.d.ts +8 -1
  368. package/dist/types/components/Radio/Radio.d.ts +1 -0
  369. package/dist/types/components/ScrollOverlay/ScrollOverlay.d.ts +1 -0
  370. package/dist/types/components/Select/Select.d.ts +8 -0
  371. package/dist/types/components/ShellApp/ShellApp.d.ts +3 -0
  372. package/dist/types/components/Slider/Slider.d.ts +1 -1
  373. package/dist/types/components/Switch/Switch.d.ts +2 -0
  374. package/dist/types/components/Table/Table.d.ts +35 -0
  375. package/dist/types/components/Table/index.d.ts +1 -1
  376. package/dist/types/components/Table/table-body-renderer.d.ts +1 -0
  377. package/dist/types/components/Table/table-cell-editor.d.ts +4 -0
  378. package/dist/types/components/Table/table-grid-model.d.ts +23 -0
  379. package/dist/types/components/Table/table-layout-controller.d.ts +1 -0
  380. package/dist/types/components/Table/table-model.d.ts +1 -1
  381. package/dist/types/components/Table/table-review-fixtures.d.ts +10 -0
  382. package/dist/types/components/Table/table-row-view.d.ts +11 -2
  383. package/dist/types/components/Table/table-skeleton-view.d.ts +3 -1
  384. package/dist/types/components/Table/table-structure.d.ts +38 -0
  385. package/dist/types/components/Table/table-types.d.ts +71 -1
  386. package/dist/types/components/Table/table-virtual-controller.d.ts +1 -0
  387. package/dist/types/components/TooltipChart/TooltipChart.d.ts +4 -0
  388. package/dist/types/components.d.ts +98 -12
  389. package/dist/types/shell/chrome-transition.d.ts +1 -0
  390. package/dist/types/utils/anchored-position-controller.d.ts +2 -0
  391. package/dist/types/utils/clock-time.d.ts +1 -0
  392. package/dist/types/utils/connection-tasks.d.ts +13 -0
  393. package/dist/types/utils/date-filter-value.d.ts +2 -0
  394. package/dist/types/utils/form-association.d.ts +2 -1
  395. package/dist/types/utils/format-percentage.d.ts +1 -1
  396. package/dist/types/utils/intl-formatters.d.ts +4 -0
  397. package/dist/types/utils/resolve-css-length-px.d.ts +4 -3
  398. package/dist/types/utils/select-controller.d.ts +1 -0
  399. package/dist/vue/THIRD-PARTY-NOTICES +14 -0
  400. package/dist/vue/bundled-dependencies.json +13 -0
  401. package/dist/vue/ds-checkbox.js +1 -0
  402. package/dist/vue/ds-select.js +4 -0
  403. package/dist/vue/ds-table.js +8 -0
  404. package/package.json +16 -11
  405. package/dist/components/p-B8ZonS3S.js +0 -2
  406. package/dist/components/p-B8ZonS3S.js.map +0 -1
  407. package/dist/components/p-BDdlJZyL.js +0 -2
  408. package/dist/components/p-BDdlJZyL.js.map +0 -1
  409. package/dist/components/p-BERXvOCf.js +0 -2
  410. package/dist/components/p-BERXvOCf.js.map +0 -1
  411. package/dist/components/p-BQspV5U7.js +0 -2
  412. package/dist/components/p-BQspV5U7.js.map +0 -1
  413. package/dist/components/p-BhjqYTiY.js +0 -2
  414. package/dist/components/p-BhjqYTiY.js.map +0 -1
  415. package/dist/components/p-BjtXYFhw.js +0 -2
  416. package/dist/components/p-BjtXYFhw.js.map +0 -1
  417. package/dist/components/p-Bk3poU91.js.map +0 -1
  418. package/dist/components/p-BxduVc5g.js +0 -2
  419. package/dist/components/p-BxduVc5g.js.map +0 -1
  420. package/dist/components/p-C0qN3PSb.js +0 -2
  421. package/dist/components/p-C0qN3PSb.js.map +0 -1
  422. package/dist/components/p-CPamUzaj.js +0 -2
  423. package/dist/components/p-CPamUzaj.js.map +0 -1
  424. package/dist/components/p-CUDocY23.js +0 -2
  425. package/dist/components/p-CUDocY23.js.map +0 -1
  426. package/dist/components/p-CX6ZxUQT.js +0 -2
  427. package/dist/components/p-CX6ZxUQT.js.map +0 -1
  428. package/dist/components/p-Cgn-BORA.js +0 -2
  429. package/dist/components/p-Cgn-BORA.js.map +0 -1
  430. package/dist/components/p-Ck1hgD6g.js +0 -2
  431. package/dist/components/p-Ck1hgD6g.js.map +0 -1
  432. package/dist/components/p-Co1rUdOR.js.map +0 -1
  433. package/dist/components/p-CochmPyg.js +0 -2
  434. package/dist/components/p-CochmPyg.js.map +0 -1
  435. package/dist/components/p-DCyJ3_PL.js +0 -2
  436. package/dist/components/p-DCyJ3_PL.js.map +0 -1
  437. package/dist/components/p-DVEx-Xg9.js +0 -2
  438. package/dist/components/p-DVEx-Xg9.js.map +0 -1
  439. package/dist/components/p-DYsE6HLk.js +0 -2
  440. package/dist/components/p-DYsE6HLk.js.map +0 -1
  441. package/dist/components/p-DebLYW7A.js +0 -2
  442. package/dist/components/p-DebLYW7A.js.map +0 -1
  443. package/dist/components/p-DjkUFlDW.js.map +0 -1
  444. package/dist/components/p-Dnt5xUBD.js +0 -2
  445. package/dist/components/p-Dnt5xUBD.js.map +0 -1
  446. package/dist/components/p-Dyqd-cub.js +0 -2
  447. package/dist/components/p-Dyqd-cub.js.map +0 -1
  448. package/dist/components/p-DzvTC27M.js.map +0 -1
  449. package/dist/components/p-g0jsfEXz.js +0 -2
  450. package/dist/components/p-g0jsfEXz.js.map +0 -1
  451. package/dist/components/p-pp1IQN4Z.js +0 -2
  452. package/dist/components/p-pp1IQN4Z.js.map +0 -1
  453. package/dist/components/p-rCeztgVn.js +0 -2
  454. package/dist/components/p-rCeztgVn.js.map +0 -1
  455. /package/dist/components/{p-CZNZTcYS.js.map → p-5-gQbIIz.js.map} +0 -0
  456. /package/dist/components/{p-DRdoGSGX.js.map → p-7MwoWtTJ.js.map} +0 -0
  457. /package/dist/components/{p-DJDbskZf.js.map → p-BO5URdZF.js.map} +0 -0
  458. /package/dist/components/{p-DmSnHVW6.js.map → p-BVxK8ce0.js.map} +0 -0
  459. /package/dist/components/{p-B0EpvBDs.js.map → p-BYeG0b5N.js.map} +0 -0
  460. /package/dist/components/{p-CJ1NnOEW.js.map → p-CA3iQ1ME.js.map} +0 -0
  461. /package/dist/components/{p-DYQa1DVF.js.map → p-C_9VGgPf.js.map} +0 -0
  462. /package/dist/components/{p-7TVdPhGR.js.map → p-CgQB8Ct5.js.map} +0 -0
  463. /package/dist/components/{p-D6FRqNhN.js.map → p-D-J7GgjY.js.map} +0 -0
  464. /package/dist/components/{p-DSZPO06T.js.map → p-D9_iDlkT.js.map} +0 -0
  465. /package/dist/components/{p-BwdnVqAY.js.map → p-DEYCF-oJ.js.map} +0 -0
  466. /package/dist/components/{p-C8V4lkVy.js.map → p-DKGW3gRa.js.map} +0 -0
  467. /package/dist/components/{p-C4huuwed.js.map → p-DR_8IPn9.js.map} +0 -0
  468. /package/dist/components/{p-B0BQCVkq.js.map → p-D_iZPukF.js.map} +0 -0
  469. /package/dist/components/{p-JBki_jyY.js.map → p-DfMTDFcE.js.map} +0 -0
  470. /package/dist/components/{p-MOJmB6vX.js.map → p-Dg6hnCc2.js.map} +0 -0
  471. /package/dist/components/{p-DXk1eml1.js.map → p-DjbT9kKm.js.map} +0 -0
  472. /package/dist/components/{p-_IqSPt5V.js.map → p-Dr5rkAhe.js.map} +0 -0
  473. /package/dist/components/{p-DIQiHX0q.js.map → p-DvGrsLgt.js.map} +0 -0
  474. /package/dist/components/{p-Doa2blZT.js.map → p-PtxCwf5S.js.map} +0 -0
  475. /package/dist/components/{p-B9TM6FqC.js.map → p-d76Ry5nh.js.map} +0 -0
  476. /package/dist/components/{p-BFHpU-uU.js.map → p-kwS-vkau.js.map} +0 -0
  477. /package/dist/components/{p-B39iJO8F.js.map → p-rmPIcWED.js.map} +0 -0
@@ -45,6 +45,12 @@ export declare function iconCache(): IconCacheMap;
45
45
  * name IcoMo does not ship — an app's own marker artwork, say — register as
46
46
  * system and resolve the same way.
47
47
  *
48
+ * Custom glyphs must be static and self-contained. Shapes, local gradients,
49
+ * clipping and narrow inline paint styles are supported; scripts, embedded
50
+ * stylesheets, animation, images and external resources are rejected. Validation
51
+ * happens when rendering, including for pre-registered strings. Unsupported
52
+ * markup preserves the icon's empty fixed-size box.
53
+ *
48
54
  * There is deliberately no category override. ds-icon has no such override when
49
55
  * it reads, so forcing a different category on write could only produce an
50
56
  * entry nothing ever reads.
@@ -8,6 +8,7 @@ export declare const CLOCK_HOURS: readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1
8
8
  export declare const CLOCK_PERIODS: readonly ClockPeriod[];
9
9
  export declare function isClockTime(value: string): boolean;
10
10
  export declare function clockMinuteStep(step?: string | number): number;
11
+ /** Minute choices for a positive whole-minute stride; sub-minute strides fall back to one. */
11
12
  export declare function clockMinutes(step?: number, baseMinute?: number): number[];
12
13
  export declare function splitClockTime(value: string): ClockTimeParts | null;
13
14
  export declare function joinClockTime(parts: ClockTimeParts): string;
@@ -48,11 +48,13 @@ export type ParsedDateFilterValue = {
48
48
  } | ({
49
49
  kind: 'range';
50
50
  } & DateFilterRange);
51
+ /** Validate a timezone-free Gregorian day with a four-digit year from 0001 through 9999. */
51
52
  export declare function isIsoCalendarDate(value: string): boolean;
52
53
  /** Readable calendar date for filled ISO values such as `2026-09-10` → `Sep 10, 2026`. */
53
54
  export declare function formatIsoCalendarDateLabel(value: string): string;
54
55
  /** Parse a typed calendar date: ISO, `M/D/YYYY`, or a short-month label such as `Sep 10, 2026`. */
55
56
  export declare function parseLooseCalendarDate(value: string): string;
57
+ /** Shift whole calendar days in UTC; return an empty value for invalid input or year overflow. */
56
58
  export declare function shiftIsoCalendarDate(value: string, days: number): string;
57
59
  export declare function dateFilterRelativeValue(preset: DateFilterRelativePreset): DateFilterRelativeValue;
58
60
  export declare function dateFilterRangeValue(start: string, end?: string): DateFilterRangeValue;
@@ -9,7 +9,8 @@ export interface SetRepeatedFormControlValueOptions {
9
9
  }
10
10
  /**
11
11
  * Set one form-associated value while consistently omitting inactive controls.
12
- * Pass `state` only when restoration differs from the submitted value.
12
+ * Inactive controls retain their restoration state even when submission is
13
+ * omitted. Pass `state` when restoration differs from the control's value.
13
14
  */
14
15
  export declare function setFormControlValue(internals: ElementInternals, value: File | string | null, options?: SetFormControlValueOptions): void;
15
16
  /**
@@ -1,3 +1,3 @@
1
1
  export type PercentageDecimals = 1 | 2;
2
- /** Format a ratio as a locale-aware percentage with an exact, supported precision. */
2
+ /** Format a ratio as a percentage (English by default) with an exact, supported precision. */
3
3
  export declare function formatPercentage(ratio: number, decimals?: PercentageDecimals, locale?: string): string;
@@ -80,87 +80,103 @@ function registerIcons(icons) {
80
80
 
81
81
  // src/wc/utils/resolve-css-length-px.ts
82
82
  var lengthPxCache = /* @__PURE__ */ new Map();
83
- var probeEl = null;
84
- function getProbeElement() {
85
- if (typeof document === "undefined") return null;
86
- if (!probeEl) {
87
- probeEl = document.createElement("div");
88
- probeEl.setAttribute("aria-hidden", "true");
89
- probeEl.style.cssText = "position:absolute;visibility:hidden;pointer-events:none;top:0;left:0;width:0;height:0;overflow:hidden;";
90
- document.documentElement.appendChild(probeEl);
91
- }
92
- return probeEl;
93
- }
94
- function applyContextVariables(probe, cssLength, context) {
95
- const contextStyle = getComputedStyle(context);
96
- const pending = [...cssLength.matchAll(/var\(\s*(--[\w-]+)/g)].map((match) => match[1]);
97
- const visited = /* @__PURE__ */ new Set();
98
- const previous = [];
99
- while (pending.length > 0) {
100
- const name = pending.shift();
101
- if (!name || visited.has(name)) continue;
102
- visited.add(name);
103
- const value = contextStyle.getPropertyValue(name).trim();
104
- if (!value) continue;
105
- previous.push({
106
- name,
107
- value: probe.style.getPropertyValue(name),
108
- priority: probe.style.getPropertyPriority(name)
109
- });
110
- probe.style.setProperty(name, value);
111
- for (const match of value.matchAll(/var\(\s*(--[\w-]+)/g)) pending.push(match[1]);
112
- }
113
- return previous;
114
- }
115
- function restoreProbeVariables(probe, previous) {
116
- for (const { name, value, priority } of previous) {
117
- if (value) probe.style.setProperty(name, value, priority);
118
- else probe.style.removeProperty(name);
83
+ var probes = /* @__PURE__ */ new WeakMap();
84
+ var CACHE_LIMIT = 256;
85
+ function literalPixels(value) {
86
+ const cached = lengthPxCache.get(value);
87
+ if (cached !== void 0) return cached;
88
+ if (!/^[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?(?:px)?$/i.test(value)) return void 0;
89
+ const pixels = Number(value.replace(/px$/i, ""));
90
+ if (!Number.isFinite(pixels)) return void 0;
91
+ if (lengthPxCache.size >= CACHE_LIMIT) lengthPxCache.clear();
92
+ lengthPxCache.set(value, pixels);
93
+ return pixels;
94
+ }
95
+ function getProbeElement(ownerDocument) {
96
+ let probe = probes.get(ownerDocument);
97
+ if (!probe) {
98
+ probe = ownerDocument.createElement("div");
99
+ probe.setAttribute("aria-hidden", "true");
100
+ probe.style.cssText = "all:initial;position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;width:0;height:0;margin:0;padding:0;border:0;overflow:hidden;";
101
+ probes.set(ownerDocument, probe);
119
102
  }
103
+ if (!probe.isConnected) ownerDocument.documentElement.appendChild(probe);
104
+ return probe;
120
105
  }
121
106
  function clearCssLengthPxCache() {
122
107
  lengthPxCache.clear();
123
108
  }
124
109
  function resolveCssLengthPx(value, fallback, context) {
125
110
  const resolved = value === void 0 || value === null || value === "" ? fallback : value;
126
- if (typeof resolved === "number") return resolved;
111
+ if (typeof resolved === "number") return Number.isFinite(resolved) ? resolved : 0;
127
112
  const trimmed = resolved.trim();
128
113
  if (!trimmed) return resolveCssLengthPx(fallback, 0, context);
129
- const scopedProperty = context ? trimmed.match(/^var\(\s*(--[\w-]+)/)?.[1] : void 0;
130
- if (context && scopedProperty) {
131
- const scopedValue = getComputedStyle(context).getPropertyValue(scopedProperty).trim();
132
- if (scopedValue && scopedValue !== trimmed) {
133
- return resolveCssLengthPx(scopedValue, fallback, context);
134
- }
135
- }
136
- const contextDependent = !!context && trimmed.includes("var(");
137
- const cached = contextDependent ? void 0 : lengthPxCache.get(trimmed);
138
- if (cached !== void 0) return cached;
139
- if (/^-?\d+(\.\d+)?$/.test(trimmed)) {
140
- const n = Number(trimmed);
141
- lengthPxCache.set(trimmed, n);
142
- return n;
114
+ const literal = literalPixels(trimmed);
115
+ if (literal !== void 0) return literal;
116
+ const fallbackPixels = typeof fallback === "number" ? fallback : literalPixels(fallback.trim());
117
+ const safeFallback = Number.isFinite(fallbackPixels) ? fallbackPixels : 0;
118
+ const ownerDocument = context?.ownerDocument ?? (typeof document === "undefined" ? null : document);
119
+ const view = ownerDocument?.defaultView;
120
+ if (!ownerDocument?.documentElement || !view) return safeFallback;
121
+ const cssLength = /^--[\w-]+$/.test(trimmed) ? `var(${trimmed})` : trimmed;
122
+ if (!view.CSS.supports("left", cssLength)) return safeFallback;
123
+ const scopeStyle = view.getComputedStyle(context ?? ownerDocument.documentElement);
124
+ const directProperty = cssLength.match(/^var\(\s*(--[\w-]+)\s*\)$/)?.[1];
125
+ if (directProperty) {
126
+ const scopedValue = scopeStyle.getPropertyValue(directProperty).trim();
127
+ if (!scopedValue) return safeFallback;
128
+ const scopedPixels = literalPixels(scopedValue);
129
+ if (scopedPixels !== void 0) return scopedPixels;
143
130
  }
144
- const pxMatch = trimmed.match(/^(-?\d+(\.\d+)?)px$/);
145
- if (pxMatch) {
146
- const px2 = parseFloat(pxMatch[1]);
147
- lengthPxCache.set(trimmed, px2);
148
- return px2;
131
+ const probe = getProbeElement(ownerDocument);
132
+ const variables = new Set([...cssLength.matchAll(/var\(\s*(--[\w-]+)/g)].map((match) => match[1]));
133
+ for (const name of variables) {
134
+ probe.style.setProperty(name, scopeStyle.getPropertyValue(name).trim() || "initial");
149
135
  }
150
- const cssLength = /^--[\w-]+$/.test(trimmed) ? `var(${trimmed})` : trimmed;
151
- const probe = getProbeElement();
152
- if (!probe) {
153
- return typeof fallback === "number" ? fallback : 0;
136
+ probe.style.font = scopeStyle.font;
137
+ probe.style.fontSize = scopeStyle.fontSize;
138
+ probe.style.lineHeight = scopeStyle.lineHeight;
139
+ probe.style.left = "";
140
+ probe.style.left = cssLength;
141
+ try {
142
+ if (!probe.style.left) return safeFallback;
143
+ const pixels = parseFloat(view.getComputedStyle(probe).left);
144
+ return Number.isFinite(pixels) ? pixels : safeFallback;
145
+ } finally {
146
+ probe.style.left = "0px";
147
+ for (const name of variables) probe.style.removeProperty(name);
154
148
  }
155
- const previousVariables = context ? applyContextVariables(probe, cssLength, context) : [];
156
- probe.style.width = cssLength;
157
- const px = probe.getBoundingClientRect().width;
158
- probe.style.width = "";
159
- restoreProbeVariables(probe, previousVariables);
160
- if (!contextDependent && (px !== 0 || !cssLength.includes("var("))) {
161
- lengthPxCache.set(trimmed, px);
149
+ }
150
+
151
+ // src/wc/utils/intl-formatters.ts
152
+ var DEFAULT_LOCALE = "en-US";
153
+ var CACHE_LIMIT2 = 32;
154
+ var locales = /* @__PURE__ */ new Map();
155
+ var numbers = /* @__PURE__ */ new Map();
156
+ function remember(cache, key, value) {
157
+ if (cache.size >= CACHE_LIMIT2) cache.delete(cache.keys().next().value);
158
+ cache.set(key, value);
159
+ return value;
160
+ }
161
+ function resolveFormatLocale(locale) {
162
+ if (typeof locale !== "string" || !locale.trim()) return DEFAULT_LOCALE;
163
+ const key = locale.trim();
164
+ const cached = locales.get(key);
165
+ if (cached) return cached;
166
+ let resolved = DEFAULT_LOCALE;
167
+ try {
168
+ resolved = Intl.NumberFormat.supportedLocalesOf(key)[0] ?? DEFAULT_LOCALE;
169
+ } catch {
162
170
  }
163
- return px;
171
+ return remember(locales, key, resolved);
172
+ }
173
+ function keyFor(locale, options) {
174
+ return JSON.stringify([locale, Object.entries(options).sort(([a], [b]) => a.localeCompare(b))]);
175
+ }
176
+ function numberFormatter(locale, options = {}) {
177
+ const resolved = resolveFormatLocale(locale);
178
+ const key = keyFor(resolved, options);
179
+ return numbers.get(key) ?? remember(numbers, key, new Intl.NumberFormat(resolved, options));
164
180
  }
165
181
 
166
182
  // src/wc/utils/format-compact-number.ts
@@ -171,7 +187,7 @@ var COMPACT_UNITS = [
171
187
  ];
172
188
  function formatCompactNumber(value, locale) {
173
189
  if (locale) {
174
- return new Intl.NumberFormat(locale, {
190
+ return numberFormatter(locale, {
175
191
  notation: "compact",
176
192
  compactDisplay: "short",
177
193
  maximumFractionDigits: 1
@@ -198,7 +214,7 @@ function formatCompactNumber(value, locale) {
198
214
  function formatPercentage(ratio, decimals = 1, locale) {
199
215
  const precision = decimals === 2 ? 2 : 1;
200
216
  const value = Number.isFinite(ratio) ? ratio : 0;
201
- return new Intl.NumberFormat(locale, {
217
+ return numberFormatter(locale, {
202
218
  style: "percent",
203
219
  minimumFractionDigits: precision,
204
220
  maximumFractionDigits: precision
@@ -224,9 +240,7 @@ function resolveMetricTrend(current, previous, options = {}) {
224
240
  if (!change.direction) return null;
225
241
  const rose = change.direction === "up";
226
242
  const tone = neutral ? "neutral" : rose !== inverted ? "positive" : "negative";
227
- const value = display === "percentage" ? new Intl.NumberFormat(locale, { style: "percent", maximumFractionDigits: 0 }).format(
228
- change.ratio
229
- ) : formatCompactNumber(change.absolute, locale);
243
+ const value = display === "percentage" ? numberFormatter(locale, { style: "percent", maximumFractionDigits: 0 }).format(change.ratio) : formatCompactNumber(change.absolute, locale);
230
244
  return { direction: change.direction, value, tone };
231
245
  }
232
246
 
@@ -478,20 +492,17 @@ function setRequiredValidity(internals, missing, message) {
478
492
  // src/wc/utils/form-association.ts
479
493
  function setFormControlValue(internals, value, options = {}) {
480
494
  const submission = options.inactive ? null : value;
481
- if (options.state === void 0) {
482
- internals.setFormValue(submission);
483
- return;
484
- }
485
- internals.setFormValue(submission, options.state);
495
+ internals.setFormValue(submission, options.state === void 0 ? value : options.state);
486
496
  }
487
497
  function setRepeatedFormControlValue(internals, name, values, options = {}) {
498
+ const state = options.state === void 0 ? JSON.stringify(values) : options.state;
488
499
  if (options.inactive || !name || values.length === 0) {
489
- internals.setFormValue(null);
500
+ internals.setFormValue(null, state);
490
501
  return;
491
502
  }
492
503
  const data = new FormData();
493
504
  values.forEach((value) => data.append(name, String(value)));
494
- internals.setFormValue(data, options.state ?? JSON.stringify(values));
505
+ internals.setFormValue(data, state);
495
506
  }
496
507
  function restoreStringFormState(state, fallback = "") {
497
508
  return typeof state === "string" ? state : fallback;
@@ -510,7 +521,9 @@ function restoreNumberArrayFormState(state, maximumValues) {
510
521
  try {
511
522
  const restored = JSON.parse(state);
512
523
  if (!Array.isArray(restored)) return [];
513
- const values = restored.map((value) => typeof value === "number" ? value : Number(value)).filter((value) => Number.isFinite(value));
524
+ const values = restored.filter(
525
+ (value) => typeof value === "number" || typeof value === "string" && value.trim().length > 0
526
+ ).map(Number).filter((value) => Number.isFinite(value));
514
527
  return maximumValues === void 0 ? values : values.slice(0, maximumValues);
515
528
  } catch {
516
529
  return [];
@@ -520,7 +533,7 @@ function restoreNumberArrayFormState(state, maximumValues) {
520
533
  // src/wc/utils/safe-url.ts
521
534
  var DEFAULT_PROTOCOLS = ["http:", "https:"];
522
535
  function resolveSafeUrl(value, options = {}) {
523
- const candidate = value?.trim();
536
+ const candidate = typeof value === "string" ? value.trim() : "";
524
537
  if (!candidate) return void 0;
525
538
  const baseUrl = options.baseUrl ?? (typeof document === "undefined" ? void 0 : document.baseURI);
526
539
  try {
@@ -1126,7 +1139,7 @@ var CLOCK_HOURS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
1126
1139
  var CLOCK_PERIODS = ["AM", "PM"];
1127
1140
  var CLOCK_TIME_PATTERN = /^\d{2}:\d{2}$/;
1128
1141
  function isClockTime(value) {
1129
- if (!CLOCK_TIME_PATTERN.test(value)) return false;
1142
+ if (typeof value !== "string" || !CLOCK_TIME_PATTERN.test(value)) return false;
1130
1143
  const [hour, minute] = value.split(":").map(Number);
1131
1144
  return hour >= 0 && hour <= 23 && minute >= 0 && minute <= 59;
1132
1145
  }
@@ -1137,8 +1150,8 @@ function clockMinuteStep(step = 60) {
1137
1150
  return Math.max(1, Math.round(seconds / 60));
1138
1151
  }
1139
1152
  function clockMinutes(step = 1, baseMinute = 0) {
1140
- const stride = Number.isFinite(step) && step > 0 ? Math.floor(step) : 1;
1141
- const normalizedBase = (Math.floor(baseMinute) % 60 + 60) % 60;
1153
+ const stride = Number.isFinite(step) ? Math.max(1, Math.floor(step)) : 1;
1154
+ const normalizedBase = Number.isFinite(baseMinute) ? (Math.floor(baseMinute) % 60 + 60) % 60 : 0;
1142
1155
  const values = /* @__PURE__ */ new Set();
1143
1156
  for (let offset = 0; offset < 1440; offset += stride) {
1144
1157
  values.add((normalizedBase + offset) % 60);
@@ -1153,6 +1166,8 @@ function splitClockTime(value) {
1153
1166
  return { hour12, minute, period };
1154
1167
  }
1155
1168
  function joinClockTime(parts) {
1169
+ if (!parts || !Number.isInteger(parts.hour12) || parts.hour12 < 1 || parts.hour12 > 12 || !Number.isInteger(parts.minute) || parts.minute < 0 || parts.minute > 59 || parts.period !== "AM" && parts.period !== "PM")
1170
+ return "";
1156
1171
  const hour24 = parts.period === "AM" ? parts.hour12 === 12 ? 0 : parts.hour12 : parts.hour12 === 12 ? 12 : parts.hour12 + 12;
1157
1172
  return `${String(hour24).padStart(2, "0")}:${String(parts.minute).padStart(2, "0")}`;
1158
1173
  }
@@ -1162,6 +1177,7 @@ function formatClockTimeLabel(value) {
1162
1177
  return `${parts.hour12}:${String(parts.minute).padStart(2, "0")} ${parts.period}`;
1163
1178
  }
1164
1179
  function parseLooseClockTime(value) {
1180
+ if (typeof value !== "string") return "";
1165
1181
  const trimmed = value.trim();
1166
1182
  if (!trimmed) return "";
1167
1183
  if (isClockTime(trimmed)) return trimmed;
@@ -1218,14 +1234,15 @@ var ISO_CALENDAR_DATE_LABEL = new Intl.DateTimeFormat("en-US", {
1218
1234
  timeZone: "UTC"
1219
1235
  });
1220
1236
  function isIsoCalendarDate(value) {
1221
- if (!ISO_DATE_PATTERN.test(value)) return false;
1237
+ if (typeof value !== "string" || !ISO_DATE_PATTERN.test(value)) return false;
1222
1238
  const [year, month, day] = value.split("-").map(Number);
1223
- const date = new Date(Date.UTC(year, month - 1, day));
1239
+ if (year < 1) return false;
1240
+ const date = /* @__PURE__ */ new Date(`${value}T00:00:00Z`);
1224
1241
  return date.getUTCFullYear() === year && date.getUTCMonth() === month - 1 && date.getUTCDate() === day;
1225
1242
  }
1226
1243
  function formatIsoCalendarDateLabel(value) {
1227
1244
  if (!isIsoCalendarDate(value)) return "";
1228
- return ISO_CALENDAR_DATE_LABEL.format(/* @__PURE__ */ new Date(`${value}T00:00:00Z`));
1245
+ return ISO_CALENDAR_DATE_LABEL.formatToParts(/* @__PURE__ */ new Date(`${value}T00:00:00Z`)).map((part) => part.type === "year" ? part.value.padStart(4, "0") : part.value).join("");
1229
1246
  }
1230
1247
  var MONTH_LABELS = [
1231
1248
  "jan",
@@ -1242,6 +1259,7 @@ var MONTH_LABELS = [
1242
1259
  "dec"
1243
1260
  ];
1244
1261
  function parseLooseCalendarDate(value) {
1262
+ if (typeof value !== "string") return "";
1245
1263
  const trimmed = value.trim();
1246
1264
  if (!trimmed) return "";
1247
1265
  if (isIsoCalendarDate(trimmed)) return trimmed;
@@ -1258,10 +1276,11 @@ function parseLooseCalendarDate(value) {
1258
1276
  return isIsoCalendarDate(iso) ? iso : "";
1259
1277
  }
1260
1278
  function shiftIsoCalendarDate(value, days) {
1261
- if (!isIsoCalendarDate(value)) return "";
1262
- const [year, month, day] = value.split("-").map(Number);
1263
- const date = new Date(Date.UTC(year, month - 1, day + days));
1264
- return date.toISOString().slice(0, 10);
1279
+ if (!isIsoCalendarDate(value) || !Number.isSafeInteger(days)) return "";
1280
+ const date = /* @__PURE__ */ new Date(`${value}T00:00:00Z`);
1281
+ date.setUTCDate(date.getUTCDate() + days);
1282
+ const year = date.getUTCFullYear();
1283
+ return year >= 1 && year <= 9999 ? date.toISOString().slice(0, 10) : "";
1265
1284
  }
1266
1285
  function dateFilterRelativeValue(preset) {
1267
1286
  return `relative:${preset}`;
@@ -1296,7 +1315,8 @@ function resolveDateFilterRange(value, referenceDate) {
1296
1315
  const preset = DATE_FILTER_RELATIVE_PRESETS.find((candidate) => candidate.value === parsed.preset);
1297
1316
  if (!preset) return null;
1298
1317
  const end = shiftIsoCalendarDate(referenceDate, preset.offset);
1299
- return { start: shiftIsoCalendarDate(end, -(preset.days - 1)), end };
1318
+ const start = shiftIsoCalendarDate(end, -(preset.days - 1));
1319
+ return start && end ? { start, end } : null;
1300
1320
  }
1301
1321
  export {
1302
1322
  CLOCK_HOURS,