@prolibu-suite/cobalt-core 0.9.6 → 0.10.1

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 (635) hide show
  1. package/custom-elements.json +1125 -89
  2. package/dist/cjs/co-accordion.cjs.entry.js +5 -5
  3. package/dist/cjs/co-action-bar.cjs.entry.js +2 -2
  4. package/dist/cjs/co-app-shell.cjs.entry.js +4 -4
  5. package/dist/cjs/co-audio-player.cjs.entry.js +83 -13
  6. package/dist/cjs/co-autocomplete.cjs.entry.js +2 -2
  7. package/dist/cjs/co-avatar-group.cjs.entry.js +1 -1
  8. package/dist/cjs/co-avatar.cjs.entry.js +72 -0
  9. package/dist/cjs/co-badge.cjs.entry.js +11 -3
  10. package/dist/cjs/co-bottom-sheet.cjs.entry.js +1 -1
  11. package/dist/cjs/co-breadcrumb-item.cjs.entry.js +1 -1
  12. package/dist/cjs/co-breadcrumb.cjs.entry.js +1 -1
  13. package/dist/cjs/co-button-group.cjs.entry.js +1 -1
  14. package/dist/cjs/co-button.cjs.entry.js +2 -2
  15. package/dist/cjs/co-calendar-month_2.cjs.entry.js +55 -20
  16. package/dist/cjs/co-calendar_3.cjs.entry.js +27 -15
  17. package/dist/cjs/co-card.cjs.entry.js +1 -1
  18. package/dist/cjs/co-carousel-item.cjs.entry.js +1 -1
  19. package/dist/cjs/co-carousel.cjs.entry.js +2 -2
  20. package/dist/cjs/co-checkbox-group.cjs.entry.js +2 -2
  21. package/dist/cjs/co-checkbox.cjs.entry.js +6 -6
  22. package/dist/cjs/co-chip_2.cjs.entry.js +68 -13
  23. package/dist/cjs/co-color-picker.cjs.entry.js +1078 -27
  24. package/dist/cjs/co-column-picker.cjs.entry.js +3 -3
  25. package/dist/cjs/co-combobox.cjs.entry.js +2 -2
  26. package/dist/cjs/co-command-search.cjs.entry.js +1 -1
  27. package/dist/cjs/co-data-table-pagination.cjs.entry.js +5 -5
  28. package/dist/cjs/co-data-table.cjs.entry.js +83 -5
  29. package/dist/cjs/co-date-picker.cjs.entry.js +3 -3
  30. package/dist/cjs/co-date-range-picker.cjs.entry.js +3 -3
  31. package/dist/cjs/co-date-range.cjs.entry.js +2 -2
  32. package/dist/cjs/co-date-time-picker.cjs.entry.js +101 -130
  33. package/dist/cjs/co-drive-card.cjs.entry.js +2 -2
  34. package/dist/cjs/co-drop-zone.cjs.entry.js +2 -2
  35. package/dist/cjs/co-emoji-picker.cjs.entry.js +4 -4
  36. package/dist/cjs/co-empty-state.cjs.entry.js +4 -4
  37. package/dist/cjs/co-event-calendar.cjs.entry.js +4 -4
  38. package/dist/cjs/co-event-popover.cjs.entry.js +3 -3
  39. package/dist/cjs/co-fab.cjs.entry.js +3 -3
  40. package/dist/cjs/co-file-field.cjs.entry.js +102 -106
  41. package/dist/cjs/co-file-type-tile.cjs.entry.js +3 -3
  42. package/dist/cjs/co-helper-text.cjs.entry.js +3 -3
  43. package/dist/cjs/co-icon-button.cjs.entry.js +6 -6
  44. package/dist/cjs/co-icon.cjs.entry.js +3 -3
  45. package/dist/cjs/co-input.cjs.entry.js +32 -6
  46. package/dist/cjs/co-json-field.cjs.entry.js +5 -5
  47. package/dist/cjs/co-lightbox.cjs.entry.js +204 -21
  48. package/dist/cjs/co-list-footer.cjs.entry.js +2 -2
  49. package/dist/cjs/co-list-item.cjs.entry.js +5 -5
  50. package/dist/cjs/co-loader.cjs.entry.js +1 -1
  51. package/dist/cjs/co-media-thumb.cjs.entry.js +3 -3
  52. package/dist/cjs/co-menu-divider.cjs.entry.js +2 -2
  53. package/dist/cjs/co-menu-item.cjs.entry.js +85 -4
  54. package/dist/cjs/co-menu.cjs.entry.js +2 -2
  55. package/dist/cjs/co-modal.cjs.entry.js +10 -4
  56. package/dist/cjs/co-navbar.cjs.entry.js +4 -4
  57. package/dist/cjs/co-number-field.cjs.entry.js +272 -9
  58. package/dist/cjs/co-overlay.cjs.entry.js +6 -4
  59. package/dist/cjs/co-page-header.cjs.entry.js +2 -2
  60. package/dist/cjs/co-phone-field.cjs.entry.js +3 -3
  61. package/dist/cjs/co-popover.cjs.entry.js +58 -21
  62. package/dist/cjs/co-progress-bar.cjs.entry.js +3 -3
  63. package/dist/cjs/co-progress-circle.cjs.entry.js +3 -3
  64. package/dist/cjs/co-provider-logo_2.cjs.entry.js +47 -3
  65. package/dist/cjs/co-radio-group.cjs.entry.js +1 -1
  66. package/dist/cjs/co-radio.cjs.entry.js +4 -4
  67. package/dist/cjs/co-rating.cjs.entry.js +4 -4
  68. package/dist/cjs/co-ref-field.cjs.entry.js +104 -13
  69. package/dist/cjs/co-rich-text-editor.cjs.entry.js +11 -8
  70. package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +7 -3
  71. package/dist/cjs/co-rich-text-viewer.cjs.entry.js +4 -3
  72. package/dist/cjs/co-row.cjs.entry.js +3 -3
  73. package/dist/cjs/co-segmented-bar.cjs.entry.js +1 -1
  74. package/dist/cjs/co-select.cjs.entry.js +6 -6
  75. package/dist/cjs/co-separator.cjs.entry.js +2 -2
  76. package/dist/cjs/co-sidebar-nav.cjs.entry.js +2 -2
  77. package/dist/cjs/co-sidebar.cjs.entry.js +3 -3
  78. package/dist/cjs/co-slider.cjs.entry.js +3 -3
  79. package/dist/cjs/co-switch.cjs.entry.js +6 -6
  80. package/dist/cjs/co-tab-group.cjs.entry.js +3 -3
  81. package/dist/cjs/co-tab.cjs.entry.js +3 -3
  82. package/dist/cjs/co-tags-field.cjs.entry.js +8 -8
  83. package/dist/cjs/co-textarea.cjs.entry.js +6 -6
  84. package/dist/cjs/co-time-field.cjs.entry.js +325 -0
  85. package/dist/cjs/co-toast.cjs.entry.js +2 -2
  86. package/dist/cjs/co-toggle-button-group.cjs.entry.js +4 -4
  87. package/dist/cjs/co-toggle-button.cjs.entry.js +4 -4
  88. package/dist/cjs/{co-avatar_2.cjs.entry.js → co-tooltip.cjs.entry.js} +48 -84
  89. package/dist/cjs/co-transfer-list.cjs.entry.js +1 -1
  90. package/dist/cjs/co-video.cjs.entry.js +32 -7
  91. package/dist/cjs/cobalt.cjs.js +2 -2
  92. package/dist/cjs/color-CML2Cfdh.js +142 -0
  93. package/dist/cjs/{dateI18n-wblvKRq_.js → dateI18n-BK2qHqoC.js} +36 -0
  94. package/dist/cjs/{fieldChip-BLzo9MEV.js → fieldChip-B6YIGU1V.js} +1 -1
  95. package/dist/cjs/fileI18n-6sdbKvo6.js +88 -0
  96. package/dist/cjs/{index-DFZ5YhIT.js → index-BYwrR87Z.js} +28 -10
  97. package/dist/cjs/{index-DK-2Lzmf.js → index-MDAnKsze.js} +35 -27
  98. package/dist/cjs/loader.cjs.js +2 -2
  99. package/dist/cjs/{positioning-DCj_AJ2T.js → positioning-CyatXeT_.js} +32 -13
  100. package/dist/cjs/{requiredMark-C1xcrzSZ.js → requiredMark-D-t-IPN0.js} +1 -1
  101. package/dist/cjs/{toolbar-config-BQfWTW6P.js → toolbar-config-BSGas-Wl.js} +10 -0
  102. package/dist/cobalt/cobalt.css +1 -1
  103. package/dist/cobalt/cobalt.esm.js +1 -1
  104. package/dist/cobalt/{p-bfc2a849.entry.js → p-000a15b8.entry.js} +1 -1
  105. package/dist/cobalt/{p-f83b48fd.entry.js → p-011dc80b.entry.js} +1 -1
  106. package/dist/cobalt/{p-316c62c0.entry.js → p-0678c797.entry.js} +1 -1
  107. package/dist/cobalt/{p-43bd298d.entry.js → p-08e42e00.entry.js} +1 -1
  108. package/dist/cobalt/{p-0e91e5c4.entry.js → p-148d4aa6.entry.js} +1 -1
  109. package/dist/cobalt/{p-07d570a6.entry.js → p-16954cea.entry.js} +1 -1
  110. package/dist/cobalt/{p-d40a465f.entry.js → p-16f8cee6.entry.js} +1 -1
  111. package/dist/cobalt/{p-85a61e28.entry.js → p-17244412.entry.js} +1 -1
  112. package/dist/cobalt/{p-da546d08.entry.js → p-1dc55e43.entry.js} +1 -1
  113. package/dist/cobalt/p-239c5c5f.entry.js +1 -0
  114. package/dist/cobalt/{p-4c7e3984.entry.js → p-23ab0cc5.entry.js} +1 -1
  115. package/dist/cobalt/{p-fabe5fb2.entry.js → p-2636b7eb.entry.js} +1 -1
  116. package/dist/cobalt/{p-88a0659f.entry.js → p-27a7e549.entry.js} +1 -1
  117. package/dist/cobalt/{p-dca4cd5f.entry.js → p-28764b8e.entry.js} +1 -1
  118. package/dist/cobalt/{p-18d34b01.entry.js → p-290066ef.entry.js} +1 -1
  119. package/dist/cobalt/p-2a30c143.entry.js +1 -0
  120. package/dist/cobalt/p-2f0f3bb1.entry.js +1 -0
  121. package/dist/cobalt/{p-89e38c5e.entry.js → p-2f9cbbd5.entry.js} +1 -1
  122. package/dist/cobalt/p-2fba312b.entry.js +1 -0
  123. package/dist/cobalt/p-354d5089.entry.js +1 -0
  124. package/dist/cobalt/{p-60cb66f5.entry.js → p-37f5036b.entry.js} +1 -1
  125. package/dist/cobalt/{p-ac91259e.entry.js → p-383a998e.entry.js} +1 -1
  126. package/dist/cobalt/{p-ef5e1167.entry.js → p-3c4f7026.entry.js} +1 -1
  127. package/dist/cobalt/p-410bee4d.entry.js +1 -0
  128. package/dist/cobalt/p-416795f5.entry.js +1 -0
  129. package/dist/cobalt/{p-6795a258.entry.js → p-44c4e4a3.entry.js} +1 -1
  130. package/dist/cobalt/{p-4b083da4.entry.js → p-44ea675f.entry.js} +1 -1
  131. package/dist/cobalt/{p-2828ecf6.entry.js → p-4592ca00.entry.js} +1 -1
  132. package/dist/cobalt/{p-342e1da4.entry.js → p-4d65e713.entry.js} +1 -1
  133. package/dist/cobalt/p-56551580.entry.js +1 -0
  134. package/dist/cobalt/p-58137c9e.entry.js +1 -0
  135. package/dist/cobalt/{p-4f754c9a.entry.js → p-58d9b650.entry.js} +1 -1
  136. package/dist/cobalt/p-59963937.entry.js +1 -0
  137. package/dist/cobalt/p-5a3e4c81.entry.js +1 -0
  138. package/dist/cobalt/p-5adf117c.entry.js +1 -0
  139. package/dist/cobalt/{p-23b3ff3f.entry.js → p-5ca394b1.entry.js} +1 -1
  140. package/dist/cobalt/p-5e4973a6.entry.js +1 -0
  141. package/dist/cobalt/{p-2d329ac8.entry.js → p-623cc195.entry.js} +1 -1
  142. package/dist/cobalt/{p-8e667eb6.entry.js → p-66b11b38.entry.js} +1 -1
  143. package/dist/cobalt/{p-7e53e9c8.entry.js → p-6c82a892.entry.js} +1 -1
  144. package/dist/cobalt/{p-a6357340.entry.js → p-76249983.entry.js} +1 -1
  145. package/dist/cobalt/{p-568cfe8d.entry.js → p-789c4b3e.entry.js} +1 -1
  146. package/dist/cobalt/p-7e8e6907.entry.js +1 -0
  147. package/dist/cobalt/{p-a9b29cc2.entry.js → p-826ee074.entry.js} +1 -1
  148. package/dist/cobalt/{p-1c68bc41.entry.js → p-8471abe2.entry.js} +1 -1
  149. package/dist/cobalt/p-8f2199ff.entry.js +1 -0
  150. package/dist/cobalt/{p-c8dba82f.entry.js → p-91e73a92.entry.js} +1 -1
  151. package/dist/cobalt/p-9246e09c.entry.js +1 -0
  152. package/dist/cobalt/{p-c1e7fb32.entry.js → p-93fe45fd.entry.js} +1 -1
  153. package/dist/cobalt/{p-8f38e24d.entry.js → p-95cfcb34.entry.js} +1 -1
  154. package/dist/cobalt/{p-36197363.entry.js → p-996f4e38.entry.js} +1 -1
  155. package/dist/cobalt/{p-c5684c79.entry.js → p-9cf738ed.entry.js} +1 -1
  156. package/dist/cobalt/p-BRbgGqLw.js +1 -0
  157. package/dist/cobalt/{p-BL0sCfMH.js → p-Bryf3-Js.js} +1 -1
  158. package/dist/cobalt/p-DFHRS9cJ.js +1 -0
  159. package/dist/cobalt/{p-CrtiywTB.js → p-DH5lfRNj.js} +1 -1
  160. package/dist/{components/p-WeuPA9Rw.js → cobalt/p-DOL2zACE.js} +1 -1
  161. package/dist/cobalt/p-D_zA1Pv4.js +1 -0
  162. package/dist/cobalt/p-a2462d7a.entry.js +1 -0
  163. package/dist/cobalt/p-a325ea0c.entry.js +1 -0
  164. package/dist/cobalt/{p-fef5db54.entry.js → p-a32b20eb.entry.js} +1 -1
  165. package/dist/cobalt/p-aa9400bf.entry.js +1 -0
  166. package/dist/cobalt/{p-8eb485c8.entry.js → p-aaca6dab.entry.js} +1 -1
  167. package/dist/cobalt/p-b0c4fc71.entry.js +1 -0
  168. package/dist/cobalt/p-b5bba7fe.entry.js +1 -0
  169. package/dist/cobalt/{p-fb3a095b.entry.js → p-b821d9de.entry.js} +1 -1
  170. package/dist/cobalt/{p-b0319a2d.entry.js → p-b90d41e4.entry.js} +1 -1
  171. package/dist/cobalt/{p-ac466658.entry.js → p-be34e447.entry.js} +1 -1
  172. package/dist/cobalt/{p-1ddbc48b.entry.js → p-c124e82b.entry.js} +1 -1
  173. package/dist/cobalt/{p-95efe661.entry.js → p-c2ebf0ec.entry.js} +1 -1
  174. package/dist/cobalt/{p-54ae807d.entry.js → p-c465d619.entry.js} +1 -1
  175. package/dist/cobalt/p-c7d7d7f7.entry.js +1 -0
  176. package/dist/cobalt/{p-ab45d9bd.entry.js → p-c91d4fc6.entry.js} +1 -1
  177. package/dist/cobalt/{p-e5495539.entry.js → p-d0b2c418.entry.js} +1 -1
  178. package/dist/cobalt/{p-ce35c898.entry.js → p-d29bb0fa.entry.js} +1 -1
  179. package/dist/cobalt/{p-33ea4a90.entry.js → p-d3344187.entry.js} +1 -1
  180. package/dist/cobalt/p-d375014b.entry.js +1 -0
  181. package/dist/cobalt/p-d9d9e8ae.entry.js +1 -0
  182. package/dist/cobalt/{p-7c5e846a.entry.js → p-db805569.entry.js} +1 -1
  183. package/dist/cobalt/p-e371ec7a.entry.js +1 -0
  184. package/dist/cobalt/p-e3aae282.entry.js +1 -0
  185. package/dist/cobalt/{p-d15d3a97.entry.js → p-e4264532.entry.js} +1 -1
  186. package/dist/cobalt/{p-3f0eed59.entry.js → p-e49a564c.entry.js} +1 -1
  187. package/dist/cobalt/p-e8a2f993.entry.js +1 -0
  188. package/dist/cobalt/p-eadfd661.entry.js +1 -0
  189. package/dist/cobalt/p-eb82358d.entry.js +1 -0
  190. package/dist/cobalt/{p-2114c036.entry.js → p-eb8691f2.entry.js} +1 -1
  191. package/dist/cobalt/{p-e8878cf9.entry.js → p-ee2023da.entry.js} +1 -1
  192. package/dist/cobalt/p-ee9a623d.entry.js +1 -0
  193. package/dist/cobalt/p-ef301976.entry.js +1 -0
  194. package/dist/cobalt/p-f4e1c3c3.entry.js +1 -0
  195. package/dist/cobalt/{p-e364b8a5.entry.js → p-f57dffca.entry.js} +1 -1
  196. package/dist/cobalt/p-f6691108.entry.js +1 -0
  197. package/dist/cobalt/p-fMqVDypp.js +1 -0
  198. package/dist/cobalt/p-fb2d1144.entry.js +1 -0
  199. package/dist/cobalt/{p-0c463d9a.entry.js → p-fd150cc6.entry.js} +1 -1
  200. package/dist/cobalt/p-gKnOhsd2.js +1 -0
  201. package/dist/cobalt/p-jYd9gu_c.js +1 -0
  202. package/dist/collection/collection-manifest.json +1 -0
  203. package/dist/collection/components/co-accordion/co-accordion.css +2 -2
  204. package/dist/collection/components/co-accordion/co-accordion.js +4 -4
  205. package/dist/collection/components/co-action-bar/co-action-bar.css +9 -2
  206. package/dist/collection/components/co-app-shell/co-app-shell.css +107 -41
  207. package/dist/collection/components/co-app-shell/co-app-shell.js +2 -2
  208. package/dist/collection/components/co-audio-player/co-audio-player.js +138 -12
  209. package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
  210. package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
  211. package/dist/collection/components/co-badge/co-badge.css +18 -0
  212. package/dist/collection/components/co-badge/co-badge.js +29 -1
  213. package/dist/collection/components/co-button/co-button.css +10 -7
  214. package/dist/collection/components/co-checkbox/co-checkbox.css +12 -3
  215. package/dist/collection/components/co-checkbox/co-checkbox.js +25 -6
  216. package/dist/collection/components/co-checkbox-group/co-checkbox-group.css +1 -3
  217. package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
  218. package/dist/collection/components/co-color-picker/co-color-picker.css +252 -5
  219. package/dist/collection/components/co-color-picker/co-color-picker.js +962 -15
  220. package/dist/collection/components/co-color-picker/presets.js +113 -15
  221. package/dist/collection/components/co-column-picker/co-column-picker.js +2 -2
  222. package/dist/collection/components/co-combobox/co-combobox.js +1 -1
  223. package/dist/collection/components/co-command-search/co-command-search.js +1 -1
  224. package/dist/collection/components/co-data-table/co-data-table.css +63 -2
  225. package/dist/collection/components/co-data-table/co-data-table.js +59 -4
  226. package/dist/collection/components/co-data-table/headerTruncationLogic.js +34 -0
  227. package/dist/collection/components/co-data-table-pagination/co-data-table-pagination.js +4 -4
  228. package/dist/collection/components/co-date-field/co-date-field.js +4 -4
  229. package/dist/collection/components/co-date-range/co-date-range.js +1 -1
  230. package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +2 -2
  231. package/dist/collection/components/co-date-time-picker/co-date-time-picker.css +128 -32
  232. package/dist/collection/components/co-date-time-picker/co-date-time-picker.js +142 -138
  233. package/dist/collection/components/co-drawer/co-drawer.css +99 -36
  234. package/dist/collection/components/co-drawer/co-drawer.js +19 -7
  235. package/dist/collection/components/co-drive-card/co-drive-card.js +1 -1
  236. package/dist/collection/components/co-drop-zone/co-drop-zone.js +1 -1
  237. package/dist/collection/components/co-emoji-picker/co-emoji-picker.js +2 -2
  238. package/dist/collection/components/co-empty-state/co-empty-state.css +28 -0
  239. package/dist/collection/components/co-empty-state/co-empty-state.js +2 -2
  240. package/dist/collection/components/co-event-calendar/co-event-calendar.js +2 -2
  241. package/dist/collection/components/co-event-popover/co-event-popover.js +1 -1
  242. package/dist/collection/components/co-fab/co-fab.js +2 -2
  243. package/dist/collection/components/co-file-field/co-file-field.css +55 -2
  244. package/dist/collection/components/co-file-field/co-file-field.js +41 -13
  245. package/dist/collection/components/co-file-field/co-file-field.utils.js +51 -4
  246. package/dist/collection/components/co-file-type-tile/co-file-type-tile.js +2 -2
  247. package/dist/collection/components/co-helper-text/co-helper-text.js +2 -2
  248. package/dist/collection/components/co-icon/co-icon.js +2 -2
  249. package/dist/collection/components/co-icon-button/co-icon-button.css +40 -2
  250. package/dist/collection/components/co-icon-button/co-icon-button.js +43 -4
  251. package/dist/collection/components/co-input/co-input.css +33 -0
  252. package/dist/collection/components/co-input/co-input.js +42 -7
  253. package/dist/collection/components/co-json-field/co-json-field.js +3 -3
  254. package/dist/collection/components/co-lightbox/co-lightbox.css +23 -0
  255. package/dist/collection/components/co-lightbox/co-lightbox.js +209 -20
  256. package/dist/collection/components/co-list-footer/co-list-footer.js +1 -1
  257. package/dist/collection/components/co-list-item/co-list-item.js +4 -4
  258. package/dist/collection/components/co-media-thumb/co-media-thumb.js +2 -2
  259. package/dist/collection/components/co-menu/co-menu.js +1 -1
  260. package/dist/collection/components/co-menu-divider/co-menu-divider.js +1 -1
  261. package/dist/collection/components/co-menu-item/co-menu-item.css +9 -0
  262. package/dist/collection/components/co-menu-item/co-menu-item.js +67 -3
  263. package/dist/collection/components/co-modal/co-modal.css +112 -37
  264. package/dist/collection/components/co-modal/co-modal.js +35 -2
  265. package/dist/collection/components/co-navbar/co-navbar.css +4 -2
  266. package/dist/collection/components/co-navbar/co-navbar.js +2 -2
  267. package/dist/collection/components/co-number-field/co-number-field.css +22 -0
  268. package/dist/collection/components/co-number-field/co-number-field.js +216 -9
  269. package/dist/collection/components/co-option-list/co-option-list.css +25 -4
  270. package/dist/collection/components/co-option-list/co-option-list.js +56 -4
  271. package/dist/collection/components/co-option-list/optionListLogic.js +31 -8
  272. package/dist/collection/components/co-overlay/co-overlay.js +5 -3
  273. package/dist/collection/components/co-page-header/co-page-header.js +1 -1
  274. package/dist/collection/components/co-phone-field/co-phone-field.js +1 -1
  275. package/dist/collection/components/co-popover/co-popover.css +18 -3
  276. package/dist/collection/components/co-popover/co-popover.js +83 -20
  277. package/dist/collection/components/co-progress-bar/co-progress-bar.js +2 -2
  278. package/dist/collection/components/co-progress-circle/co-progress-circle.js +2 -2
  279. package/dist/collection/components/co-radio/co-radio.js +3 -3
  280. package/dist/collection/components/co-radio-group/co-radio-group.js +1 -1
  281. package/dist/collection/components/co-rating/co-rating.js +3 -3
  282. package/dist/collection/components/co-ref-field/co-ref-field.css +40 -0
  283. package/dist/collection/components/co-ref-field/co-ref-field.js +207 -11
  284. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.css +14 -1
  285. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +9 -6
  286. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.js +7 -3
  287. package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.js +3 -2
  288. package/dist/collection/components/co-row/co-row.js +2 -2
  289. package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +1 -1
  290. package/dist/collection/components/co-select/co-select.js +24 -5
  291. package/dist/collection/components/co-separator/co-separator.js +1 -1
  292. package/dist/collection/components/co-sidebar/co-sidebar.js +2 -2
  293. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.css +2 -2
  294. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +1 -1
  295. package/dist/collection/components/co-skeleton/co-skeleton.css +18 -0
  296. package/dist/collection/components/co-skeleton/co-skeleton.js +83 -1
  297. package/dist/collection/components/co-slider/co-slider.js +2 -2
  298. package/dist/collection/components/co-switch/co-switch.css +3 -3
  299. package/dist/collection/components/co-switch/co-switch.js +3 -3
  300. package/dist/collection/components/co-tab/co-tab.js +2 -2
  301. package/dist/collection/components/co-tab-group/co-tab-group.js +2 -2
  302. package/dist/collection/components/co-tags-field/co-tags-field.js +5 -5
  303. package/dist/collection/components/co-textarea/co-textarea.js +4 -4
  304. package/dist/collection/components/co-time-field/co-time-field.css +111 -0
  305. package/dist/collection/components/co-time-field/co-time-field.js +536 -0
  306. package/dist/collection/components/co-toast/co-toast.css +13 -7
  307. package/dist/collection/components/co-toast/co-toast.js +2 -2
  308. package/dist/collection/components/co-toggle-button/co-toggle-button.css +20 -14
  309. package/dist/collection/components/co-toggle-button/co-toggle-button.js +2 -2
  310. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.css +14 -4
  311. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +2 -2
  312. package/dist/collection/components/co-tooltip/co-tooltip.css +12 -1
  313. package/dist/collection/components/co-tooltip/co-tooltip.js +49 -16
  314. package/dist/collection/components/co-transfer-list/co-transfer-list.js +1 -1
  315. package/dist/collection/components/co-video/co-video.js +34 -9
  316. package/dist/collection/utils/amountText.js +95 -0
  317. package/dist/collection/utils/color.js +109 -3
  318. package/dist/collection/utils/colorPickerI18n.js +55 -0
  319. package/dist/collection/utils/dateI18n.js +36 -0
  320. package/dist/collection/utils/fileI18n.js +3 -0
  321. package/dist/collection/utils/positioning.js +37 -4
  322. package/dist/collection/utils/submenu.js +35 -0
  323. package/dist/components/co-accordion.js +1 -1
  324. package/dist/components/co-action-bar.js +1 -1
  325. package/dist/components/co-app-shell.js +1 -1
  326. package/dist/components/co-audio-player.js +1 -1
  327. package/dist/components/co-autocomplete.js +1 -1
  328. package/dist/components/co-avatar-group.js +1 -1
  329. package/dist/components/co-avatar.js +1 -1
  330. package/dist/components/co-badge.js +1 -1
  331. package/dist/components/co-breadcrumb-item.js +1 -1
  332. package/dist/components/co-breadcrumb.js +1 -1
  333. package/dist/components/co-button.js +1 -1
  334. package/dist/components/co-calendar-month.js +1 -1
  335. package/dist/components/co-calendar-timegrid.js +1 -1
  336. package/dist/components/co-calendar.js +1 -1
  337. package/dist/components/co-carousel.js +1 -1
  338. package/dist/components/co-checkbox-group.js +1 -1
  339. package/dist/components/co-checkbox.js +1 -1
  340. package/dist/components/co-chip.js +1 -1
  341. package/dist/components/co-color-picker.js +1 -1
  342. package/dist/components/co-column-picker.js +1 -1
  343. package/dist/components/co-combobox.js +1 -1
  344. package/dist/components/co-command-search.js +1 -1
  345. package/dist/components/co-data-table-pagination.js +1 -1
  346. package/dist/components/co-data-table.js +1 -1
  347. package/dist/components/co-date-field.js +1 -1
  348. package/dist/components/co-date-picker.js +1 -1
  349. package/dist/components/co-date-range-picker.js +1 -1
  350. package/dist/components/co-date-range.js +1 -1
  351. package/dist/components/co-date-time-picker.js +1 -1
  352. package/dist/components/co-drawer.js +1 -1
  353. package/dist/components/co-drive-card.js +1 -1
  354. package/dist/components/co-drop-zone.js +1 -1
  355. package/dist/components/co-emoji-picker.js +1 -1
  356. package/dist/components/co-empty-state.js +1 -1
  357. package/dist/components/co-event-calendar.js +1 -1
  358. package/dist/components/co-event-popover.js +1 -1
  359. package/dist/components/co-fab.js +1 -1
  360. package/dist/components/co-file-field.js +1 -1
  361. package/dist/components/co-file-type-tile.js +1 -1
  362. package/dist/components/co-helper-text.js +1 -1
  363. package/dist/components/co-icon-button.js +1 -1
  364. package/dist/components/co-icon.js +1 -1
  365. package/dist/components/co-input.js +1 -1
  366. package/dist/components/co-json-field.js +1 -1
  367. package/dist/components/co-lightbox.js +1 -1
  368. package/dist/components/co-list-footer.js +1 -1
  369. package/dist/components/co-list-item.js +1 -1
  370. package/dist/components/co-media-thumb.js +1 -1
  371. package/dist/components/co-menu-divider.js +1 -1
  372. package/dist/components/co-menu-item.js +1 -1
  373. package/dist/components/co-menu.js +1 -1
  374. package/dist/components/co-modal.js +1 -1
  375. package/dist/components/co-navbar.js +1 -1
  376. package/dist/components/co-number-field.js +1 -1
  377. package/dist/components/co-option-list.js +1 -1
  378. package/dist/components/co-overlay.js +1 -1
  379. package/dist/components/co-page-header.js +1 -1
  380. package/dist/components/co-phone-field.js +1 -1
  381. package/dist/components/co-popover.js +1 -1
  382. package/dist/components/co-progress-bar.js +1 -1
  383. package/dist/components/co-progress-circle.js +1 -1
  384. package/dist/components/co-radio-group.js +1 -1
  385. package/dist/components/co-radio.js +1 -1
  386. package/dist/components/co-rating.js +1 -1
  387. package/dist/components/co-ref-field.js +1 -1
  388. package/dist/components/co-rich-text-editor.js +1 -1
  389. package/dist/components/co-rich-text-toolbar.js +1 -1
  390. package/dist/components/co-rich-text-viewer.js +1 -1
  391. package/dist/components/co-row.js +1 -1
  392. package/dist/components/co-select.js +1 -1
  393. package/dist/components/co-separator.js +1 -1
  394. package/dist/components/co-sidebar-nav.js +1 -1
  395. package/dist/components/co-sidebar.js +1 -1
  396. package/dist/components/co-skeleton.js +1 -1
  397. package/dist/components/co-slider.js +1 -1
  398. package/dist/components/co-switch.js +1 -1
  399. package/dist/components/co-tab-group.js +1 -1
  400. package/dist/components/co-tab.js +1 -1
  401. package/dist/components/co-tags-field.js +1 -1
  402. package/dist/components/co-textarea.js +1 -1
  403. package/dist/components/co-time-field.d.ts +11 -0
  404. package/dist/components/co-time-field.js +1 -0
  405. package/dist/components/co-toast.js +1 -1
  406. package/dist/components/co-toggle-button-group.js +1 -1
  407. package/dist/components/co-toggle-button.js +1 -1
  408. package/dist/components/co-tooltip.js +1 -1
  409. package/dist/components/co-transfer-list.js +1 -1
  410. package/dist/components/co-video.js +1 -1
  411. package/dist/components/index.js +1 -1
  412. package/dist/components/p-7TncUlLN.js +1 -0
  413. package/dist/components/p-B4NCaKrR.js +1 -0
  414. package/dist/components/p-B9xitpGU.js +1 -0
  415. package/dist/components/{p-Dabi98BI.js → p-BGDqldEg.js} +1 -1
  416. package/dist/components/p-BRbgGqLw.js +1 -0
  417. package/dist/components/{p-BL0sCfMH.js → p-Bryf3-Js.js} +1 -1
  418. package/dist/components/{p-D6OUW6oW.js → p-CBTGN490.js} +1 -1
  419. package/dist/components/{p-P8wvwhM2.js → p-CFFDmGPS.js} +1 -1
  420. package/dist/components/p-CLsAo0-A.js +1 -0
  421. package/dist/components/{p-CA_JAK9s.js → p-CT2enQ6h.js} +1 -1
  422. package/dist/components/p-D2ldYZo1.js +1 -0
  423. package/dist/components/{p-CuZXTvDM.js → p-D3mVYO-G.js} +1 -1
  424. package/dist/components/p-DDV_bRcU.js +1 -0
  425. package/dist/components/p-DFHRS9cJ.js +1 -0
  426. package/dist/components/{p-Dj1EZ5qD.js → p-DNJAIVfI.js} +1 -1
  427. package/dist/{cobalt/p-WeuPA9Rw.js → components/p-DOL2zACE.js} +1 -1
  428. package/dist/components/p-DRP8D9ro.js +1 -0
  429. package/dist/components/p-DSnJWzQw.js +1 -0
  430. package/dist/components/p-DTi2O4O8.js +1 -0
  431. package/dist/components/p-De7w9k6_.js +1 -0
  432. package/dist/components/{p-D5EdMieb.js → p-DoHLTC0n.js} +1 -1
  433. package/dist/components/{p-Bxk96Zgc.js → p-Du_CgT5E.js} +1 -1
  434. package/dist/components/p-DxtNejr2.js +1 -0
  435. package/dist/components/{p-BHYtxTzM.js → p-HxVRXXXC.js} +1 -1
  436. package/dist/components/{p-B0Dc-I_C.js → p-NNxjElcX.js} +1 -1
  437. package/dist/components/p-gKnOhsd2.js +1 -0
  438. package/dist/components/p-jYd9gu_c.js +1 -0
  439. package/dist/components/{p-D4qzGifz.js → p-vby0ITbe.js} +1 -1
  440. package/dist/components/p-wjt4IAGZ.js +1 -0
  441. package/dist/components/p-zuhal3IZ.js +1 -0
  442. package/dist/esm/co-accordion.entry.js +5 -5
  443. package/dist/esm/co-action-bar.entry.js +2 -2
  444. package/dist/esm/co-app-shell.entry.js +4 -4
  445. package/dist/esm/co-audio-player.entry.js +83 -13
  446. package/dist/esm/co-autocomplete.entry.js +2 -2
  447. package/dist/esm/co-avatar-group.entry.js +1 -1
  448. package/dist/esm/co-avatar.entry.js +70 -0
  449. package/dist/esm/co-badge.entry.js +11 -3
  450. package/dist/esm/co-bottom-sheet.entry.js +1 -1
  451. package/dist/esm/co-breadcrumb-item.entry.js +1 -1
  452. package/dist/esm/co-breadcrumb.entry.js +1 -1
  453. package/dist/esm/co-button-group.entry.js +1 -1
  454. package/dist/esm/co-button.entry.js +2 -2
  455. package/dist/esm/co-calendar-month_2.entry.js +37 -2
  456. package/dist/esm/co-calendar_3.entry.js +27 -15
  457. package/dist/esm/co-card.entry.js +1 -1
  458. package/dist/esm/co-carousel-item.entry.js +1 -1
  459. package/dist/esm/co-carousel.entry.js +2 -2
  460. package/dist/esm/co-checkbox-group.entry.js +2 -2
  461. package/dist/esm/co-checkbox.entry.js +6 -6
  462. package/dist/esm/co-chip_2.entry.js +68 -13
  463. package/dist/esm/co-color-picker.entry.js +1078 -27
  464. package/dist/esm/co-column-picker.entry.js +3 -3
  465. package/dist/esm/co-combobox.entry.js +2 -2
  466. package/dist/esm/co-command-search.entry.js +1 -1
  467. package/dist/esm/co-data-table-pagination.entry.js +5 -5
  468. package/dist/esm/co-data-table.entry.js +83 -5
  469. package/dist/esm/co-date-picker.entry.js +3 -3
  470. package/dist/esm/co-date-range-picker.entry.js +3 -3
  471. package/dist/esm/co-date-range.entry.js +2 -2
  472. package/dist/esm/co-date-time-picker.entry.js +101 -130
  473. package/dist/esm/co-drive-card.entry.js +2 -2
  474. package/dist/esm/co-drop-zone.entry.js +2 -2
  475. package/dist/esm/co-emoji-picker.entry.js +4 -4
  476. package/dist/esm/co-empty-state.entry.js +4 -4
  477. package/dist/esm/co-event-calendar.entry.js +4 -4
  478. package/dist/esm/co-event-popover.entry.js +3 -3
  479. package/dist/esm/co-fab.entry.js +3 -3
  480. package/dist/esm/co-file-field.entry.js +95 -99
  481. package/dist/esm/co-file-type-tile.entry.js +3 -3
  482. package/dist/esm/co-helper-text.entry.js +3 -3
  483. package/dist/esm/co-icon-button.entry.js +6 -6
  484. package/dist/esm/co-icon.entry.js +3 -3
  485. package/dist/esm/co-input.entry.js +32 -6
  486. package/dist/esm/co-json-field.entry.js +5 -5
  487. package/dist/esm/co-lightbox.entry.js +204 -21
  488. package/dist/esm/co-list-footer.entry.js +2 -2
  489. package/dist/esm/co-list-item.entry.js +5 -5
  490. package/dist/esm/co-loader.entry.js +1 -1
  491. package/dist/esm/co-media-thumb.entry.js +3 -3
  492. package/dist/esm/co-menu-divider.entry.js +2 -2
  493. package/dist/esm/co-menu-item.entry.js +85 -4
  494. package/dist/esm/co-menu.entry.js +2 -2
  495. package/dist/esm/co-modal.entry.js +10 -4
  496. package/dist/esm/co-navbar.entry.js +4 -4
  497. package/dist/esm/co-number-field.entry.js +272 -9
  498. package/dist/esm/co-overlay.entry.js +6 -4
  499. package/dist/esm/co-page-header.entry.js +2 -2
  500. package/dist/esm/co-phone-field.entry.js +3 -3
  501. package/dist/esm/co-popover.entry.js +58 -21
  502. package/dist/esm/co-progress-bar.entry.js +3 -3
  503. package/dist/esm/co-progress-circle.entry.js +3 -3
  504. package/dist/esm/co-provider-logo_2.entry.js +47 -3
  505. package/dist/esm/co-radio-group.entry.js +1 -1
  506. package/dist/esm/co-radio.entry.js +4 -4
  507. package/dist/esm/co-rating.entry.js +4 -4
  508. package/dist/esm/co-ref-field.entry.js +104 -13
  509. package/dist/esm/co-rich-text-editor.entry.js +11 -8
  510. package/dist/esm/co-rich-text-toolbar.entry.js +7 -3
  511. package/dist/esm/co-rich-text-viewer.entry.js +4 -3
  512. package/dist/esm/co-row.entry.js +3 -3
  513. package/dist/esm/co-segmented-bar.entry.js +1 -1
  514. package/dist/esm/co-select.entry.js +6 -6
  515. package/dist/esm/co-separator.entry.js +2 -2
  516. package/dist/esm/co-sidebar-nav.entry.js +2 -2
  517. package/dist/esm/co-sidebar.entry.js +3 -3
  518. package/dist/esm/co-slider.entry.js +3 -3
  519. package/dist/esm/co-switch.entry.js +6 -6
  520. package/dist/esm/co-tab-group.entry.js +3 -3
  521. package/dist/esm/co-tab.entry.js +3 -3
  522. package/dist/esm/co-tags-field.entry.js +8 -8
  523. package/dist/esm/co-textarea.entry.js +6 -6
  524. package/dist/esm/co-time-field.entry.js +323 -0
  525. package/dist/esm/co-toast.entry.js +2 -2
  526. package/dist/esm/co-toggle-button-group.entry.js +4 -4
  527. package/dist/esm/co-toggle-button.entry.js +4 -4
  528. package/dist/esm/{co-avatar_2.entry.js → co-tooltip.entry.js} +49 -84
  529. package/dist/esm/co-transfer-list.entry.js +1 -1
  530. package/dist/esm/co-video.entry.js +32 -7
  531. package/dist/esm/cobalt.js +3 -3
  532. package/dist/esm/color-BRbgGqLw.js +136 -0
  533. package/dist/esm/{dateI18n-CnNpoKwg.js → dateI18n-jYd9gu_c.js} +36 -0
  534. package/dist/esm/{fieldChip-DsAfq1e0.js → fieldChip-uyggU8VV.js} +1 -1
  535. package/dist/esm/fileI18n-gKnOhsd2.js +84 -0
  536. package/dist/esm/{index-RuXxdKzC.js → index-68iUQp5j.js} +28 -10
  537. package/dist/esm/{index-CrtiywTB.js → index-DH5lfRNj.js} +35 -27
  538. package/dist/esm/loader.js +3 -3
  539. package/dist/esm/{positioning-BMdapAL8.js → positioning-DFHRS9cJ.js} +32 -13
  540. package/dist/esm/{requiredMark-DCD-ZA51.js → requiredMark-BCJUuZvC.js} +1 -1
  541. package/dist/esm/{toolbar-config-WeuPA9Rw.js → toolbar-config-DOL2zACE.js} +10 -0
  542. package/dist/types/components/co-accordion/co-accordion.d.ts +6 -0
  543. package/dist/types/components/co-audio-player/co-audio-player.d.ts +25 -0
  544. package/dist/types/components/co-badge/co-badge.d.ts +7 -0
  545. package/dist/types/components/co-checkbox/co-checkbox.d.ts +5 -1
  546. package/dist/types/components/co-color-picker/co-color-picker.d.ts +360 -4
  547. package/dist/types/components/co-color-picker/presets.d.ts +107 -4
  548. package/dist/types/components/co-data-table/co-data-table.d.ts +15 -0
  549. package/dist/types/components/co-data-table/headerTruncationLogic.d.ts +24 -0
  550. package/dist/types/components/co-date-time-picker/co-date-time-picker.d.ts +43 -21
  551. package/dist/types/components/co-drawer/co-drawer.d.ts +4 -3
  552. package/dist/types/components/co-file-field/co-file-field.d.ts +14 -0
  553. package/dist/types/components/co-file-field/co-file-field.utils.d.ts +18 -1
  554. package/dist/types/components/co-icon-button/co-icon-button.d.ts +9 -0
  555. package/dist/types/components/co-input/co-input.d.ts +9 -1
  556. package/dist/types/components/co-lightbox/co-lightbox.d.ts +60 -4
  557. package/dist/types/components/co-menu-item/co-menu-item.d.ts +16 -0
  558. package/dist/types/components/co-modal/co-modal.d.ts +10 -0
  559. package/dist/types/components/co-number-field/co-number-field.d.ts +42 -1
  560. package/dist/types/components/co-option-list/co-option-list.d.ts +16 -0
  561. package/dist/types/components/co-option-list/optionListLogic.d.ts +23 -6
  562. package/dist/types/components/co-overlay/co-overlay.d.ts +4 -2
  563. package/dist/types/components/co-popover/co-popover.d.ts +16 -0
  564. package/dist/types/components/co-ref-field/co-ref-field.d.ts +38 -0
  565. package/dist/types/components/co-rich-text-toolbar/co-rich-text-toolbar.d.ts +1 -1
  566. package/dist/types/components/co-select/co-select.d.ts +6 -0
  567. package/dist/types/components/co-skeleton/co-skeleton.d.ts +13 -0
  568. package/dist/types/components/co-time-field/co-time-field.d.ts +60 -0
  569. package/dist/types/components/co-tooltip/co-tooltip.d.ts +5 -0
  570. package/dist/types/components/co-video/co-video.d.ts +4 -0
  571. package/dist/types/components.d.ts +530 -90
  572. package/dist/types/utils/amountText.d.ts +34 -0
  573. package/dist/types/utils/color.d.ts +44 -1
  574. package/dist/types/utils/colorPickerI18n.d.ts +26 -0
  575. package/dist/types/utils/dateI18n.d.ts +12 -0
  576. package/dist/types/utils/fileI18n.d.ts +1 -0
  577. package/dist/types/utils/positioning.d.ts +10 -0
  578. package/dist/types/utils/submenu.d.ts +44 -0
  579. package/package.json +3 -3
  580. package/dist/cjs/color-YhUkm10t.js +0 -32
  581. package/dist/cjs/time-LBHtzLHe.js +0 -42
  582. package/dist/cobalt/p-07904986.entry.js +0 -1
  583. package/dist/cobalt/p-09799193.entry.js +0 -1
  584. package/dist/cobalt/p-17ae943c.entry.js +0 -1
  585. package/dist/cobalt/p-23a103a0.entry.js +0 -1
  586. package/dist/cobalt/p-2f88d151.entry.js +0 -1
  587. package/dist/cobalt/p-3495fda1.entry.js +0 -1
  588. package/dist/cobalt/p-409f28bb.entry.js +0 -1
  589. package/dist/cobalt/p-682b3313.entry.js +0 -1
  590. package/dist/cobalt/p-6bf814f9.entry.js +0 -1
  591. package/dist/cobalt/p-7532c739.entry.js +0 -1
  592. package/dist/cobalt/p-76420ac1.entry.js +0 -1
  593. package/dist/cobalt/p-7c88163e.entry.js +0 -1
  594. package/dist/cobalt/p-7cf4b4ae.entry.js +0 -1
  595. package/dist/cobalt/p-7ea87b75.entry.js +0 -1
  596. package/dist/cobalt/p-8183f56f.entry.js +0 -1
  597. package/dist/cobalt/p-8345b25f.entry.js +0 -1
  598. package/dist/cobalt/p-93c68029.entry.js +0 -1
  599. package/dist/cobalt/p-983af614.entry.js +0 -1
  600. package/dist/cobalt/p-BG4WRR22.js +0 -1
  601. package/dist/cobalt/p-BMdapAL8.js +0 -1
  602. package/dist/cobalt/p-CF8OB_TM.js +0 -1
  603. package/dist/cobalt/p-CnNpoKwg.js +0 -1
  604. package/dist/cobalt/p-T4la7ly_.js +0 -1
  605. package/dist/cobalt/p-a2d31248.entry.js +0 -1
  606. package/dist/cobalt/p-a6b5cadd.entry.js +0 -1
  607. package/dist/cobalt/p-a8c64cc3.entry.js +0 -1
  608. package/dist/cobalt/p-b8581787.entry.js +0 -1
  609. package/dist/cobalt/p-bcedbd73.entry.js +0 -1
  610. package/dist/cobalt/p-da18b5f4.entry.js +0 -1
  611. package/dist/cobalt/p-dea43204.entry.js +0 -1
  612. package/dist/cobalt/p-dfcf667d.entry.js +0 -1
  613. package/dist/cobalt/p-dfd25f1d.entry.js +0 -1
  614. package/dist/cobalt/p-e6882ddd.entry.js +0 -1
  615. package/dist/cobalt/p-e84eda2e.entry.js +0 -1
  616. package/dist/cobalt/p-f25967fb.entry.js +0 -1
  617. package/dist/cobalt/p-f5f1b463.entry.js +0 -1
  618. package/dist/cobalt/p-fd39f410.entry.js +0 -1
  619. package/dist/cobalt/p-mAGnZXRn.js +0 -1
  620. package/dist/components/p-BMdapAL8.js +0 -1
  621. package/dist/components/p-BTQEg3UO.js +0 -1
  622. package/dist/components/p-Bbny3WUc.js +0 -1
  623. package/dist/components/p-Bz0QZqnB.js +0 -1
  624. package/dist/components/p-CF8OB_TM.js +0 -1
  625. package/dist/components/p-CR0izsJC.js +0 -1
  626. package/dist/components/p-CnNpoKwg.js +0 -1
  627. package/dist/components/p-DI1ek0EB.js +0 -1
  628. package/dist/components/p-DP0bbhfN.js +0 -1
  629. package/dist/components/p-D_9BRkj6.js +0 -1
  630. package/dist/components/p-DbipMAyT.js +0 -1
  631. package/dist/components/p-DgUBcJIS.js +0 -1
  632. package/dist/components/p-DolCkNsL.js +0 -1
  633. package/dist/components/p-hfGFsvaD.js +0 -1
  634. package/dist/esm/color-BG4WRR22.js +0 -30
  635. package/dist/esm/time-CF8OB_TM.js +0 -37
