@mono-lit/helper 0.0.0-stage → 0.0.2

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 (539) hide show
  1. package/LICENSE.md +55 -0
  2. package/README.md +35 -3
  3. package/dist/breakpoints-CAbhDUht.js +84 -0
  4. package/dist/checkbox-Cqpie9Ap.js +4 -0
  5. package/dist/chip-DBUUa2eB.js +4 -0
  6. package/dist/chip-limits-BMoO31JM.js +213 -0
  7. package/dist/chip-strip-Cw3gyz0q.js +213 -0
  8. package/dist/color-DHYrfXsX.js +253 -0
  9. package/dist/css-class-BRKRzHx-.js +60 -0
  10. package/dist/css-size-DhHSVZJK.js +37 -0
  11. package/dist/data/theme/presets.json.d.ts +140 -0
  12. package/dist/data-source-controller-B_rgHCjw.js +241 -0
  13. package/dist/data-source-controller-Dbb4fd8I.js +241 -0
  14. package/dist/data-source-options-CP-X62Pa.js +535 -0
  15. package/dist/data-source-options-Jqj7LU3Z.js +537 -0
  16. package/dist/data-source-read-B4DGp6UQ.js +216 -0
  17. package/dist/data-source-read-DL88aH8t.js +217 -0
  18. package/dist/decorate-DEXtNagw.js +141 -0
  19. package/dist/element-props-CLB6yvbm.js +114 -0
  20. package/dist/esm-Ptok4SQZ.js +2026 -0
  21. package/dist/excel-CY6zGkcx.js +608 -0
  22. package/dist/excel-DopRbEMK.js +608 -0
  23. package/dist/export-BiGVyxt6.js +2302 -0
  24. package/dist/export.d.ts +1 -0
  25. package/dist/export.js +2302 -0
  26. package/dist/field-icons-DELrSdqJ.js +86 -0
  27. package/dist/field-path-C92eGLg3.js +251 -0
  28. package/dist/filter-builder-Bke3qOgJ.js +205 -0
  29. package/dist/filter-builder-CE4zE0V5.js +205 -0
  30. package/dist/filter-eval-DIfU2EAn.js +173 -0
  31. package/dist/filter-odata-C1vSGZaY.js +591 -0
  32. package/dist/form-control-core-B8d7k6vk.js +223 -0
  33. package/dist/form-control-core-eeRr0zLU.js +223 -0
  34. package/dist/hydration-flush-RB5Tz5nl.js +1001 -0
  35. package/dist/icon-CJkTlmTb.js +55 -0
  36. package/dist/icon-dVhYJUIH.js +17 -0
  37. package/dist/import-BgJdkwBI.js +606 -0
  38. package/dist/import.d.ts +1 -0
  39. package/dist/import.js +606 -0
  40. package/dist/index.d.ts +1 -0
  41. package/dist/index.js +16 -0
  42. package/dist/index.node-BIqEGehH.js +396 -0
  43. package/dist/index.node.d.ts +1 -0
  44. package/dist/index.node.js +16 -0
  45. package/dist/input-zGOULADt.js +4 -0
  46. package/dist/layout-var-CZnzMC0s.js +73 -0
  47. package/dist/light-slots-BVJwyg_2.js +244 -0
  48. package/dist/light-slots-DW1WgfgT.js +254 -0
  49. package/dist/markdown-DfqrfOJN.js +20146 -0
  50. package/dist/mono-button-simcTQdW.js +873 -0
  51. package/dist/mono-button.shadow-B_rKOY9N.js +784 -0
  52. package/dist/mono-data-chart-CEv29_NS.js +779 -0
  53. package/dist/mono-data-dropdown-Wnoke6zO.js +357 -0
  54. package/dist/mono-data-grid-CjkEqxgE.js +3913 -0
  55. package/dist/mono-data-grid-YjR3n9Ar.js +3915 -0
  56. package/dist/mono-element-B0kP_96P.js +232 -0
  57. package/dist/mono-event-Bi1qP9uN.js +129 -0
  58. package/dist/mono-form-controller-5PfsU4qa.js +409 -0
  59. package/dist/mono-modal-controller-BMO3n3rP.js +223 -0
  60. package/dist/mono-ui-CPV7rrdo.js +358 -0
  61. package/dist/normalize-error-Gcgmgh5i.js +871 -0
  62. package/dist/notifier-CE4yxMUQ.js +88 -0
  63. package/dist/nuxt.d.ts +1 -0
  64. package/dist/nuxt.js +130 -0
  65. package/dist/popup-portal-BziRX1yG.js +465 -0
  66. package/dist/popup-stack-CEEMib__.js +189 -0
  67. package/dist/rate-limit-BBa2PO79.js +521 -0
  68. package/dist/reactive-D3EERqgO.js +47 -0
  69. package/dist/reactive-Di3mTMnV.js +1087 -0
  70. package/dist/search.d.ts +1 -0
  71. package/dist/search.js +97 -0
  72. package/dist/src/components/accordion/accordion-core.d.ts +62 -0
  73. package/dist/src/components/accordion/accordion-types.d.ts +62 -0
  74. package/dist/src/components/accordion/index.d.ts +3 -0
  75. package/dist/src/components/accordion/index.shadow.d.ts +5 -0
  76. package/dist/src/components/accordion/mono-accordion.d.ts +55 -0
  77. package/dist/src/components/accordion/mono-accordion.shadow.d.ts +56 -0
  78. package/dist/src/components/alert/alert-core.d.ts +46 -0
  79. package/dist/src/components/alert/alert-types.d.ts +44 -0
  80. package/dist/src/components/alert/index.d.ts +3 -0
  81. package/dist/src/components/alert/index.shadow.d.ts +5 -0
  82. package/dist/src/components/alert/mono-alert.d.ts +44 -0
  83. package/dist/src/components/alert/mono-alert.shadow.d.ts +34 -0
  84. package/dist/src/components/breadcrumb/breadcrumb-core.d.ts +61 -0
  85. package/dist/src/components/breadcrumb/breadcrumb-list-core.d.ts +49 -0
  86. package/dist/src/components/breadcrumb/breadcrumb-render.d.ts +31 -0
  87. package/dist/src/components/breadcrumb/breadcrumb-types.d.ts +117 -0
  88. package/dist/src/components/breadcrumb/breadcrumb-utils.d.ts +43 -0
  89. package/dist/src/components/breadcrumb/index.d.ts +6 -0
  90. package/dist/src/components/breadcrumb/index.shadow.d.ts +8 -0
  91. package/dist/src/components/breadcrumb/mono-breadcrumb-list.d.ts +29 -0
  92. package/dist/src/components/breadcrumb/mono-breadcrumb-list.shadow.d.ts +48 -0
  93. package/dist/src/components/breadcrumb/mono-breadcrumb.d.ts +38 -0
  94. package/dist/src/components/breadcrumb/mono-breadcrumb.shadow.d.ts +73 -0
  95. package/dist/src/components/button/button-core.d.ts +90 -0
  96. package/dist/src/components/button/button-dropdown-core.d.ts +57 -0
  97. package/dist/src/components/button/button-dropdown-types.d.ts +129 -0
  98. package/dist/src/components/button/button-types.d.ts +219 -0
  99. package/dist/src/components/button/button-utils.d.ts +18 -0
  100. package/dist/src/components/button/index.button-dropdown.d.ts +4 -0
  101. package/dist/src/components/button/index.button-dropdown.shadow.d.ts +4 -0
  102. package/dist/src/components/button/index.d.ts +8 -0
  103. package/dist/src/components/button/index.shadow.d.ts +5 -0
  104. package/dist/src/components/button/mono-button-dropdown.d.ts +35 -0
  105. package/dist/src/components/button/mono-button-dropdown.shadow.d.ts +45 -0
  106. package/dist/src/components/button/mono-button.d.ts +123 -0
  107. package/dist/src/components/button/mono-button.shadow.d.ts +56 -0
  108. package/dist/src/components/card/card-core.d.ts +75 -0
  109. package/dist/src/components/card/card-types.d.ts +137 -0
  110. package/dist/src/components/card/card-utils.d.ts +23 -0
  111. package/dist/src/components/card/index.d.ts +4 -0
  112. package/dist/src/components/card/index.shadow.d.ts +6 -0
  113. package/dist/src/components/card/mono-card.d.ts +56 -0
  114. package/dist/src/components/card/mono-card.shadow.d.ts +52 -0
  115. package/dist/src/components/chart/chart-core.d.ts +43 -0
  116. package/dist/src/components/chart/chart-odata.d.ts +52 -0
  117. package/dist/src/components/chart/chart-types.d.ts +356 -0
  118. package/dist/src/components/chart/index.d.ts +8 -0
  119. package/dist/src/components/chart/index.shadow.d.ts +7 -0
  120. package/dist/src/components/chart/mono-chart-presets.d.ts +43 -0
  121. package/dist/src/components/chart/mono-chart-presets.shadow.d.ts +43 -0
  122. package/dist/src/components/chart/mono-chart.d.ts +30 -0
  123. package/dist/src/components/chart/mono-chart.shadow.d.ts +22 -0
  124. package/dist/src/components/chart/mono-data-chart.d.ts +27 -0
  125. package/dist/src/components/checkbox/checkbox-core.d.ts +53 -0
  126. package/dist/src/components/checkbox/checkbox-types.d.ts +69 -0
  127. package/dist/src/components/checkbox/checkbox-utils.d.ts +35 -0
  128. package/dist/src/components/checkbox/index.d.ts +4 -0
  129. package/dist/src/components/checkbox/index.shadow.d.ts +5 -0
  130. package/dist/src/components/checkbox/mono-checkbox.d.ts +34 -0
  131. package/dist/src/components/checkbox/mono-checkbox.shadow.d.ts +45 -0
  132. package/dist/src/components/chip/chip-core.d.ts +58 -0
  133. package/dist/src/components/chip/chip-types.d.ts +142 -0
  134. package/dist/src/components/chip/chip-utils.d.ts +24 -0
  135. package/dist/src/components/chip/index.d.ts +8 -0
  136. package/dist/src/components/chip/index.shadow.d.ts +6 -0
  137. package/dist/src/components/chip/mono-chip.d.ts +48 -0
  138. package/dist/src/components/chip/mono-chip.shadow.d.ts +33 -0
  139. package/dist/src/components/chip/mono-status-dot.d.ts +34 -0
  140. package/dist/src/components/date/date-core.d.ts +80 -0
  141. package/dist/src/components/date/date-types.d.ts +163 -0
  142. package/dist/src/components/date/index.d.ts +3 -0
  143. package/dist/src/components/date/index.shadow.d.ts +4 -0
  144. package/dist/src/components/date/mono-date.d.ts +22 -0
  145. package/dist/src/components/date/mono-date.shadow.d.ts +31 -0
  146. package/dist/src/components/drawer/drawer-core.d.ts +99 -0
  147. package/dist/src/components/drawer/drawer-types.d.ts +153 -0
  148. package/dist/src/components/drawer/index.d.ts +3 -0
  149. package/dist/src/components/drawer/index.shadow.d.ts +4 -0
  150. package/dist/src/components/drawer/mono-drawer.d.ts +45 -0
  151. package/dist/src/components/drawer/mono-drawer.shadow.d.ts +46 -0
  152. package/dist/src/components/dropdown/dropdown-core.d.ts +33 -0
  153. package/dist/src/components/dropdown/dropdown-types.d.ts +88 -0
  154. package/dist/src/components/dropdown/index.d.ts +3 -0
  155. package/dist/src/components/dropdown/index.shadow.d.ts +4 -0
  156. package/dist/src/components/dropdown/mono-dropdown.d.ts +34 -0
  157. package/dist/src/components/dropdown/mono-dropdown.shadow.d.ts +28 -0
  158. package/dist/src/components/dropdown-table/dropdown-table-core.d.ts +65 -0
  159. package/dist/src/components/dropdown-table/dropdown-table-types.d.ts +278 -0
  160. package/dist/src/components/dropdown-table/index.d.ts +5 -0
  161. package/dist/src/components/dropdown-table/index.shadow.d.ts +6 -0
  162. package/dist/src/components/dropdown-table/mono-data-dropdown.d.ts +152 -0
  163. package/dist/src/components/dropdown-table/mono-dropdown-table.d.ts +46 -0
  164. package/dist/src/components/dropdown-table/mono-dropdown-table.shadow.d.ts +22 -0
  165. package/dist/src/components/file-upload/file-upload-core.d.ts +60 -0
  166. package/dist/src/components/file-upload/file-upload-types.d.ts +145 -0
  167. package/dist/src/components/file-upload/file-upload-utils.d.ts +16 -0
  168. package/dist/src/components/file-upload/index.d.ts +4 -0
  169. package/dist/src/components/file-upload/index.shadow.d.ts +5 -0
  170. package/dist/src/components/file-upload/mono-file-upload.d.ts +33 -0
  171. package/dist/src/components/file-upload/mono-file-upload.shadow.d.ts +50 -0
  172. package/dist/src/components/filter/filter-builder-core.d.ts +36 -0
  173. package/dist/src/components/filter/filter-builder.d.ts +23 -0
  174. package/dist/src/components/filter/filter-odata.d.ts +27 -0
  175. package/dist/src/components/filter/filter-operators.d.ts +13 -0
  176. package/dist/src/components/filter/filter-types.d.ts +253 -0
  177. package/dist/src/components/filter/index.d.ts +6 -0
  178. package/dist/src/components/filter/index.shadow.d.ts +7 -0
  179. package/dist/src/components/filter/mono-filter-builder.d.ts +21 -0
  180. package/dist/src/components/filter/mono-filter-builder.shadow.d.ts +17 -0
  181. package/dist/src/components/form/form-control-core.d.ts +37 -0
  182. package/dist/src/components/form/form-rules.d.ts +25 -0
  183. package/dist/src/components/form/form-types.d.ts +307 -0
  184. package/dist/src/components/form/index.d.ts +6 -0
  185. package/dist/src/components/form/mono-form-controller.d.ts +16 -0
  186. package/dist/src/components/input/index.d.ts +6 -0
  187. package/dist/src/components/input/index.shadow.d.ts +8 -0
  188. package/dist/src/components/input/input-core.d.ts +91 -0
  189. package/dist/src/components/input/input-format.d.ts +118 -0
  190. package/dist/src/components/input/input-types.d.ts +179 -0
  191. package/dist/src/components/input/input-utils.d.ts +10 -0
  192. package/dist/src/components/input/mono-input.d.ts +46 -0
  193. package/dist/src/components/input/mono-input.shadow.d.ts +34 -0
  194. package/dist/src/components/menu/index.d.ts +6 -0
  195. package/dist/src/components/menu/index.shadow.d.ts +7 -0
  196. package/dist/src/components/menu/menu-core.d.ts +65 -0
  197. package/dist/src/components/menu/menu-render.d.ts +55 -0
  198. package/dist/src/components/menu/menu-types.d.ts +195 -0
  199. package/dist/src/components/menu/menu-utils.d.ts +53 -0
  200. package/dist/src/components/menu/mono-menu-list.d.ts +118 -0
  201. package/dist/src/components/menu/mono-menu.d.ts +39 -0
  202. package/dist/src/components/menu/mono-menu.shadow.d.ts +40 -0
  203. package/dist/src/components/modal/index.d.ts +4 -0
  204. package/dist/src/components/modal/index.shadow.d.ts +5 -0
  205. package/dist/src/components/modal/modal-core.d.ts +110 -0
  206. package/dist/src/components/modal/modal-types.d.ts +304 -0
  207. package/dist/src/components/modal/mono-modal-controller.d.ts +4 -0
  208. package/dist/src/components/modal/mono-modal.d.ts +45 -0
  209. package/dist/src/components/modal/mono-modal.shadow.d.ts +50 -0
  210. package/dist/src/components/nav/index.d.ts +4 -0
  211. package/dist/src/components/nav/index.shadow.d.ts +6 -0
  212. package/dist/src/components/nav/mono-nav.d.ts +41 -0
  213. package/dist/src/components/nav/mono-nav.shadow.d.ts +21 -0
  214. package/dist/src/components/nav/nav-core.d.ts +34 -0
  215. package/dist/src/components/nav/nav-types.d.ts +48 -0
  216. package/dist/src/components/nav/nav-utils.d.ts +12 -0
  217. package/dist/src/components/radio/index.d.ts +4 -0
  218. package/dist/src/components/radio/index.shadow.d.ts +5 -0
  219. package/dist/src/components/radio/mono-radio.d.ts +31 -0
  220. package/dist/src/components/radio/mono-radio.shadow.d.ts +35 -0
  221. package/dist/src/components/radio/radio-core.d.ts +45 -0
  222. package/dist/src/components/radio/radio-types.d.ts +58 -0
  223. package/dist/src/components/radio/radio-utils.d.ts +12 -0
  224. package/dist/src/components/rich-text-editor/index.d.ts +5 -0
  225. package/dist/src/components/rich-text-editor/index.shadow.d.ts +6 -0
  226. package/dist/src/components/rich-text-editor/mono-rich-text-editor.d.ts +31 -0
  227. package/dist/src/components/rich-text-editor/mono-rich-text-editor.shadow.d.ts +34 -0
  228. package/dist/src/components/rich-text-editor/rich-text-editor-core.d.ts +100 -0
  229. package/dist/src/components/rich-text-editor/rich-text-editor-loader.d.ts +17 -0
  230. package/dist/src/components/rich-text-editor/rich-text-editor-toolbar.d.ts +65 -0
  231. package/dist/src/components/rich-text-editor/rich-text-editor-types.d.ts +231 -0
  232. package/dist/src/components/select/index.d.ts +4 -0
  233. package/dist/src/components/select/index.shadow.d.ts +5 -0
  234. package/dist/src/components/select/mono-select.d.ts +69 -0
  235. package/dist/src/components/select/mono-select.shadow.d.ts +48 -0
  236. package/dist/src/components/select/select-core.d.ts +98 -0
  237. package/dist/src/components/select/select-types.d.ts +284 -0
  238. package/dist/src/components/select/select-utils.d.ts +7 -0
  239. package/dist/src/components/sidebar/index.d.ts +4 -0
  240. package/dist/src/components/sidebar/index.shadow.d.ts +6 -0
  241. package/dist/src/components/sidebar/mono-sidebar.d.ts +34 -0
  242. package/dist/src/components/sidebar/mono-sidebar.shadow.d.ts +27 -0
  243. package/dist/src/components/sidebar/sidebar-core.d.ts +51 -0
  244. package/dist/src/components/sidebar/sidebar-types.d.ts +119 -0
  245. package/dist/src/components/sidebar/sidebar-utils.d.ts +55 -0
  246. package/dist/src/components/switch/index.d.ts +4 -0
  247. package/dist/src/components/switch/index.shadow.d.ts +5 -0
  248. package/dist/src/components/switch/mono-switch.d.ts +31 -0
  249. package/dist/src/components/switch/mono-switch.shadow.d.ts +36 -0
  250. package/dist/src/components/switch/switch-core.d.ts +49 -0
  251. package/dist/src/components/switch/switch-types.d.ts +64 -0
  252. package/dist/src/components/switch/switch-utils.d.ts +12 -0
  253. package/dist/src/components/table/array-source.d.ts +44 -0
  254. package/dist/src/components/table/date-filter-tree.d.ts +93 -0
  255. package/dist/src/components/table/grouping.d.ts +55 -0
  256. package/dist/src/components/table/index.d.ts +33 -0
  257. package/dist/src/components/table/index.shadow.d.ts +47 -0
  258. package/dist/src/components/table/mono-data-grid.d.ts +1756 -0
  259. package/dist/src/components/table/mono-table-checkbox-core.d.ts +76 -0
  260. package/dist/src/components/table/mono-table-checkbox.d.ts +34 -0
  261. package/dist/src/components/table/mono-table-checkbox.shadow.d.ts +26 -0
  262. package/dist/src/components/table/mono-table-detail-core.d.ts +87 -0
  263. package/dist/src/components/table/mono-table-detail.d.ts +32 -0
  264. package/dist/src/components/table/mono-table-detail.shadow.d.ts +31 -0
  265. package/dist/src/components/table/mono-table-empty-core.d.ts +60 -0
  266. package/dist/src/components/table/mono-table-empty.d.ts +35 -0
  267. package/dist/src/components/table/mono-table-empty.shadow.d.ts +40 -0
  268. package/dist/src/components/table/mono-table-error-core.d.ts +84 -0
  269. package/dist/src/components/table/mono-table-error.d.ts +28 -0
  270. package/dist/src/components/table/mono-table-error.shadow.d.ts +21 -0
  271. package/dist/src/components/table/mono-table-info-core.d.ts +13 -0
  272. package/dist/src/components/table/mono-table-info.d.ts +19 -0
  273. package/dist/src/components/table/mono-table-info.shadow.d.ts +14 -0
  274. package/dist/src/components/table/mono-table-loading-core.d.ts +41 -0
  275. package/dist/src/components/table/mono-table-loading.d.ts +50 -0
  276. package/dist/src/components/table/mono-table-loading.shadow.d.ts +14 -0
  277. package/dist/src/components/table/mono-table-page-size-core.d.ts +14 -0
  278. package/dist/src/components/table/mono-table-page-size.d.ts +16 -0
  279. package/dist/src/components/table/mono-table-page-size.shadow.d.ts +11 -0
  280. package/dist/src/components/table/mono-table-paging-core.d.ts +22 -0
  281. package/dist/src/components/table/mono-table-paging-group-core.d.ts +18 -0
  282. package/dist/src/components/table/mono-table-paging-group.d.ts +20 -0
  283. package/dist/src/components/table/mono-table-paging-group.shadow.d.ts +13 -0
  284. package/dist/src/components/table/mono-table-paging.d.ts +16 -0
  285. package/dist/src/components/table/mono-table-paging.shadow.d.ts +11 -0
  286. package/dist/src/components/table/mono-table-search-core.d.ts +74 -0
  287. package/dist/src/components/table/mono-table-search.d.ts +34 -0
  288. package/dist/src/components/table/mono-table-search.shadow.d.ts +21 -0
  289. package/dist/src/components/table/mono-table-sort-core.d.ts +35 -0
  290. package/dist/src/components/table/mono-table-sort.d.ts +38 -0
  291. package/dist/src/components/table/mono-table-sort.shadow.d.ts +20 -0
  292. package/dist/src/components/table/mono-table-summary-core.d.ts +26 -0
  293. package/dist/src/components/table/mono-table-summary.d.ts +24 -0
  294. package/dist/src/components/table/mono-table-summary.shadow.d.ts +14 -0
  295. package/dist/src/components/table/mono-table-th-core.d.ts +56 -0
  296. package/dist/src/components/table/mono-table-th.d.ts +41 -0
  297. package/dist/src/components/table/mono-table-th.shadow.d.ts +19 -0
  298. package/dist/src/components/table/store-group-source.d.ts +24 -0
  299. package/dist/src/components/table/table-controller-core.d.ts +40 -0
  300. package/dist/src/components/table/table-filter-icons.d.ts +3 -0
  301. package/dist/src/components/table/table-menu-core.d.ts +65 -0
  302. package/dist/src/components/table/table-overlay.d.ts +165 -0
  303. package/dist/src/components/table/table-sort-icons.d.ts +4 -0
  304. package/dist/src/components/table/table-sort-utils.d.ts +20 -0
  305. package/dist/src/components/table/table-types.d.ts +475 -0
  306. package/dist/src/components/tabs/index.d.ts +3 -0
  307. package/dist/src/components/tabs/index.shadow.d.ts +4 -0
  308. package/dist/src/components/tabs/mono-tabs.d.ts +33 -0
  309. package/dist/src/components/tabs/mono-tabs.shadow.d.ts +37 -0
  310. package/dist/src/components/tabs/tabs-core.d.ts +57 -0
  311. package/dist/src/components/tabs/tabs-types.d.ts +65 -0
  312. package/dist/src/components/tag-input/index.d.ts +4 -0
  313. package/dist/src/components/tag-input/index.shadow.d.ts +5 -0
  314. package/dist/src/components/tag-input/mono-tag-input.d.ts +66 -0
  315. package/dist/src/components/tag-input/mono-tag-input.shadow.d.ts +40 -0
  316. package/dist/src/components/tag-input/tag-input-core.d.ts +108 -0
  317. package/dist/src/components/tag-input/tag-input-types.d.ts +420 -0
  318. package/dist/src/components/tag-input/tag-input-utils.d.ts +8 -0
  319. package/dist/src/components/textarea/index.d.ts +4 -0
  320. package/dist/src/components/textarea/index.shadow.d.ts +5 -0
  321. package/dist/src/components/textarea/mono-textarea.d.ts +29 -0
  322. package/dist/src/components/textarea/mono-textarea.shadow.d.ts +31 -0
  323. package/dist/src/components/textarea/textarea-core.d.ts +60 -0
  324. package/dist/src/components/textarea/textarea-types.d.ts +131 -0
  325. package/dist/src/components/textarea/textarea-utils.d.ts +7 -0
  326. package/dist/src/components/tooltip/control-tooltip.d.ts +36 -0
  327. package/dist/src/components/tooltip/index.d.ts +6 -0
  328. package/dist/src/components/tooltip/tooltip-config.d.ts +27 -0
  329. package/dist/src/components/tooltip/tooltip-declarative.d.ts +41 -0
  330. package/dist/src/components/tooltip/tooltip-loader.d.ts +1 -0
  331. package/dist/src/components/tooltip/tooltip-types.d.ts +110 -0
  332. package/dist/src/composables/breakpoints.d.ts +59 -0
  333. package/dist/src/composables/chip-limits.d.ts +48 -0
  334. package/dist/src/composables/chip-strip.d.ts +93 -0
  335. package/dist/src/composables/color.d.ts +103 -0
  336. package/dist/src/composables/css-class.d.ts +27 -0
  337. package/dist/src/composables/css-size.d.ts +40 -0
  338. package/dist/src/composables/data-source-controller.d.ts +113 -0
  339. package/dist/src/composables/element-props.d.ts +46 -0
  340. package/dist/src/composables/field-icons.d.ts +15 -0
  341. package/dist/src/composables/hybird-prop.d.ts +79 -0
  342. package/dist/src/composables/hydration-flush.d.ts +34 -0
  343. package/dist/src/composables/icon.d.ts +17 -0
  344. package/dist/src/composables/layout-var.d.ts +34 -0
  345. package/dist/src/composables/light-slots.d.ts +133 -0
  346. package/dist/src/composables/mdi-glyphs.d.ts +4 -0
  347. package/dist/src/composables/mono-element.d.ts +9 -0
  348. package/dist/src/composables/mono-event.d.ts +55 -0
  349. package/dist/src/composables/mono-pending.d.ts +8 -0
  350. package/dist/src/composables/mono-skeleton.d.ts +193 -0
  351. package/dist/src/composables/mono-ui.d.ts +58 -0
  352. package/dist/src/composables/notifier.d.ts +46 -0
  353. package/dist/src/composables/popup-portal.d.ts +226 -0
  354. package/dist/src/composables/popup-stack.d.ts +70 -0
  355. package/dist/src/composables/rate-limit.d.ts +108 -0
  356. package/dist/src/composables/reactive.d.ts +53 -0
  357. package/dist/src/composables/shadow-css.d.ts +42 -0
  358. package/dist/src/composables/visibility.d.ts +36 -0
  359. package/dist/src/data/theme/index.d.ts +30 -0
  360. package/dist/src/data/theme/presets.d.ts +94 -0
  361. package/dist/src/entries/index.d.ts +2 -0
  362. package/dist/src/entries/index.node.d.ts +42 -0
  363. package/dist/src/entries/search.d.ts +3 -0
  364. package/dist/src/export/detail.d.ts +29 -0
  365. package/dist/src/export/download.d.ts +9 -0
  366. package/dist/src/export/excel/index.d.ts +27 -0
  367. package/dist/src/export/excel/nodes.d.ts +123 -0
  368. package/dist/src/export/expression.d.ts +36 -0
  369. package/dist/src/export/helpers.d.ts +6 -0
  370. package/dist/src/export/index.d.ts +13 -0
  371. package/dist/src/export/markdown.d.ts +52 -0
  372. package/dist/src/export/resolve-data.d.ts +31 -0
  373. package/dist/src/export/sentinel.d.ts +97 -0
  374. package/dist/src/export/sheet-name.d.ts +45 -0
  375. package/dist/src/export/styles.d.ts +33 -0
  376. package/dist/src/export/template.d.ts +10 -0
  377. package/dist/src/export/types.d.ts +259 -0
  378. package/dist/src/import/coerce.d.ts +38 -0
  379. package/dist/src/import/index.d.ts +16 -0
  380. package/dist/src/import/match.d.ts +54 -0
  381. package/dist/src/import/parse.d.ts +15 -0
  382. package/dist/src/import/types.d.ts +153 -0
  383. package/dist/src/nuxt/index.d.ts +94 -0
  384. package/dist/src/search/data-search.d.ts +207 -0
  385. package/dist/src/search/field-path.d.ts +107 -0
  386. package/dist/src/search/filter-eval.d.ts +30 -0
  387. package/dist/src/search/index.d.ts +22 -0
  388. package/dist/src/search/odata-search.d.ts +18 -0
  389. package/dist/src/search/search-expr.d.ts +160 -0
  390. package/dist/src/utils/data-source-apply.d.ts +97 -0
  391. package/dist/src/utils/data-source-options.d.ts +116 -0
  392. package/dist/src/utils/data-source-read.d.ts +85 -0
  393. package/dist/src/utils/data-source-summary.d.ts +55 -0
  394. package/dist/src/utils/normalize-error.d.ts +90 -0
  395. package/dist/src/vite/index.d.ts +48 -0
  396. package/dist/src/vite/mono-client-only.d.ts +35 -0
  397. package/dist/src/vite/mono-ssr-stub.d.ts +20 -0
  398. package/dist/src/vite/shadow-manifest.d.ts +8 -0
  399. package/dist/styles-BIJ31TM4.js +20146 -0
  400. package/dist/tooltip-DQqNpqk2.js +795 -0
  401. package/dist/tooltip.d.ts +1 -0
  402. package/dist/tooltip.js +2 -0
  403. package/dist/ui/accordion.d.ts +1 -0
  404. package/dist/ui/accordion.js +466 -0
  405. package/dist/ui/alert.d.ts +1 -0
  406. package/dist/ui/alert.js +221 -0
  407. package/dist/ui/breadcrumb.d.ts +1 -0
  408. package/dist/ui/breadcrumb.js +902 -0
  409. package/dist/ui/button-dropdown.d.ts +1 -0
  410. package/dist/ui/button-dropdown.js +679 -0
  411. package/dist/ui/button.d.ts +1 -0
  412. package/dist/ui/button.js +63 -0
  413. package/dist/ui/card.d.ts +1 -0
  414. package/dist/ui/card.js +524 -0
  415. package/dist/ui/chart.d.ts +1 -0
  416. package/dist/ui/chart.js +885 -0
  417. package/dist/ui/checkbox.d.ts +1 -0
  418. package/dist/ui/checkbox.js +413 -0
  419. package/dist/ui/chip.d.ts +1 -0
  420. package/dist/ui/chip.js +558 -0
  421. package/dist/ui/date.d.ts +1 -0
  422. package/dist/ui/date.js +686 -0
  423. package/dist/ui/drawer.d.ts +1 -0
  424. package/dist/ui/drawer.js +901 -0
  425. package/dist/ui/dropdown-table.d.ts +1 -0
  426. package/dist/ui/dropdown-table.js +1291 -0
  427. package/dist/ui/dropdown.d.ts +1 -0
  428. package/dist/ui/dropdown.js +586 -0
  429. package/dist/ui/file-upload.d.ts +1 -0
  430. package/dist/ui/file-upload.js +688 -0
  431. package/dist/ui/filter.d.ts +1 -0
  432. package/dist/ui/filter.js +400 -0
  433. package/dist/ui/font/files/geist-47c091c9.woff2 +0 -0
  434. package/dist/ui/font/files/geist-8dd77544.woff2 +0 -0
  435. package/dist/ui/font/files/geist-b9248b1e.woff2 +0 -0
  436. package/dist/ui/font/files/geist-d40d74b4.woff2 +0 -0
  437. package/dist/ui/font/files/geist-f493429a.woff2 +0 -0
  438. package/dist/ui/font/files/geistmono-03737868.woff2 +0 -0
  439. package/dist/ui/font/files/geistmono-421a7e38.woff2 +0 -0
  440. package/dist/ui/font/files/geistmono-48ef518d.woff2 +0 -0
  441. package/dist/ui/font/files/geistmono-5df35d39.woff2 +0 -0
  442. package/dist/ui/font/files/geistmono-7de289a4.woff2 +0 -0
  443. package/dist/ui/font/files/geistmono-e976128f.woff2 +0 -0
  444. package/dist/ui/font/files/inter-05cf802c.woff2 +0 -0
  445. package/dist/ui/font/files/inter-2b2f25a4.woff2 +0 -0
  446. package/dist/ui/font/files/inter-467acc7a.woff2 +0 -0
  447. package/dist/ui/font/files/inter-6e85163c.woff2 +0 -0
  448. package/dist/ui/font/files/inter-7048add3.woff2 +0 -0
  449. package/dist/ui/font/files/inter-9be0371e.woff2 +0 -0
  450. package/dist/ui/font/files/inter-a28b7e31.woff2 +0 -0
  451. package/dist/ui/font/files/poppins-054df55a.woff2 +0 -0
  452. package/dist/ui/font/files/poppins-0ee5dc9a.woff2 +0 -0
  453. package/dist/ui/font/files/poppins-0f44cb18.woff2 +0 -0
  454. package/dist/ui/font/files/poppins-0ff0d30c.woff2 +0 -0
  455. package/dist/ui/font/files/poppins-13045147.woff2 +0 -0
  456. package/dist/ui/font/files/poppins-1db57cd9.woff2 +0 -0
  457. package/dist/ui/font/files/poppins-2cf2a902.woff2 +0 -0
  458. package/dist/ui/font/files/poppins-39e7f079.woff2 +0 -0
  459. package/dist/ui/font/files/poppins-9607042d.woff2 +0 -0
  460. package/dist/ui/font/files/poppins-9a88fc1f.woff2 +0 -0
  461. package/dist/ui/font/files/poppins-b8f4f752.woff2 +0 -0
  462. package/dist/ui/font/files/poppins-f5e57db4.woff2 +0 -0
  463. package/dist/ui/font/geist-mono.css +104 -0
  464. package/dist/ui/font/geist.css +168 -0
  465. package/dist/ui/font/inter.css +232 -0
  466. package/dist/ui/font/poppins.css +104 -0
  467. package/dist/ui/form.d.ts +1 -0
  468. package/dist/ui/form.js +3 -0
  469. package/dist/ui/index.css +21989 -0
  470. package/dist/ui/input.d.ts +1 -0
  471. package/dist/ui/input.js +1176 -0
  472. package/dist/ui/menu.d.ts +1 -0
  473. package/dist/ui/menu.js +1289 -0
  474. package/dist/ui/modal.d.ts +1 -0
  475. package/dist/ui/modal.js +996 -0
  476. package/dist/ui/nav.d.ts +1 -0
  477. package/dist/ui/nav.js +295 -0
  478. package/dist/ui/radio.d.ts +1 -0
  479. package/dist/ui/radio.js +379 -0
  480. package/dist/ui/rich-text-editor.d.ts +1 -0
  481. package/dist/ui/rich-text-editor.js +1338 -0
  482. package/dist/ui/select.d.ts +1 -0
  483. package/dist/ui/select.js +2200 -0
  484. package/dist/ui/shadow/accordion.js +442 -0
  485. package/dist/ui/shadow/alert.js +218 -0
  486. package/dist/ui/shadow/breadcrumb.js +919 -0
  487. package/dist/ui/shadow/button-dropdown.js +696 -0
  488. package/dist/ui/shadow/button.js +63 -0
  489. package/dist/ui/shadow/card.js +538 -0
  490. package/dist/ui/shadow/chart.js +1685 -0
  491. package/dist/ui/shadow/checkbox.js +457 -0
  492. package/dist/ui/shadow/chip.js +559 -0
  493. package/dist/ui/shadow/date.js +712 -0
  494. package/dist/ui/shadow/drawer.js +869 -0
  495. package/dist/ui/shadow/dropdown-table.js +1620 -0
  496. package/dist/ui/shadow/dropdown.js +547 -0
  497. package/dist/ui/shadow/file-upload.js +731 -0
  498. package/dist/ui/shadow/filter.js +402 -0
  499. package/dist/ui/shadow/input.js +1150 -0
  500. package/dist/ui/shadow/menu.js +899 -0
  501. package/dist/ui/shadow/modal.js +1194 -0
  502. package/dist/ui/shadow/nav.js +240 -0
  503. package/dist/ui/shadow/radio.js +408 -0
  504. package/dist/ui/shadow/rich-text-editor.js +1344 -0
  505. package/dist/ui/shadow/select.js +2167 -0
  506. package/dist/ui/shadow/sidebar.js +606 -0
  507. package/dist/ui/shadow/switch.js +428 -0
  508. package/dist/ui/shadow/table.js +4755 -0
  509. package/dist/ui/shadow/tabs.js +372 -0
  510. package/dist/ui/shadow/tag-input.js +2974 -0
  511. package/dist/ui/shadow/textarea.js +816 -0
  512. package/dist/ui/sidebar.d.ts +1 -0
  513. package/dist/ui/sidebar.js +659 -0
  514. package/dist/ui/switch.d.ts +1 -0
  515. package/dist/ui/switch.js +398 -0
  516. package/dist/ui/table.d.ts +1 -0
  517. package/dist/ui/table.js +4654 -0
  518. package/dist/ui/tabs.d.ts +1 -0
  519. package/dist/ui/tabs.js +379 -0
  520. package/dist/ui/tag-input.d.ts +1 -0
  521. package/dist/ui/tag-input.js +2947 -0
  522. package/dist/ui/textarea.d.ts +1 -0
  523. package/dist/ui/textarea.js +819 -0
  524. package/dist/ui/theme/legacy.css +293 -0
  525. package/dist/ui/theme/luma.css +743 -0
  526. package/dist/ui/theme/lyra.css +754 -0
  527. package/dist/ui/theme/maia.css +673 -0
  528. package/dist/ui/theme/mira.css +802 -0
  529. package/dist/ui/theme/nova.css +662 -0
  530. package/dist/ui/theme/one.css +699 -0
  531. package/dist/ui/theme/rhea.css +742 -0
  532. package/dist/ui/theme/sera.css +845 -0
  533. package/dist/ui/theme/tokens.css +261 -0
  534. package/dist/ui/theme/vega.css +467 -0
  535. package/dist/vite-C5iUK7so.js +329 -0
  536. package/dist/vite.d.ts +1 -0
  537. package/dist/vite.js +2 -0
  538. package/dist/vue.d.ts +282 -0
  539. package/package.json +411 -3