@@ -1,60 +1,128 @@
1
+ /* squircle-surface.css — receta ÚNICA de superficie squircle (co-app-shell,
2
+ co-drawer, co-modal). Se @import-a desde el CSS del componente como PRIMER
3
+ statement (Stencil inlinea @import relativos; precedente co-select.css:3) y
4
+ el tsx agrega las clases. Spec: prolibu-front-v2/docs/superpowers/specs/
5
+ 2026-09-02-suite-v2-intel-perf-remediation-design.md §7 (E1, E5).
6
+
7
+ Variables que declara CADA consumidor sobre el elemento (o un ancestro):
8
+ --co-sq-r radio de esquina
9
+ --co-sq-shadow box-shadow (rama Chromium ≥139, sigue el corner-shape)
10
+ --co-sq-drop-shadow filter drop-shadow (fallback Safari/Firefox)
11
+ Conversión entre ambas: drop-shadow(x y σ) ≡ box-shadow x y 2σ.
12
+
13
+ Clases:
14
+ .co-sq-elevation sombra que sigue la silueta squircle
15
+ .co-sq-clip recorte superelíptico SIN máscara
16
+ .co-sq-elevation-fallback SIEMPRE en un ancestro del .co-sq-clip: en el
17
+ fallback la sombra es un `filter`, y `filter` se
18
+ aplica antes que `mask` en el mismo elemento →
19
+ la máscara la recortaría.
20
+
21
+ Reglas: (1) el componente NO redeclara border-radius / overflow / filter /
22
+ mask / box-shadow en esos elementos (una redeclaración posterior le gana al
23
+ partial por cascada; guard squircle-surface-guard.test.ts); (2)
24
+ .co-sq-elevation y .co-sq-clip pueden ir en el MISMO elemento (co-modal) o
25
+ en padre/hijo (shell, drawer); (3) `contain: layout` NO va acá: lo declara
26
+ cada componente donde E2/E20 lo piden.
27
+
28
+ Las 4 rutas SVG son una superelipse de exponente 4 = `corner-shape: squircle`
29
+ (superellipse(2)): misma silueta, error máx 1e-4 — a 14 px de radio la
30
+ diferencia con un círculo es ≤1.87 px en la punta. Sin `+2px` anti-costura en
31
+ la rama Chromium: sin máscara no hay costura posible (historia del hack: nota
32
+ de memoria cobalt-squircle-mask-seam). */
33
+
34
+ .co-sq-elevation {
35
+ border-radius: var(--co-sq-r);
36
+ corner-shape: squircle;
37
+ box-shadow: var(--co-sq-shadow);
38
+ }
39
+
40
+ .co-sq-clip {
41
+ overflow: hidden;
42
+ border-radius: var(--co-sq-r);
43
+ corner-shape: squircle;
44
+ }
45
+
46
+ /* F2 (E1): Safari/Firefox = píxel-idéntico a la receta anterior (filter
47
+ drop-shadow en el ancestro + máscara de 6 capas en el clip). */
48
+ @supports not (corner-shape: squircle) {
49
+ .co-sq-elevation {
50
+ box-shadow: none;
51
+ }
52
+
53
+ .co-sq-elevation-fallback {
54
+ filter: var(--co-sq-drop-shadow);
55
+ }
56
+
57
+ /* Declarado DESPUÉS de .co-sq-elevation a propósito: cuando ambas clases van
58
+ en el mismo elemento (co-modal) gana el radius 0 y la máscara define la
59
+ forma. 4 esquinas + cruz de 2 barras (H full-width, V full-height); las
60
+ barras van `calc(... + 2px)` para solapar cada esquina ~1px y evitar la
61
+ costura sub-píxel que flickeaba con el zoom. */
62
+ .co-sq-clip {
63
+ border-radius: 0;
64
+ --co-sq-tl: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M100 0L97.5 0L95 0L92.5 0L90 0L87.5 0.01L85 0.01L82.5 0.02L80 0.04L77.5 0.06L75 0.1L72.5 0.14L70 0.2L67.5 0.28L65 0.38L62.5 0.5L60 0.65L57.5 0.83L55 1.04L52.5 1.3L50 1.6L47.5 1.96L45 2.37L42.5 2.85L40 3.41L37.5 4.05L35 4.8L32.5 5.65L30 6.63L27.5 7.77L25 9.07L22.5 10.58L20 12.34L17.5 14.41L15 16.85L12.5 19.79L10 23.42L7.5 28.06L5 34.37L2.5 44.29L0 100L100 100Z%27 fill=%27%23fff%27/></svg>");
65
+ --co-sq-tr: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M0 0L2.5 0L5 0L7.5 0L10 0L12.5 0.01L15 0.01L17.5 0.02L20 0.04L22.5 0.06L25 0.1L27.5 0.14L30 0.2L32.5 0.28L35 0.38L37.5 0.5L40 0.65L42.5 0.83L45 1.04L47.5 1.3L50 1.6L52.5 1.96L55 2.37L57.5 2.85L60 3.41L62.5 4.05L65 4.8L67.5 5.65L70 6.63L72.5 7.77L75 9.07L77.5 10.58L80 12.34L82.5 14.41L85 16.85L87.5 19.79L90 23.42L92.5 28.06L95 34.37L97.5 44.29L100 100L0 100Z%27 fill=%27%23fff%27/></svg>");
66
+ --co-sq-bl: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M0 0L2.5 55.71L5 65.63L7.5 71.94L10 76.58L12.5 80.21L15 83.15L17.5 85.59L20 87.66L22.5 89.42L25 90.93L27.5 92.23L30 93.37L32.5 94.35L35 95.2L37.5 95.95L40 96.59L42.5 97.15L45 97.63L47.5 98.04L50 98.4L52.5 98.7L55 98.96L57.5 99.17L60 99.35L62.5 99.5L65 99.62L67.5 99.72L70 99.8L72.5 99.86L75 99.9L77.5 99.94L80 99.96L82.5 99.98L85 99.99L87.5 99.99L90 100L92.5 100L95 100L97.5 100L100 100L100 0Z%27 fill=%27%23fff%27/></svg>");
67
+ --co-sq-br: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M100 0L97.5 55.71L95 65.63L92.5 71.94L90 76.58L87.5 80.21L85 83.15L82.5 85.59L80 87.66L77.5 89.42L75 90.93L72.5 92.23L70 93.37L67.5 94.35L65 95.2L62.5 95.95L60 96.59L57.5 97.15L55 97.63L52.5 98.04L50 98.4L47.5 98.7L45 98.96L42.5 99.17L40 99.35L37.5 99.5L35 99.62L32.5 99.72L30 99.8L27.5 99.86L25 99.9L22.5 99.94L20 99.96L17.5 99.98L15 99.99L12.5 99.99L10 100L7.5 100L5 100L2.5 100L0 100L0 0Z%27 fill=%27%23fff%27/></svg>");
68
+ -webkit-mask:
69
+ var(--co-sq-tl) top left / var(--co-sq-r) var(--co-sq-r) no-repeat,
70
+ var(--co-sq-tr) top right / var(--co-sq-r) var(--co-sq-r) no-repeat,
71
+ var(--co-sq-bl) bottom left / var(--co-sq-r) var(--co-sq-r) no-repeat,
72
+ var(--co-sq-br) bottom right / var(--co-sq-r) var(--co-sq-r) no-repeat,
73
+ linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-sq-r) + 2px) no-repeat,
74
+ linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-sq-r) + 2px) 100% no-repeat;
75
+ mask:
76
+ var(--co-sq-tl) top left / var(--co-sq-r) var(--co-sq-r) no-repeat,
77
+ var(--co-sq-tr) top right / var(--co-sq-r) var(--co-sq-r) no-repeat,
78
+ var(--co-sq-bl) bottom left / var(--co-sq-r) var(--co-sq-r) no-repeat,
79
+ var(--co-sq-br) bottom right / var(--co-sq-r) var(--co-sq-r) no-repeat,
80
+ linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-sq-r) + 2px) no-repeat,
81
+ linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-sq-r) + 2px) 100% no-repeat;
82
+ }
83
+ }
84
+
85
+
1
86
  :host {
2
87
  display: contents;
3
88
  /* Frosted-glass backdrop for modals — stronger blur than the overlay default
4
- so the page behind reads as glass, while the panel itself stays solid. */
89
+ so the page behind reads as glass, while the panel itself stays solid.
90
+ (Scrim sin cambios: E3.) */
5
91
  --co-overlay-blur: 8px;
6
92
  --co-overlay-bg: rgba(31, 28, 27, 0.35);
7
93
  }
8
94
 
9
- /* Frame: carries the squircle-following soft drop-shadow. A box-shadow on the
10
- masked panel would be clipped away by the mask, so the elevation lives here
11
- (drop-shadow respects the child's mask silhouette). co-overlay centers it. */
95
+ /* Frame: co-overlay lo centra. En el fallback (Safari/Firefox) lleva el
96
+ drop-shadow (.co-sq-elevation-fallback, tsx); en Chromium ≥139 la sombra va
97
+ en .co-modal como box-shadow, así acompaña el scale-in 0.96→1 exactamente
98
+ como el drop-shadow acompañaba el alfa del hijo. `contain: layout` preserva
99
+ el containing block que el filter le daba a un `position: fixed` slotteado
100
+ (E20, extensión de E2) y saca al frame del rol de render surface. */
12
101
  .co-modal__frame {
13
102
  display: flex;
14
- filter:
15
- drop-shadow(0 1px 2px rgba(31, 28, 27, 0.06))
16
- drop-shadow(0 14px 34px rgba(31, 28, 27, 0.16));
103
+ contain: layout;
104
+ --co-sq-drop-shadow: drop-shadow(0 1px 2px rgba(31, 28, 27, 0.06)) drop-shadow(0 14px 34px rgba(31, 28, 27, 0.16));
17
105
  }