@@ -0,0 +1,816 @@
1
+ import { a as __decorate, f as customElement, i as withShadowUtilityStyles, l as defineHybridPropAliases, r as toShadowCss, s as booleanStringConverter, t as flushSsrHydration } from "../../hydration-flush-RB5Tz5nl.js";
2
+ import { t as dispatchMonoEvent } from "../../mono-event-Bi1qP9uN.js";
3
+ import { t as buildSizeStyle } from "../../css-size-DhHSVZJK.js";
4
+ import { t as MonoFormControlCore } from "../../form-control-core-B8d7k6vk.js";
5
+ import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
6
+ import { property, query, state } from "lit/decorators.js";
7
+ import { ifDefined } from "lit/directives/if-defined.js";
8
+ import { styleMap } from "lit/directives/style-map.js";
9
+ //#region src/components/textarea/textarea-core.ts
10
+ var numberStringConverter = {
11
+ fromAttribute(value) {
12
+ if (value === null || value === "") return void 0;
13
+ const parsed = Number(value);
14
+ return Number.isFinite(parsed) ? parsed : void 0;
15
+ },
16
+ toAttribute(value) {
17
+ if (value === void 0 || value === null) return null;
18
+ return String(value);
19
+ }
20
+ };
21
+ /**
22
+ * `MonoTextareaCore` — render-mode-agnostic logic for `mono-textarea` (props,
23
+ * hybrid aliases, value/model sync, validation, char counter, auto-resize, and
24
+ * the full `render()`). SSR-safe: the only DOM/`window` access (`_syncAutoResize`)
25
+ * is `isServer`-guarded. Each build supplies `createRenderRoot()` + `static styles`
26
+ * and the slot strategy via the `_slotOutlet` hook (light: `data-mono-slot`
27
+ * placeholders; shadow: native `<slot>`). Mirrors `switch-core`/`select-core`.
28
+ */
29
+ var MonoTextareaCore = (superClass) => {
30
+ class MonoTextareaCoreClass extends MonoFormControlCore(superClass) {
31
+ constructor(...args) {
32
+ super(...args);
33
+ this.size = "md";
34
+ this.color = "primary";
35
+ this.variant = "outlined";
36
+ this.modelValue = "";
37
+ this.value = "";
38
+ this.name = "";
39
+ this.placeholder = "";
40
+ this.label = "";
41
+ this.helperText = "";
42
+ this.validationState = "default";
43
+ this.validationMessage = "";
44
+ this.errorMessage = "";
45
+ this.successMessage = "";
46
+ this.disabled = false;
47
+ this.readonly = false;
48
+ this.required = false;
49
+ this.autofocus = false;
50
+ this.autoResize = false;
51
+ this.showCounter = false;
52
+ this.cssClass = {};
53
+ this.cssClassName = "";
54
+ this._hasLabelSlotState = false;
55
+ this._hasHelperSlotState = false;
56
+ this._textareaId = `mono-textarea-${Math.random().toString(36).slice(2)}`;
57
+ this._messageId = `${this._textareaId}-message`;
58
+ this._lastAutoResizeWidth = -1;
59
+ defineHybridPropAliases(this, [
60
+ "modelValue",
61
+ "helperText",
62
+ "validationState",
63
+ "validationMessage",
64
+ "errorMessage",
65
+ "successMessage",
66
+ "autoResize",
67
+ "minRows",
68
+ "maxRows",
69
+ "minLength",
70
+ "maxLength",
71
+ "showCounter",
72
+ "ariaLabelText",
73
+ "cssClass",
74
+ "minWidth",
75
+ "maxWidth",
76
+ "minHeight",
77
+ "maxHeight"
78
+ ]);
79
+ /**
80
+ * Vue support:
81
+ *
82
+ * <mono-textarea :cssClass="{}" />
83
+ * <mono-textarea :css-class="{}" />
84
+ * <mono-textarea :cssclass="{}" />
85
+ */
86
+ Object.defineProperty(this, "css-class", {
87
+ get: () => this.cssClass,
88
+ set: (value) => {
89
+ this._setCssClass(value);
90
+ },
91
+ configurable: true,
92
+ enumerable: false
93
+ });
94
+ Object.defineProperty(this, "cssclass", {
95
+ get: () => this.cssClass,
96
+ set: (value) => {
97
+ this._setCssClass(value);
98
+ },
99
+ configurable: true,
100
+ enumerable: false
101
+ });
102
+ Object.defineProperty(this, "ariaLabel", {
103
+ get: () => this.ariaLabelText,
104
+ set: (value) => {
105
+ this.ariaLabelText = value == null ? void 0 : String(value);
106
+ },
107
+ configurable: true,
108
+ enumerable: false
109
+ });
110
+ Object.defineProperty(this, "aria-label", {
111
+ get: () => this.ariaLabelText,
112
+ set: (value) => {
113
+ this.ariaLabelText = value == null ? void 0 : String(value);
114
+ },
115
+ configurable: true,
116
+ enumerable: false
117
+ });
118
+ Object.defineProperty(this, "arialabel", {
119
+ get: () => this.ariaLabelText,
120
+ set: (value) => {
121
+ this.ariaLabelText = value == null ? void 0 : String(value);
122
+ },
123
+ configurable: true,
124
+ enumerable: false
125
+ });
126
+ Object.defineProperty(this, "maxlength", {
127
+ get: () => this.maxLength,
128
+ set: (value) => {
129
+ this.maxLength = this._toOptionalNumber(value);
130
+ },
131
+ configurable: true,
132
+ enumerable: false
133
+ });
134
+ Object.defineProperty(this, "minlength", {
135
+ get: () => this.minLength,
136
+ set: (value) => {
137
+ this.minLength = this._toOptionalNumber(value);
138
+ },
139
+ configurable: true,
140
+ enumerable: false
141
+ });
142
+ }
143
+ static get observedAttributes() {
144
+ return [
145
+ ...super.observedAttributes ?? [],
146
+ "modelvalue",
147
+ "helpertext",
148
+ "validationstate",
149
+ "validationmessage",
150
+ "errormessage",
151
+ "successmessage",
152
+ "autoresize",
153
+ "minrows",
154
+ "maxrows",
155
+ "minlength",
156
+ "maxlength",
157
+ "showcounter",
158
+ "arialabeltext",
159
+ "arialabel",
160
+ "css-class",
161
+ "cssclass"
162
+ ];
163
+ }
164
+ attributeChangedCallback(name, oldValue, newValue) {
165
+ super.attributeChangedCallback(name, oldValue, newValue);
166
+ if (oldValue === newValue) return;
167
+ if (name === "modelvalue") {
168
+ this.modelValue = newValue ?? "";
169
+ return;
170
+ }
171
+ if (name === "helpertext") {
172
+ this.helperText = newValue ?? "";
173
+ return;
174
+ }
175
+ if (name === "validationstate") {
176
+ this.validationState = newValue ?? "default";
177
+ return;
178
+ }
179
+ if (name === "validationmessage") {
180
+ this.validationMessage = newValue ?? "";
181
+ return;
182
+ }
183
+ if (name === "errormessage") {
184
+ this.errorMessage = newValue ?? "";
185
+ return;
186
+ }
187
+ if (name === "successmessage") {
188
+ this.successMessage = newValue ?? "";
189
+ return;
190
+ }
191
+ if (name === "autoresize") {
192
+ this.autoResize = this._toBoolean(newValue);
193
+ return;
194
+ }
195
+ if (name === "minrows") {
196
+ this.minRows = this._toOptionalNumber(newValue);
197
+ return;
198
+ }
199
+ if (name === "maxrows") {
200
+ this.maxRows = this._toOptionalNumber(newValue);
201
+ return;
202
+ }
203
+ if (name === "minlength") {
204
+ this.minLength = this._toOptionalNumber(newValue);
205
+ return;
206
+ }
207
+ if (name === "maxlength") {
208
+ this.maxLength = this._toOptionalNumber(newValue);
209
+ return;
210
+ }
211
+ if (name === "showcounter") {
212
+ this.showCounter = this._toBoolean(newValue);
213
+ return;
214
+ }
215
+ if (name === "arialabeltext" || name === "arialabel") {
216
+ this.ariaLabelText = newValue ?? void 0;
217
+ return;
218
+ }
219
+ if (name === "css-class" || name === "cssclass") this._setCssClass(newValue);
220
+ }
221
+ willUpdate(changed) {
222
+ for (const key of [
223
+ "disabled",
224
+ "readonly",
225
+ "required",
226
+ "autofocus",
227
+ "autoResize",
228
+ "showCounter"
229
+ ]) {
230
+ const v = this[key];
231
+ if (typeof v !== "boolean") this[key] = this._toBoolean(v);
232
+ }
233
+ if (changed.has("modelValue") && this.value !== this.modelValue) this.value = this.modelValue ?? "";
234
+ if (changed.has("value") && this.modelValue !== this.value) this.modelValue = String(this.value ?? "");
235
+ }
236
+ connectedCallback() {
237
+ super.connectedCallback();
238
+ if (isServer) return;
239
+ this._setupAutoResizeObserver();
240
+ this._syncAutoResize();
241
+ }
242
+ disconnectedCallback() {
243
+ this._teardownAutoResizeObserver();
244
+ super.disconnectedCallback();
245
+ }
246
+ firstUpdated() {
247
+ if (isServer) return;
248
+ if (this.autofocus) this.focus();
249
+ this._syncAutoResize();
250
+ }
251
+ /**
252
+ * Recompute the height when the element's WIDTH changes.
253
+ *
254
+ * The reconnect hook above only covers being moved; the same staleness happens on a
255
+ * window resize, a sidebar opening, or any layout shift that renarrows the column.
256
+ * Width is the real input to the height calculation, so watch it directly.
257
+ */
258
+ _setupAutoResizeObserver() {
259
+ if (isServer || this._autoResizeRo) return;
260
+ if (typeof ResizeObserver === "undefined") return;
261
+ this._autoResizeRo = new ResizeObserver(() => {
262
+ if (!this.autoResize) return;
263
+ const width = this.getBoundingClientRect().width;
264
+ if (width === this._lastAutoResizeWidth) return;
265
+ this._lastAutoResizeWidth = width;
266
+ this._syncAutoResize();
267
+ });
268
+ this._autoResizeRo.observe(this);
269
+ }
270
+ _teardownAutoResizeObserver() {
271
+ this._autoResizeRo?.disconnect();
272
+ this._autoResizeRo = void 0;
273
+ this._lastAutoResizeWidth = -1;
274
+ }
275
+ updated(changed) {
276
+ super.updated(changed);
277
+ if (isServer) return;
278
+ if (changed.has("value") || changed.has("modelValue") || changed.has("autoResize") || changed.has("minRows") || changed.has("maxRows")) this._syncAutoResize();
279
+ }
280
+ _setCssClass(value) {
281
+ if (value == null) {
282
+ this.cssClass = {};
283
+ this.cssClassName = "";
284
+ return;
285
+ }
286
+ if (typeof value === "object") {
287
+ this.cssClass = value;
288
+ return;
289
+ }
290
+ if (typeof value === "string") {
291
+ const trimmed = value.trim();
292
+ if (!trimmed) {
293
+ this.cssClass = {};
294
+ this.cssClassName = "";
295
+ return;
296
+ }
297
+ /**
298
+ * Optional HTML object support:
299
+ *
300
+ * <mono-textarea css-class='{"root":"...", "field":"..."}'></mono-textarea>
301
+ */
302
+ if (trimmed.startsWith("{") && trimmed.endsWith("}")) try {
303
+ this.cssClass = JSON.parse(trimmed);
304
+ return;
305
+ } catch {}
306
+ this.cssClassName = trimmed;
307
+ }
308
+ }
309
+ _toBoolean(value) {
310
+ if (typeof value === "boolean") return value;
311
+ if (typeof value === "string") {
312
+ const normalized = value.toLowerCase().trim();
313
+ return normalized === "" || normalized === "true";
314
+ }
315
+ return Boolean(value);
316
+ }
317
+ _toOptionalNumber(value) {
318
+ if (value === void 0 || value === null || value === "") return void 0;
319
+ const parsed = Number(value);
320
+ return Number.isFinite(parsed) ? parsed : void 0;
321
+ }
322
+ _cls(base, key) {
323
+ const extra = this.cssClass?.[key];
324
+ return extra ? `${base} ${extra}` : base;
325
+ }
326
+ get _hasLabelSlot() {
327
+ return this._hasLabelSlotState;
328
+ }
329
+ get _hasHelperSlot() {
330
+ return this._hasHelperSlotState;
331
+ }
332
+ get _resolvedValidationState() {
333
+ if (this.validationState && this.validationState !== "default") return this.validationState;
334
+ if (this.errorMessage) return "invalid";
335
+ if (this.successMessage) return "valid";
336
+ return "default";
337
+ }
338
+ get _wrapperClasses() {
339
+ return [
340
+ "mono-textarea",
341
+ this.size,
342
+ this.color,
343
+ this.variant,
344
+ this.disabled ? "disabled" : "",
345
+ this.readonly ? "readonly" : "",
346
+ this._resolvedValidationState !== "default" ? `is-${this._resolvedValidationState}` : "",
347
+ this.value ? "has-value" : "",
348
+ this.autoResize ? "auto-resize" : "",
349
+ this.cssClassName,
350
+ this.cssClass?.root
351
+ ].filter(Boolean).join(" ");
352
+ }
353
+ get _fieldClasses() {
354
+ return [
355
+ this._cls("mono-textarea-field", "field"),
356
+ this.size,
357
+ this.color,
358
+ this.variant
359
+ ].filter(Boolean).join(" ");
360
+ }
361
+ /** `near` at 85% of the cap, `over` past it — the attribute twin of the class. */
362
+ get _counterState() {
363
+ const max = this.maxLength;
364
+ if (max === void 0) return "default";
365
+ const length = this.value.length;
366
+ if (length > max) return "over";
367
+ if (length >= Math.floor(max * .85)) return "near";
368
+ return "default";
369
+ }
370
+ get _counterClass() {
371
+ const length = this.value.length;
372
+ const max = this.maxLength;
373
+ if (max !== void 0 && length > max) return `${this._cls("mono-textarea-counter", "counter")} over`;
374
+ if (max !== void 0 && length >= Math.floor(max * .85)) return `${this._cls("mono-textarea-counter", "counter")} near`;
375
+ return this._cls("mono-textarea-counter", "counter");
376
+ }
377
+ get _shouldShowFooter() {
378
+ return Boolean(this.validationMessage || this.errorMessage || this.successMessage || this.helperText || this._hasHelperSlot || this.showCounter);
379
+ }
380
+ _createModelDetail(args) {
381
+ return {
382
+ modelValue: args.modelValue,
383
+ currentValue: args.modelValue,
384
+ oldValue: args.oldValue,
385
+ value: args.modelValue,
386
+ name: this.name,
387
+ sourceEvent: args.sourceEvent
388
+ };
389
+ }
390
+ _emitInput(detail) {
391
+ dispatchMonoEvent(this, "input", detail);
392
+ }
393
+ _emitChange(detail) {
394
+ dispatchMonoEvent(this, "change", detail);
395
+ }
396
+ _handleInput(event) {
397
+ if (this.disabled || this.readonly) return;
398
+ const textarea = event.currentTarget;
399
+ const oldValue = this.modelValue;
400
+ const nextValue = textarea.value;
401
+ this.value = nextValue;
402
+ this.modelValue = nextValue;
403
+ const detail = this._createModelDetail({
404
+ modelValue: nextValue,
405
+ oldValue,
406
+ sourceEvent: event
407
+ });
408
+ this._emitInput(detail);
409
+ this._syncAutoResize();
410
+ }
411
+ _handleChange(event) {
412
+ if (this.disabled || this.readonly) return;
413
+ const textarea = event.currentTarget;
414
+ const oldValue = this.modelValue;
415
+ const nextValue = textarea.value;
416
+ this.value = nextValue;
417
+ this.modelValue = nextValue;
418
+ const detail = this._createModelDetail({
419
+ modelValue: nextValue,
420
+ oldValue,
421
+ sourceEvent: event
422
+ });
423
+ this._emitChange(detail);
424
+ }
425
+ _syncAutoResize() {
426
+ if (isServer) return;
427
+ if (!this.autoResize || !this._textareaEl) return;
428
+ const textarea = this._textareaEl;
429
+ const computed = window.getComputedStyle(textarea);
430
+ const lineHeight = Number.parseFloat(computed.lineHeight) || 20;
431
+ const paddingTop = Number.parseFloat(computed.paddingTop) || 0;
432
+ const paddingBottom = Number.parseFloat(computed.paddingBottom) || 0;
433
+ const borderTop = Number.parseFloat(computed.borderTopWidth) || 0;
434
+ const borderBottom = Number.parseFloat(computed.borderBottomWidth) || 0;
435
+ const minRows = this.minRows ?? this.rows;
436
+ const maxRows = this.maxRows;
437
+ const minHeight = minRows !== void 0 ? lineHeight * minRows + paddingTop + paddingBottom + borderTop + borderBottom : void 0;
438
+ const maxHeight = maxRows !== void 0 ? lineHeight * maxRows + paddingTop + paddingBottom + borderTop + borderBottom : void 0;
439
+ textarea.style.height = "auto";
440
+ let nextHeight = textarea.scrollHeight;
441
+ if (minHeight !== void 0) nextHeight = Math.max(nextHeight, minHeight);
442
+ if (maxHeight !== void 0) {
443
+ nextHeight = Math.min(nextHeight, maxHeight);
444
+ textarea.style.overflowY = textarea.scrollHeight > maxHeight ? "auto" : "hidden";
445
+ } else textarea.style.overflowY = "hidden";
446
+ textarea.style.height = `${nextHeight}px`;
447
+ }
448
+ _renderLabel() {
449
+ const hasContent = !!this.label || this._hasLabelSlotState;
450
+ if (!hasContent && !this._slotsAlwaysRender) return nothing;
451
+ return html`
452
+ <label
453
+ class=${this._cls("mono-textarea-label", "label")}
454
+ mono-label
455
+ for=${this._textareaId}
456
+ ?mono-empty=${!hasContent}
457
+ >
458
+ ${this._slotOutlet("label", this.label)}
459
+
460
+ ${this.required ? html`
461
+ <span class=${this._cls("mono-textarea-required", "required")} mono-required-mark>
462
+ *
463
+ </span>
464
+ ` : nothing}
465
+ </label>
466
+ `;
467
+ }
468
+ _renderMessage() {
469
+ if (this.validationMessage) return html`
470
+ <div
471
+ class=${`${this._cls("mono-textarea-message", "message")} ${this._resolvedValidationState}`}
472
+ mono-message=${this._resolvedValidationState}
473
+ >
474
+ ${this.validationMessage}
475
+ </div>
476
+ `;
477
+ if (this.errorMessage) return html`
478
+ <div class=${`${this._cls("mono-textarea-message", "message")} invalid`} mono-message="invalid">
479
+ ${this.errorMessage}
480
+ </div>
481
+ `;
482
+ if (this.successMessage) return html`
483
+ <div class=${`${this._cls("mono-textarea-message", "message")} valid`} mono-message="valid">
484
+ ${this.successMessage}
485
+ </div>
486
+ `;
487
+ if (this.helperText || this._hasHelperSlot || this._slotsAlwaysRender) return html`
488
+ <div
489
+ class=${`${this._cls("mono-textarea-message", "message")} helper`}
490
+ mono-message="helper"
491
+ ?mono-empty=${!this.helperText && !this._hasHelperSlot}
492
+ >
493
+ ${this._slotOutlet("helper", this.helperText)}
494
+ </div>
495
+ `;
496
+ return nothing;
497
+ }
498
+ _renderCounter() {
499
+ if (!this.showCounter) return nothing;
500
+ const max = this.maxLength;
501
+ const length = this.value.length;
502
+ return html`
503
+ <div
504
+ class=${this._counterClass}
505
+ mono-counter
506
+ ?mono-near=${this._counterState === "near"}
507
+ ?mono-over=${this._counterState === "over"}
508
+ >
509
+ ${max !== void 0 ? `${length}/${max}` : length}
510
+ </div>
511
+ `;
512
+ }
513
+ _renderFooter() {
514
+ if (!this._shouldShowFooter && !this._slotsAlwaysRender) return nothing;
515
+ return html`
516
+ <div
517
+ class=${this._cls("mono-textarea-footer", "footer")}
518
+ mono-footer
519
+ ?mono-empty=${!this._shouldShowFooter}
520
+ >
521
+ <div class=${this.cssClass?.messageWrap ?? ""} mono-message-wrap>
522
+ ${this._renderMessage()}
523
+ </div>
524
+
525
+ ${this._renderCounter()}
526
+ </div>
527
+ `;
528
+ }
529
+ /** Inline sizing applied to the root wrapper. */
530
+ _sizeStyle() {
531
+ return buildSizeStyle(this);
532
+ }
533
+ render() {
534
+ const describedBy = this._shouldShowFooter ? this._messageId : void 0;
535
+ const ariaLabel = this.ariaLabelText || this.label || this.placeholder || void 0;
536
+ return html`
537
+ <div
538
+ class=${this._wrapperClasses}
539
+ style=${styleMap(this._sizeStyle())}
540
+ mono-textarea
541
+ mono-size=${this.size === "md" ? nothing : this.size}
542
+ mono-color=${this.color === "primary" ? nothing : this.color}
543
+ mono-variant=${this.variant === "outlined" ? nothing : this.variant}
544
+ mono-validation-state=${this._resolvedValidationState === "default" ? nothing : this._resolvedValidationState}
545
+ ?mono-disabled=${this.disabled}
546
+ ?mono-readonly=${this.readonly}
547
+ ?mono-required=${this.required}
548
+ ?mono-auto-resize=${this.autoResize}
549
+ >
550
+ ${this._renderLabel()}
551
+
552
+ <textarea
553
+ id=${this._textareaId}
554
+ class=${this._fieldClasses}
555
+ mono-native
556
+ .value=${this.value}
557
+ name=${ifDefined(this.name || void 0)}
558
+ placeholder=${ifDefined(this.placeholder || void 0)}
559
+ rows=${ifDefined(this.rows)}
560
+ minlength=${ifDefined(this.minLength)}
561
+ maxlength=${ifDefined(this.maxLength)}
562
+ ?disabled=${this.disabled}
563
+ ?readonly=${this.readonly}
564
+ ?required=${this.required}
565
+ aria-label=${ifDefined(ariaLabel)}
566
+ aria-invalid=${this._resolvedValidationState === "invalid" ? "true" : "false"}
567
+ aria-describedby=${ifDefined(describedBy)}
568
+ @input=${this._handleInput}
569
+ @change=${this._handleChange}
570
+ ></textarea>
571
+
572
+ <div id=${this._messageId} mono-message-outlet>
573
+ ${this._renderFooter()}
574
+ </div>
575
+ </div>
576
+ `;
577
+ }
578
+ focus(options) {
579
+ this._textareaEl?.focus(options);
580
+ }
581
+ blur() {
582
+ this._textareaEl?.blur();
583
+ }
584
+ select() {
585
+ this._textareaEl?.select();
586
+ }
587
+ setSelectionRange(start, end, direction) {
588
+ this._textareaEl?.setSelectionRange(start, end, direction);
589
+ }
590
+ /** Whether the slot regions render even when empty. Light: no. Shadow: yes —
591
+ * the native `<slot>`s must exist to project DSD content + be scanned
592
+ * (hidden via `[data-empty]` when empty). */
593
+ get _slotsAlwaysRender() {
594
+ return false;
595
+ }
596
+ _hasSlot(name) {
597
+ return name === "label" ? this._hasLabelSlotState : this._hasHelperSlotState;
598
+ }
599
+ _setSlotState(name, has) {
600
+ if (name === "label") this._hasLabelSlotState = has;
601
+ else this._hasHelperSlotState = has;
602
+ }
603
+ /**
604
+ * Slot outlet. Light build (default): a `data-mono-slot` placeholder the
605
+ * captured light-DOM nodes are re-parented into when present, else the prop
606
+ * `fallback`. Shadow build overrides this with a native `<slot name>`.
607
+ */
608
+ _slotOutlet(name, fallback = nothing) {
609
+ return this._hasSlot(name) ? html`<span data-mono-slot=${name}></span>` : html`${fallback}`;
610
+ }
611
+ }
612
+ __decorate([property({ type: String })], MonoTextareaCoreClass.prototype, "size", void 0);
613
+ __decorate([property({ type: String })], MonoTextareaCoreClass.prototype, "color", void 0);
614
+ __decorate([property({ type: String })], MonoTextareaCoreClass.prototype, "variant", void 0);
615
+ __decorate([property({
616
+ type: String,
617
+ attribute: "model-value",
618
+ reflect: true
619
+ })], MonoTextareaCoreClass.prototype, "modelValue", void 0);
620
+ __decorate([property({ type: String })], MonoTextareaCoreClass.prototype, "value", void 0);
621
+ __decorate([property({ type: String })], MonoTextareaCoreClass.prototype, "name", void 0);
622
+ __decorate([property({ type: String })], MonoTextareaCoreClass.prototype, "placeholder", void 0);
623
+ __decorate([property({ type: String })], MonoTextareaCoreClass.prototype, "label", void 0);
624
+ __decorate([property({
625
+ type: String,
626
+ attribute: "helper-text"
627
+ })], MonoTextareaCoreClass.prototype, "helperText", void 0);
628
+ __decorate([property({
629
+ type: String,
630
+ attribute: "validation-state"
631
+ })], MonoTextareaCoreClass.prototype, "validationState", void 0);
632
+ __decorate([property({
633
+ type: String,
634
+ attribute: "validation-message"
635
+ })], MonoTextareaCoreClass.prototype, "validationMessage", void 0);
636
+ __decorate([property({
637
+ type: String,
638
+ attribute: "error-message"
639
+ })], MonoTextareaCoreClass.prototype, "errorMessage", void 0);
640
+ __decorate([property({
641
+ type: String,
642
+ attribute: "success-message"
643
+ })], MonoTextareaCoreClass.prototype, "successMessage", void 0);
644
+ __decorate([property({
645
+ type: String,
646
+ attribute: "aria-label"
647
+ })], MonoTextareaCoreClass.prototype, "ariaLabelText", void 0);
648
+ __decorate([property({
649
+ reflect: true,
650
+ converter: booleanStringConverter
651
+ })], MonoTextareaCoreClass.prototype, "disabled", void 0);
652
+ __decorate([property({
653
+ reflect: true,
654
+ converter: booleanStringConverter
655
+ })], MonoTextareaCoreClass.prototype, "readonly", void 0);
656
+ __decorate([property({
657
+ reflect: true,
658
+ converter: booleanStringConverter
659
+ })], MonoTextareaCoreClass.prototype, "required", void 0);
660
+ __decorate([property({
661
+ reflect: true,
662
+ converter: booleanStringConverter
663
+ })], MonoTextareaCoreClass.prototype, "autofocus", void 0);
664
+ __decorate([property({
665
+ attribute: "auto-resize",
666
+ reflect: true,
667
+ converter: booleanStringConverter
668
+ })], MonoTextareaCoreClass.prototype, "autoResize", void 0);
669
+ __decorate([property({
670
+ attribute: "show-counter",
671
+ reflect: true,
672
+ converter: booleanStringConverter
673
+ })], MonoTextareaCoreClass.prototype, "showCounter", void 0);
674
+ __decorate([property({ converter: numberStringConverter })], MonoTextareaCoreClass.prototype, "rows", void 0);
675
+ __decorate([property({
676
+ attribute: "min-rows",
677
+ converter: numberStringConverter
678
+ })], MonoTextareaCoreClass.prototype, "minRows", void 0);
679
+ __decorate([property({
680
+ attribute: "max-rows",
681
+ converter: numberStringConverter
682
+ })], MonoTextareaCoreClass.prototype, "maxRows", void 0);
683
+ __decorate([property({
684
+ attribute: "min-length",
685
+ converter: numberStringConverter
686
+ })], MonoTextareaCoreClass.prototype, "minLength", void 0);
687
+ __decorate([property({
688
+ attribute: "max-length",
689
+ converter: numberStringConverter
690
+ })], MonoTextareaCoreClass.prototype, "maxLength", void 0);
691
+ __decorate([property({ attribute: false })], MonoTextareaCoreClass.prototype, "cssClass", void 0);
692
+ __decorate([property({ attribute: false })], MonoTextareaCoreClass.prototype, "cssClassName", void 0);
693
+ __decorate([state()], MonoTextareaCoreClass.prototype, "_hasLabelSlotState", void 0);
694
+ __decorate([state()], MonoTextareaCoreClass.prototype, "_hasHelperSlotState", void 0);
695
+ __decorate([query(".mono-textarea-field")], MonoTextareaCoreClass.prototype, "_textareaEl", void 0);
696
+ __decorate([property({ type: String })], MonoTextareaCoreClass.prototype, "width", void 0);
697
+ __decorate([property({ type: String })], MonoTextareaCoreClass.prototype, "height", void 0);
698
+ __decorate([property({
699
+ type: String,
700
+ attribute: "min-width"
701
+ })], MonoTextareaCoreClass.prototype, "minWidth", void 0);
702
+ __decorate([property({
703
+ type: String,
704
+ attribute: "max-width"
705
+ })], MonoTextareaCoreClass.prototype, "maxWidth", void 0);
706
+ __decorate([property({
707
+ type: String,
708
+ attribute: "min-height"
709
+ })], MonoTextareaCoreClass.prototype, "minHeight", void 0);
710
+ __decorate([property({
711
+ type: String,
712
+ attribute: "max-height"
713
+ })], MonoTextareaCoreClass.prototype, "maxHeight", void 0);
714
+ return MonoTextareaCoreClass;
715
+ };
716
+ //#endregion
717
+ //#region src/components/textarea/textarea.css?raw
718
+ var textarea_default = "/* =========================================================================\r\n mono-textarea — a port of Basecoat's `.textarea` inside a `.field`\r\n (basecoat-css@1.0.2, vega style).\r\n\r\n Styled by ATTRIBUTE, like Basecoat — and the attributes mirror the element's\r\n props one for one, so hand-written markup reads like the Lit / Vue tag:\r\n\r\n <mono-textarea size=\"sm\" color=\"danger\" label=\"Notes\" placeholder=\"…\">\r\n <div mono-textarea mono-size=\"sm\" mono-color=\"danger\">\r\n <label mono-label>Notes</label>\r\n <textarea mono-native placeholder=\"…\"></textarea>\r\n <div mono-message-wrap><div mono-message=\"helper\">…</div></div>\r\n </div>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md,\r\n `:not([mono-color])` = primary, `:not([mono-variant])` = outlined). The\r\n element renders these on its root (both builds) plus the states\r\n `mono-disabled` / `mono-readonly` / `mono-required` / `mono-auto-resize` and\r\n `mono-validation-state=\"valid|invalid|warning\"`. The old classes\r\n (`.mono-textarea.md.primary.outlined`) are still emitted as inert hooks until\r\n 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-textarea] ≡ .field (flex w-full flex-col gap-3)\r\n [mono-textarea] > [mono-label] ≡ .field > label / .label\r\n [mono-native] ≡ .field > textarea / .textarea\r\n (field-sizing-content min-h-16 w-full rounded-md\r\n border-input bg-transparent px-2.5 py-2 shadow-xs\r\n text-base md:text-sm, focus ring-3 ring-ring/50)\r\n [mono-message-wrap] > [mono-message=\"…\"] ≡ .field > p / .field [role='alert']\r\n [mono-validation-state=\"invalid\"] ≡ aria-invalid:border-destructive aria-invalid:ring-destructive/20\r\n [mono-validation-state=\"valid|warning\"] ≡ EXTENSION (the same treatment in --success / --warning)\r\n [mono-size=\"xs|sm|lg|xl|xxl\"] ≡ EXTENSION (Basecoat sizes only the select; the\r\n ladder is --mono-control-height-*)\r\n [mono-variant=\"filled\"] ≡ EXTENSION (luma/mira/rhea's textarea: bg-input/50, no shadow)\r\n [mono-variant=\"underlined\"] ≡ EXTENSION (sera's: border-transparent border-b-input,\r\n rounded-none px-0, the ring on the bottom edge only)\r\n [mono-counter], [mono-footer] ≡ EXTENSION (the character counter row)\r\n\r\n A textarea must NOT be --mono-control-height-* tall — it is multi-line — but\r\n its metrics DERIVE from that token, or retuning the ladder leaves it behind:\r\n\r\n padY = (T - L) / 2 - B\r\n min-height = ROWS x L + 2*padY + 2*B = T + (ROWS - 1) x L\r\n\r\n with T the control height, L one text line (font x line-height) and B the\r\n border. The first puts the textarea's FIRST line box at the same offset as an\r\n input's single line, so the two start their text on the same baseline side by\r\n side; the second reads as \"one input tall, plus N-1 lines\". ROWS is the only\r\n per-size literal. (Upstream's own `min-h-16` is a flat 64px; the derivation is\r\n mono's, and `field-sizing: content` still grows the box from there.)\r\n\r\n Specificity contract (same as the pre-port class sheet): a part's RESTING rule\r\n is exactly one attribute strong — `:where([mono-textarea]) [mono-native]` =\r\n (0,1,0) — so a utility class handed in through `cssClass` wins by source\r\n order, while the prop and state rules stay heavier and win over it.\r\n\r\n Inner parts: [mono-label] (+ [mono-required-mark]), [mono-native],\r\n [mono-footer] > [mono-message-wrap] > [mono-message=\"helper|valid|invalid|\r\n warning\"] / [mono-counter] (+ [mono-near], [mono-over]). The shadow build\r\n marks an unassigned slot wrapper [mono-empty].\r\n\r\n FLAVORS set `--mono-textarea-{radius,padding-x-<size>,padding-y-<size>,\r\n font-<size>,line-height,ring-width,ring-alpha,gap,resize,bg,border-color,\r\n shadow}` and the outline-scoped `--mono-textarea-outline-*`; every fallback\r\n here is vega's value\r\n (`node scripts/basecoat-styles.mjs --varying \"textarea\"`).\r\n ========================================================================= */\r\n\r\nmono-textarea {\r\n display: block;\r\n}\r\n\r\n[mono-textarea] {\r\n /* ── palette: each slot is a public knob over a Basecoat token ─────────── */\r\n --_mono-textarea-text: var(--mono-textarea-color, var(--mono-textarea-text, var(--foreground)));\r\n --_mono-textarea-placeholder: var(--mono-textarea-placeholder, var(--muted-foreground));\r\n --_mono-textarea-muted: var(--mono-textarea-muted, var(--muted-foreground));\r\n /* the `color` prop picks the FOCUS colour; primary is Basecoat's `--ring` */\r\n --_mono-textarea-primary: var(--mono-textarea-primary, var(--ring));\r\n --_mono-textarea-secondary: var(--mono-textarea-secondary, var(--muted-foreground));\r\n --_mono-textarea-success: var(--mono-textarea-success, var(--success));\r\n --_mono-textarea-danger: var(--mono-textarea-danger, var(--destructive));\r\n --_mono-textarea-warning: var(--mono-textarea-warning, var(--warning));\r\n --_mono-textarea-info: var(--mono-textarea-info, var(--info));\r\n --_mono-textarea-teal: var(--mono-textarea-teal, var(--teal));\r\n --_mono-textarea-purple: var(--mono-textarea-purple, var(--purple));\r\n --_mono-textarea-neutral: var(--mono-textarea-neutral, var(--neutral));\r\n --_mono-textarea-dark: var(--mono-textarea-dark, var(--dark));\r\n --_mono-textarea-valid: var(--mono-textarea-valid, var(--success));\r\n --_mono-textarea-invalid: var(--mono-textarea-invalid, var(--destructive));\r\n\r\n /* ── the painted result — three tiers, base = vega's .textarea ─────────── */\r\n --_mono-textarea-ring-color: var(--mono-textarea-ring-color, var(--mono-textarea-focus-color, var(--_mono-textarea-ring-color-preset, var(--_mono-textarea-primary))));\r\n --_mono-textarea-ring-width: var(--mono-textarea-ring-width, var(--_mono-textarea-ring-width-preset, var(--mono-ring-width)));\r\n --_mono-textarea-ring-alpha: var(--mono-textarea-ring-alpha, var(--mono-ring-alpha));\r\n --_mono-textarea-border-color: var(--mono-textarea-rest-border, var(--mono-textarea-border-color, var(--_mono-textarea-border-color-preset, var(--input))));\r\n --_mono-textarea-side-border-color: var(--_mono-textarea-side-border-color-preset, var(--_mono-textarea-border-color));\r\n --_mono-textarea-bg: var(--mono-textarea-bg, var(--mono-textarea-surface, var(--_mono-textarea-bg-preset, var(--mono-mode-surface))));\r\n --_mono-textarea-shadow: var(--mono-textarea-shadow, var(--_mono-textarea-shadow-preset, var(--mono-shadow-xs)));\r\n --_mono-textarea-border-width: var(--mono-textarea-border-width, var(--mono-border-width));\r\n --_mono-textarea-radius: var(--mono-textarea-radius, var(--_mono-textarea-radius-preset, var(--mono-radius-md)));\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE: hand-written\r\n `<div mono-textarea>` that names no size renders exactly like size=\"md\".\r\n basecoat@1.0.2 styles/vega.css .textarea — px-2.5 py-2 text-base md:text-sm ── */\r\n --_mono-textarea-height: var(--mono-textarea-height-md, var(--mono-control-height-md));\r\n --_mono-textarea-padding-x: var(--mono-textarea-padding-x-md, var(--_mono-textarea-padding-x-preset, calc(var(--mono-spacing) * 2.5)));\r\n --_mono-textarea-font-size: var(--mono-textarea-font-md, var(--mono-text-sm));\r\n --_mono-textarea-line-height: var(--mono-textarea-line-height, var(--mono-textarea-line-height-md, var(--mono-leading-normal)));\r\n --_mono-textarea-rows: var(--mono-textarea-rows, var(--mono-textarea-rows-md, 4));\r\n\r\n /* one text line, and the two derived metrics that hang off it */\r\n --_mono-textarea-line: calc(var(--_mono-textarea-font-size) * var(--_mono-textarea-line-height));\r\n --_mono-textarea-padding-y: var(\r\n --mono-textarea-padding-y,\r\n max(0px, calc((var(--_mono-textarea-height) - var(--_mono-textarea-line)) / 2 - var(--_mono-textarea-border-width)))\r\n );\r\n --_mono-textarea-min-height: var(\r\n --mono-textarea-min-height,\r\n calc(var(--_mono-textarea-height) + (var(--_mono-textarea-rows) - 1) * var(--_mono-textarea-line))\r\n );\r\n\r\n /* basecoat@1.0.2 styles/vega.css .field — flex w-full flex-col gap-3 */\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--mono-textarea-gap, calc(var(--mono-spacing) * 3));\r\n width: 100%;\r\n min-width: 0;\r\n color: var(--_mono-textarea-text);\r\n font-family: inherit;\r\n}\r\n\r\n[mono-textarea],\r\n:where([mono-textarea]) *,\r\n:where([mono-textarea]) *::before,\r\n:where([mono-textarea]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* The element wraps the footer in an aria-describedby outlet; hand-written markup\r\n has no such wrapper. It is a flex child either way, so an EMPTY outlet still\r\n paid the root's `gap` and made the element stand taller than the same raw\r\n markup. The shadow build always RENDERS the footer and marks it empty, so the\r\n test is for a footer that is actually showing. */\r\n[mono-textarea] > [mono-message-outlet]:not(:has([mono-footer]:not([mono-empty]))) {\r\n display: none;\r\n}\r\n\r\n/* the shadow build renders every region and marks the empty ones; the light\r\n build renders only what exists. Out-specifies the region rules on purpose —\r\n a zero-weight hide would tie with them and lose on source order. */\r\n[mono-textarea] :is([mono-label], [mono-message], [mono-footer], [mono-counter])[mono-empty] {\r\n display: none;\r\n}\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: Basecoat sizes only the select, so the ladder is\r\n --mono-control-height-* and the derivation above\r\n ========================================= */\r\n\r\n[mono-textarea][mono-size=\"xs\"] {\r\n --_mono-textarea-height: var(--mono-textarea-height-xs, var(--mono-control-height-xs));\r\n --_mono-textarea-padding-x: var(--mono-textarea-padding-x-xs, var(--_mono-textarea-padding-x-preset, calc(var(--mono-spacing) * 2)));\r\n --_mono-textarea-font-size: var(--mono-textarea-font-xs, var(--mono-text-xs));\r\n --_mono-textarea-rows: var(--mono-textarea-rows, var(--mono-textarea-rows-xs, 3));\r\n}\r\n\r\n[mono-textarea][mono-size=\"sm\"] {\r\n --_mono-textarea-height: var(--mono-textarea-height-sm, var(--mono-control-height-sm));\r\n --_mono-textarea-padding-x: var(--mono-textarea-padding-x-sm, var(--_mono-textarea-padding-x-preset, calc(var(--mono-spacing) * 2.5)));\r\n --_mono-textarea-font-size: var(--mono-textarea-font-sm, var(--mono-textarea-font-md, var(--mono-text-sm)));\r\n --_mono-textarea-rows: var(--mono-textarea-rows, var(--mono-textarea-rows-sm, 3));\r\n}\r\n\r\n[mono-textarea][mono-size=\"lg\"] {\r\n --_mono-textarea-height: var(--mono-textarea-height-lg, var(--mono-control-height-lg));\r\n --_mono-textarea-padding-x: var(--mono-textarea-padding-x-lg, var(--_mono-textarea-padding-x-preset, calc(var(--mono-spacing) * 2.5)));\r\n --_mono-textarea-font-size: var(--mono-textarea-font-lg, var(--mono-textarea-font-md, var(--mono-text-sm)));\r\n --_mono-textarea-rows: var(--mono-textarea-rows, var(--mono-textarea-rows-lg, 4));\r\n}\r\n\r\n[mono-textarea][mono-size=\"xl\"] {\r\n --_mono-textarea-height: var(--mono-textarea-height-xl, var(--mono-control-height-xl));\r\n --_mono-textarea-padding-x: var(--mono-textarea-padding-x-xl, var(--_mono-textarea-padding-x-preset, calc(var(--mono-spacing) * 3)));\r\n --_mono-textarea-font-size: var(--mono-textarea-font-xl, var(--mono-text-base));\r\n --_mono-textarea-rows: var(--mono-textarea-rows, var(--mono-textarea-rows-xl, 5));\r\n}\r\n\r\n[mono-textarea][mono-size=\"xxl\"] {\r\n --_mono-textarea-height: var(--mono-textarea-height-xxl, var(--mono-control-height-xxl));\r\n --_mono-textarea-padding-x: var(--mono-textarea-padding-x-xxl, var(--_mono-textarea-padding-x-preset, calc(var(--mono-spacing) * 3)));\r\n --_mono-textarea-font-size: var(--mono-textarea-font-xxl, var(--mono-text-base));\r\n --_mono-textarea-rows: var(--mono-textarea-rows, var(--mono-textarea-rows-xxl, 5));\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the `color` prop is the FOCUS colour, nothing else\r\n ========================================= */\r\n\r\n[mono-textarea][mono-color=\"secondary\"] {\r\n --_mono-textarea-ring-color-preset: var(--_mono-textarea-secondary);\r\n}\r\n[mono-textarea][mono-color=\"success\"] {\r\n --_mono-textarea-ring-color-preset: var(--_mono-textarea-success);\r\n}\r\n[mono-textarea][mono-color=\"danger\"] {\r\n --_mono-textarea-ring-color-preset: var(--_mono-textarea-danger);\r\n}\r\n[mono-textarea][mono-color=\"warning\"] {\r\n --_mono-textarea-ring-color-preset: var(--_mono-textarea-warning);\r\n}\r\n[mono-textarea][mono-color=\"info\"] {\r\n --_mono-textarea-ring-color-preset: var(--_mono-textarea-info);\r\n}\r\n[mono-textarea][mono-color=\"teal\"] {\r\n --_mono-textarea-ring-color-preset: var(--_mono-textarea-teal);\r\n}\r\n[mono-textarea][mono-color=\"purple\"] {\r\n --_mono-textarea-ring-color-preset: var(--_mono-textarea-purple);\r\n}\r\n[mono-textarea][mono-color=\"neutral\"] {\r\n --_mono-textarea-ring-color-preset: var(--_mono-textarea-neutral);\r\n}\r\n[mono-textarea][mono-color=\"dark\"] {\r\n --_mono-textarea-ring-color-preset: var(--_mono-textarea-dark);\r\n}\r\n\r\n/* =========================================\r\n Label\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field > label, .label\r\n — text-sm leading-snug font-medium */\r\n:where([mono-textarea]) > [mono-label] {\r\n display: flex;\r\n align-items: center;\r\n gap: calc(var(--mono-spacing) * 1);\r\n font-size: var(--mono-textarea-label-font-size, var(--mono-text-sm));\r\n line-height: var(--mono-textarea-label-line-height, var(--mono-leading-snug));\r\n font-weight: var(--mono-textarea-label-font-weight, var(--mono-label-font-weight, var(--mono-font-weight-medium)));\r\n color: var(--mono-textarea-label-color, var(--_mono-textarea-text));\r\n}\r\n\r\n[mono-textarea][mono-validation-state=\"invalid\"] > [mono-label] {\r\n color: var(--mono-textarea-label-color, var(--_mono-textarea-invalid));\r\n}\r\n\r\n:where([mono-textarea]) [mono-required-mark] {\r\n color: var(--mono-textarea-required-color, var(--destructive));\r\n}\r\n\r\n/* =========================================\r\n The field\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/textarea.css .field > textarea, .textarea\r\n — flex field-sizing-content min-h-16 w-full outline-none\r\n placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 */\r\n/* basecoat@1.0.2 styles/vega.css .field > textarea, .textarea\r\n — rounded-md border border-input bg-transparent px-2.5 py-2 text-base md:text-sm\r\n shadow-xs transition-[color,box-shadow] (dark:bg-input/30 via --mono-mode-surface);\r\n mono: `--tw-ring-*` flattened to the ring + shadow slots, and the height is\r\n derived from the control step rather than upstream's flat min-h-16 */\r\n:where([mono-textarea]) [mono-native] {\r\n --_mono-textarea-ring: 0 0 #0000;\r\n display: block;\r\n width: 100%;\r\n min-width: 0;\r\n min-height: var(--_mono-textarea-min-height);\r\n padding: var(--_mono-textarea-padding-y) var(--_mono-textarea-padding-x);\r\n border: var(--_mono-textarea-border-width) solid var(--_mono-textarea-border-color);\r\n border-radius: var(--_mono-textarea-radius);\r\n background-color: var(--_mono-textarea-bg);\r\n color: var(--_mono-textarea-text);\r\n font-family: inherit;\r\n font-size: var(--_mono-textarea-font-size);\r\n line-height: var(--_mono-textarea-line-height);\r\n resize: var(--mono-textarea-resize, vertical);\r\n outline: none;\r\n box-shadow: var(--_mono-textarea-ring), var(--_mono-textarea-shadow);\r\n transition-property: color, background-color, border-color, box-shadow;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n\r\n/* Upstream grows the box with `field-sizing: content`, which has no ceiling.\r\n mono's `auto-resize` is a JS height instead, BECAUSE it honours `min-rows` and\r\n `max-rows` — so this rule must not hand the sizing back to the browser, or the\r\n two fight over the height. All the attribute does here is drop the manual grip:\r\n a box that resizes itself should not also offer one. */\r\n[mono-textarea][mono-auto-resize] > [mono-native] {\r\n resize: var(--mono-textarea-resize, none);\r\n}\r\n\r\n/* placeholder:text-muted-foreground */\r\n:where([mono-textarea]) [mono-native]::placeholder {\r\n color: var(--_mono-textarea-placeholder);\r\n opacity: 1;\r\n}\r\n\r\n/* focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 */\r\n:where([mono-textarea]) [mono-native]:focus-visible,\r\n:where([mono-textarea]) [mono-native]:focus {\r\n border-color: var(--_mono-textarea-ring-color);\r\n --_mono-textarea-ring: 0 0 0 var(--_mono-textarea-ring-width) color-mix(in oklab, var(--_mono-textarea-ring-color) var(--_mono-textarea-ring-alpha), transparent);\r\n}\r\n\r\n/* aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20\r\n (dark: /50 and /40, carried by the mode tokens) */\r\n[mono-textarea][mono-validation-state=\"invalid\"] > [mono-native],\r\n:where([mono-textarea]) [mono-native][aria-invalid=\"true\"] {\r\n --_mono-textarea-border-color: var(--mono-mode-invalid-border);\r\n --_mono-textarea-ring: 0 0 0 var(--_mono-textarea-ring-width) var(--mono-mode-invalid-ring);\r\n}\r\n\r\n/* EXTENSION — the same treatment in the success / warning roles */\r\n[mono-textarea][mono-validation-state=\"valid\"] > [mono-native] {\r\n --_mono-textarea-border-color: color-mix(in oklab, var(--_mono-textarea-valid) var(--mono-mode-state-border-alpha), transparent);\r\n --_mono-textarea-ring: 0 0 0 var(--_mono-textarea-ring-width) color-mix(in oklab, var(--_mono-textarea-valid) var(--mono-mode-state-ring-alpha), transparent);\r\n}\r\n\r\n[mono-textarea][mono-validation-state=\"warning\"] > [mono-native] {\r\n --_mono-textarea-border-color: color-mix(in oklab, var(--_mono-textarea-warning) var(--mono-mode-state-border-alpha), transparent);\r\n --_mono-textarea-ring: 0 0 0 var(--_mono-textarea-ring-width) color-mix(in oklab, var(--_mono-textarea-warning) var(--mono-mode-state-ring-alpha), transparent);\r\n}\r\n\r\n/* disabled:cursor-not-allowed disabled:opacity-50 */\r\n[mono-textarea][mono-disabled] > [mono-native],\r\n:where([mono-textarea]) [mono-native]:disabled {\r\n cursor: not-allowed;\r\n opacity: 0.5;\r\n background-color: var(--mono-textarea-disabled-bg, var(--_mono-textarea-bg));\r\n}\r\n\r\n/* EXTENSION — readonly is legible, not dimmed: a muted surface and no caret */\r\n[mono-textarea][mono-readonly] > [mono-native],\r\n:where([mono-textarea]) [mono-native]:read-only:not(:disabled) {\r\n background-color: var(--mono-textarea-readonly-bg, var(--muted));\r\n cursor: default;\r\n}\r\n\r\n/* =========================================\r\n Variants — EXTENSION: the two other looks Basecoat's styles ship\r\n ========================================= */\r\n\r\n/* `outlined` is the default and IS vega's textarea. The `--mono-textarea-outline-*`\r\n knobs are how a FLAVOR restyles this variant alone: writing the shared\r\n `--mono-textarea-bg` would repaint `filled` and `underlined` too (the public\r\n tier out-ranks a variant's preset), which is exactly what made every style's\r\n underlined textarea come out as a filled box. */\r\n[mono-textarea]:is(:not([mono-variant]), [mono-variant=\"outlined\"]) {\r\n --_mono-textarea-bg-preset: var(--mono-textarea-outline-bg);\r\n --_mono-textarea-border-color-preset: var(--mono-textarea-outline-border-color);\r\n --_mono-textarea-side-border-color-preset: var(--mono-textarea-outline-side-border-color);\r\n --_mono-textarea-shadow-preset: var(--mono-textarea-outline-shadow, var(--mono-shadow-xs));\r\n --_mono-textarea-radius-preset: var(--mono-textarea-outline-radius);\r\n --_mono-textarea-padding-x-preset: var(--mono-textarea-outline-padding-x);\r\n --_mono-textarea-ring-width-preset: var(--mono-textarea-outline-ring-width);\r\n}\r\n\r\n/* `filled` ≡ luma / mira / rhea's textarea: a tinted surface, no border, no shadow */\r\n[mono-textarea][mono-variant=\"filled\"] {\r\n --_mono-textarea-bg-preset: var(--mono-textarea-filled-bg, color-mix(in oklab, var(--input) 50%, transparent));\r\n --_mono-textarea-border-color-preset: transparent;\r\n --_mono-textarea-shadow-preset: 0 0 #0000;\r\n}\r\n\r\n/* `underlined` ≡ sera's: square, the bottom edge only, and the ring rides that\r\n edge instead of wrapping the box (never `box-shadow: none` — the resting slot\r\n is neutralised so a focus rule can still fill it) */\r\n[mono-textarea][mono-variant=\"underlined\"] {\r\n --_mono-textarea-radius-preset: 0;\r\n --_mono-textarea-bg-preset: transparent;\r\n /* the bottom edge keeps --_mono-textarea-border-color; only the other three\r\n sides are cleared, through the side slot */\r\n --_mono-textarea-side-border-color-preset: transparent;\r\n --_mono-textarea-shadow-preset: 0 0 #0000;\r\n --_mono-textarea-padding-x-preset: 0px;\r\n --_mono-textarea-ring-width-preset: 0px;\r\n}\r\n\r\n[mono-textarea][mono-variant=\"underlined\"] > [mono-native],\r\n[mono-textarea]:is(:not([mono-variant]), [mono-variant=\"outlined\"]) > [mono-native] {\r\n border-color: var(--_mono-textarea-side-border-color);\r\n border-bottom-color: var(--_mono-textarea-border-color);\r\n}\r\n\r\n[mono-textarea][mono-variant=\"underlined\"] > [mono-native]:is(:focus, :focus-visible) {\r\n border-color: var(--_mono-textarea-side-border-color);\r\n border-bottom-color: var(--_mono-textarea-ring-color);\r\n}\r\n\r\n/* =========================================\r\n Footer — EXTENSION: the message row and the character counter\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .fieldset legend + p, .field > p, .field section > p\r\n — text-sm text-muted-foreground leading-normal font-normal */\r\n:where([mono-textarea]) > [mono-footer] {\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: space-between;\r\n gap: calc(var(--mono-spacing) * 2);\r\n}\r\n\r\n:where([mono-textarea]) [mono-message-wrap] {\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n}\r\n\r\n:where([mono-textarea]) [mono-message] {\r\n font-size: var(--mono-textarea-message-font-size, var(--mono-text-sm));\r\n line-height: var(--mono-textarea-message-line-height, var(--mono-leading-normal));\r\n color: var(--_mono-textarea-muted);\r\n}\r\n\r\n/* .field [role='alert'] — the invalid message is the destructive one */\r\n:where([mono-textarea]) [mono-message=\"invalid\"] {\r\n color: var(--_mono-textarea-invalid);\r\n}\r\n\r\n:where([mono-textarea]) [mono-message=\"valid\"] {\r\n color: var(--_mono-textarea-valid);\r\n}\r\n\r\n:where([mono-textarea]) [mono-message=\"warning\"] {\r\n color: var(--_mono-textarea-warning);\r\n}\r\n\r\n:where([mono-textarea]) [mono-counter] {\r\n flex: 0 0 auto;\r\n font-size: var(--mono-textarea-counter-font-size, var(--mono-text-xs));\r\n line-height: var(--mono-leading-normal);\r\n font-variant-numeric: tabular-nums;\r\n color: var(--_mono-textarea-muted);\r\n}\r\n\r\n:where([mono-textarea]) [mono-counter][mono-near] {\r\n color: var(--_mono-textarea-warning);\r\n}\r\n\r\n:where([mono-textarea]) [mono-counter][mono-over] {\r\n color: var(--_mono-textarea-invalid);\r\n font-weight: var(--mono-font-weight-medium);\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n :where([mono-textarea]) [mono-native] {\r\n transition: none;\r\n }\r\n}\r\n";
719
+ //#endregion
720
+ //#region src/components/textarea/mono-textarea.shadow.ts
721
+ var SHADOW_EXTRA_CSS = "";
722
+ var MonoTextareaShadow = class MonoTextareaShadow extends withShadowUtilityStyles(MonoTextareaCore(LitElement)) {
723
+ static {
724
+ this.disableWarning?.("change-in-update");
725
+ }
726
+ static {
727
+ this.styles = [unsafeCSS(toShadowCss(textarea_default, {
728
+ host: "mono-textarea",
729
+ append: SHADOW_EXTRA_CSS
730
+ }))];
731
+ }
732
+ get _slotsAlwaysRender() {
733
+ return true;
734
+ }
735
+ connectedCallback() {
736
+ super.connectedCallback();
737
+ if (isServer) return;
738
+ flushSsrHydration(this);
739
+ }
740
+ firstUpdated(changed) {
741
+ super.firstUpdated?.(changed);
742
+ if (isServer) return;
743
+ this._scanSlots();
744
+ }
745
+ updated(changed) {
746
+ super.updated(changed);
747
+ if (!isServer) this._scanSlots();
748
+ }
749
+ _slotFor(name) {
750
+ return this.renderRoot.querySelector(`slot[name="${name}"]`);
751
+ }
752
+ _slotHasContent(slot) {
753
+ return !!slot && slot.assignedNodes({ flatten: true }).some((n) => n.nodeType === Node.ELEMENT_NODE || !!(n.textContent ?? "").trim());
754
+ }
755
+ _onSlotChange(name, event) {
756
+ this._setSlotState(name, this._slotHasContent(event.target));
757
+ }
758
+ /** Reconcile the 2 slot-presence flags from their slots' assigned content. */
759
+ _scanSlots() {
760
+ for (const name of ["label", "helper"]) {
761
+ const has = this._slotHasContent(this._slotFor(name));
762
+ if (has !== (name === "label" ? this._hasLabelSlotState : this._hasHelperSlotState)) this._setSlotState(name, has);
763
+ }
764
+ }
765
+ /** Native `<slot>` carrying the prop fallback as native slot content. */
766
+ _slotOutlet(name, fallback = nothing) {
767
+ return html`<slot
768
+ name=${name}
769
+ @slotchange=${(e) => this._onSlotChange(name, e)}
770
+ >${fallback}</slot
771
+ >`;
772
+ }
773
+ };
774
+ MonoTextareaShadow = __decorate([customElement("mono-shadow-textarea")], MonoTextareaShadow);
775
+ //#endregion
776
+ //#region src/components/textarea/textarea-utils.ts
777
+ function validateTextareaProps(props) {
778
+ const validSizes = [
779
+ "xs",
780
+ "sm",
781
+ "md",
782
+ "lg",
783
+ "xl",
784
+ "xxl"
785
+ ];
786
+ const validColors = [
787
+ "primary",
788
+ "secondary",
789
+ "success",
790
+ "danger",
791
+ "warning",
792
+ "info",
793
+ "teal",
794
+ "purple",
795
+ "neutral",
796
+ "dark"
797
+ ];
798
+ const validVariants = [
799
+ "outlined",
800
+ "filled",
801
+ "underlined"
802
+ ];
803
+ const validStates = [
804
+ "default",
805
+ "valid",
806
+ "invalid",
807
+ "warning"
808
+ ];
809
+ if (props.size && !validSizes.includes(props.size)) return false;
810
+ if (props.color && !validColors.includes(props.color)) return false;
811
+ if (props.variant && !validVariants.includes(props.variant)) return false;
812
+ if (props.validationState && !validStates.includes(props.validationState)) return false;
813
+ return true;
814
+ }
815
+ //#endregion
816
+ export { MonoTextareaCore, MonoTextareaShadow, validateTextareaProps };