18
106
 
19
107
  .co-modal {
20
108
  display: flex;
21
109
  flex-direction: column;
22
110
  background: var(--co-semantic-surface-secondary);
23
- /* Squircle geometry — fixed-radius 4-corner mask (smooth continuous corners
24
- that stay constant at any modal size). Radius knob: --co-modal-r.
25
- The cross bars are `calc(... + 2px)` so they OVERLAP each corner ~1px: at
26
- exact abutment the fractional-pixel rounding leaves a <1px transparent SEAM
27
- at the bar↔corner edge that reads as a faint line flickering with zoom (same
28
- fix as co-app-shell .main__card). The overlap is inside the corners' opaque
29
- area, so the rounded shape is unchanged. */
111
+ /* Squircle + sombra: .co-sq-clip y .co-sq-elevation en ESTE elemento
112
+ (partial). No redeclarar border-radius / overflow / mask / box-shadow acá.
113
+ Radius knob: --co-modal-r. */
30
114
  --co-modal-r: var(--co-border-radius-xl);
31
- --co-sq-tl: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M100 0L97.5 0L95 0L92.5 0L90 0L87.5 0.01L85 0.01L82.5 0.02L80 0.04L77.5 0.06L75 0.1L72.5 0.14L70 0.2L67.5 0.28L65 0.38L62.5 0.5L60 0.65L57.5 0.83L55 1.04L52.5 1.3L50 1.6L47.5 1.96L45 2.37L42.5 2.85L40 3.41L37.5 4.05L35 4.8L32.5 5.65L30 6.63L27.5 7.77L25 9.07L22.5 10.58L20 12.34L17.5 14.41L15 16.85L12.5 19.79L10 23.42L7.5 28.06L5 34.37L2.5 44.29L0 100L100 100Z%27 fill=%27%23fff%27/></svg>");
32
- --co-sq-tr: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M0 0L2.5 0L5 0L7.5 0L10 0L12.5 0.01L15 0.01L17.5 0.02L20 0.04L22.5 0.06L25 0.1L27.5 0.14L30 0.2L32.5 0.28L35 0.38L37.5 0.5L40 0.65L42.5 0.83L45 1.04L47.5 1.3L50 1.6L52.5 1.96L55 2.37L57.5 2.85L60 3.41L62.5 4.05L65 4.8L67.5 5.65L70 6.63L72.5 7.77L75 9.07L77.5 10.58L80 12.34L82.5 14.41L85 16.85L87.5 19.79L90 23.42L92.5 28.06L95 34.37L97.5 44.29L100 100L0 100Z%27 fill=%27%23fff%27/></svg>");
33
- --co-sq-bl: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M0 0L2.5 55.71L5 65.63L7.5 71.94L10 76.58L12.5 80.21L15 83.15L17.5 85.59L20 87.66L22.5 89.42L25 90.93L27.5 92.23L30 93.37L32.5 94.35L35 95.2L37.5 95.95L40 96.59L42.5 97.15L45 97.63L47.5 98.04L50 98.4L52.5 98.7L55 98.96L57.5 99.17L60 99.35L62.5 99.5L65 99.62L67.5 99.72L70 99.8L72.5 99.86L75 99.9L77.5 99.94L80 99.96L82.5 99.98L85 99.99L87.5 99.99L90 100L92.5 100L95 100L97.5 100L100 100L100 0Z%27 fill=%27%23fff%27/></svg>");
34
- --co-sq-br: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M100 0L97.5 55.71L95 65.63L92.5 71.94L90 76.58L87.5 80.21L85 83.15L82.5 85.59L80 87.66L77.5 89.42L75 90.93L72.5 92.23L70 93.37L67.5 94.35L65 95.2L62.5 95.95L60 96.59L57.5 97.15L55 97.63L52.5 98.04L50 98.4L47.5 98.7L45 98.96L42.5 99.17L40 99.35L37.5 99.5L35 99.62L32.5 99.72L30 99.8L27.5 99.86L25 99.9L22.5 99.94L20 99.96L17.5 99.98L15 99.99L12.5 99.99L10 100L7.5 100L5 100L2.5 100L0 100L0 0Z%27 fill=%27%23fff%27/></svg>");
35
- -webkit-mask:
36
- var(--co-sq-tl) top left / var(--co-modal-r) var(--co-modal-r) no-repeat,
37
- var(--co-sq-tr) top right / var(--co-modal-r) var(--co-modal-r) no-repeat,
38
- var(--co-sq-bl) bottom left / var(--co-modal-r) var(--co-modal-r) no-repeat,
39
- var(--co-sq-br) bottom right / var(--co-modal-r) var(--co-modal-r) no-repeat,
40
- linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-modal-r) + 2px) no-repeat,
41
- linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-modal-r) + 2px) 100% no-repeat;
42
- mask:
43
- var(--co-sq-tl) top left / var(--co-modal-r) var(--co-modal-r) no-repeat,
44
- var(--co-sq-tr) top right / var(--co-modal-r) var(--co-modal-r) no-repeat,
45
- var(--co-sq-bl) bottom left / var(--co-modal-r) var(--co-modal-r) no-repeat,
46
- var(--co-sq-br) bottom right / var(--co-modal-r) var(--co-modal-r) no-repeat,
47
- linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-modal-r) + 2px) no-repeat,
48
- linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-modal-r) + 2px) 100% no-repeat;
49
- border-radius: 0; /* the mask defines the (smooth) shape */
115
+ --co-sq-r: var(--co-modal-r);
116
+ --co-sq-shadow: 0 1px 4px rgba(31, 28, 27, 0.06), 0 14px 68px rgba(31, 28, 27, 0.16);
50
117
  max-width: 540px;
51
118
  width: 90vw;
52
119
  max-height: 80vh;
53
- overflow: hidden;
54
120
  font-family: var(--co-font-family-primary);
55
- transform: translateY(8px);
121
+ transform: scale(0.96);
56
122
  opacity: 0;
57
- transition: transform var(--co-motion-duration-slow) var(--co-motion-ease-out), opacity var(--co-motion-duration-slow) var(--co-motion-ease-out);
123
+ /* Asimetría tdev: esta transición es la de SALIDA (el estado base es el destino
124
+ del cierre) — más corta y ease-in. La de entrada vive en --open. */
125
+ transition: transform var(--co-motion-duration-fast) var(--co-motion-ease-in), opacity var(--co-motion-duration-fast) var(--co-motion-ease-in);
58
126
  }
59
127
 
60
128
  .co-modal--sm { max-width: 400px; }
@@ -78,8 +146,9 @@
78
146
  }
79
147
 
80
148
  .co-modal--open {
81
- transform: none;
149
+ transform: scale(1);
82
150
  opacity: 1;
151
+ transition: transform var(--co-motion-duration-base) var(--co-motion-ease-out), opacity var(--co-motion-duration-base) var(--co-motion-ease-out);
83
152
  }
84
153
 
85
154
  /* ─── Header ────────────────────────────────────────────────── */
@@ -165,3 +234,9 @@
165
234
  .co-modal--no-dividers .co-modal__footer {
166
235
  border-top: none;
167
236
  }
237
+
238
+ /* header-divider="false": the body runs straight under the heading. */
239
+ .co-modal--no-header-divider .co-modal__body {
240
+ border-top: none;
241
+ padding-top: 0;
242
+ }
@@ -3,7 +3,14 @@ import { afterEventFor } from "../co-overlay/overlayAfterClose";
3
3
  import { slotHasContent } from "../../utils/slotContent";
4
4
  /**
5
5
  * @slot - Modal body content
6
+ * @slot header-leading - Control before the heading (e.g. a back arrow on a
7
+ * second screen of the same modal)
8
+ * @slot header-actions - Controls at the right end of the header (e.g. a settings
9
+ * icon-button), before the close button
6
10
  * @slot footer - Footer with action buttons
11
+ * @part modal | header | header-text | heading | description | body | footer -
12
+ * layout/typography hooks for a consumer that must match a specific spec
13
+ * (paddings, heading weight); colors stay on semantic tokens
7
14
  */
8
15
  export class CoModal {
9
16
  constructor() {
@@ -36,6 +43,9 @@ export class CoModal {
36
43
  this.size = 'md';
37
44
  /** Hide body section and all border dividers (compact confirm dialogs) */
38
45
  this.noDividers = false;
46
+ /** Hairline between header and body. `false` lets the body run straight
47
+ * under the heading (Figma modals whose first row is a segmented control). */
48
+ this.headerDivider = true;
39
49
  /* `:empty` can't see across a <slot>, so slotted presence is tracked in JS */
40
50
  this.hasFooter = false;
41
51
  this.handleFooterSlotChange = (e) => {
@@ -68,14 +78,17 @@ export class CoModal {
68
78
  this.coClose.emit();
69
79
  }
70
80
  render() {
71
- return (h("co-overlay", { key: 'd8a169309bd13e529bbe1f6363f7d5f261aab8eb', open: this.open, onCoClose: this.handleOverlayClick }, h("div", { key: 'e9045bb14dcba0d2eba7d985fe1b79723b21ba6c', class: "co-modal__frame" }, h("div", { key: '1ed0eede2a8b8408112c32253b8046a6a9761dae', class: {
81
+ return (h("co-overlay", { key: '9b796364a697af4d4a0ede50e5dd5516ccaa299f', open: this.open, onCoClose: this.handleOverlayClick }, h("div", { key: 'bea863aedb405cdc492277add25e2c08ea7ef258', class: "co-modal__frame co-sq-elevation-fallback" }, h("div", { key: '05f9e86f7a813243913f60c6a042fb93ed65a463', class: {
72
82
  'co-modal': true,
83
+ 'co-sq-clip': true,
84
+ 'co-sq-elevation': true,
73
85
  'co-modal--open': this.open,
74
86
  'co-modal--sm': this.size === 'sm',
75
87
  'co-modal--lg': this.size === 'lg',
76
88
  'co-modal--full': this.size === 'full',
77
89
  'co-modal--no-dividers': this.noDividers,
78
- }, part: "modal", ref: (el) => (this.modalEl = el), role: "dialog", "aria-modal": "true", "aria-labelledby": this.heading ? 'modal-heading' : undefined, onClick: this.stopPropagation, onTransitionEnd: this.handleTransitionEnd }, h("div", { key: '7208dd4502f2f001a3b4b0d187de7b244e29b9d4', class: "co-modal__header", part: "header" }, h("div", { key: '81dad02cdce3b324e0609b5863c0b17649224899', class: "co-modal__header-text" }, h("h2", { key: '0e94f6295c645ba100c4b762d18e5171d32d8c8a', class: "co-modal__heading", id: "modal-heading" }, this.heading), this.description && (h("p", { key: '7a6e9b0f9a2c4a0d8bd5a75050b8644f0802e4b0', class: "co-modal__description" }, this.description))), this.closable && (h("button", { key: 'b22682124517861d9f4ba7a24f697460ef03573d', class: "co-modal__close", type: "button", "aria-label": "Close", onClick: this.handleCloseClick }, h("co-icon", { key: 'c1c9152d1d37396428f9990c96128a93f60c78df', name: "x", size: 20 })))), !this.noDividers && (h("div", { key: '95073452c4e27974f82c0b0c815e4b0dc620869a', class: "co-modal__body", part: "body" }, h("slot", { key: '6f4e9ac5e29347de9116e4654ab94929c6d75d0e' }))), h("div", { key: '13cb1e194dd20201b9560edbe6891dd8982073b8', class: { 'co-modal__footer': true, 'co-modal__footer--empty': !this.hasFooter }, part: "footer" }, h("slot", { key: '73e1c6cfb288fa0debfa3064434fb9b44d6823ce', name: "footer", onSlotchange: this.handleFooterSlotChange }))))));
90
+ 'co-modal--no-header-divider': !this.headerDivider,
91
+ }, part: "modal", ref: (el) => (this.modalEl = el), role: "dialog", "aria-modal": "true", "aria-labelledby": this.heading ? 'modal-heading' : undefined, onClick: this.stopPropagation, onTransitionEnd: this.handleTransitionEnd }, h("div", { key: '8ecd9f7f4413339e484710e2abef1c21fc7f25d0', class: "co-modal__header", part: "header" }, h("slot", { key: '09df61b3aac8a26e0eb85a6a6aa48f9a7f547dbf', name: "header-leading" }), h("div", { key: '8e9a55561a1b5615f77eb3eb96284ddc68eddbc3', class: "co-modal__header-text", part: "header-text" }, h("h2", { key: '65c083247543448d9f527592cd8614a4c713cf4c', class: "co-modal__heading", part: "heading", id: "modal-heading" }, this.heading), this.description && (h("p", { key: 'c871aa6549cf56265a02048ca18f736d92d1a482', class: "co-modal__description", part: "description" }, this.description))), h("slot", { key: '106a5be71c8c03736313c1084c61d3b836ebb495', name: "header-actions" }), this.closable && (h("button", { key: 'a0df67cd09e5f414c58f9f67f6a92c58b9f4773b', class: "co-modal__close", type: "button", "aria-label": "Close", onClick: this.handleCloseClick }, h("co-icon", { key: 'e766981fff30de0c79599756dde74c5981d5c9fd', name: "x", size: 20 })))), !this.noDividers && (h("div", { key: '355e455c19cbc4a0783c0e0c2689265e6f599484', class: "co-modal__body", part: "body" }, h("slot", { key: 'fa6d3310464ff33de17618561182736bc6cef0e5' }))), h("div", { key: '43b89751fac3fd1b707a284d260e91dd7d7ea8a6', class: { 'co-modal__footer': true, 'co-modal__footer--empty': !this.hasFooter }, part: "footer" }, h("slot", { key: 'e9821b0712a6903c923f9bb50393e4b85545c211', name: "footer", onSlotchange: this.handleFooterSlotChange }))))));
79
92
  }
80
93
  static get is() { return "co-modal"; }
81
94
  static get encapsulation() { return "shadow"; }
@@ -249,6 +262,26 @@ export class CoModal {
249
262
  "reflect": true,
250
263
  "attribute": "no-dividers",
251
264
  "defaultValue": "false"
265
+ },
266
+ "headerDivider": {
267
+ "type": "boolean",
268
+ "mutable": false,
269
+ "complexType": {
270
+ "original": "boolean",
271
+ "resolved": "boolean",
272
+ "references": {}
273
+ },
274
+ "required": false,
275
+ "optional": false,
276
+ "docs": {
277
+ "tags": [],
278
+ "text": "Hairline between header and body. `false` lets the body run straight\nunder the heading (Figma modals whose first row is a segmented control)."
279
+ },
280
+ "getter": false,
281
+ "setter": false,
282
+ "reflect": false,
283
+ "attribute": "header-divider",
284
+ "defaultValue": "true"
252
285
  }
253
286
  };
254
287
  }
@@ -32,8 +32,10 @@
32
32
  .co-navbar--dark {
33
33
  --co-navbar-bg: var(--co-theme-navbar-bg, var(--co-color-base-negro, #1F1C1B));
34
34
  --co-navbar-color: var(--co-theme-on-navbar, #fff);
35
- backdrop-filter: blur(40px);
36
- -webkit-backdrop-filter: blur(40px);
35
+ /* Sin backdrop-filter (D3): --co-navbar-bg es OPACO (los hosts pasan un hex
36
+ sólido) → blur(40px) no esmerilaba nada y costaba un render surface del
37
+ ancho del viewport en cada frame. Un host translúcido que quiera frost lo
38
+ agrega él vía ::part(navbar). */
37
39
  /* Override icon-button outlined variant for dark context */
38
40
  --co-icon-button-bg: var(--co-theme-on-navbar-surface, var(--co-color-opacity-blanco-16, rgba(255,255,255,0.16)));
39
41
  --co-icon-button-color: var(--co-theme-on-navbar, #fff);
@@ -14,12 +14,12 @@ export class CoNavbar {
14
14
  this.rounded = false;
15
15
  }
16
16
  render() {
17
- return (h("div", { key: '9db66169484ffc0954c76c21ca395bafe6a5c749', class: {
17
+ return (h("div", { key: '9899b395fdf793bf9b7e47509b81eb559aac0b56', class: {
18
18
  'co-navbar': true,
19
19
  [`co-navbar--${this.variant}`]: true,
20
20
  [`co-navbar--${this.size}`]: true,
21
21
  'co-navbar--rounded': this.rounded,
22
- }, part: "navbar", role: "toolbar" }, h("slot", { key: 'dbf92282c2698bc55b7c7b0ce6bcc49724f636d6' })));
22
+ }, part: "navbar", role: "toolbar" }, h("slot", { key: 'c863bcf8dc9eddab771922a81e11c1966bfe8d2e' })));
23
23
  }
24
24
  static get is() { return "co-navbar"; }
25
25
  static get encapsulation() { return "shadow"; }
@@ -177,6 +177,28 @@
177
177
  user-select: none;
178
178
  }
179
179
 
180
+ /* Control slotteado a la derecha (toggle de unidad, etc.): flex-shrink 0 y un
181
+ respiro contra el borde de la caja; verticalmente lo centra el row. */
182
+ ::slotted([slot='suffix']) {
183
+ flex-shrink: 0;
184
+ margin-right: var(--co-spacing-xxs);
185
+ }
186
+
187
+ /* hide-controls: campo numérico plano (precio, tasa) — sin ± el número se
188
+ alinea a la derecha como en cualquier columna numérica y el padding lateral
189
+ es el de co-input. */
190
+ :host([hide-controls]) .co-number-field__input {
191
+ text-align: right;
192
+ padding-left: var(--co-spacing-md);
193
+ padding-right: var(--co-spacing-md);
194
+ }
195
+
196
+ :host([hide-controls]) .co-number-field__affix {
197
+ padding-right: var(--co-spacing-md);
198
+ font-size: var(--co-font-size-12);
199
+ }
200
+
201
+
180
202
  .co-number-field__input::-webkit-outer-spin-button,
181
203
  .co-number-field__input::-webkit-inner-spin-button {
182
204
  -webkit-appearance: none;
@@ -1,5 +1,38 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { RequiredMark } from "../../utils/requiredMark";
3
+ import { formatAmountText, parseNumericText, stripAmountText } from "../../utils/amountText";
4
+ /**
5
+ * Todo lo que NO puede formar parte de un número escrito a mano. El input es
6
+ * `type="text"` a propósito (hace falta para pintar el valor formateado y el
7
+ * sufijo), y eso lo deja aceptar letras: sin este filtro, tipear "asd10" deja
8
+ * "asd10" A LA VISTA hasta que el blur repinta el valor canónico.
9
+ * No valida el número final —de eso se encargan `clamp()` y el repintado del
10
+ * blur—, solo impide que el campo muestre algo que no es un número.
11
+ */
12
+ const NON_NUMERIC = /[^0-9.,-]/g;
13
+ /** Caracteres que CUENTAN para el caret en modo amount (la coma es decorado). */
14
+ const SIGNIFICANT = /[0-9.-]/;
15
+ const countSignificant = (text) => {
16
+ let count = 0;
17
+ for (const char of text)
18
+ if (SIGNIFICANT.test(char))
19
+ count++;
20
+ return count;
21
+ };
22
+ /** Posición del caret justo después de `count` caracteres significativos. */
23
+ const caretAfterSignificant = (text, count) => {
24
+ if (count <= 0)
25
+ return 0;
26
+ let seen = 0;
27
+ for (let i = 0; i < text.length; i++) {
28
+ if (SIGNIFICANT.test(text[i])) {
29
+ seen++;
30
+ if (seen === count)
31
+ return i + 1;
32
+ }
33
+ }
34
+ return text.length;
35
+ };
3
36
  export class CoNumberField {
4
37
  constructor() {
5
38
  /** Whether the field is required (renders a required marker on the label). */
@@ -14,19 +47,46 @@ export class CoNumberField {
14
47
  this.size = 'md';
15
48
  /** Show clear button when the field has a value */
16
49
  this.clearable = false;
50
+ /**
51
+ * Oculta los botones ± (campo numérico "plano": precio, tasa). Las flechas
52
+ * ↑↓ siguen escalonando. Reflejado para que el CSS del host lo lea.
53
+ */
54
+ this.hideControls = false;
17
55
  this.focused = false;
56
+ // Stepping/clear son mutaciones PROGRAMÁTICAS: con el campo enfocado ni el
57
+ // @Watch (guard `focused`) ni el vdom (que copia el texto vivo) repintan, así
58
+ // que cada path escribe el input él mismo — si no, ArrowUp emite y persiste
59
+ // valores que el usuario no ve hasta el blur.
18
60
  this.handleDecrement = () => {
19
61
  if (!this.canDecrement)
20
62
  return;
21
63
  this.emitValue(this.current - this.step);
64
+ this.syncInputText();
22
65
  };
23
66
  this.handleIncrement = () => {
24
67
  if (!this.canIncrement)
25
68
  return;
26
69
  this.emitValue(this.current + this.step);
70
+ this.syncInputText();
27
71
  };
28
72
  this.handleInput = (e) => {
29
- const raw = e.target.value;
73
+ var _a;
74
+ const input = e.target;
75
+ if (this.isAmount) {
76
+ this.handleAmountInput(input);
77
+ return;
78
+ }
79
+ let raw = input.value;
80
+ // Descarta los caracteres imposibles al tipearlos y al pegar, conservando
81
+ // la posición del cursor (reescribir `value` la mandaría al final).
82
+ const cleaned = raw.replace(NON_NUMERIC, '');
83
+ if (cleaned !== raw) {
84
+ const caret = ((_a = input.selectionStart) !== null && _a !== void 0 ? _a : raw.length) - (raw.length - cleaned.length);
85
+ input.value = cleaned;
86
+ const next = caret < 0 ? 0 : caret;
87
+ input.setSelectionRange(next, next);
88
+ raw = cleaned;
89
+ }
30
90
  if (raw === '') {
31
91
  // Deleting all content clears the field (parity with the clear button),
32
92
  // but only when clearing is enabled — otherwise keep prior behavior.
@@ -43,9 +103,50 @@ export class CoNumberField {
43
103
  this.emitValue(this.fromDisplay(num));
44
104
  }
45
105
  };
106
+ /**
107
+ * Pegar en modo amount: el texto llega con el formato de DONDE se copió
108
+ * (es-CO `1.234,56`, en-US `1,234.56`, la app `$ 34,640.00`), así que se
109
+ * interpreta con la heurística de separadores ANTES de empalmarlo con lo que
110
+ * ya había en el campo. Sin el preventDefault, el navegador escribiría el
111
+ * texto crudo y `parseFloat` cortaría en la primera coma (commit silencioso
112
+ * de 1 al pegar "1,234.56").
113
+ */
114
+ this.handlePaste = (e) => {
115
+ var _a, _b, _c, _d;
116
+ if (!this.isAmount)
117
+ return;
118
+ e.preventDefault();
119
+ const input = e.target;
120
+ const text = (_b = (_a = e.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text')) !== null && _b !== void 0 ? _b : '';
121
+ let parsed = parseNumericText(text);
122
+ if (parsed && this.allowNegative && /^\s*-/.test(text))
123
+ parsed = `-${parsed}`;
124
+ const start = (_c = input.selectionStart) !== null && _c !== void 0 ? _c : input.value.length;
125
+ const end = (_d = input.selectionEnd) !== null && _d !== void 0 ? _d : start;
126
+ const before = stripAmountText(input.value.slice(0, start), this.allowNegative);
127
+ const after = stripAmountText(input.value.slice(end));
128
+ const spliced = stripAmountText(before + parsed + after, this.allowNegative);
129
+ const formatted = formatAmountText(spliced);
130
+ input.value = formatted;
131
+ const caret = caretAfterSignificant(formatted, countSignificant(before + parsed));
132
+ input.setSelectionRange(caret, caret);
133
+ if (spliced === '' || spliced === '-') {
134
+ if (spliced === '' && this.clearable) {
135
+ this.value = null;
136
+ this.coChange.emit(null);
137
+ }
138
+ return;
139
+ }
140
+ const num = parseFloat(spliced);
141
+ if (!isNaN(num))
142
+ this.emitValue(num);
143
+ };
46
144
  this.handleClear = () => {
47
145
  var _a;
48
146
  this.value = null;
147
+ // En Safari el click NO roba el foco al botón → `focused` sigue true y sin
148
+ // esto el texto viejo quedaba pintado con el valor ya emitido en null.
149
+ this.syncInputText();
49
150
  this.coClear.emit();
50
151
  this.coChange.emit(null);
51
152
  (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
@@ -55,6 +156,10 @@ export class CoNumberField {
55
156
  // Re-clamp on blur, but keep an empty field empty.
56
157
  if (!this.isEmpty)
57
158
  this.emitValue(this.value);
159
+ // Repinta el texto canónico: si el clamp devolvió el MISMO valor que ya
160
+ // tenía el prop (tipear "-20" sobre 0 con min 0), el @Watch no dispara y el
161
+ // input se quedaba con lo tipeado.
162
+ this.syncInputText();
58
163
  };
59
164
  this.handleFocus = () => {
60
165
  this.focused = true;
@@ -81,9 +186,8 @@ export class CoNumberField {
81
186
  onValueChange() {
82
187
  if (!this.inputEl || this.focused)
83
188
  return;
84
- const next = this.isEmpty ? '' : String(this.toDisplay(this.value));
85
- if (this.inputEl.value !== next)
86
- this.inputEl.value = next;
189
+ if (this.inputEl.value !== this.displayValue)
190
+ this.inputEl.value = this.displayValue;
87
191
  }
88
192
  /** True when there is no numeric value (cleared / empty). */
89
193
  get isEmpty() {
@@ -125,6 +229,21 @@ export class CoNumberField {
125
229
  get scaled() {
126
230
  return this.format === 'rate' || this.format === 'percent';
127
231
  }
232
+ /** Whether the live money mask (thousands separators, paste parsing) is on. */
233
+ get isAmount() {
234
+ return this.format === 'amount';
235
+ }
236
+ /** El signo entra sólo cuando el rango lo admite (sin `min`, o `min` < 0). */
237
+ get allowNegative() {
238
+ return this.min === undefined || this.min < 0;
239
+ }
240
+ /** Texto canónico del input para el valor actual (formateado en amount). */
241
+ get displayValue() {
242
+ if (this.isEmpty)
243
+ return '';
244
+ const plain = String(this.toDisplay(this.value));
245
+ return this.isAmount ? formatAmountText(plain) : plain;
246
+ }
128
247
  /** Stored decimal → shown number (0.15 → 15). toFixed avoids FP artifacts. */
129
248
  toDisplay(v) {
130
249
  return this.scaled ? Number((v * 100).toFixed(6)) : v;
@@ -138,14 +257,63 @@ export class CoNumberField {
138
257
  this.value = clamped;
139
258
  this.coChange.emit(clamped);
140
259
  }
260
+ /**
261
+ * Modo amount: en cada input se rearma el display desde los dígitos (miles
262
+ * con coma, coma tipeada descartada, sólo un punto) y el caret se restituye
263
+ * contando caracteres significativos — reescribir `value` lo mandaría al
264
+ * final. El punto colgante ("1,234.") sobrevive porque se reformatea el
265
+ * TEXTO, no el número parseado.
266
+ */
267
+ handleAmountInput(input) {
268
+ var _a;
269
+ const raw = input.value;
270
+ const caret = (_a = input.selectionStart) !== null && _a !== void 0 ? _a : raw.length;
271
+ const significantBefore = countSignificant(raw.slice(0, caret));
272
+ const cleaned = stripAmountText(raw, this.allowNegative);
273
+ const formatted = formatAmountText(cleaned);
274
+ if (input.value !== formatted) {
275
+ input.value = formatted;
276
+ const next = caretAfterSignificant(formatted, significantBefore);
277
+ input.setSelectionRange(next, next);
278
+ }
279
+ if (cleaned === '') {
280
+ if (this.clearable) {
281
+ this.value = null;
282
+ this.coChange.emit(null);
283
+ }
284
+ return;
285
+ }
286
+ if (cleaned === '-')
287
+ return;
288
+ const num = parseFloat(cleaned);
289
+ if (!isNaN(num))
290
+ this.emitValue(num);
291
+ }
292
+ syncInputText() {
293
+ if (!this.inputEl)
294
+ return;
295
+ if (this.inputEl.value !== this.displayValue)
296
+ this.inputEl.value = this.displayValue;
297
+ }
298
+ /** Texto del afijo: `suffix` explícito manda; si no, el "%" de los formatos escalados. */
299
+ get affixText() {
300
+ if (this.suffix !== undefined)
301
+ return this.suffix || null;
302
+ return this.scaled && !this.isEmpty ? '%' : null;
303
+ }
141
304
  render() {
142
- return (h("div", { key: '0c6bc83afe9b061ce2cb99b5ae7c1f6aed3f779a', class: {
305
+ return (h("div", { key: '1bcd7e60596bc28f5159f86a026d69d0d053f038', class: {
143
306
  'co-number-field': true,
144
307
  'co-number-field--disabled': this.disabled,
145
308
  'co-number-field--focused': this.focused,
146
309
  [`co-number-field--${this.size}`]: true,
147
310
  [`co-number-field--${this.status}`]: this.status !== 'default',
148
- } }, (this.label || this.secondaryLabel) && (h("div", { key: '203720b71c1962ec93f5aefa8dd3cbd67a0294fc', class: "co-number-field__labels" }, this.label && h("label", { key: '114cc0e2a0aa9d351911cee4d1c9c1494259ce3a', class: "co-number-field__label" }, this.label, h(RequiredMark, { key: 'bf4794dd4d5e21052c529ff7eb8e47a79ff9ddb4', required: this.required })), this.secondaryLabel && h("span", { key: '60519c76314068312514d47ef2284ccdd00b5c70', class: "co-number-field__secondary-label" }, this.secondaryLabel))), h("div", { key: 'c0584ba632adaa29f439f896cbab3f73663f2b0b', class: "co-number-field__row" }, h("button", { key: '21979d6ca5667f7f278b5c4674e6497cf1e3911d', class: "co-number-field__btn co-number-field__btn--minus", type: "button", tabIndex: -1, disabled: !this.canDecrement, onClick: this.handleDecrement, "aria-label": "Decrease" }, h("co-icon", { key: 'a1173b08171bca43b50a6ca3dc8bb637cb0c43b3', name: "minus", size: 16 })), h("input", { key: 'c5584bbabde195e8178fff12eb98b4919b21e0c8', ref: el => (this.inputEl = el), class: "co-number-field__input", type: "text", inputMode: "decimal", value: this.isEmpty ? '' : String(this.toDisplay(this.value)), placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown }), this.scaled && !this.isEmpty && (h("span", { key: '86705658b5b1ec0feb9be58afbf7966f382aaa9b', class: "co-number-field__affix", "aria-hidden": "true" }, "%")), this.clearable && !this.isEmpty && !this.disabled && (h("button", { key: '5e030b36c3c95a2416544930e2e4f69b06decf61', class: "co-number-field__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: '5492f06d71885eb432122984160e5f93153a226f', name: "x-circle", size: 16, weight: "fill" }))), h("button", { key: '8987e2c51aef9fcd54e3394066543607edcd764b', class: "co-number-field__btn co-number-field__btn--plus", type: "button", tabIndex: -1, disabled: !this.canIncrement, onClick: this.handleIncrement, "aria-label": "Increase" }, h("co-icon", { key: '2398e8b5e94071de8ffccbd3625976ddf93878d3', name: "plus", size: 16 }))), this.helperText && (h("div", { key: '16fc9f87db0ad43c6169eebb5be7ec57abd33e98', class: `co-number-field__helper co-number-field__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: '1d3006cb9ba6d6b0f30fb6d09aad6b28fdf764d8', name: this.statusIcon, size: 14, weight: "fill", class: "co-number-field__helper-icon" }), h("span", { key: '6d727671c30c45655c84319b6a269e4997c3ef6b', class: "co-number-field__helper-text" }, this.helperText)))));
311
+ } }, (this.label || this.secondaryLabel) && (h("div", { key: 'aca2d9958374940304e05495ae05e74d627154c7', class: "co-number-field__labels" }, this.label && h("label", { key: '8cf05675830ad181005430526785984acc793d0b', class: "co-number-field__label" }, this.label, h(RequiredMark, { key: '36aed2cf48890cf79506416d0c45f272ed329664', required: this.required })), this.secondaryLabel && h("span", { key: '636111436e1e3fff8d74fb4b9412c2192c93495a', class: "co-number-field__secondary-label" }, this.secondaryLabel))), h("div", { key: '6cbbb87a304cd9e415aafda276daede8dbe0b6a7', class: "co-number-field__row", part: "row" }, !this.hideControls && (h("button", { key: 'e11dfc41ee97b3287908877aa74f732a4cbe31fe', class: "co-number-field__btn co-number-field__btn--minus", type: "button", tabIndex: -1, disabled: !this.canDecrement, onClick: this.handleDecrement, "aria-label": "Decrease" }, h("co-icon", { key: '3f369b4d8293e9e987d18ba58fa1f010bd538016', name: "minus", size: 16 }))), h("input", { key: '8144b563cd4ae46774adbf224c45fa59378da4c7', ref: el => (this.inputEl = el), class: "co-number-field__input", type: "text", inputMode: "decimal",
312
+ // Mismo guard `focused` que el @Watch: mientras el usuario edita, su
313
+ // texto manda. Sin esto, el re-render que dispara emitValue repinta
314
+ // el input desde el NÚMERO y se come el texto en construcción
315
+ // ("34,640.00" pegado quedaba "34,640"; un "12." perdería el punto).
316
+ value: this.focused && this.inputEl ? this.inputEl.value : this.displayValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onPaste: this.handlePaste, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }), this.affixText && (h("span", { key: '56e8b3a225f2332f9c3974ec195b63b3681d5b09', class: "co-number-field__affix", "aria-hidden": "true" }, this.affixText)), this.clearable && !this.isEmpty && !this.disabled && (h("button", { key: 'ea8325f7097c5b0b87bd51554163d44bdfe379ff', class: "co-number-field__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: 'c72d4e3a039752fbcf7cf4594421d24bc2f0570a', name: "x-circle", size: 16, weight: "fill" }))), h("slot", { key: '2a3dc1b5a3e22ade3db02389178dd4ae3b1d3295', name: "suffix" }), !this.hideControls && (h("button", { key: '3b9bf39d86c7aacb212576dc4cf4af548b56fbed', class: "co-number-field__btn co-number-field__btn--plus", type: "button", tabIndex: -1, disabled: !this.canIncrement, onClick: this.handleIncrement, "aria-label": "Increase" }, h("co-icon", { key: '1655aaca9e66b51c0d97fc128c132326d3c740ad', name: "plus", size: 16 })))), this.helperText && (h("div", { key: '397b37569cabdf68072d870b5e5781f7d39da8fe', class: `co-number-field__helper co-number-field__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: 'b574fddca9813af3e208ea3e9258480a992fd4f2', name: this.statusIcon, size: 14, weight: "fill", class: "co-number-field__helper-icon" }), h("span", { key: 'd17a39a82108f12100dee523d7754b50f147bb63', class: "co-number-field__helper-text" }, this.helperText)))));
149
317
  }
150
318
  static get is() { return "co-number-field"; }
151
319
  static get encapsulation() { return "shadow"; }
@@ -440,20 +608,59 @@ export class CoNumberField {
440
608
  "type": "string",
441
609
  "mutable": false,
442
610
  "complexType": {
443
- "original": "'rate' | 'percent'",
444
- "resolved": "\"percent\" | \"rate\" | undefined",
611
+ "original": "'rate' | 'percent' | 'amount'",
612
+ "resolved": "\"amount\" | \"percent\" | \"rate\" | undefined",
445
613
  "references": {}
446
614
  },
447
615
  "required": false,
448
616
  "optional": true,
449
617
  "docs": {
450
618
  "tags": [],
451
- "text": "Display format. With 'rate' | 'percent' the `value` stays a DECIMAL\n(e.g. 0.15) but the field shows/edits the PERCENT (15) with a \"%\" suffix.\nvalue/min/max/step are always in the underlying (decimal) unit.\nReflected so it survives lazy hydration when set via the Vue wrapper."
619
+ "text": "Display format. With 'rate' | 'percent' the `value` stays a DECIMAL\n(e.g. 0.15) but the field shows/edits the PERCENT (15) with a \"%\" suffix.\nvalue/min/max/step are always in the underlying (decimal) unit.\nWith 'amount' the field is a live money mask: thousands separators while\ntyping (1234.5 shows 1,234.5), typing restricted to digits and dot, and\npaste normalized whatever the source locale (\"1.234,56\" and \"1,234.56\"\nboth commit 1234.56). The emitted value is always the raw number.\nReflected so it survives lazy hydration when set via the Vue wrapper."
452
620
  },
453
621
  "getter": false,
454
622
  "setter": false,
455
623
  "reflect": true,
456
624
  "attribute": "format"
625
+ },
626
+ "hideControls": {
627
+ "type": "boolean",
628
+ "mutable": false,
629
+ "complexType": {
630
+ "original": "boolean",
631
+ "resolved": "boolean",
632
+ "references": {}
633
+ },
634
+ "required": false,
635
+ "optional": false,
636
+ "docs": {
637
+ "tags": [],
638
+ "text": "Oculta los botones \u00B1 (campo num\u00E9rico \"plano\": precio, tasa). Las flechas\n\u2191\u2193 siguen escalonando. Reflejado para que el CSS del host lo lea."
639
+ },
640
+ "getter": false,
641
+ "setter": false,
642
+ "reflect": true,
643
+ "attribute": "hide-controls",
644
+ "defaultValue": "false"
645
+ },
646
+ "suffix": {
647
+ "type": "string",
648
+ "mutable": false,
649
+ "complexType": {
650
+ "original": "string",
651
+ "resolved": "string | undefined",
652
+ "references": {}
653
+ },
654
+ "required": false,
655
+ "optional": true,
656
+ "docs": {
657
+ "tags": [],
658
+ "text": "Sufijo de texto a la derecha del n\u00FAmero (moneda, unidad). Reemplaza al \"%\"\nautom\u00E1tico de `format`; cadena vac\u00EDa = sin sufijo (\u00FAtil cuando el slot\n`suffix` ya lleva el control que indica la unidad)."
659
+ },
660
+ "getter": false,
661
+ "setter": false,
662
+ "reflect": false,
663
+ "attribute": "suffix"
457
664
  }
458
665
  };
459
666
  }