mlform 0.1.7 → 0.1.9

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 (363) hide show
  1. package/README.md +42 -13
  2. package/dist/builtins-ml-pjab8_gu.js +3878 -0
  3. package/dist/{design-system-CrrSGfFB.js → design-system-CIU_vH6O.js} +612 -415
  4. package/dist/errors-CTNw8fwS.js +8 -0
  5. package/dist/kit-QY6zff-h.js +1888 -0
  6. package/dist/mlform/behaviors.mjs +32 -0
  7. package/dist/mlform/builtins-ml.mjs +2 -0
  8. package/dist/mlform/design-system.mjs +2 -2
  9. package/dist/mlform/kit.mjs +3 -3
  10. package/dist/mlform/presentation.mjs +2 -0
  11. package/dist/mlform/primitives.mjs +2 -2
  12. package/dist/mlform/runtime.mjs +4 -0
  13. package/dist/mlform/schema.mjs +102 -0
  14. package/dist/mlform/transport.mjs +2 -2
  15. package/dist/mlform.mjs +8 -4
  16. package/dist/presentation-BrlVO4oV.js +200 -0
  17. package/dist/{primitives-BqjFDDhL.js → primitives-Di95y_ur.js} +1653 -1561
  18. package/dist/runtime-C5iTM3uu.js +1839 -0
  19. package/dist/strings-CWwrrYzz.js +4 -0
  20. package/dist/{transport-A1RsnZhD.js → transport-B6ePTLFK.js} +345 -372
  21. package/dist/types/behaviors/index.d.ts +3 -0
  22. package/dist/types/builtins-ml/definitions/fields/boolean.d.ts +9 -0
  23. package/dist/types/builtins-ml/definitions/fields/category.d.ts +12 -0
  24. package/dist/types/builtins-ml/definitions/fields/date.d.ts +10 -0
  25. package/dist/types/builtins-ml/definitions/fields/long-text.d.ts +11 -0
  26. package/dist/types/{src/engine/builtins → builtins-ml/definitions}/fields/mapped-category.d.ts +3 -2
  27. package/dist/types/{src/engine/builtins → builtins-ml/definitions}/fields/multi-choice.d.ts +3 -2
  28. package/dist/types/builtins-ml/definitions/fields/number.d.ts +12 -0
  29. package/dist/types/builtins-ml/definitions/fields/rating.d.ts +10 -0
  30. package/dist/types/builtins-ml/definitions/fields/series-helpers.d.ts +52 -0
  31. package/dist/types/builtins-ml/definitions/fields/series.d.ts +3 -0
  32. package/dist/types/{src/engine/builtins → builtins-ml/definitions}/fields/single-choice.d.ts +3 -2
  33. package/dist/types/builtins-ml/definitions/fields/text.d.ts +11 -0
  34. package/dist/types/{src/engine/builtins → builtins-ml/definitions}/index.d.ts +13 -34
  35. package/dist/types/builtins-ml/definitions/reports/classifier.d.ts +9 -0
  36. package/dist/types/builtins-ml/definitions/reports/regressor.d.ts +9 -0
  37. package/dist/types/{src/engine/builtins → builtins-ml/definitions}/shared.d.ts +25 -1
  38. package/dist/types/builtins-ml/index.d.ts +5 -0
  39. package/dist/types/design-system/recipes/index.d.ts +3 -0
  40. package/dist/types/{src/design-system → design-system}/registry/builtins.d.ts +0 -3
  41. package/dist/types/{src/design-system → design-system}/registry/index.d.ts +3 -1
  42. package/dist/types/design-system/runtime/controller-helpers.d.ts +12 -0
  43. package/dist/types/design-system/runtime/fingerprint.d.ts +8 -0
  44. package/dist/types/design-system/runtime/host-observer.d.ts +1 -0
  45. package/dist/types/design-system/runtime/hydration-state.d.ts +13 -0
  46. package/dist/types/design-system/runtime/inherited-scheme.d.ts +5 -0
  47. package/dist/types/design-system/runtime/media.d.ts +19 -0
  48. package/dist/types/design-system/themes/airbnb.d.ts +2 -0
  49. package/dist/types/design-system/themes/clickhouse.d.ts +2 -0
  50. package/dist/types/design-system/themes/index.d.ts +4 -0
  51. package/dist/types/index.d.ts +13 -0
  52. package/dist/types/kit/accordion-root-styles.d.ts +1 -0
  53. package/dist/types/kit/accordion-root.d.ts +24 -0
  54. package/dist/types/kit/accordion.d.ts +2 -0
  55. package/dist/types/kit/constants.d.ts +33 -0
  56. package/dist/types/{src/kit → kit}/defaults.d.ts +4 -4
  57. package/dist/types/kit/error-navigation.d.ts +2 -0
  58. package/dist/types/kit/index.d.ts +9 -0
  59. package/dist/types/kit/layout-helpers.d.ts +29 -0
  60. package/dist/types/kit/layout-node-render.d.ts +18 -0
  61. package/dist/types/kit/layout-node-resolver.d.ts +3 -0
  62. package/dist/types/kit/layout-types.d.ts +124 -0
  63. package/dist/types/kit/layout-utils.d.ts +9 -0
  64. package/dist/types/kit/layout.d.ts +8 -0
  65. package/dist/types/{src/kit/types.d.ts → kit/mount-types.d.ts} +6 -4
  66. package/dist/types/kit/panel-nav.d.ts +9 -0
  67. package/dist/types/{src/questionnaire/primitives/components → kit}/step-indicator.d.ts +3 -3
  68. package/dist/types/kit/tabs-root-styles.d.ts +1 -0
  69. package/dist/types/kit/tabs-root.d.ts +24 -0
  70. package/dist/types/kit/tabs.d.ts +2 -0
  71. package/dist/types/kit/types.d.ts +5 -0
  72. package/dist/types/kit/view-layout-state.d.ts +14 -0
  73. package/dist/types/kit/view-navigation.d.ts +8 -0
  74. package/dist/types/kit/view-snapshot-cache.d.ts +14 -0
  75. package/dist/types/kit/view-snapshot.d.ts +15 -0
  76. package/dist/types/kit/view-types.d.ts +172 -0
  77. package/dist/types/kit/view.d.ts +8 -0
  78. package/dist/types/kit/wizard-constants.d.ts +19 -0
  79. package/dist/types/kit/wizard-root-styles.d.ts +1 -0
  80. package/dist/types/kit/wizard-root.d.ts +23 -0
  81. package/dist/types/kit/wizard.d.ts +2 -0
  82. package/dist/types/packs/default.d.ts +2 -0
  83. package/dist/types/packs/index.d.ts +3 -0
  84. package/dist/types/packs/ml.d.ts +2 -0
  85. package/dist/types/packs/shared.d.ts +24 -0
  86. package/dist/types/presentation/define-explanation-kind.d.ts +11 -0
  87. package/dist/types/presentation/define-field-kind.d.ts +18 -0
  88. package/dist/types/presentation/define-report-kind.d.ts +15 -0
  89. package/dist/types/presentation/index.d.ts +10 -0
  90. package/dist/types/presentation/register-kind.d.ts +6 -0
  91. package/dist/types/presentation/registry.d.ts +15 -0
  92. package/dist/types/presentation/types/explanation.d.ts +32 -0
  93. package/dist/types/presentation/types/field.d.ts +36 -0
  94. package/dist/types/presentation/types/report.d.ts +41 -0
  95. package/dist/types/{src/primitives → primitives}/base-explanation-element.d.ts +2 -1
  96. package/dist/types/{src/primitives → primitives}/base-field-element.d.ts +2 -1
  97. package/dist/types/{src/primitives → primitives}/base-report-element.d.ts +2 -1
  98. package/dist/types/primitives/components/error-focus.d.ts +4 -0
  99. package/dist/types/{src/primitives → primitives}/components/explanation-panel.d.ts +4 -2
  100. package/dist/types/primitives/components/field-frame-feedback.d.ts +9 -0
  101. package/dist/types/primitives/components/field-frame-styles.d.ts +1 -0
  102. package/dist/types/{src/primitives → primitives}/components/field-frame.d.ts +5 -3
  103. package/dist/types/{src/primitives → primitives}/components/form-errors.d.ts +1 -1
  104. package/dist/types/primitives/components/form-root-presenters.d.ts +17 -0
  105. package/dist/types/primitives/components/form-root-split-styles.d.ts +1 -0
  106. package/dist/types/primitives/components/form-root-state.d.ts +19 -0
  107. package/dist/types/primitives/components/form-root-styles.d.ts +1 -0
  108. package/dist/types/primitives/components/form-root-templates.d.ts +42 -0
  109. package/dist/types/{src/primitives → primitives}/components/form-root.d.ts +4 -2
  110. package/dist/types/{src/primitives → primitives}/components/presentation.d.ts +1 -1
  111. package/dist/types/{src/primitives → primitives}/components/report-frame.d.ts +4 -2
  112. package/dist/types/{src/primitives → primitives}/components/submit-button.d.ts +1 -1
  113. package/dist/types/{src/primitives → primitives}/constants.d.ts +1 -1
  114. package/dist/types/primitives/fields/series-field-helpers.d.ts +23 -0
  115. package/dist/types/primitives/fields/series-field-renderers.d.ts +18 -0
  116. package/dist/types/primitives/fields/series-field-styles.d.ts +1 -0
  117. package/dist/types/{src/primitives → primitives}/mount-form.d.ts +1 -1
  118. package/dist/types/primitives/presentation.d.ts +8 -0
  119. package/dist/types/{src/primitives → primitives}/types.d.ts +4 -1
  120. package/dist/types/runtime/create-runtime-helpers.d.ts +11 -0
  121. package/dist/types/{src/engine → runtime}/errors.d.ts +3 -3
  122. package/dist/types/runtime/fields/state-calculations.d.ts +25 -0
  123. package/dist/types/runtime/fields/state.d.ts +2 -0
  124. package/dist/types/runtime/form.d.ts +1 -0
  125. package/dist/types/runtime/index.d.ts +12 -0
  126. package/dist/types/runtime/runtime-behaviors.d.ts +23 -0
  127. package/dist/types/runtime/runtime-controller.d.ts +34 -0
  128. package/dist/types/runtime/runtime-refresh.d.ts +14 -0
  129. package/dist/types/runtime/runtime-values.d.ts +19 -0
  130. package/dist/types/runtime/submission/create-submitter.d.ts +2 -0
  131. package/dist/types/runtime/submission/error-flow.d.ts +19 -0
  132. package/dist/types/runtime/submission/field-updates.d.ts +14 -0
  133. package/dist/types/runtime/submission/pending-patches.d.ts +2 -0
  134. package/dist/types/runtime/submission/report-updates.d.ts +16 -0
  135. package/dist/types/runtime/submission/stream-events.d.ts +13 -0
  136. package/dist/types/runtime/submission/stream-progress.d.ts +4 -0
  137. package/dist/types/runtime/submission/submitter.d.ts +2 -0
  138. package/dist/types/runtime/submission/types.d.ts +60 -0
  139. package/dist/types/runtime/types/behavior.d.ts +32 -0
  140. package/dist/types/runtime/types/explanation.d.ts +15 -0
  141. package/dist/types/runtime/types/field.d.ts +17 -0
  142. package/dist/types/{src/engine → runtime}/types/form.d.ts +8 -11
  143. package/dist/types/{src/engine → runtime}/types/index.d.ts +1 -2
  144. package/dist/types/runtime/types/registry.d.ts +6 -0
  145. package/dist/types/runtime/types/report.d.ts +13 -0
  146. package/dist/types/{src/engine → runtime}/types/transport.d.ts +2 -2
  147. package/dist/types/{src/engine → runtime}/utils.d.ts +2 -2
  148. package/dist/types/{src/engine/validation/field.d.ts → runtime/validation/field-state.d.ts} +3 -19
  149. package/dist/types/runtime/validation/field-validator.d.ts +18 -0
  150. package/dist/types/runtime/validation/field.d.ts +2 -0
  151. package/dist/types/schema/index.d.ts +7 -0
  152. package/dist/types/schema/normalize.d.ts +2 -0
  153. package/dist/types/schema/registry.d.ts +9 -0
  154. package/dist/types/schema/types/explanation.d.ts +43 -0
  155. package/dist/types/{src/engine → schema}/types/field.d.ts +3 -45
  156. package/dist/types/schema/types/form.d.ts +13 -0
  157. package/dist/types/schema/types/report.d.ts +43 -0
  158. package/dist/types/shared/index.d.ts +3 -0
  159. package/dist/types/shared/object.d.ts +1 -0
  160. package/dist/types/shared/strings.d.ts +1 -0
  161. package/dist/types/transport/composition/fanout-helpers.d.ts +2 -0
  162. package/dist/types/transport/composition/fanout-options.d.ts +9 -0
  163. package/dist/types/transport/composition/fanout.d.ts +2 -0
  164. package/dist/types/{src/transport → transport}/composition/index.d.ts +1 -0
  165. package/dist/types/transport/composition/quorum-fanout.d.ts +2 -0
  166. package/dist/types/{src/transport → transport}/errors.d.ts +1 -1
  167. package/dist/types/transport/internal-core.d.ts +21 -0
  168. package/dist/types/transport/internal-errors.d.ts +21 -0
  169. package/dist/types/transport/internal-request.d.ts +21 -0
  170. package/dist/types/transport/internal-routing.d.ts +25 -0
  171. package/dist/types/transport/internal-sse.d.ts +14 -0
  172. package/dist/types/transport/internal-stream.d.ts +13 -0
  173. package/dist/types/transport/internal.d.ts +6 -0
  174. package/dist/types/transport/types/options-http.d.ts +85 -0
  175. package/dist/types/transport/types/options-middleware.d.ts +96 -0
  176. package/dist/types/transport/types/options-routing.d.ts +82 -0
  177. package/dist/types/transport/types/options.d.ts +3 -0
  178. package/dist/utils-J5o8lkea.js +29 -0
  179. package/package.json +26 -14
  180. package/dist/engine-CEy1IX7y.js +0 -5367
  181. package/dist/kit-DrrbtxI2.js +0 -76
  182. package/dist/mlform/engine.mjs +0 -3
  183. package/dist/mlform/questionnaire.mjs +0 -640
  184. package/dist/types/src/design-system/recipes/index.d.ts +0 -4
  185. package/dist/types/src/design-system/themes/index.d.ts +0 -5
  186. package/dist/types/src/engine/builtins/fields/boolean.d.ts +0 -8
  187. package/dist/types/src/engine/builtins/fields/category.d.ts +0 -11
  188. package/dist/types/src/engine/builtins/fields/date.d.ts +0 -9
  189. package/dist/types/src/engine/builtins/fields/long-text.d.ts +0 -10
  190. package/dist/types/src/engine/builtins/fields/number.d.ts +0 -11
  191. package/dist/types/src/engine/builtins/fields/rating.d.ts +0 -9
  192. package/dist/types/src/engine/builtins/fields/series.d.ts +0 -20
  193. package/dist/types/src/engine/builtins/fields/text.d.ts +0 -10
  194. package/dist/types/src/engine/builtins/reports/classifier.d.ts +0 -8
  195. package/dist/types/src/engine/builtins/reports/regressor.d.ts +0 -8
  196. package/dist/types/src/engine/declarative/explanation.d.ts +0 -2
  197. package/dist/types/src/engine/declarative/field.d.ts +0 -2
  198. package/dist/types/src/engine/declarative/report.d.ts +0 -2
  199. package/dist/types/src/engine/index.d.ts +0 -11
  200. package/dist/types/src/engine/registry/index.d.ts +0 -26
  201. package/dist/types/src/engine/submission/submitter.d.ts +0 -40
  202. package/dist/types/src/engine/types/explanation.d.ts +0 -109
  203. package/dist/types/src/engine/types/report.d.ts +0 -87
  204. package/dist/types/src/index.d.ts +0 -7
  205. package/dist/types/src/kit/constants.d.ts +0 -4
  206. package/dist/types/src/kit/index.d.ts +0 -4
  207. package/dist/types/src/questionnaire/constants.d.ts +0 -31
  208. package/dist/types/src/questionnaire/defaults.d.ts +0 -8
  209. package/dist/types/src/questionnaire/engine/controller.d.ts +0 -12
  210. package/dist/types/src/questionnaire/engine/schema.d.ts +0 -9
  211. package/dist/types/src/questionnaire/errors.d.ts +0 -3
  212. package/dist/types/src/questionnaire/index.d.ts +0 -6
  213. package/dist/types/src/questionnaire/mount.d.ts +0 -3
  214. package/dist/types/src/questionnaire/primitives/components/questionnaire-root.d.ts +0 -23
  215. package/dist/types/src/questionnaire/primitives/register.d.ts +0 -0
  216. package/dist/types/src/questionnaire/types.d.ts +0 -69
  217. package/dist/types/src/shared/index.d.ts +0 -1
  218. package/dist/types/src/transport/composition/fanout.d.ts +0 -3
  219. package/dist/types/src/transport/internal.d.ts +0 -110
  220. package/dist/types/src/transport/types/options.d.ts +0 -258
  221. package/dist/types/{src/design-system → design-system}/constants.d.ts +0 -0
  222. package/dist/types/{src/design-system → design-system}/contract/component-keys.d.ts +0 -0
  223. package/dist/types/{src/design-system → design-system}/contract/component-tokens.d.ts +0 -0
  224. package/dist/types/{src/design-system → design-system}/contract/global-tokens.d.ts +0 -0
  225. package/dist/types/{src/design-system → design-system}/contract/index.d.ts +0 -0
  226. package/dist/types/{src/design-system → design-system}/contract/token-keys.d.ts +0 -0
  227. package/dist/types/{src/design-system → design-system}/index.d.ts +0 -0
  228. package/dist/types/{src/design-system → design-system}/recipes/contrast.d.ts +0 -0
  229. package/dist/types/{src/design-system → design-system}/recipes/default.d.ts +0 -0
  230. package/dist/types/{src/design-system → design-system}/recipes/minimal.d.ts +0 -0
  231. package/dist/types/{src/design-system → design-system}/recipes/soft.d.ts +0 -0
  232. package/dist/types/{src/design-system → design-system}/registry/create-registry.d.ts +0 -0
  233. package/dist/types/{src/design-system → design-system}/registry/deep-freeze.d.ts +0 -0
  234. package/dist/types/{src/design-system → design-system}/registry/define-recipe.d.ts +0 -0
  235. package/dist/types/{src/design-system → design-system}/registry/define-theme.d.ts +0 -0
  236. package/dist/types/{src/design-system → design-system}/registry/define-token-maps.d.ts +0 -0
  237. package/dist/types/{src/design-system → design-system}/resolve/diagnostics.d.ts +0 -0
  238. package/dist/types/{src/design-system → design-system}/resolve/index.d.ts +0 -0
  239. package/dist/types/{src/design-system → design-system}/resolve/merge-config.d.ts +0 -0
  240. package/dist/types/{src/design-system → design-system}/resolve/migrate-tokens.d.ts +0 -0
  241. package/dist/types/{src/design-system → design-system}/resolve/resolve-mode.d.ts +0 -0
  242. package/dist/types/{src/design-system → design-system}/resolve/resolve-recipe.d.ts +0 -0
  243. package/dist/types/{src/design-system → design-system}/resolve/resolve-theme.d.ts +0 -0
  244. package/dist/types/{src/design-system → design-system}/resolve/resolve-tokens.d.ts +0 -0
  245. package/dist/types/{src/design-system → design-system}/runtime/apply-tokens.d.ts +0 -0
  246. package/dist/types/{src/design-system → design-system}/runtime/attach-design-system.d.ts +0 -0
  247. package/dist/types/{src/design-system → design-system}/runtime/create-stylesheet.d.ts +0 -0
  248. package/dist/types/{src/design-system → design-system}/runtime/declarations.d.ts +0 -0
  249. package/dist/types/{src/design-system → design-system}/runtime/design-system-controller.d.ts +0 -0
  250. package/dist/types/{src/design-system → design-system}/runtime/host-state.d.ts +0 -0
  251. package/dist/types/{src/design-system → design-system}/runtime/hydrate-design-system.d.ts +0 -0
  252. package/dist/types/{src/design-system → design-system}/runtime/index.d.ts +0 -0
  253. package/dist/types/{src/design-system → design-system}/themes/cobalt.d.ts +0 -0
  254. package/dist/types/{src/design-system → design-system}/themes/graphite.d.ts +0 -0
  255. package/dist/types/{src/design-system → design-system}/themes/neutral.d.ts +0 -0
  256. package/dist/types/{src/design-system → design-system}/themes/sage.d.ts +0 -0
  257. package/dist/types/{src/design-system → design-system}/themes/sunset.d.ts +0 -0
  258. package/dist/types/{src/design-system → design-system}/tokens/base.d.ts +0 -0
  259. package/dist/types/{src/design-system → design-system}/tokens/contrast.d.ts +0 -0
  260. package/dist/types/{src/design-system → design-system}/tokens/density.d.ts +0 -0
  261. package/dist/types/{src/design-system → design-system}/tokens/forced-colors.d.ts +0 -0
  262. package/dist/types/{src/design-system → design-system}/tokens/index.d.ts +0 -0
  263. package/dist/types/{src/design-system → design-system}/tokens/motion.d.ts +0 -0
  264. package/dist/types/{src/design-system → design-system}/types.d.ts +0 -0
  265. package/dist/types/{src/kit → kit}/mount-form.d.ts +0 -0
  266. package/dist/types/{src/engine/declarative → presentation/types}/presentation.d.ts +0 -0
  267. package/dist/types/{src/primitives → primitives}/base-async-report-element.d.ts +0 -0
  268. package/dist/types/{src/primitives → primitives}/components/declarative-explanation.d.ts +0 -0
  269. package/dist/types/{src/primitives → primitives}/components/declarative-field.d.ts +0 -0
  270. package/dist/types/{src/primitives → primitives}/components/declarative-report.d.ts +0 -0
  271. package/dist/types/{src/primitives → primitives}/components/unsupported-component.d.ts +0 -0
  272. package/dist/types/{src/primitives → primitives}/controller-binding.d.ts +0 -0
  273. package/dist/types/{src/primitives → primitives}/fields/boolean-field.d.ts +0 -0
  274. package/dist/types/{src/primitives → primitives}/fields/category-field.d.ts +0 -0
  275. package/dist/types/{src/primitives → primitives}/fields/date-field.d.ts +0 -0
  276. package/dist/types/{src/primitives → primitives}/fields/long-text-field.d.ts +0 -0
  277. package/dist/types/{src/primitives → primitives}/fields/multi-choice-field.d.ts +0 -0
  278. package/dist/types/{src/primitives → primitives}/fields/number-field.d.ts +0 -0
  279. package/dist/types/{src/primitives → primitives}/fields/rating-field.d.ts +0 -0
  280. package/dist/types/{src/primitives → primitives}/fields/series-field.d.ts +0 -0
  281. package/dist/types/{src/primitives → primitives}/fields/single-choice-field.d.ts +0 -0
  282. package/dist/types/{src/primitives → primitives}/fields/text-field.d.ts +0 -0
  283. package/dist/types/{src/primitives → primitives}/index.d.ts +0 -0
  284. package/dist/types/{src/primitives → primitives}/register.d.ts +0 -0
  285. package/dist/types/{src/primitives → primitives}/registry.d.ts +0 -0
  286. package/dist/types/{src/primitives → primitives}/reports/classifier-report.d.ts +0 -0
  287. package/dist/types/{src/primitives → primitives}/reports/regressor-report.d.ts +0 -0
  288. package/dist/types/{src/primitives → primitives}/utils.d.ts +0 -0
  289. package/dist/types/{src/engine → runtime}/comparison.d.ts +0 -0
  290. package/dist/types/{src/engine → runtime}/constants.d.ts +0 -0
  291. package/dist/types/{src/engine/form.d.ts → runtime/create-runtime.d.ts} +0 -0
  292. package/dist/types/{src/engine → runtime}/equality.d.ts +0 -0
  293. package/dist/types/{src/engine → runtime}/explanations/controller.d.ts +0 -0
  294. package/dist/types/{src/engine → runtime}/explanations/index.d.ts +0 -0
  295. package/dist/types/{src/engine → runtime}/fields/controller.d.ts +0 -0
  296. package/dist/types/{src/engine → runtime}/fields/index.d.ts +0 -0
  297. package/dist/types/{src/engine → runtime}/paths.d.ts +0 -0
  298. package/dist/types/{src/engine → runtime}/reports/controller.d.ts +0 -0
  299. package/dist/types/{src/engine → runtime}/reports/index.d.ts +0 -0
  300. package/dist/types/{src/engine → runtime}/schema/index.d.ts +0 -0
  301. package/dist/types/{src/engine → runtime}/state/engine.d.ts +0 -0
  302. package/dist/types/{src/engine → runtime}/state/index.d.ts +0 -0
  303. package/dist/types/{src/engine → runtime}/state/snapshots.d.ts +0 -0
  304. package/dist/types/{src/engine → runtime}/state/store.d.ts +0 -0
  305. package/dist/types/{src/engine → runtime}/submission/abort.d.ts +0 -0
  306. package/dist/types/{src/engine → runtime}/submission/explanations.d.ts +0 -0
  307. package/dist/types/{src/engine → runtime}/submission/index.d.ts +0 -0
  308. package/dist/types/{src/engine → runtime}/submission/lifecycle.d.ts +0 -0
  309. package/dist/types/{src/engine → runtime}/submission/pipeline.d.ts +0 -0
  310. package/dist/types/{src/engine → runtime}/submission/reports.d.ts +0 -0
  311. package/dist/types/{src/engine → runtime}/submission/request.d.ts +0 -0
  312. package/dist/types/{src/engine → runtime}/submission/result.d.ts +0 -0
  313. package/dist/types/{src/engine → runtime}/types/pipeline.d.ts +0 -0
  314. package/dist/types/{src/engine → runtime}/validation/conditions.d.ts +0 -0
  315. package/dist/types/{src/engine → runtime}/validation/form.d.ts +0 -0
  316. package/dist/types/{src/engine → runtime}/validation/index.d.ts +0 -0
  317. package/dist/types/{src/engine → runtime}/values.d.ts +0 -0
  318. package/dist/types/{src/engine → schema}/types/registry.d.ts +1 -1
  319. /package/dist/types/{src/shared → shared}/errors.d.ts +0 -0
  320. /package/dist/types/{src/transport → transport}/capabilities.d.ts +0 -0
  321. /package/dist/types/{src/transport → transport}/clone.d.ts +0 -0
  322. /package/dist/types/{src/transport → transport}/composition/fallback.d.ts +0 -0
  323. /package/dist/types/{src/transport → transport}/composition/hedged.d.ts +0 -0
  324. /package/dist/types/{src/transport → transport}/composition/load-balancing.d.ts +0 -0
  325. /package/dist/types/{src/transport → transport}/composition/pipeline.d.ts +0 -0
  326. /package/dist/types/{src/transport → transport}/composition/racing.d.ts +0 -0
  327. /package/dist/types/{src/transport → transport}/composition/routing.d.ts +0 -0
  328. /package/dist/types/{src/transport → transport}/constants.d.ts +0 -0
  329. /package/dist/types/{src/transport → transport}/index.d.ts +0 -0
  330. /package/dist/types/{src/transport → transport}/middleware/auth.d.ts +0 -0
  331. /package/dist/types/{src/transport → transport}/middleware/cache.d.ts +0 -0
  332. /package/dist/types/{src/transport → transport}/middleware/circuit-breaker.d.ts +0 -0
  333. /package/dist/types/{src/transport → transport}/middleware/dedup.d.ts +0 -0
  334. /package/dist/types/{src/transport → transport}/middleware/index.d.ts +0 -0
  335. /package/dist/types/{src/transport → transport}/middleware/logging.d.ts +0 -0
  336. /package/dist/types/{src/transport → transport}/middleware/metrics.d.ts +0 -0
  337. /package/dist/types/{src/transport → transport}/middleware/pipe.d.ts +0 -0
  338. /package/dist/types/{src/transport → transport}/middleware/rate-limit.d.ts +0 -0
  339. /package/dist/types/{src/transport → transport}/middleware/retry.d.ts +0 -0
  340. /package/dist/types/{src/transport → transport}/middleware/timeout.d.ts +0 -0
  341. /package/dist/types/{src/transport → transport}/middleware/tracing.d.ts +0 -0
  342. /package/dist/types/{src/transport → transport}/middleware/transform.d.ts +0 -0
  343. /package/dist/types/{src/transport → transport}/policy-context.d.ts +0 -0
  344. /package/dist/types/{src/transport → transport}/protocols/graphql.d.ts +0 -0
  345. /package/dist/types/{src/transport → transport}/protocols/grpc.d.ts +0 -0
  346. /package/dist/types/{src/transport → transport}/protocols/index.d.ts +0 -0
  347. /package/dist/types/{src/transport → transport}/protocols/json.d.ts +0 -0
  348. /package/dist/types/{src/transport → transport}/protocols/sse.d.ts +0 -0
  349. /package/dist/types/{src/transport → transport}/protocols/websocket.d.ts +0 -0
  350. /package/dist/types/{src/transport → transport}/runtime.d.ts +0 -0
  351. /package/dist/types/{src/transport → transport}/state/cache-store.d.ts +0 -0
  352. /package/dist/types/{src/transport → transport}/state/circuit-breaker.d.ts +0 -0
  353. /package/dist/types/{src/transport → transport}/state/health.d.ts +0 -0
  354. /package/dist/types/{src/transport → transport}/state/index.d.ts +0 -0
  355. /package/dist/types/{src/transport → transport}/state/rate-limiter.d.ts +0 -0
  356. /package/dist/types/{src/transport → transport}/state/session.d.ts +0 -0
  357. /package/dist/types/{src/transport → transport}/types/capabilities.d.ts +0 -0
  358. /package/dist/types/{src/transport → transport}/types/core.d.ts +0 -0
  359. /package/dist/types/{src/transport → transport}/types/events.d.ts +0 -0
  360. /package/dist/types/{src/transport → transport}/types/index.d.ts +0 -0
  361. /package/dist/types/{src/transport → transport}/types/middleware.d.ts +0 -0
  362. /package/dist/types/{src/transport → transport}/types/session.d.ts +0 -0
  363. /package/dist/types/{src/transport → transport}/types/state.d.ts +0 -0
@@ -1,36 +1,37 @@
1
- import { L as e } from "./engine-CEy1IX7y.js";
1
+ import { c as e } from "./runtime-C5iTM3uu.js";
2
+ import { n as t } from "./builtins-ml-pjab8_gu.js";
2
3
  //#region node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js
3
- var t = globalThis, n = t.ShadowRoot && (t.ShadyCSS === void 0 || t.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, r = Symbol(), i = /* @__PURE__ */ new WeakMap(), a = class {
4
+ var n = globalThis, r = n.ShadowRoot && (n.ShadyCSS === void 0 || n.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, i = Symbol(), a = /* @__PURE__ */ new WeakMap(), o = class {
4
5
  constructor(e, t, n) {
5
- if (this._$cssResult$ = !0, n !== r) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
6
+ if (this._$cssResult$ = !0, n !== i) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
6
7
  this.cssText = e, this.t = t;
7
8
  }
8
9
  get styleSheet() {
9
10
  let e = this.o, t = this.t;
10
- if (n && e === void 0) {
11
+ if (r && e === void 0) {
11
12
  let n = t !== void 0 && t.length === 1;
12
- n && (e = i.get(t)), e === void 0 && ((this.o = e = new CSSStyleSheet()).replaceSync(this.cssText), n && i.set(t, e));
13
+ n && (e = a.get(t)), e === void 0 && ((this.o = e = new CSSStyleSheet()).replaceSync(this.cssText), n && a.set(t, e));
13
14
  }
14
15
  return e;
15
16
  }
16
17
  toString() {
17
18
  return this.cssText;
18
19
  }
19
- }, o = (e) => new a(typeof e == "string" ? e : e + "", void 0, r), s = (e, ...t) => new a(e.length === 1 ? e[0] : t.reduce((t, n, r) => t + ((e) => {
20
+ }, s = (e) => new o(typeof e == "string" ? e : e + "", void 0, i), c = (e, ...t) => new o(e.length === 1 ? e[0] : t.reduce((t, n, r) => t + ((e) => {
20
21
  if (!0 === e._$cssResult$) return e.cssText;
21
22
  if (typeof e == "number") return e;
22
23
  throw Error("Value passed to 'css' function must be a 'css' function result: " + e + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.");
23
- })(n) + e[r + 1], e[0]), e, r), c = (e, r) => {
24
- if (n) e.adoptedStyleSheets = r.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet);
25
- else for (let n of r) {
26
- let r = document.createElement("style"), i = t.litNonce;
27
- i !== void 0 && r.setAttribute("nonce", i), r.textContent = n.cssText, e.appendChild(r);
24
+ })(n) + e[r + 1], e[0]), e, i), l = (e, t) => {
25
+ if (r) e.adoptedStyleSheets = t.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet);
26
+ else for (let r of t) {
27
+ let t = document.createElement("style"), i = n.litNonce;
28
+ i !== void 0 && t.setAttribute("nonce", i), t.textContent = r.cssText, e.appendChild(t);
28
29
  }
29
- }, l = n ? (e) => e : (e) => e instanceof CSSStyleSheet ? ((e) => {
30
+ }, u = r ? (e) => e : (e) => e instanceof CSSStyleSheet ? ((e) => {
30
31
  let t = "";
31
32
  for (let n of e.cssRules) t += n.cssText;
32
- return o(t);
33
- })(e) : e, { is: u, defineProperty: d, getOwnPropertyDescriptor: f, getOwnPropertyNames: p, getOwnPropertySymbols: m, getPrototypeOf: ee } = Object, te = globalThis, ne = te.trustedTypes, re = ne ? ne.emptyScript : "", ie = te.reactiveElementPolyfillSupport, ae = (e, t) => e, oe = {
33
+ return s(t);
34
+ })(e) : e, { is: d, defineProperty: f, getOwnPropertyDescriptor: p, getOwnPropertyNames: m, getOwnPropertySymbols: h, getPrototypeOf: ee } = Object, te = globalThis, ne = te.trustedTypes, re = ne ? ne.emptyScript : "", ie = te.reactiveElementPolyfillSupport, g = (e, t) => e, ae = {
34
35
  toAttribute(e, t) {
35
36
  switch (t) {
36
37
  case Boolean:
@@ -59,30 +60,30 @@ var t = globalThis, n = t.ShadowRoot && (t.ShadyCSS === void 0 || t.ShadyCSS.nat
59
60
  }
60
61
  return n;
61
62
  }
62
- }, se = (e, t) => !u(e, t), ce = {
63
+ }, oe = (e, t) => !d(e, t), se = {
63
64
  attribute: !0,
64
65
  type: String,
65
- converter: oe,
66
+ converter: ae,
66
67
  reflect: !1,
67
68
  useDefault: !1,
68
- hasChanged: se
69
+ hasChanged: oe
69
70
  };
70
71
  Symbol.metadata ??= Symbol("metadata"), te.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
71
- var h = class extends HTMLElement {
72
+ var _ = class extends HTMLElement {
72
73
  static addInitializer(e) {
73
74
  this._$Ei(), (this.l ??= []).push(e);
74
75
  }
75
76
  static get observedAttributes() {
76
77
  return this.finalize(), this._$Eh && [...this._$Eh.keys()];
77
78
  }
78
- static createProperty(e, t = ce) {
79
+ static createProperty(e, t = se) {
79
80
  if (t.state && (t.attribute = !1), this._$Ei(), this.prototype.hasOwnProperty(e) && ((t = Object.create(t)).wrapped = !0), this.elementProperties.set(e, t), !t.noAccessor) {
80
81
  let n = Symbol(), r = this.getPropertyDescriptor(e, n, t);
81
- r !== void 0 && d(this.prototype, e, r);
82
+ r !== void 0 && f(this.prototype, e, r);
82
83
  }
83
84
  }
84
85
  static getPropertyDescriptor(e, t, n) {
85
- let { get: r, set: i } = f(this.prototype, e) ?? {
86
+ let { get: r, set: i } = p(this.prototype, e) ?? {
86
87
  get() {
87
88
  return this[t];
88
89
  },
@@ -101,17 +102,17 @@ var h = class extends HTMLElement {
101
102
  };
102
103
  }
103
104
  static getPropertyOptions(e) {
104
- return this.elementProperties.get(e) ?? ce;
105
+ return this.elementProperties.get(e) ?? se;
105
106
  }
106
107
  static _$Ei() {
107
- if (this.hasOwnProperty(ae("elementProperties"))) return;
108
+ if (this.hasOwnProperty(g("elementProperties"))) return;
108
109
  let e = ee(this);
109
110
  e.finalize(), e.l !== void 0 && (this.l = [...e.l]), this.elementProperties = new Map(e.elementProperties);
110
111
  }
111
112
  static finalize() {
112
- if (this.hasOwnProperty(ae("finalized"))) return;
113
- if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(ae("properties"))) {
114
- let e = this.properties, t = [...p(e), ...m(e)];
113
+ if (this.hasOwnProperty(g("finalized"))) return;
114
+ if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(g("properties"))) {
115
+ let e = this.properties, t = [...m(e), ...h(e)];
115
116
  for (let n of t) this.createProperty(n, e[n]);
116
117
  }
117
118
  let e = this[Symbol.metadata];
@@ -130,8 +131,8 @@ var h = class extends HTMLElement {
130
131
  let t = [];
131
132
  if (Array.isArray(e)) {
132
133
  let n = new Set(e.flat(Infinity).reverse());
133
- for (let e of n) t.unshift(l(e));
134
- } else e !== void 0 && t.push(l(e));
134
+ for (let e of n) t.unshift(u(e));
135
+ } else e !== void 0 && t.push(u(e));
135
136
  return t;
136
137
  }
137
138
  static _$Eu(e, t) {
@@ -157,7 +158,7 @@ var h = class extends HTMLElement {
157
158
  }
158
159
  createRenderRoot() {
159
160
  let e = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
160
- return c(e, this.constructor.elementStyles), e;
161
+ return l(e, this.constructor.elementStyles), e;
161
162
  }
162
163
  connectedCallback() {
163
164
  this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(!0), this._$EO?.forEach((e) => e.hostConnected?.());
@@ -172,14 +173,14 @@ var h = class extends HTMLElement {
172
173
  _$ET(e, t) {
173
174
  let n = this.constructor.elementProperties.get(e), r = this.constructor._$Eu(e, n);
174
175
  if (r !== void 0 && !0 === n.reflect) {
175
- let i = (n.converter?.toAttribute === void 0 ? oe : n.converter).toAttribute(t, n.type);
176
+ let i = (n.converter?.toAttribute === void 0 ? ae : n.converter).toAttribute(t, n.type);
176
177
  this._$Em = e, i == null ? this.removeAttribute(r) : this.setAttribute(r, i), this._$Em = null;
177
178
  }
178
179
  }
179
180
  _$AK(e, t) {
180
181
  let n = this.constructor, r = n._$Eh.get(e);
181
182
  if (r !== void 0 && this._$Em !== r) {
182
- let e = n.getPropertyOptions(r), i = typeof e.converter == "function" ? { fromAttribute: e.converter } : e.converter?.fromAttribute === void 0 ? oe : e.converter;
183
+ let e = n.getPropertyOptions(r), i = typeof e.converter == "function" ? { fromAttribute: e.converter } : e.converter?.fromAttribute === void 0 ? ae : e.converter;
183
184
  this._$Em = r;
184
185
  let a = i.fromAttribute(t, e.type);
185
186
  this[r] = a ?? this._$Ej?.get(r) ?? a, this._$Em = null;
@@ -188,7 +189,7 @@ var h = class extends HTMLElement {
188
189
  requestUpdate(e, t, n, r = !1, i) {
189
190
  if (e !== void 0) {
190
191
  let a = this.constructor;
191
- if (!1 === r && (i = this[e]), n ??= a.getPropertyOptions(e), !((n.hasChanged ?? se)(i, t) || n.useDefault && n.reflect && i === this._$Ej?.get(e) && !this.hasAttribute(a._$Eu(e, n)))) return;
192
+ if (!1 === r && (i = this[e]), n ??= a.getPropertyOptions(e), !((n.hasChanged ?? oe)(i, t) || n.useDefault && n.reflect && i === this._$Ej?.get(e) && !this.hasAttribute(a._$Eu(e, n)))) return;
192
193
  this.C(e, t, n);
193
194
  }
194
195
  !1 === this.isUpdatePending && (this._$ES = this._$EP());
@@ -252,87 +253,87 @@ var h = class extends HTMLElement {
252
253
  updated(e) {}
253
254
  firstUpdated(e) {}
254
255
  };
255
- h.elementStyles = [], h.shadowRootOptions = { mode: "open" }, h[ae("elementProperties")] = /* @__PURE__ */ new Map(), h[ae("finalized")] = /* @__PURE__ */ new Map(), ie?.({ ReactiveElement: h }), (te.reactiveElementVersions ??= []).push("2.1.2");
256
+ _.elementStyles = [], _.shadowRootOptions = { mode: "open" }, _[g("elementProperties")] = /* @__PURE__ */ new Map(), _[g("finalized")] = /* @__PURE__ */ new Map(), ie?.({ ReactiveElement: _ }), (te.reactiveElementVersions ??= []).push("2.1.2");
256
257
  //#endregion
257
258
  //#region node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/lit-html.js
258
- var le = globalThis, ue = (e) => e, de = le.trustedTypes, fe = de ? de.createPolicy("lit-html", { createHTML: (e) => e }) : void 0, pe = "$lit$", g = `lit$${Math.random().toFixed(9).slice(2)}$`, me = "?" + g, he = `<${me}>`, _ = document, ge = () => _.createComment(""), _e = (e) => e === null || typeof e != "object" && typeof e != "function", ve = Array.isArray, ye = (e) => ve(e) || typeof e?.[Symbol.iterator] == "function", be = "[ \n\f\r]", v = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, xe = /-->/g, Se = />/g, y = RegExp(`>|${be}(?:([^\\s"'>=/]+)(${be}*=${be}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"), Ce = /'/g, we = /"/g, Te = /^(?:script|style|textarea|title)$/i, b = ((e) => (t, ...n) => ({
259
+ var ce = globalThis, le = (e) => e, ue = ce.trustedTypes, de = ue ? ue.createPolicy("lit-html", { createHTML: (e) => e }) : void 0, fe = "$lit$", v = `lit$${Math.random().toFixed(9).slice(2)}$`, pe = "?" + v, me = `<${pe}>`, y = document, b = () => y.createComment(""), he = (e) => e === null || typeof e != "object" && typeof e != "function", ge = Array.isArray, _e = (e) => ge(e) || typeof e?.[Symbol.iterator] == "function", ve = "[ \n\f\r]", ye = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, be = /-->/g, xe = />/g, x = RegExp(`>|${ve}(?:([^\\s"'>=/]+)(${ve}*=${ve}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"), Se = /'/g, Ce = /"/g, we = /^(?:script|style|textarea|title)$/i, S = ((e) => (t, ...n) => ({
259
260
  _$litType$: e,
260
261
  strings: t,
261
262
  values: n
262
- }))(1), x = Symbol.for("lit-noChange"), S = Symbol.for("lit-nothing"), Ee = /* @__PURE__ */ new WeakMap(), C = _.createTreeWalker(_, 129);
263
- function De(e, t) {
264
- if (!ve(e) || !e.hasOwnProperty("raw")) throw Error("invalid template strings array");
265
- return fe === void 0 ? t : fe.createHTML(t);
263
+ }))(1), C = Symbol.for("lit-noChange"), w = Symbol.for("lit-nothing"), Te = /* @__PURE__ */ new WeakMap(), T = y.createTreeWalker(y, 129);
264
+ function Ee(e, t) {
265
+ if (!ge(e) || !e.hasOwnProperty("raw")) throw Error("invalid template strings array");
266
+ return de === void 0 ? t : de.createHTML(t);
266
267
  }
267
- var Oe = (e, t) => {
268
- let n = e.length - 1, r = [], i, a = t === 2 ? "<svg>" : t === 3 ? "<math>" : "", o = v;
268
+ var De = (e, t) => {
269
+ let n = e.length - 1, r = [], i, a = t === 2 ? "<svg>" : t === 3 ? "<math>" : "", o = ye;
269
270
  for (let t = 0; t < n; t++) {
270
271
  let n = e[t], s, c, l = -1, u = 0;
271
- for (; u < n.length && (o.lastIndex = u, c = o.exec(n), c !== null);) u = o.lastIndex, o === v ? c[1] === "!--" ? o = xe : c[1] === void 0 ? c[2] === void 0 ? c[3] !== void 0 && (o = y) : (Te.test(c[2]) && (i = RegExp("</" + c[2], "g")), o = y) : o = Se : o === y ? c[0] === ">" ? (o = i ?? v, l = -1) : c[1] === void 0 ? l = -2 : (l = o.lastIndex - c[2].length, s = c[1], o = c[3] === void 0 ? y : c[3] === "\"" ? we : Ce) : o === we || o === Ce ? o = y : o === xe || o === Se ? o = v : (o = y, i = void 0);
272
- let d = o === y && e[t + 1].startsWith("/>") ? " " : "";
273
- a += o === v ? n + he : l >= 0 ? (r.push(s), n.slice(0, l) + pe + n.slice(l) + g + d) : n + g + (l === -2 ? t : d);
272
+ for (; u < n.length && (o.lastIndex = u, c = o.exec(n), c !== null);) u = o.lastIndex, o === ye ? c[1] === "!--" ? o = be : c[1] === void 0 ? c[2] === void 0 ? c[3] !== void 0 && (o = x) : (we.test(c[2]) && (i = RegExp("</" + c[2], "g")), o = x) : o = xe : o === x ? c[0] === ">" ? (o = i ?? ye, l = -1) : c[1] === void 0 ? l = -2 : (l = o.lastIndex - c[2].length, s = c[1], o = c[3] === void 0 ? x : c[3] === "\"" ? Ce : Se) : o === Ce || o === Se ? o = x : o === be || o === xe ? o = ye : (o = x, i = void 0);
273
+ let d = o === x && e[t + 1].startsWith("/>") ? " " : "";
274
+ a += o === ye ? n + me : l >= 0 ? (r.push(s), n.slice(0, l) + fe + n.slice(l) + v + d) : n + v + (l === -2 ? t : d);
274
275
  }
275
- return [De(e, a + (e[n] || "<?>") + (t === 2 ? "</svg>" : t === 3 ? "</math>" : "")), r];
276
- }, ke = class e {
276
+ return [Ee(e, a + (e[n] || "<?>") + (t === 2 ? "</svg>" : t === 3 ? "</math>" : "")), r];
277
+ }, Oe = class e {
277
278
  constructor({ strings: t, _$litType$: n }, r) {
278
279
  let i;
279
280
  this.parts = [];
280
- let a = 0, o = 0, s = t.length - 1, c = this.parts, [l, u] = Oe(t, n);
281
- if (this.el = e.createElement(l, r), C.currentNode = this.el.content, n === 2 || n === 3) {
281
+ let a = 0, o = 0, s = t.length - 1, c = this.parts, [l, u] = De(t, n);
282
+ if (this.el = e.createElement(l, r), T.currentNode = this.el.content, n === 2 || n === 3) {
282
283
  let e = this.el.content.firstChild;
283
284
  e.replaceWith(...e.childNodes);
284
285
  }
285
- for (; (i = C.nextNode()) !== null && c.length < s;) {
286
+ for (; (i = T.nextNode()) !== null && c.length < s;) {
286
287
  if (i.nodeType === 1) {
287
- if (i.hasAttributes()) for (let e of i.getAttributeNames()) if (e.endsWith(pe)) {
288
- let t = u[o++], n = i.getAttribute(e).split(g), r = /([.?@])?(.*)/.exec(t);
288
+ if (i.hasAttributes()) for (let e of i.getAttributeNames()) if (e.endsWith(fe)) {
289
+ let t = u[o++], n = i.getAttribute(e).split(v), r = /([.?@])?(.*)/.exec(t);
289
290
  c.push({
290
291
  type: 1,
291
292
  index: a,
292
293
  name: r[2],
293
294
  strings: n,
294
- ctor: r[1] === "." ? Me : r[1] === "?" ? Ne : r[1] === "@" ? Pe : T
295
+ ctor: r[1] === "." ? je : r[1] === "?" ? Me : r[1] === "@" ? Ne : D
295
296
  }), i.removeAttribute(e);
296
- } else e.startsWith(g) && (c.push({
297
+ } else e.startsWith(v) && (c.push({
297
298
  type: 6,
298
299
  index: a
299
300
  }), i.removeAttribute(e));
300
- if (Te.test(i.tagName)) {
301
- let e = i.textContent.split(g), t = e.length - 1;
301
+ if (we.test(i.tagName)) {
302
+ let e = i.textContent.split(v), t = e.length - 1;
302
303
  if (t > 0) {
303
- i.textContent = de ? de.emptyScript : "";
304
- for (let n = 0; n < t; n++) i.append(e[n], ge()), C.nextNode(), c.push({
304
+ i.textContent = ue ? ue.emptyScript : "";
305
+ for (let n = 0; n < t; n++) i.append(e[n], b()), T.nextNode(), c.push({
305
306
  type: 2,
306
307
  index: ++a
307
308
  });
308
- i.append(e[t], ge());
309
+ i.append(e[t], b());
309
310
  }
310
311
  }
311
- } else if (i.nodeType === 8) if (i.data === me) c.push({
312
+ } else if (i.nodeType === 8) if (i.data === pe) c.push({
312
313
  type: 2,
313
314
  index: a
314
315
  });
315
316
  else {
316
317
  let e = -1;
317
- for (; (e = i.data.indexOf(g, e + 1)) !== -1;) c.push({
318
+ for (; (e = i.data.indexOf(v, e + 1)) !== -1;) c.push({
318
319
  type: 7,
319
320
  index: a
320
- }), e += g.length - 1;
321
+ }), e += v.length - 1;
321
322
  }
322
323
  a++;
323
324
  }
324
325
  }
325
326
  static createElement(e, t) {
326
- let n = _.createElement("template");
327
+ let n = y.createElement("template");
327
328
  return n.innerHTML = e, n;
328
329
  }
329
330
  };
330
- function w(e, t, n = e, r) {
331
- if (t === x) return t;
332
- let i = r === void 0 ? n._$Cl : n._$Co?.[r], a = _e(t) ? void 0 : t._$litDirective$;
333
- return i?.constructor !== a && (i?._$AO?.(!1), a === void 0 ? i = void 0 : (i = new a(e), i._$AT(e, n, r)), r === void 0 ? n._$Cl = i : (n._$Co ??= [])[r] = i), i !== void 0 && (t = w(e, i._$AS(e, t.values), i, r)), t;
331
+ function E(e, t, n = e, r) {
332
+ if (t === C) return t;
333
+ let i = r === void 0 ? n._$Cl : n._$Co?.[r], a = he(t) ? void 0 : t._$litDirective$;
334
+ return i?.constructor !== a && (i?._$AO?.(!1), a === void 0 ? i = void 0 : (i = new a(e), i._$AT(e, n, r)), r === void 0 ? n._$Cl = i : (n._$Co ??= [])[r] = i), i !== void 0 && (t = E(e, i._$AS(e, t.values), i, r)), t;
334
335
  }
335
- var Ae = class {
336
+ var ke = class {
336
337
  constructor(e, t) {
337
338
  this._$AV = [], this._$AN = void 0, this._$AD = e, this._$AM = t;
338
339
  }
@@ -343,28 +344,28 @@ var Ae = class {
343
344
  return this._$AM._$AU;
344
345
  }
345
346
  u(e) {
346
- let { el: { content: t }, parts: n } = this._$AD, r = (e?.creationScope ?? _).importNode(t, !0);
347
- C.currentNode = r;
348
- let i = C.nextNode(), a = 0, o = 0, s = n[0];
347
+ let { el: { content: t }, parts: n } = this._$AD, r = (e?.creationScope ?? y).importNode(t, !0);
348
+ T.currentNode = r;
349
+ let i = T.nextNode(), a = 0, o = 0, s = n[0];
349
350
  for (; s !== void 0;) {
350
351
  if (a === s.index) {
351
352
  let t;
352
- s.type === 2 ? t = new je(i, i.nextSibling, this, e) : s.type === 1 ? t = new s.ctor(i, s.name, s.strings, this, e) : s.type === 6 && (t = new Fe(i, this, e)), this._$AV.push(t), s = n[++o];
353
+ s.type === 2 ? t = new Ae(i, i.nextSibling, this, e) : s.type === 1 ? t = new s.ctor(i, s.name, s.strings, this, e) : s.type === 6 && (t = new Pe(i, this, e)), this._$AV.push(t), s = n[++o];
353
354
  }
354
- a !== s?.index && (i = C.nextNode(), a++);
355
+ a !== s?.index && (i = T.nextNode(), a++);
355
356
  }
356
- return C.currentNode = _, r;
357
+ return T.currentNode = y, r;
357
358
  }
358
359
  p(e) {
359
360
  let t = 0;
360
361
  for (let n of this._$AV) n !== void 0 && (n.strings === void 0 ? n._$AI(e[t]) : (n._$AI(e, n, t), t += n.strings.length - 2)), t++;
361
362
  }
362
- }, je = class e {
363
+ }, Ae = class e {
363
364
  get _$AU() {
364
365
  return this._$AM?._$AU ?? this._$Cv;
365
366
  }
366
367
  constructor(e, t, n, r) {
367
- this.type = 2, this._$AH = S, this._$AN = void 0, this._$AA = e, this._$AB = t, this._$AM = n, this.options = r, this._$Cv = r?.isConnected ?? !0;
368
+ this.type = 2, this._$AH = w, this._$AN = void 0, this._$AA = e, this._$AB = t, this._$AM = n, this.options = r, this._$Cv = r?.isConnected ?? !0;
368
369
  }
369
370
  get parentNode() {
370
371
  let e = this._$AA.parentNode, t = this._$AM;
@@ -377,7 +378,7 @@ var Ae = class {
377
378
  return this._$AB;
378
379
  }
379
380
  _$AI(e, t = this) {
380
- e = w(this, e, t), _e(e) ? e === S || e == null || e === "" ? (this._$AH !== S && this._$AR(), this._$AH = S) : e !== this._$AH && e !== x && this._(e) : e._$litType$ === void 0 ? e.nodeType === void 0 ? ye(e) ? this.k(e) : this._(e) : this.T(e) : this.$(e);
381
+ e = E(this, e, t), he(e) ? e === w || e == null || e === "" ? (this._$AH !== w && this._$AR(), this._$AH = w) : e !== this._$AH && e !== C && this._(e) : e._$litType$ === void 0 ? e.nodeType === void 0 ? _e(e) ? this.k(e) : this._(e) : this.T(e) : this.$(e);
381
382
  }
382
383
  O(e) {
383
384
  return this._$AA.parentNode.insertBefore(e, this._$AB);
@@ -386,36 +387,36 @@ var Ae = class {
386
387
  this._$AH !== e && (this._$AR(), this._$AH = this.O(e));
387
388
  }
388
389
  _(e) {
389
- this._$AH !== S && _e(this._$AH) ? this._$AA.nextSibling.data = e : this.T(_.createTextNode(e)), this._$AH = e;
390
+ this._$AH !== w && he(this._$AH) ? this._$AA.nextSibling.data = e : this.T(y.createTextNode(e)), this._$AH = e;
390
391
  }
391
392
  $(e) {
392
- let { values: t, _$litType$: n } = e, r = typeof n == "number" ? this._$AC(e) : (n.el === void 0 && (n.el = ke.createElement(De(n.h, n.h[0]), this.options)), n);
393
+ let { values: t, _$litType$: n } = e, r = typeof n == "number" ? this._$AC(e) : (n.el === void 0 && (n.el = Oe.createElement(Ee(n.h, n.h[0]), this.options)), n);
393
394
  if (this._$AH?._$AD === r) this._$AH.p(t);
394
395
  else {
395
- let e = new Ae(r, this), n = e.u(this.options);
396
+ let e = new ke(r, this), n = e.u(this.options);
396
397
  e.p(t), this.T(n), this._$AH = e;
397
398
  }
398
399
  }
399
400
  _$AC(e) {
400
- let t = Ee.get(e.strings);
401
- return t === void 0 && Ee.set(e.strings, t = new ke(e)), t;
401
+ let t = Te.get(e.strings);
402
+ return t === void 0 && Te.set(e.strings, t = new Oe(e)), t;
402
403
  }
403
404
  k(t) {
404
- ve(this._$AH) || (this._$AH = [], this._$AR());
405
+ ge(this._$AH) || (this._$AH = [], this._$AR());
405
406
  let n = this._$AH, r, i = 0;
406
- for (let a of t) i === n.length ? n.push(r = new e(this.O(ge()), this.O(ge()), this, this.options)) : r = n[i], r._$AI(a), i++;
407
+ for (let a of t) i === n.length ? n.push(r = new e(this.O(b()), this.O(b()), this, this.options)) : r = n[i], r._$AI(a), i++;
407
408
  i < n.length && (this._$AR(r && r._$AB.nextSibling, i), n.length = i);
408
409
  }
409
410
  _$AR(e = this._$AA.nextSibling, t) {
410
411
  for (this._$AP?.(!1, !0, t); e !== this._$AB;) {
411
- let t = ue(e).nextSibling;
412
- ue(e).remove(), e = t;
412
+ let t = le(e).nextSibling;
413
+ le(e).remove(), e = t;
413
414
  }
414
415
  }
415
416
  setConnected(e) {
416
417
  this._$AM === void 0 && (this._$Cv = e, this._$AP?.(e));
417
418
  }
418
- }, T = class {
419
+ }, D = class {
419
420
  get tagName() {
420
421
  return this.element.tagName;
421
422
  }
@@ -423,47 +424,47 @@ var Ae = class {
423
424
  return this._$AM._$AU;
424
425
  }
425
426
  constructor(e, t, n, r, i) {
426
- this.type = 1, this._$AH = S, this._$AN = void 0, this.element = e, this.name = t, this._$AM = r, this.options = i, n.length > 2 || n[0] !== "" || n[1] !== "" ? (this._$AH = Array(n.length - 1).fill(/* @__PURE__ */ new String()), this.strings = n) : this._$AH = S;
427
+ this.type = 1, this._$AH = w, this._$AN = void 0, this.element = e, this.name = t, this._$AM = r, this.options = i, n.length > 2 || n[0] !== "" || n[1] !== "" ? (this._$AH = Array(n.length - 1).fill(/* @__PURE__ */ new String()), this.strings = n) : this._$AH = w;
427
428
  }
428
429
  _$AI(e, t = this, n, r) {
429
430
  let i = this.strings, a = !1;
430
- if (i === void 0) e = w(this, e, t, 0), a = !_e(e) || e !== this._$AH && e !== x, a && (this._$AH = e);
431
+ if (i === void 0) e = E(this, e, t, 0), a = !he(e) || e !== this._$AH && e !== C, a && (this._$AH = e);
431
432
  else {
432
433
  let r = e, o, s;
433
- for (e = i[0], o = 0; o < i.length - 1; o++) s = w(this, r[n + o], t, o), s === x && (s = this._$AH[o]), a ||= !_e(s) || s !== this._$AH[o], s === S ? e = S : e !== S && (e += (s ?? "") + i[o + 1]), this._$AH[o] = s;
434
+ for (e = i[0], o = 0; o < i.length - 1; o++) s = E(this, r[n + o], t, o), s === C && (s = this._$AH[o]), a ||= !he(s) || s !== this._$AH[o], s === w ? e = w : e !== w && (e += (s ?? "") + i[o + 1]), this._$AH[o] = s;
434
435
  }
435
436
  a && !r && this.j(e);
436
437
  }
437
438
  j(e) {
438
- e === S ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, e ?? "");
439
+ e === w ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, e ?? "");
439
440
  }
440
- }, Me = class extends T {
441
+ }, je = class extends D {
441
442
  constructor() {
442
443
  super(...arguments), this.type = 3;
443
444
  }
444
445
  j(e) {
445
- this.element[this.name] = e === S ? void 0 : e;
446
+ this.element[this.name] = e === w ? void 0 : e;
446
447
  }
447
- }, Ne = class extends T {
448
+ }, Me = class extends D {
448
449
  constructor() {
449
450
  super(...arguments), this.type = 4;
450
451
  }
451
452
  j(e) {
452
- this.element.toggleAttribute(this.name, !!e && e !== S);
453
+ this.element.toggleAttribute(this.name, !!e && e !== w);
453
454
  }
454
- }, Pe = class extends T {
455
+ }, Ne = class extends D {
455
456
  constructor(e, t, n, r, i) {
456
457
  super(e, t, n, r, i), this.type = 5;
457
458
  }
458
459
  _$AI(e, t = this) {
459
- if ((e = w(this, e, t, 0) ?? S) === x) return;
460
- let n = this._$AH, r = e === S && n !== S || e.capture !== n.capture || e.once !== n.once || e.passive !== n.passive, i = e !== S && (n === S || r);
460
+ if ((e = E(this, e, t, 0) ?? w) === C) return;
461
+ let n = this._$AH, r = e === w && n !== w || e.capture !== n.capture || e.once !== n.once || e.passive !== n.passive, i = e !== w && (n === w || r);
461
462
  r && this.element.removeEventListener(this.name, this, n), i && this.element.addEventListener(this.name, this, e), this._$AH = e;
462
463
  }
463
464
  handleEvent(e) {
464
465
  typeof this._$AH == "function" ? this._$AH.call(this.options?.host ?? this.element, e) : this._$AH.handleEvent(e);
465
466
  }
466
- }, Fe = class {
467
+ }, Pe = class {
467
468
  constructor(e, t, n) {
468
469
  this.element = e, this.type = 6, this._$AN = void 0, this._$AM = t, this.options = n;
469
470
  }
@@ -471,33 +472,33 @@ var Ae = class {
471
472
  return this._$AM._$AU;
472
473
  }
473
474
  _$AI(e) {
474
- w(this, e);
475
+ E(this, e);
475
476
  }
476
- }, Ie = {
477
- M: pe,
478
- P: g,
479
- A: me,
477
+ }, Fe = {
478
+ M: fe,
479
+ P: v,
480
+ A: pe,
480
481
  C: 1,
481
- L: Oe,
482
- R: Ae,
483
- D: ye,
484
- V: w,
485
- I: je,
486
- H: T,
487
- N: Ne,
488
- U: Pe,
489
- B: Me,
490
- F: Fe
491
- }, Le = le.litHtmlPolyfillSupport;
492
- Le?.(ke, je), (le.litHtmlVersions ??= []).push("3.3.2");
493
- var Re = (e, t, n) => {
482
+ L: De,
483
+ R: ke,
484
+ D: _e,
485
+ V: E,
486
+ I: Ae,
487
+ H: D,
488
+ N: Me,
489
+ U: Ne,
490
+ B: je,
491
+ F: Pe
492
+ }, Ie = ce.litHtmlPolyfillSupport;
493
+ Ie?.(Oe, Ae), (ce.litHtmlVersions ??= []).push("3.3.2");
494
+ var Le = (e, t, n) => {
494
495
  let r = n?.renderBefore ?? t, i = r._$litPart$;
495
496
  if (i === void 0) {
496
497
  let e = n?.renderBefore ?? null;
497
- r._$litPart$ = i = new je(t.insertBefore(ge(), e), e, void 0, n ?? {});
498
+ r._$litPart$ = i = new Ae(t.insertBefore(b(), e), e, void 0, n ?? {});
498
499
  }
499
500
  return i._$AI(e), i;
500
- }, ze = globalThis, E = class extends h {
501
+ }, Re = globalThis, O = class extends _ {
501
502
  constructor() {
502
503
  super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
503
504
  }
@@ -507,7 +508,7 @@ var Re = (e, t, n) => {
507
508
  }
508
509
  update(e) {
509
510
  let t = this.render();
510
- this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(e), this._$Do = Re(t, this.renderRoot, this.renderOptions);
511
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(e), this._$Do = Le(t, this.renderRoot, this.renderOptions);
511
512
  }
512
513
  connectedCallback() {
513
514
  super.connectedCallback(), this._$Do?.setConnected(!0);
@@ -516,25 +517,25 @@ var Re = (e, t, n) => {
516
517
  super.disconnectedCallback(), this._$Do?.setConnected(!1);
517
518
  }
518
519
  render() {
519
- return x;
520
+ return C;
520
521
  }
521
522
  };
522
- E._$litElement$ = !0, E.finalized = !0, ze.litElementHydrateSupport?.({ LitElement: E });
523
- var Be = ze.litElementPolyfillSupport;
524
- Be?.({ LitElement: E }), (ze.litElementVersions ??= []).push("4.2.2");
523
+ O._$litElement$ = !0, O.finalized = !0, Re.litElementHydrateSupport?.({ LitElement: O });
524
+ var ze = Re.litElementPolyfillSupport;
525
+ ze?.({ LitElement: O }), (Re.litElementVersions ??= []).push("4.2.2");
525
526
  //#endregion
526
527
  //#region node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js
527
- var D = (e) => (t, n) => {
528
+ var k = (e) => (t, n) => {
528
529
  n === void 0 ? customElements.define(e, t) : n.addInitializer(() => {
529
530
  customElements.define(e, t);
530
531
  });
531
- }, Ve = {
532
+ }, Be = {
532
533
  attribute: !0,
533
534
  type: String,
534
- converter: oe,
535
+ converter: ae,
535
536
  reflect: !1,
536
- hasChanged: se
537
- }, He = (e = Ve, t, n) => {
537
+ hasChanged: oe
538
+ }, Ve = (e = Be, t, n) => {
538
539
  let { kind: r, metadata: i } = n, a = globalThis.litPropertyMetadata.get(i);
539
540
  if (a === void 0 && globalThis.litPropertyMetadata.set(i, a = /* @__PURE__ */ new Map()), r === "setter" && ((e = Object.create(e)).wrapped = !0), a.set(n.name, e), r === "accessor") {
540
541
  let { name: r } = n;
@@ -557,16 +558,16 @@ var D = (e) => (t, n) => {
557
558
  }
558
559
  throw Error("Unsupported decorator location: " + r);
559
560
  };
560
- function O(e) {
561
- return (t, n) => typeof n == "object" ? He(e, t, n) : ((e, t, n) => {
561
+ function A(e) {
562
+ return (t, n) => typeof n == "object" ? Ve(e, t, n) : ((e, t, n) => {
562
563
  let r = t.hasOwnProperty(n);
563
564
  return t.constructor.createProperty(n, e), r ? Object.getOwnPropertyDescriptor(t, n) : void 0;
564
565
  })(e, t, n);
565
566
  }
566
567
  //#endregion
567
568
  //#region node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js
568
- function k(e) {
569
- return O({
569
+ function j(e) {
570
+ return A({
570
571
  ...e,
571
572
  state: !0,
572
573
  attribute: !1
@@ -574,7 +575,7 @@ function k(e) {
574
575
  }
575
576
  //#endregion
576
577
  //#region src/primitives/constants.ts
577
- var A = {
578
+ var M = {
578
579
  form: "mlf-form",
579
580
  formErrors: "mlf-form-errors",
580
581
  submitButton: "mlf-submit-button",
@@ -597,19 +598,19 @@ var A = {
597
598
  singleChoiceField: "mlf-single-choice-field",
598
599
  multiChoiceField: "mlf-multi-choice-field",
599
600
  ratingField: "mlf-rating-field"
600
- }, Ue = {
601
+ }, He = {
601
602
  submitRequest: "mlf-submit-request",
602
603
  submitStart: "mlf-submit-start",
603
604
  submitSuccess: "mlf-submit-success",
604
605
  submitAbort: "mlf-submit-abort",
605
606
  submitError: "mlf-submit-error"
606
- }, j = {
607
+ }, N = {
607
608
  form: "Inputs",
608
609
  reports: "Reports",
609
610
  submit: "Submit",
610
611
  validating: "Validating...",
611
612
  submitting: "Submitting..."
612
- }, M = Object.freeze({
613
+ }, P = Object.freeze({
613
614
  formEyebrow: "Form",
614
615
  reportEyebrow: "Report",
615
616
  formErrorsTitle: "Form errors",
@@ -666,10 +667,10 @@ var A = {
666
667
  },
667
668
  reportsEmptyTitle: "Results",
668
669
  reportsEmptyBody: "Reports will appear here after the form is submitted."
669
- }), We = (e) => e ? Object.freeze({
670
- ...M,
670
+ }), Ue = (e) => e ? Object.freeze({
671
+ ...P,
671
672
  ...e
672
- }) : M, N = {
673
+ }) : P, F = {
673
674
  booleanGroup: "mlf-boolean",
674
675
  fieldDescription: "mlf-field-description",
675
676
  fieldErrors: "mlf-field-errors",
@@ -678,8 +679,8 @@ var A = {
678
679
  explanationRegion: "mlf-explanation-region"
679
680
  };
680
681
  //#endregion
681
- //#region \0@oxc-project+runtime@0.123.0/helpers/decorate.js
682
- function P(e, t, n, r) {
682
+ //#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
683
+ function I(e, t, n, r) {
683
684
  var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o;
684
685
  if (typeof Reflect == "object" && typeof Reflect.decorate == "function") a = Reflect.decorate(e, t, n, r);
685
686
  else for (var s = e.length - 1; s >= 0; s--) (o = e[s]) && (a = (i < 3 ? o(a) : i > 3 ? o(t, n, a) : o(t, n)) || a);
@@ -687,8 +688,8 @@ function P(e, t, n, r) {
687
688
  }
688
689
  //#endregion
689
690
  //#region src/primitives/components/form-errors.ts
690
- var F = class extends E {
691
- static styles = s`
691
+ var L = class extends O {
692
+ static styles = c`
692
693
  :host {
693
694
  display: block;
694
695
  }
@@ -728,7 +729,7 @@ var F = class extends E {
728
729
  set form(e) {
729
730
  this.#e = e;
730
731
  }
731
- #t = M;
732
+ #t = P;
732
733
  get text() {
733
734
  return this.#t;
734
735
  }
@@ -755,11 +756,11 @@ var F = class extends E {
755
756
  }
756
757
  render() {
757
758
  let e = this.formErrors;
758
- return e.length === 0 ? b`` : b`
759
+ return e.length === 0 ? S`` : S`
759
760
  <div class="card" part="form-errors" role="alert" aria-live="assertive" aria-atomic="true">
760
761
  <p class="eyebrow">${this.text.formErrorsTitle}</p>
761
762
  <ul>
762
- ${e.map((e) => b`<li>${e}</li>`)}
763
+ ${e.map((e) => S`<li>${e}</li>`)}
763
764
  </ul>
764
765
  </div>
765
766
  `;
@@ -776,11 +777,11 @@ var F = class extends E {
776
777
  }
777
778
  }
778
779
  };
779
- P([O({ attribute: !1 })], F.prototype, "form", null), P([O({ attribute: !1 })], F.prototype, "text", null), P([k()], F.prototype, "formErrors", null), F = P([D(A.formErrors)], F);
780
+ I([A({ attribute: !1 })], L.prototype, "form", null), I([A({ attribute: !1 })], L.prototype, "text", null), I([j()], L.prototype, "formErrors", null), L = I([k(M.formErrors)], L);
780
781
  //#endregion
781
782
  //#region src/primitives/components/submit-button.ts
782
- var I = class extends E {
783
- static styles = s`
783
+ var R = class extends O {
784
+ static styles = c`
784
785
  :host {
785
786
  display: block;
786
787
  }
@@ -830,21 +831,21 @@ var I = class extends E {
830
831
  set status(e) {
831
832
  this.#e = e;
832
833
  }
833
- #t = j.submit;
834
+ #t = N.submit;
834
835
  get idleLabel() {
835
836
  return this.#t;
836
837
  }
837
838
  set idleLabel(e) {
838
839
  this.#t = e;
839
840
  }
840
- #n = j.validating;
841
+ #n = N.validating;
841
842
  get validatingLabel() {
842
843
  return this.#n;
843
844
  }
844
845
  set validatingLabel(e) {
845
846
  this.#n = e;
846
847
  }
847
- #r = j.submitting;
848
+ #r = N.submitting;
848
849
  get submittingLabel() {
849
850
  return this.#r;
850
851
  }
@@ -881,7 +882,7 @@ var I = class extends E {
881
882
  }
882
883
  render() {
883
884
  let e = this.progressMessage ?? (typeof this.loaded == "number" && typeof this.total == "number" && this.total > 0 ? `${Math.round(this.loaded / this.total * 100)}%` : typeof this.sessionMessageCount == "number" && this.sessionMessageCount > 0 ? `${this.sessionMessageCount} msgs` : void 0), t = this.status === "validating" ? this.validatingLabel : this.status === "submitting" ? e ? `${this.submittingLabel} ${e}` : this.submittingLabel : this.idleLabel;
884
- return b`
885
+ return S`
885
886
  <button
886
887
  type="button"
887
888
  ?disabled=${this.status === "validating" || this.status === "submitting"}
@@ -893,17 +894,17 @@ var I = class extends E {
893
894
  `;
894
895
  }
895
896
  #c = () => {
896
- this.dispatchEvent(new CustomEvent(Ue.submitRequest, {
897
+ this.dispatchEvent(new CustomEvent(He.submitRequest, {
897
898
  bubbles: !0,
898
899
  composed: !0
899
900
  }));
900
901
  };
901
902
  };
902
- P([O({ type: String })], I.prototype, "status", null), P([O({ type: String })], I.prototype, "idleLabel", null), P([O({ type: String })], I.prototype, "validatingLabel", null), P([O({ type: String })], I.prototype, "submittingLabel", null), P([O({ type: Number })], I.prototype, "loaded", null), P([O({ type: Number })], I.prototype, "total", null), P([O({ type: String })], I.prototype, "progressMessage", null), P([O({ type: Number })], I.prototype, "sessionMessageCount", null), I = P([D(A.submitButton)], I);
903
+ I([A({ type: String })], R.prototype, "status", null), I([A({ type: String })], R.prototype, "idleLabel", null), I([A({ type: String })], R.prototype, "validatingLabel", null), I([A({ type: String })], R.prototype, "submittingLabel", null), I([A({ type: Number })], R.prototype, "loaded", null), I([A({ type: Number })], R.prototype, "total", null), I([A({ type: String })], R.prototype, "progressMessage", null), I([A({ type: Number })], R.prototype, "sessionMessageCount", null), R = I([k(M.submitButton)], R);
903
904
  //#endregion
904
905
  //#region src/primitives/components/unsupported-component.ts
905
- var L = class extends E {
906
- static styles = s`
906
+ var We = class extends O {
907
+ static styles = c`
907
908
  :host {
908
909
  display: block;
909
910
  }
@@ -940,7 +941,7 @@ var L = class extends E {
940
941
  set role(e) {
941
942
  this.#t = e;
942
943
  }
943
- #n = M;
944
+ #n = P;
944
945
  get text() {
945
946
  return this.#n;
946
947
  }
@@ -948,7 +949,7 @@ var L = class extends E {
948
949
  this.#n = e;
949
950
  }
950
951
  render() {
951
- return b`
952
+ return S`
952
953
  <div class="card" part="unsupported-card">
953
954
  <strong>${this.role}</strong>
954
955
  ${this.text.unsupportedMapping(this.role, this.component)}
@@ -956,7 +957,7 @@ var L = class extends E {
956
957
  `;
957
958
  }
958
959
  };
959
- P([O({ type: String })], L.prototype, "component", null), P([O({ type: String })], L.prototype, "role", null), P([O({ attribute: !1 })], L.prototype, "text", null), L = P([D(A.unsupportedComponent)], L);
960
+ I([A({ type: String })], We.prototype, "component", null), I([A({ type: String })], We.prototype, "role", null), I([A({ attribute: !1 })], We.prototype, "text", null), We = I([k(M.unsupportedComponent)], We);
960
961
  //#endregion
961
962
  //#region node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/static.js
962
963
  var Ge = Symbol.for(""), Ke = (e) => {
@@ -964,7 +965,7 @@ var Ge = Symbol.for(""), Ke = (e) => {
964
965
  }, qe = (e) => ({
965
966
  _$litStatic$: e,
966
967
  r: Ge
967
- }), Je = /* @__PURE__ */ new Map(), R = ((e) => (t, ...n) => {
968
+ }), Je = /* @__PURE__ */ new Map(), z = ((e) => (t, ...n) => {
968
969
  let r = n.length, i, a, o = [], s = [], c, l = 0, u = !1;
969
970
  for (; l < r;) {
970
971
  for (c = t[l]; l < r && (a = n[l], i = Ke(a)) !== void 0;) c += i + t[++l], u = !0;
@@ -975,7 +976,7 @@ var Ge = Symbol.for(""), Ke = (e) => {
975
976
  (t = Je.get(e)) === void 0 && (o.raw = o, Je.set(e, t = o)), n = s;
976
977
  }
977
978
  return e(t, ...n);
978
- })(b), Ye = class {
979
+ })(S), Ye = class {
979
980
  #e;
980
981
  #t;
981
982
  #n;
@@ -1001,7 +1002,130 @@ var Ge = Symbol.for(""), Ke = (e) => {
1001
1002
  hostDisconnected() {
1002
1003
  this.#r?.(), this.#r = null;
1003
1004
  }
1004
- }, z = (e) => typeof e == "object" && !!e, Xe = (e) => e.join(" "), B = (e, t = "") => typeof e == "string" ? e : typeof e == "number" || typeof e == "boolean" ? String(e) : t, Ze = 0, Qe = (e) => typeof e == "string" ? {
1005
+ }, B = (e) => typeof e == "object" && !!e, Xe = (e) => e.join(" "), V = (e, t = "") => typeof e == "string" ? e : typeof e == "number" || typeof e == "boolean" ? String(e) : t, Ze = c`
1006
+ :host {
1007
+ display: block;
1008
+ }
1009
+
1010
+ :host([hidden]) {
1011
+ display: none;
1012
+ }
1013
+
1014
+ .tile {
1015
+ position: relative;
1016
+ display: grid;
1017
+ gap: 0.85rem;
1018
+ overflow: hidden;
1019
+ padding: 1.5rem 2rem;
1020
+ border-radius: var(--mlf-field-radius, 12px);
1021
+ border: var(--mlf-border-width, 1px) solid
1022
+ var(--mlf-field-border, var(--mlf-color-border, #e2e8f0));
1023
+ background: var(--mlf-field-bg, var(--mlf-color-surface, #ffffff));
1024
+ box-shadow: 0 4px 12px var(--mlf-field-shadow, rgba(0, 0, 0, 0.04));
1025
+ transition: box-shadow 0.2s ease;
1026
+ }
1027
+
1028
+ .tile:hover {
1029
+ box-shadow: 0 6px 18px var(--mlf-field-shadow-hover, rgba(0, 0, 0, 0.06));
1030
+ }
1031
+
1032
+ .tile::before {
1033
+ content: "";
1034
+ position: absolute;
1035
+ inset: 0 auto 0 0;
1036
+ width: 6px;
1037
+ background: var(--mlf-field-accent, var(--mlf-color-accent, #1e40af));
1038
+ transition: background 0.2s ease;
1039
+ }
1040
+
1041
+ .tile.success::before {
1042
+ background: var(--mlf-field-accent-success, var(--mlf-color-success, #059669));
1043
+ }
1044
+
1045
+ .tile.error::before {
1046
+ background: var(--mlf-field-accent-error, var(--mlf-color-danger, #dc2626));
1047
+ }
1048
+
1049
+ .header {
1050
+ display: flex;
1051
+ align-items: start;
1052
+ justify-content: space-between;
1053
+ gap: 1rem;
1054
+ min-width: 0;
1055
+ }
1056
+
1057
+ .label {
1058
+ margin: 0;
1059
+ min-width: 0;
1060
+ color: var(--mlf-field-label-color, var(--mlf-color-text, #0f172a));
1061
+ font-size: 1rem;
1062
+ font-weight: 600;
1063
+ line-height: 1.2;
1064
+ overflow-wrap: anywhere;
1065
+ }
1066
+
1067
+ .help-btn {
1068
+ flex: 0 0 auto;
1069
+ display: inline-flex;
1070
+ align-items: center;
1071
+ justify-content: center;
1072
+ width: 28px;
1073
+ height: 28px;
1074
+ padding: 0;
1075
+ border: none;
1076
+ border-radius: 50%;
1077
+ background: var(--mlf-help-btn-bg, var(--mlf-color-accent, #1e40af));
1078
+ color: var(--mlf-help-btn-color, #ffffff);
1079
+ font-size: 1rem;
1080
+ font-weight: 700;
1081
+ cursor: pointer;
1082
+ transition: background 0.2s ease;
1083
+ }
1084
+
1085
+ .help-btn:hover:not(:disabled) {
1086
+ background: var(--mlf-help-btn-bg-hover, var(--mlf-color-accent-hover, #1d4ed8));
1087
+ }
1088
+
1089
+ .help-btn:disabled {
1090
+ background: var(--mlf-help-btn-bg-disabled, var(--mlf-color-text-muted, #475569));
1091
+ cursor: not-allowed;
1092
+ opacity: 0.7;
1093
+ }
1094
+
1095
+ .description {
1096
+ display: none;
1097
+ min-width: 0;
1098
+ font-size: 0.875rem;
1099
+ line-height: 1.5;
1100
+ color: var(--mlf-field-description-color, var(--mlf-color-secondary, #475569));
1101
+ white-space: normal;
1102
+ overflow-wrap: anywhere;
1103
+ }
1104
+
1105
+ .description.show {
1106
+ display: block;
1107
+ }
1108
+
1109
+ .control-slot {
1110
+ min-width: fit-content;
1111
+ }
1112
+
1113
+ .feedback {
1114
+ min-width: 0;
1115
+ font-size: 0.8rem;
1116
+ line-height: 1.5;
1117
+ white-space: normal;
1118
+ overflow-wrap: anywhere;
1119
+ }
1120
+
1121
+ .feedback.success {
1122
+ color: var(--mlf-field-feedback-success, var(--mlf-color-success, #059669));
1123
+ }
1124
+
1125
+ .feedback.error {
1126
+ color: var(--mlf-field-feedback-error, var(--mlf-color-danger, #dc2626));
1127
+ }
1128
+ `, Qe = (e) => typeof e == "string" ? {
1005
1129
  label: e,
1006
1130
  value: e
1007
1131
  } : e, $e = (e, t) => {
@@ -1015,131 +1139,46 @@ var Ge = Symbol.for(""), Ke = (e) => {
1015
1139
  case "series": return "series-field";
1016
1140
  default: return e;
1017
1141
  }
1018
- }, V = class extends E {
1019
- static styles = s`
1020
- :host {
1021
- display: block;
1022
- }
1023
-
1024
- :host([hidden]) {
1025
- display: none;
1026
- }
1027
-
1028
- .tile {
1029
- position: relative;
1030
- display: grid;
1031
- gap: 0.85rem;
1032
- overflow: hidden;
1033
- padding: 1.5rem 2rem;
1034
- border-radius: var(--mlf-field-radius, 12px);
1035
- border: var(--mlf-border-width, 1px) solid
1036
- var(--mlf-field-border, var(--mlf-color-border, #e2e8f0));
1037
- background: var(--mlf-field-bg, var(--mlf-color-surface, #ffffff));
1038
- box-shadow: 0 4px 12px var(--mlf-field-shadow, rgba(0, 0, 0, 0.04));
1039
- transition: box-shadow 0.2s ease;
1040
- }
1041
-
1042
- .tile:hover {
1043
- box-shadow: 0 6px 18px var(--mlf-field-shadow-hover, rgba(0, 0, 0, 0.06));
1044
- }
1045
-
1046
- .tile::before {
1047
- content: "";
1048
- position: absolute;
1049
- inset: 0 auto 0 0;
1050
- width: 6px;
1051
- background: var(--mlf-field-accent, var(--mlf-color-accent, #1e40af));
1052
- transition: background 0.2s ease;
1053
- }
1054
-
1055
- .tile.success::before {
1056
- background: var(--mlf-field-accent-success, var(--mlf-color-success, #059669));
1057
- }
1058
-
1059
- .tile.error::before {
1060
- background: var(--mlf-field-accent-error, var(--mlf-color-danger, #dc2626));
1061
- }
1062
-
1063
- .header {
1064
- display: flex;
1065
- align-items: start;
1066
- justify-content: space-between;
1067
- gap: 1rem;
1068
- min-width: 0;
1069
- }
1070
-
1071
- .label {
1072
- margin: 0;
1073
- min-width: 0;
1074
- color: var(--mlf-field-label-color, var(--mlf-color-text, #0f172a));
1075
- font-size: 1rem;
1076
- font-weight: 600;
1077
- line-height: 1.2;
1078
- overflow-wrap: anywhere;
1079
- }
1080
-
1081
- .help-btn {
1082
- flex: 0 0 auto;
1083
- display: inline-flex;
1084
- align-items: center;
1085
- justify-content: center;
1086
- width: 28px;
1087
- height: 28px;
1088
- padding: 0;
1089
- border: none;
1090
- border-radius: 50%;
1091
- background: var(--mlf-help-btn-bg, var(--mlf-color-accent, #1e40af));
1092
- color: var(--mlf-help-btn-color, #ffffff);
1093
- font-size: 1rem;
1094
- font-weight: 700;
1095
- cursor: pointer;
1096
- transition: background 0.2s ease;
1097
- }
1098
-
1099
- .help-btn:hover:not(:disabled) {
1100
- background: var(--mlf-help-btn-bg-hover, var(--mlf-color-accent-hover, #1d4ed8));
1101
- }
1102
-
1103
- .help-btn:disabled {
1104
- background: var(--mlf-help-btn-bg-disabled, var(--mlf-color-text-muted, #475569));
1105
- cursor: not-allowed;
1106
- opacity: 0.7;
1107
- }
1108
-
1109
- .description {
1110
- display: none;
1111
- min-width: 0;
1112
- font-size: 0.875rem;
1113
- line-height: 1.5;
1114
- color: var(--mlf-field-description-color, var(--mlf-color-secondary, #475569));
1115
- white-space: normal;
1116
- overflow-wrap: anywhere;
1117
- }
1118
-
1119
- .description.show {
1120
- display: block;
1121
- }
1122
-
1123
- .control-slot {
1124
- min-width: fit-content;
1125
- }
1126
-
1127
- .feedback {
1128
- min-width: 0;
1129
- font-size: 0.8rem;
1130
- line-height: 1.5;
1131
- white-space: normal;
1132
- overflow-wrap: anywhere;
1133
- }
1134
-
1135
- .feedback.success {
1136
- color: var(--mlf-field-feedback-success, var(--mlf-color-success, #059669));
1137
- }
1138
-
1139
- .feedback.error {
1140
- color: var(--mlf-field-feedback-error, var(--mlf-color-danger, #dc2626));
1141
- }
1142
- `;
1142
+ }, et = (e, t) => typeof t != "string" || t.length === 0 ? null : (Array.isArray(e.options) ? e.options : []).map(Qe).find((e) => e.value === t) ?? null, tt = (e, t, n, r) => {
1143
+ switch ($e(e, t)) {
1144
+ case "text-field": return typeof n.value == "string" && n.value.trim().length > 0;
1145
+ case "date-field": return typeof t.value == "string" && t.value.trim().length > 0;
1146
+ case "category-field": return et(t, n.value) !== null;
1147
+ case "number-field": return n.value !== null && n.value !== void 0 && n.value !== "" && !(typeof n.value == "number" && Number.isNaN(n.value));
1148
+ case "boolean-field": return r !== void 0 || n.dirty || n.touched;
1149
+ case "series-field": return Array.isArray(t.value) && t.value.length > 0;
1150
+ default: return n.value !== null && n.value !== void 0 && n.value !== "";
1151
+ }
1152
+ }, nt = (e, t, n, r) => {
1153
+ switch ($e(e, t)) {
1154
+ case "text-field": {
1155
+ let e = typeof t.value == "string" ? t.value : "";
1156
+ return e.length > 0 ? r.fieldTextRecorded(e.length) : r.fieldReady;
1157
+ }
1158
+ case "number-field": {
1159
+ let e = typeof t.unit == "string" ? ` ${t.unit}` : "";
1160
+ return n.value === null || n.value === void 0 || n.value === "" ? r.fieldReady : r.fieldValidNumber(n.value, e);
1161
+ }
1162
+ case "category-field": {
1163
+ let e = et(t, n.value);
1164
+ return e ? r.fieldCategorySelected(e.label) : r.fieldSelectionReady;
1165
+ }
1166
+ case "date-field": {
1167
+ let e = typeof t.value == "string" ? t.value : "";
1168
+ return e.length > 0 ? r.fieldSelectedDate(e) : r.fieldDateReady;
1169
+ }
1170
+ case "boolean-field": {
1171
+ let e = V(t.trueLabel, r.booleanTrue), i = V(t.falseLabel, r.booleanFalse);
1172
+ return r.fieldBooleanSelection(n.value === !0 ? e : i);
1173
+ }
1174
+ case "series-field": {
1175
+ let e = Array.isArray(t.value) ? t.value.length : 0;
1176
+ return r.fieldSeriesRecorded(e);
1177
+ }
1178
+ default: return r.fieldReady;
1179
+ }
1180
+ }, rt = 0, H = class extends O {
1181
+ static styles = Ze;
1143
1182
  #e;
1144
1183
  get controller() {
1145
1184
  return this.#e;
@@ -1147,66 +1186,73 @@ var Ge = Symbol.for(""), Ke = (e) => {
1147
1186
  set controller(e) {
1148
1187
  this.#e = e;
1149
1188
  }
1150
- #t;
1151
- get registry() {
1189
+ #t = null;
1190
+ get descriptor() {
1152
1191
  return this.#t;
1153
1192
  }
1154
- set registry(e) {
1193
+ set descriptor(e) {
1155
1194
  this.#t = e;
1156
1195
  }
1157
- #n = M;
1158
- get text() {
1196
+ #n;
1197
+ get registry() {
1159
1198
  return this.#n;
1160
1199
  }
1161
- set text(e) {
1200
+ set registry(e) {
1162
1201
  this.#n = e;
1163
1202
  }
1164
- #r = null;
1165
- get descriptor() {
1203
+ #r = P;
1204
+ get text() {
1166
1205
  return this.#r;
1167
1206
  }
1168
- set descriptor(e) {
1207
+ set text(e) {
1169
1208
  this.#r = e;
1170
1209
  }
1171
1210
  #i = null;
1172
- get fieldState() {
1211
+ get resolvedDescriptor() {
1173
1212
  return this.#i;
1174
1213
  }
1175
- set fieldState(e) {
1214
+ set resolvedDescriptor(e) {
1176
1215
  this.#i = e;
1177
1216
  }
1178
- #a = !1;
1179
- get descriptionVisible() {
1217
+ #a = null;
1218
+ get fieldState() {
1180
1219
  return this.#a;
1181
1220
  }
1182
- set descriptionVisible(e) {
1221
+ set fieldState(e) {
1183
1222
  this.#a = e;
1184
1223
  }
1185
- #o = ++Ze;
1186
- #s;
1187
- #c = null;
1224
+ #o = null;
1225
+ get descriptionVisibilityOverride() {
1226
+ return this.#o;
1227
+ }
1228
+ set descriptionVisibilityOverride(e) {
1229
+ this.#o = e;
1230
+ }
1231
+ #s = ++rt;
1232
+ #c;
1188
1233
  #l = null;
1189
- #u = "";
1234
+ #u = null;
1190
1235
  #d = "";
1191
- #f = new Ye(this, (e) => {
1192
- this.descriptor = e?.descriptor ?? null, this.fieldState = e?.state ?? null, this.descriptor?.props.description || (this.descriptionVisible = !1);
1236
+ #f = "";
1237
+ #p = new Ye(this, (e) => {
1238
+ this.resolvedDescriptor = this.descriptor, this.fieldState = e?.state ?? null, this.resolvedDescriptor?.props.description || (this.descriptionVisibilityOverride = null);
1193
1239
  });
1194
1240
  willUpdate(e) {
1195
- e.has("controller") && this.#f.bind(this.controller);
1241
+ e.has("controller") && this.#p.bind(this.controller), e.has("descriptor") && (this.resolvedDescriptor = this.descriptor), e.has("descriptor") && !this.resolvedDescriptor?.props.description && (this.descriptionVisibilityOverride = null);
1196
1242
  }
1197
1243
  render() {
1198
- let e = this.descriptor, t = this.fieldState;
1199
- if (!e || !t || !t.visible) return R``;
1200
- let n = e.props, r = this.registry?.resolveField(e.component), i = B(n.label, this.controller?.config.label ?? ""), a = B(n.description), o = this.#_(e.component, n, t), s = Xe(t.errors), c = this.#g(e.component, n, t), l = s.length > 0 && (t.touched || o), u = l ? {
1244
+ let e = this.resolvedDescriptor, t = this.fieldState;
1245
+ if (!e || !t || !t.visible) return z``;
1246
+ let n = e.props, r = this.registry?.resolveField(e.component), i = V(n.label, this.controller?.config.label ?? ""), a = V(n.description), o = this.#v(a), s = tt(e.component, n, t, this.controller?.config.defaultValue), c = Xe(t.errors), l = nt(e.component, n, t, this.text), u = c.length > 0 && (t.touched || s), d = u ? {
1201
1247
  tone: "error",
1202
- message: s
1203
- } : o && t.valid ? {
1204
- tone: "success",
1205
1248
  message: c
1206
- } : null, d = l ? "error" : o && t.valid ? "success" : "", f = `${N.fieldControl}-${this.controller?.id}-${this.#o}`, p = `${N.fieldErrors}-${this.controller?.id}-${this.#o}`, m = `${N.fieldDescription}-${this.controller?.id}-${this.#o}-details`;
1207
- return R`
1249
+ } : s && t.valid ? {
1250
+ tone: "success",
1251
+ message: l
1252
+ } : null, f = u ? "error" : s && t.valid ? "success" : "", p = `${F.fieldControl}-${this.controller?.id}-${this.#s}`, m = `${F.fieldErrors}-${this.controller?.id}-${this.#s}`, h = `${F.fieldDescription}-${this.controller?.id}-${this.#s}-details`;
1253
+ return z`
1208
1254
  <section
1209
- class="tile ${d}"
1255
+ class="tile ${f}"
1210
1256
  aria-busy=${String(t.status === "validating")}
1211
1257
  aria-invalid=${String(!t.valid)}
1212
1258
  >
@@ -1216,23 +1262,23 @@ var Ge = Symbol.for(""), Ke = (e) => {
1216
1262
  class="help-btn"
1217
1263
  type="button"
1218
1264
  aria-label=${this.text.helpActionLabel}
1219
- aria-expanded=${String(this.descriptionVisible)}
1220
- aria-controls=${m}
1265
+ aria-expanded=${String(o)}
1266
+ aria-controls=${h}
1221
1267
  ?disabled=${a.length === 0}
1222
- @click=${this.#b}
1268
+ @click=${this.#_}
1223
1269
  >
1224
1270
  ${this.text.helpActionGlyph}
1225
1271
  </button>
1226
1272
  </div>
1227
1273
 
1228
- ${a ? R`
1229
- <div id=${m} class="description ${this.descriptionVisible ? "show" : ""}">
1274
+ ${a ? z`
1275
+ <div id=${h} class="description ${o ? "show" : ""}">
1230
1276
  ${a}
1231
1277
  </div>
1232
- ` : R``}
1278
+ ` : z``}
1233
1279
 
1234
1280
  <div class="control-slot">
1235
- ${r ? this.#p(r, f, p) : R`
1281
+ ${r ? this.#m(r, p, m) : z`
1236
1282
  <mlf-unsupported-component
1237
1283
  role="field"
1238
1284
  component=${e.component}
@@ -1241,40 +1287,40 @@ var Ge = Symbol.for(""), Ke = (e) => {
1241
1287
  `}
1242
1288
  </div>
1243
1289
 
1244
- ${u ? R`
1290
+ ${d ? z`
1245
1291
  <div
1246
- class="feedback ${u.tone}"
1247
- role=${u.tone === "error" ? "alert" : "status"}
1292
+ class="feedback ${d.tone}"
1293
+ role=${d.tone === "error" ? "alert" : "status"}
1248
1294
  aria-live="polite"
1249
1295
  >
1250
- ${u.message}
1296
+ ${d.message}
1251
1297
  </div>
1252
- ` : R``}
1298
+ ` : z``}
1253
1299
  </section>
1254
1300
  `;
1255
1301
  }
1256
- #p(e, t, n) {
1257
- let r = qe(e), i = this.#m(t, n);
1258
- return R`
1302
+ #m(e, t, n) {
1303
+ let r = qe(e), i = this.#h(t, n), a = this.resolvedDescriptor;
1304
+ return z`
1259
1305
  <${r}
1260
1306
  .controller=${this.controller}
1261
- .descriptor=${this.descriptor}
1307
+ .descriptor=${a}
1262
1308
  .context=${i}
1263
1309
  .text=${this.text}
1264
1310
  ></${r}>
1265
1311
  `;
1266
1312
  }
1267
- #m(e, t) {
1268
- if (this.descriptor === this.#c && this.fieldState === this.#l && e === this.#u && t === this.#d) return this.#s;
1269
- let n = this.#h(this.descriptor?.props ?? {}, this.fieldState, e, t);
1270
- return this.#c = this.descriptor, this.#l = this.fieldState, this.#u = e, this.#d = t, this.#s = n, n;
1313
+ #h(e, t) {
1314
+ if (this.resolvedDescriptor === this.#l && this.fieldState === this.#u && e === this.#d && t === this.#f) return this.#c;
1315
+ let n = this.#g(this.resolvedDescriptor?.props ?? {}, this.fieldState, e, t);
1316
+ return this.#l = this.resolvedDescriptor, this.#u = this.fieldState, this.#d = e, this.#f = t, this.#c = n, n;
1271
1317
  }
1272
- #h(e, t, n, r) {
1318
+ #g(e, t, n, r) {
1273
1319
  if (!this.controller || !t) return;
1274
- let i = typeof e.description == "string" && e.description.length > 0 ? e.description : void 0, a = i ? `${N.fieldDescription}-${this.controller.id}-${this.#o}` : void 0, o = [a, r].filter(Boolean).join(" ") || void 0;
1320
+ let i = typeof e.description == "string" && e.description.length > 0 ? e.description : void 0, a = i ? `${F.fieldDescription}-${this.controller.id}-${this.#s}` : void 0, o = [a, r].filter(Boolean).join(" ") || void 0;
1275
1321
  return {
1276
1322
  controlId: n,
1277
- label: B(e.label, this.controller.config.label),
1323
+ label: V(e.label, this.controller.config.label),
1278
1324
  description: i,
1279
1325
  errors: t.errors,
1280
1326
  descriptionId: a,
@@ -1286,62 +1332,18 @@ var Ge = Symbol.for(""), Ke = (e) => {
1286
1332
  readOnly: t.readOnly
1287
1333
  };
1288
1334
  }
1289
- #g(e, t, n) {
1290
- let r = this.text;
1291
- switch ($e(e, t)) {
1292
- case "text-field": {
1293
- let e = typeof t.value == "string" ? t.value : "";
1294
- return e.length > 0 ? r.fieldTextRecorded(e.length) : r.fieldReady;
1295
- }
1296
- case "number-field": {
1297
- let e = typeof t.unit == "string" ? ` ${t.unit}` : "";
1298
- return n.value === null || n.value === void 0 || n.value === "" ? r.fieldReady : r.fieldValidNumber(n.value, e);
1299
- }
1300
- case "category-field": {
1301
- let e = this.#v(t, n.value);
1302
- return e ? r.fieldCategorySelected(e.label) : r.fieldSelectionReady;
1303
- }
1304
- case "date-field": {
1305
- let e = typeof t.value == "string" ? t.value : "";
1306
- return e.length > 0 ? r.fieldSelectedDate(e) : r.fieldDateReady;
1307
- }
1308
- case "boolean-field": {
1309
- let e = B(t.trueLabel, r.booleanTrue), i = B(t.falseLabel, r.booleanFalse);
1310
- return r.fieldBooleanSelection(n.value === !0 ? e : i);
1311
- }
1312
- case "series-field": {
1313
- let e = Array.isArray(t.value) ? t.value.length : 0;
1314
- return r.fieldSeriesRecorded(e);
1315
- }
1316
- default: return r.fieldReady;
1317
- }
1318
- }
1319
- #_(e, t, n) {
1320
- switch ($e(e, t)) {
1321
- case "text-field": return typeof n.value == "string" && n.value.trim().length > 0;
1322
- case "date-field": return typeof t.value == "string" && t.value.trim().length > 0;
1323
- case "category-field": return this.#v(t, n.value) !== null;
1324
- case "number-field": return n.value !== null && n.value !== void 0 && n.value !== "" && !(typeof n.value == "number" && Number.isNaN(n.value));
1325
- case "boolean-field": return this.#y() || n.dirty || n.touched;
1326
- case "series-field": return Array.isArray(t.value) && t.value.length > 0;
1327
- default: return n.value !== null && n.value !== void 0 && n.value !== "";
1328
- }
1329
- }
1330
- #v(e, t) {
1331
- return typeof t != "string" || t.length === 0 ? null : (Array.isArray(e.options) ? e.options : []).map(Qe).find((e) => e.value === t) ?? null;
1332
- }
1333
- #y() {
1334
- return this.controller?.config.defaultValue !== void 0;
1335
- }
1336
- #b = () => {
1337
- this.descriptor?.props.description && (this.descriptionVisible = !this.descriptionVisible);
1335
+ #_ = () => {
1336
+ this.resolvedDescriptor?.props.description && (this.descriptionVisibilityOverride = !this.#v(V(this.resolvedDescriptor.props.description)));
1338
1337
  };
1338
+ #v(e) {
1339
+ return e.length === 0 ? !1 : this.descriptionVisibilityOverride ?? this.resolvedDescriptor?.props.showDescriptionInline === !0;
1340
+ }
1339
1341
  };
1340
- P([O({ attribute: !1 })], V.prototype, "controller", null), P([O({ attribute: !1 })], V.prototype, "registry", null), P([O({ attribute: !1 })], V.prototype, "text", null), P([k()], V.prototype, "descriptor", null), P([k()], V.prototype, "fieldState", null), P([k()], V.prototype, "descriptionVisible", null), V = P([D(A.fieldFrame)], V);
1342
+ I([A({ attribute: !1 })], H.prototype, "controller", null), I([A({ attribute: !1 })], H.prototype, "descriptor", null), I([A({ attribute: !1 })], H.prototype, "registry", null), I([A({ attribute: !1 })], H.prototype, "text", null), I([j()], H.prototype, "resolvedDescriptor", null), I([j()], H.prototype, "fieldState", null), I([j()], H.prototype, "descriptionVisibilityOverride", null), H = I([k(M.fieldFrame)], H);
1341
1343
  //#endregion
1342
1344
  //#region src/primitives/components/report-frame.ts
1343
- var et = 0, H = class extends E {
1344
- static styles = s`
1345
+ var it = 0, U = class extends O {
1346
+ static styles = c`
1345
1347
  :host {
1346
1348
  display: block;
1347
1349
  }
@@ -1424,7 +1426,7 @@ var et = 0, H = class extends E {
1424
1426
  set registry(e) {
1425
1427
  this.#t = e;
1426
1428
  }
1427
- #n = M;
1429
+ #n = P;
1428
1430
  get text() {
1429
1431
  return this.#n;
1430
1432
  }
@@ -1453,39 +1455,46 @@ var et = 0, H = class extends E {
1453
1455
  this.#a = e;
1454
1456
  }
1455
1457
  #o = null;
1456
- get reportState() {
1458
+ get resolvedDescriptor() {
1457
1459
  return this.#o;
1458
1460
  }
1459
- set reportState(e) {
1461
+ set resolvedDescriptor(e) {
1460
1462
  this.#o = e;
1461
1463
  }
1462
- #s = ++et;
1463
- #c;
1464
+ #s = null;
1465
+ get reportState() {
1466
+ return this.#s;
1467
+ }
1468
+ set reportState(e) {
1469
+ this.#s = e;
1470
+ }
1471
+ #c = ++it;
1464
1472
  #l;
1465
- #u = null;
1473
+ #u;
1466
1474
  #d = null;
1467
1475
  #f = null;
1468
- #p = new Ye(this, (e) => {
1469
- this.descriptor = e?.descriptor ?? null, this.reportState = e?.state ?? null;
1476
+ #p = null;
1477
+ #m = new Ye(this, (e) => {
1478
+ this.resolvedDescriptor = this.descriptor, this.reportState = e?.state ?? null;
1470
1479
  });
1471
1480
  willUpdate(e) {
1472
- e.has("controller") && this.#p.bind(this.controller);
1481
+ e.has("controller") && this.#m.bind(this.controller), e.has("descriptor") && (this.resolvedDescriptor = this.descriptor);
1473
1482
  }
1474
1483
  render() {
1475
- let e = this.descriptor, t = this.reportState;
1476
- if (!e || !t) return R``;
1484
+ let e = this.resolvedDescriptor, t = this.reportState;
1485
+ if (!e || !t) return z``;
1477
1486
  let n = e.props, r = this.registry?.resolveReport(e.component);
1478
- return R`
1487
+ return z`
1479
1488
  <section class="report">
1480
1489
  <div class="header">
1481
1490
  <div class="copy">
1482
- <p class="label">${B(n.label, this.controller?.config.label ?? "")}</p>
1483
- ${n.description ? R`<p class="description">${B(n.description)}</p>` : R``}
1491
+ <p class="label">${V(n.label, this.controller?.config.label ?? "")}</p>
1492
+ ${n.description ? z`<p class="description">${V(n.description)}</p>` : z``}
1484
1493
  </div>
1485
1494
  <span class="meta">${this.text.reportStatusLabel(t.status)}</span>
1486
1495
  </div>
1487
1496
 
1488
- ${r ? this.#m(r) : R`
1497
+ ${r ? this.#h(r) : z`
1489
1498
  <mlf-unsupported-component
1490
1499
  role="report"
1491
1500
  component=${e.component}
@@ -1495,12 +1504,12 @@ var et = 0, H = class extends E {
1495
1504
  </section>
1496
1505
  `;
1497
1506
  }
1498
- #m(e) {
1499
- let t = qe(e), n = this.#h(), r = this.transport, i = this.reportState?.status === "ready" ? this.#_() : null;
1500
- return R`
1507
+ #h(e) {
1508
+ let t = qe(e), n = this.#g(), r = this.transport, i = this.reportState?.status === "ready" ? this.#v() : null, a = this.resolvedDescriptor;
1509
+ return z`
1501
1510
  <${t}
1502
1511
  .controller=${this.controller}
1503
- .descriptor=${this.descriptor}
1512
+ .descriptor=${a}
1504
1513
  .context=${n}
1505
1514
  .text=${this.text}
1506
1515
  .transport=${r}
@@ -1508,22 +1517,22 @@ var et = 0, H = class extends E {
1508
1517
  ></${t}>
1509
1518
  `;
1510
1519
  }
1511
- #h() {
1512
- if (this.controller === this.#l && this.descriptor === this.#u) return this.#c;
1513
- let e = this.#g(this.descriptor?.props ?? {});
1514
- return this.#l = this.controller, this.#u = this.descriptor, this.#c = e, e;
1520
+ #g() {
1521
+ if (this.controller === this.#u && this.resolvedDescriptor === this.#d) return this.#l;
1522
+ let e = this.#_(this.resolvedDescriptor?.props ?? {});
1523
+ return this.#u = this.controller, this.#d = this.resolvedDescriptor, this.#l = e, e;
1515
1524
  }
1516
- #g(e) {
1525
+ #_(e) {
1517
1526
  if (this.controller) return {
1518
- regionId: `${N.reportRegion}-${this.controller.id}-${this.#s}`,
1519
- label: B(e.label, this.controller.config.label ?? this.controller.id),
1527
+ regionId: `${F.reportRegion}-${this.controller.id}-${this.#c}`,
1528
+ label: V(e.label, this.controller.config.label ?? this.controller.id),
1520
1529
  description: typeof e.description == "string" && e.description.length > 0 ? e.description : void 0
1521
1530
  };
1522
1531
  }
1523
- #_() {
1532
+ #v() {
1524
1533
  let e = this.lastResult;
1525
1534
  if (!e || !this.controller) return null;
1526
- if (e === this.#d && this.#f?.reportId === this.controller.id) return this.#f;
1535
+ if (e === this.#f && this.#p?.reportId === this.controller.id) return this.#p;
1527
1536
  let t = {
1528
1537
  reportId: this.controller.id,
1529
1538
  backend: e.backend,
@@ -1535,14 +1544,14 @@ var et = 0, H = class extends E {
1535
1544
  meta: e.meta,
1536
1545
  raw: e.raw
1537
1546
  };
1538
- return this.#d = e, this.#f = t, t;
1547
+ return this.#f = e, this.#p = t, t;
1539
1548
  }
1540
1549
  };
1541
- P([O({ attribute: !1 })], H.prototype, "controller", null), P([O({ attribute: !1 })], H.prototype, "registry", null), P([O({ attribute: !1 })], H.prototype, "text", null), P([O({ attribute: !1 })], H.prototype, "transport", null), P([O({ attribute: !1 })], H.prototype, "lastResult", null), P([k()], H.prototype, "descriptor", null), P([k()], H.prototype, "reportState", null), H = P([D(A.reportFrame)], H);
1550
+ I([A({ attribute: !1 })], U.prototype, "controller", null), I([A({ attribute: !1 })], U.prototype, "registry", null), I([A({ attribute: !1 })], U.prototype, "text", null), I([A({ attribute: !1 })], U.prototype, "transport", null), I([A({ attribute: !1 })], U.prototype, "lastResult", null), I([A({ attribute: !1 })], U.prototype, "descriptor", null), I([j()], U.prototype, "resolvedDescriptor", null), I([j()], U.prototype, "reportState", null), U = I([k(M.reportFrame)], U);
1542
1551
  //#endregion
1543
1552
  //#region src/primitives/components/explanation-panel.ts
1544
- var tt = 0, U = class extends E {
1545
- static styles = s`
1553
+ var at = 0, W = class extends O {
1554
+ static styles = c`
1546
1555
  :host {
1547
1556
  display: block;
1548
1557
  }
@@ -1633,7 +1642,7 @@ var tt = 0, U = class extends E {
1633
1642
  set lastResult(e) {
1634
1643
  this.#n = e;
1635
1644
  }
1636
- #r = M;
1645
+ #r = P;
1637
1646
  get text() {
1638
1647
  return this.#r;
1639
1648
  }
@@ -1648,44 +1657,51 @@ var tt = 0, U = class extends E {
1648
1657
  this.#i = e;
1649
1658
  }
1650
1659
  #a = null;
1651
- get explanationState() {
1660
+ get resolvedDescriptor() {
1652
1661
  return this.#a;
1653
1662
  }
1654
- set explanationState(e) {
1663
+ set resolvedDescriptor(e) {
1655
1664
  this.#a = e;
1656
1665
  }
1657
- #o = ++tt;
1658
- #s = null;
1666
+ #o = null;
1667
+ get explanationState() {
1668
+ return this.#o;
1669
+ }
1670
+ set explanationState(e) {
1671
+ this.#o = e;
1672
+ }
1673
+ #s = ++at;
1659
1674
  #c = null;
1660
- #l;
1675
+ #l = null;
1661
1676
  #u;
1662
- #d = null;
1663
- #f = new Ye(this, (e) => {
1664
- this.descriptor = e?.descriptor ?? null, this.explanationState = e?.state ?? null;
1677
+ #d;
1678
+ #f = null;
1679
+ #p = new Ye(this, (e) => {
1680
+ this.resolvedDescriptor = this.descriptor, this.explanationState = e?.state ?? null;
1665
1681
  });
1666
1682
  willUpdate(e) {
1667
- e.has("controller") && this.#f.bind(this.controller), (e.has("lastResult") || e.has("controller")) && this.#g();
1683
+ e.has("controller") && this.#p.bind(this.controller), e.has("descriptor") && (this.resolvedDescriptor = this.descriptor), (e.has("lastResult") || e.has("controller")) && this.#_();
1668
1684
  }
1669
1685
  disconnectedCallback() {
1670
1686
  super.disconnectedCallback(), this.controller?.abort();
1671
1687
  }
1672
1688
  render() {
1673
- let e = this.descriptor, t = this.explanationState;
1674
- if (!e || !t) return b``;
1689
+ let e = this.resolvedDescriptor, t = this.explanationState;
1690
+ if (!e || !t) return S``;
1675
1691
  let n = e.props, r = this.registry?.resolveExplanation(e.component);
1676
- return b`
1692
+ return S`
1677
1693
  <div class="panel">
1678
1694
  <div class="header">
1679
1695
  <div class="copy">
1680
1696
  <p class="label">
1681
- ${B(n.label, this.controller?.config.label ?? this.text.explanationLabel)}
1697
+ ${V(n.label, this.controller?.config.label ?? this.text.explanationLabel)}
1682
1698
  </p>
1683
- ${n.description ? b`<p class="description">${B(n.description)}</p>` : b``}
1699
+ ${n.description ? S`<p class="description">${V(n.description)}</p>` : S``}
1684
1700
  </div>
1685
1701
  <span class="status">${t.status}</span>
1686
1702
  </div>
1687
1703
 
1688
- ${r ? this.#p(r) : b`
1704
+ ${r ? this.#m(r) : S`
1689
1705
  <mlf-unsupported-component
1690
1706
  role="explanation"
1691
1707
  component=${e.component}
@@ -1695,37 +1711,37 @@ var tt = 0, U = class extends E {
1695
1711
  </div>
1696
1712
  `;
1697
1713
  }
1698
- #p(e) {
1699
- let t = qe(e), n = this.#m();
1700
- return R`
1714
+ #m(e) {
1715
+ let t = qe(e), n = this.#h(), r = this.resolvedDescriptor;
1716
+ return z`
1701
1717
  <${t}
1702
1718
  .controller=${this.controller}
1703
- .descriptor=${this.descriptor}
1719
+ .descriptor=${r}
1704
1720
  .context=${n}
1705
1721
  .text=${this.text}
1706
1722
  ></${t}>
1707
1723
  `;
1708
1724
  }
1709
- #m() {
1710
- if (this.controller === this.#u && this.descriptor === this.#d) return this.#l;
1711
- let e = this.#h(this.descriptor?.props ?? {});
1712
- return this.#u = this.controller, this.#d = this.descriptor, this.#l = e, e;
1725
+ #h() {
1726
+ if (this.controller === this.#d && this.resolvedDescriptor === this.#f) return this.#u;
1727
+ let e = this.#g(this.resolvedDescriptor?.props ?? {});
1728
+ return this.#d = this.controller, this.#f = this.resolvedDescriptor, this.#u = e, e;
1713
1729
  }
1714
- #h(e) {
1730
+ #g(e) {
1715
1731
  if (this.controller) return {
1716
- regionId: `${N.explanationRegion}-${this.controller.id}-${this.#o}`,
1732
+ regionId: `${F.explanationRegion}-${this.controller.id}-${this.#s}`,
1717
1733
  label: typeof e.label == "string" && e.label.length > 0 ? e.label : this.controller.config.label ?? void 0,
1718
1734
  description: typeof e.description == "string" && e.description.length > 0 ? e.description : void 0
1719
1735
  };
1720
1736
  }
1721
- #g() {
1737
+ #_() {
1722
1738
  let e = this.lastResult, t = this.controller;
1723
1739
  if (!e || !t || t.state.status !== "idle") return;
1724
- let n = this.#_(e, t.id);
1740
+ let n = this.#v(e, t.id);
1725
1741
  t.fetch(n);
1726
1742
  }
1727
- #_(e, t) {
1728
- if (e === this.#s && this.#c?.explanationId === t) return this.#c;
1743
+ #v(e, t) {
1744
+ if (e === this.#c && this.#l?.explanationId === t) return this.#l;
1729
1745
  let n = {
1730
1746
  explanationId: t,
1731
1747
  backend: e.backend,
@@ -1737,14 +1753,14 @@ var tt = 0, U = class extends E {
1737
1753
  meta: e.meta,
1738
1754
  raw: e.raw
1739
1755
  };
1740
- return this.#s = e, this.#c = n, n;
1756
+ return this.#c = e, this.#l = n, n;
1741
1757
  }
1742
1758
  };
1743
- P([O({ attribute: !1 })], U.prototype, "controller", null), P([O({ attribute: !1 })], U.prototype, "registry", null), P([O({ attribute: !1 })], U.prototype, "lastResult", null), P([O({ attribute: !1 })], U.prototype, "text", null), P([k()], U.prototype, "descriptor", null), P([k()], U.prototype, "explanationState", null), U = P([D(A.explanationPanel)], U);
1759
+ I([A({ attribute: !1 })], W.prototype, "controller", null), I([A({ attribute: !1 })], W.prototype, "registry", null), I([A({ attribute: !1 })], W.prototype, "lastResult", null), I([A({ attribute: !1 })], W.prototype, "text", null), I([A({ attribute: !1 })], W.prototype, "descriptor", null), I([j()], W.prototype, "resolvedDescriptor", null), I([j()], W.prototype, "explanationState", null), W = I([k(M.explanationPanel)], W);
1744
1760
  //#endregion
1745
1761
  //#region src/primitives/base-field-element.ts
1746
- var W = class extends E {
1747
- static styles = s`
1762
+ var G = class extends O {
1763
+ static styles = c`
1748
1764
  :host {
1749
1765
  display: block;
1750
1766
  min-width: 0;
@@ -1830,7 +1846,7 @@ var W = class extends E {
1830
1846
  set context(e) {
1831
1847
  this.#n = e;
1832
1848
  }
1833
- #r = M;
1849
+ #r = P;
1834
1850
  get text() {
1835
1851
  return this.#r;
1836
1852
  }
@@ -1851,14 +1867,14 @@ var W = class extends E {
1851
1867
  }
1852
1868
  renderAssistiveText() {
1853
1869
  let e = this.fieldContext;
1854
- return e ? b`
1855
- ${e.description && e.descriptionId ? b`<span id=${e.descriptionId} class="sr-only">${e.description}</span>` : S}
1856
- ${e.errorId ? b`
1870
+ return e ? S`
1871
+ ${e.description && e.descriptionId ? S`<span id=${e.descriptionId} class="sr-only">${e.description}</span>` : w}
1872
+ ${e.errorId ? S`
1857
1873
  <span id=${e.errorId} class="sr-only" aria-live="polite">
1858
1874
  ${e.errors.join(" ")}
1859
1875
  </span>
1860
- ` : S}
1861
- ` : S;
1876
+ ` : w}
1877
+ ` : w;
1862
1878
  }
1863
1879
  getControlAttributes() {
1864
1880
  let e = this.fieldContext;
@@ -1869,36 +1885,36 @@ var W = class extends E {
1869
1885
  };
1870
1886
  }
1871
1887
  };
1872
- P([O({ attribute: !1 })], W.prototype, "controller", null), P([O({ attribute: !1 })], W.prototype, "descriptor", null), P([O({ attribute: !1 })], W.prototype, "context", null), P([O({ attribute: !1 })], W.prototype, "text", null);
1888
+ I([A({ attribute: !1 })], G.prototype, "controller", null), I([A({ attribute: !1 })], G.prototype, "descriptor", null), I([A({ attribute: !1 })], G.prototype, "context", null), I([A({ attribute: !1 })], G.prototype, "text", null);
1873
1889
  //#endregion
1874
1890
  //#region src/primitives/components/declarative-field.ts
1875
- var nt = {
1891
+ var ot = {
1876
1892
  text: {
1877
1893
  component: "text-field",
1878
- tagName: A.textField
1894
+ tagName: M.textField
1879
1895
  },
1880
1896
  number: {
1881
1897
  component: "number-field",
1882
- tagName: A.numberField
1898
+ tagName: M.numberField
1883
1899
  },
1884
1900
  boolean: {
1885
1901
  component: "boolean-field",
1886
- tagName: A.booleanField
1902
+ tagName: M.booleanField
1887
1903
  },
1888
1904
  select: {
1889
1905
  component: "category-field",
1890
- tagName: A.categoryField
1906
+ tagName: M.categoryField
1891
1907
  },
1892
1908
  date: {
1893
1909
  component: "date-field",
1894
- tagName: A.dateField
1910
+ tagName: M.dateField
1895
1911
  },
1896
1912
  series: {
1897
1913
  component: "series-field",
1898
- tagName: A.seriesField
1914
+ tagName: M.seriesField
1899
1915
  }
1900
- }, rt = class extends W {
1901
- static styles = [W.styles, s`
1916
+ }, st = class extends G {
1917
+ static styles = [G.styles, c`
1902
1918
  :host {
1903
1919
  display: block;
1904
1920
  }
@@ -1906,11 +1922,11 @@ var nt = {
1906
1922
  render() {
1907
1923
  let e = this.#e();
1908
1924
  if (!e) return this.renderAssistiveText();
1909
- let t = nt[e], n = qe(t.tagName), r = {
1925
+ let t = ot[e], n = qe(t.tagName), r = {
1910
1926
  component: t.component,
1911
1927
  props: this.#t(e)
1912
1928
  };
1913
- return R`
1929
+ return z`
1914
1930
  <${n}
1915
1931
  .controller=${this.controller}
1916
1932
  .descriptor=${r}
@@ -1921,18 +1937,18 @@ var nt = {
1921
1937
  }
1922
1938
  #e() {
1923
1939
  let e = this.props.widget;
1924
- return typeof e == "string" && e in nt ? e : null;
1940
+ return typeof e == "string" && e in ot ? e : null;
1925
1941
  }
1926
1942
  #t(e) {
1927
1943
  let t = { ...this.props };
1928
1944
  return delete t.widget, e === "boolean" && (t.checked = t.value === !0), t;
1929
1945
  }
1930
1946
  };
1931
- rt = P([D(A.declarativeField)], rt);
1947
+ st = I([k(M.declarativeField)], st);
1932
1948
  //#endregion
1933
1949
  //#region src/primitives/base-report-element.ts
1934
- var G = class extends E {
1935
- static styles = s`
1950
+ var K = class extends O {
1951
+ static styles = c`
1936
1952
  :host {
1937
1953
  display: block;
1938
1954
  }
@@ -1969,7 +1985,7 @@ var G = class extends E {
1969
1985
  set context(e) {
1970
1986
  this.#n = e;
1971
1987
  }
1972
- #r = M;
1988
+ #r = P;
1973
1989
  get text() {
1974
1990
  return this.#r;
1975
1991
  }
@@ -1997,10 +2013,10 @@ var G = class extends E {
1997
2013
  return this.context;
1998
2014
  }
1999
2015
  };
2000
- P([O({ attribute: !1 })], G.prototype, "controller", null), P([O({ attribute: !1 })], G.prototype, "descriptor", null), P([O({ attribute: !1 })], G.prototype, "context", null), P([O({ attribute: !1 })], G.prototype, "text", null), P([O({ attribute: !1 })], G.prototype, "transport", null), P([O({ attribute: !1 })], G.prototype, "request", null);
2016
+ I([A({ attribute: !1 })], K.prototype, "controller", null), I([A({ attribute: !1 })], K.prototype, "descriptor", null), I([A({ attribute: !1 })], K.prototype, "context", null), I([A({ attribute: !1 })], K.prototype, "text", null), I([A({ attribute: !1 })], K.prototype, "transport", null), I([A({ attribute: !1 })], K.prototype, "request", null);
2001
2017
  //#endregion
2002
2018
  //#region src/primitives/components/presentation.ts
2003
- var K = (e) => typeof e == "string" && e.length > 0 ? `tone-${e}` : "tone-neutral", q = (e) => {
2019
+ var q = (e) => typeof e == "string" && e.length > 0 ? `tone-${e}` : "tone-neutral", J = (e) => {
2004
2020
  if (typeof e == "string") return e;
2005
2021
  if (typeof e == "number" || typeof e == "boolean" || typeof e == "bigint") return String(e);
2006
2022
  if (e == null) return "";
@@ -2009,37 +2025,37 @@ var K = (e) => typeof e == "string" && e.length > 0 ? `tone-${e}` : "tone-neutra
2009
2025
  } catch {
2010
2026
  return Object.prototype.toString.call(e);
2011
2027
  }
2012
- }, it = (e) => Array.isArray(e) ? e : Object.entries(e).map(([e, t]) => ({
2028
+ }, ct = (e) => Array.isArray(e) ? e : Object.entries(e).map(([e, t]) => ({
2013
2029
  label: e,
2014
2030
  value: t
2015
- })), at = (e) => b`<span>${q(e)}</span>`, ot = (e, t) => {
2031
+ })), lt = (e) => S`<span>${J(e)}</span>`, ut = (e, t) => {
2016
2032
  switch (e.type) {
2017
- case "text": return typeof e.value == "string" && e.value.includes("\n") ? b`
2018
- <section class="node text ${K(e.tone)}" data-node-index=${t}>
2019
- ${e.label ? b`<p class="node-label">${e.label}</p>` : S}
2033
+ case "text": return typeof e.value == "string" && e.value.includes("\n") ? S`
2034
+ <section class="node text ${q(e.tone)}" data-node-index=${t}>
2035
+ ${e.label ? S`<p class="node-label">${e.label}</p>` : w}
2020
2036
  <pre class="node-text">${e.value}</pre>
2021
2037
  </section>
2022
- ` : b`
2023
- <section class="node text ${K(e.tone)}" data-node-index=${t}>
2024
- ${e.label ? b`<p class="node-label">${e.label}</p>` : S}
2025
- <p class="node-text">${q(e.value)}</p>
2038
+ ` : S`
2039
+ <section class="node text ${q(e.tone)}" data-node-index=${t}>
2040
+ ${e.label ? S`<p class="node-label">${e.label}</p>` : w}
2041
+ <p class="node-text">${J(e.value)}</p>
2026
2042
  </section>
2027
2043
  `;
2028
- case "metric": return b`
2029
- <section class="node metric ${K(e.tone)}" data-node-index=${t}>
2044
+ case "metric": return S`
2045
+ <section class="node metric ${q(e.tone)}" data-node-index=${t}>
2030
2046
  <p class="node-label">${e.label}</p>
2031
- <p class="metric-value">${q(e.value)}</p>
2032
- ${e.hint ? b`<p class="node-hint">${e.hint}</p>` : S}
2047
+ <p class="metric-value">${J(e.value)}</p>
2048
+ ${e.hint ? S`<p class="node-hint">${e.hint}</p>` : w}
2033
2049
  </section>
2034
2050
  `;
2035
- case "kv": return b`
2051
+ case "kv": return S`
2036
2052
  <section class="node kv" data-node-index=${t}>
2037
- ${e.label ? b`<p class="node-label">${e.label}</p>` : S}
2053
+ ${e.label ? S`<p class="node-label">${e.label}</p>` : w}
2038
2054
  <dl class="kv-list">
2039
- ${it(e.entries).map((e) => b`
2055
+ ${ct(e.entries).map((e) => S`
2040
2056
  <div class="kv-row">
2041
2057
  <dt>${e.label}</dt>
2042
- <dd>${q(e.value)}</dd>
2058
+ <dd>${J(e.value)}</dd>
2043
2059
  </div>
2044
2060
  `)}
2045
2061
  </dl>
@@ -2047,31 +2063,31 @@ var K = (e) => typeof e == "string" && e.length > 0 ? `tone-${e}` : "tone-neutra
2047
2063
  `;
2048
2064
  case "list": {
2049
2065
  let n = e.ordered ? "ol" : "ul";
2050
- return b`
2066
+ return S`
2051
2067
  <section class="node list" data-node-index=${t}>
2052
- ${e.label ? b`<p class="node-label">${e.label}</p>` : S}
2053
- ${n === "ol" ? b`<ol class="node-list">
2054
- ${e.items.map((e) => b`<li>${q(e)}</li>`)}
2055
- </ol>` : b`<ul class="node-list">
2056
- ${e.items.map((e) => b`<li>${q(e)}</li>`)}
2068
+ ${e.label ? S`<p class="node-label">${e.label}</p>` : w}
2069
+ ${n === "ol" ? S`<ol class="node-list">
2070
+ ${e.items.map((e) => S`<li>${J(e)}</li>`)}
2071
+ </ol>` : S`<ul class="node-list">
2072
+ ${e.items.map((e) => S`<li>${J(e)}</li>`)}
2057
2073
  </ul>`}
2058
2074
  </section>
2059
2075
  `;
2060
2076
  }
2061
- case "table": return b`
2077
+ case "table": return S`
2062
2078
  <section class="node table" data-node-index=${t}>
2063
- ${e.label ? b`<p class="node-label">${e.label}</p>` : S}
2079
+ ${e.label ? S`<p class="node-label">${e.label}</p>` : w}
2064
2080
  <div class="table-wrap">
2065
2081
  <table>
2066
2082
  <thead>
2067
2083
  <tr>
2068
- ${e.columns.map((e) => b`<th>${e}</th>`)}
2084
+ ${e.columns.map((e) => S`<th>${e}</th>`)}
2069
2085
  </tr>
2070
2086
  </thead>
2071
2087
  <tbody>
2072
- ${e.rows.map((t) => b`
2088
+ ${e.rows.map((t) => S`
2073
2089
  <tr>
2074
- ${(Array.isArray(t) ? t : e.columns.map((e) => t[e])).map((e) => b`<td>${at(e)}</td>`)}
2090
+ ${(Array.isArray(t) ? t : e.columns.map((e) => t[e])).map((e) => S`<td>${lt(e)}</td>`)}
2075
2091
  </tr>
2076
2092
  `)}
2077
2093
  </tbody>
@@ -2079,43 +2095,43 @@ var K = (e) => typeof e == "string" && e.length > 0 ? `tone-${e}` : "tone-neutra
2079
2095
  </div>
2080
2096
  </section>
2081
2097
  `;
2082
- case "badge": return b`
2098
+ case "badge": return S`
2083
2099
  <section class="node badge-row" data-node-index=${t}>
2084
- <span class="badge ${K(e.tone)}">${e.label}</span>
2100
+ <span class="badge ${q(e.tone)}">${e.label}</span>
2085
2101
  </section>
2086
2102
  `;
2087
- case "notice": return b`
2088
- <section class="node notice ${K(e.tone)}" data-node-index=${t}>
2089
- ${e.title ? b`<p class="node-label">${e.title}</p>` : S}
2090
- <p class="node-text">${q(e.body)}</p>
2103
+ case "notice": return S`
2104
+ <section class="node notice ${q(e.tone)}" data-node-index=${t}>
2105
+ ${e.title ? S`<p class="node-label">${e.title}</p>` : w}
2106
+ <p class="node-text">${J(e.body)}</p>
2091
2107
  </section>
2092
2108
  `;
2093
- case "json": return b`
2109
+ case "json": return S`
2094
2110
  <section class="node json" data-node-index=${t}>
2095
- ${e.label ? b`<p class="node-label">${e.label}</p>` : S}
2111
+ ${e.label ? S`<p class="node-label">${e.label}</p>` : w}
2096
2112
  <pre>${JSON.stringify(e.value, null, 2)}</pre>
2097
2113
  </section>
2098
2114
  `;
2099
2115
  }
2100
- }, st = (e, t) => {
2101
- if (!e && !t) return S;
2102
- let n = B(e?.title, t ?? ""), r = B(e?.description), i = e?.value, a = B(e?.badge);
2103
- return b`
2104
- <section class="summary ${K(e?.tone)}">
2116
+ }, dt = (e, t) => {
2117
+ if (!e && !t) return w;
2118
+ let n = V(e?.title, t ?? ""), r = V(e?.description), i = e?.value, a = V(e?.badge);
2119
+ return S`
2120
+ <section class="summary ${q(e?.tone)}">
2105
2121
  <div class="summary-copy">
2106
- ${n ? b`<p class="summary-title">${n}</p>` : S}
2107
- ${r ? b`<p class="summary-description">${r}</p>` : S}
2122
+ ${n ? S`<p class="summary-title">${n}</p>` : w}
2123
+ ${r ? S`<p class="summary-description">${r}</p>` : w}
2108
2124
  </div>
2109
2125
  <div class="summary-meta">
2110
- ${i != null && q(i).length > 0 ? b`<strong class="summary-value">${q(i)}</strong>` : S}
2111
- ${a ? b`<span class="badge ${K(e?.tone)}">${a}</span>` : S}
2126
+ ${i != null && J(i).length > 0 ? S`<strong class="summary-value">${J(i)}</strong>` : w}
2127
+ ${a ? S`<span class="badge ${q(e?.tone)}">${a}</span>` : w}
2112
2128
  </div>
2113
2129
  </section>
2114
2130
  `;
2115
- }, ct = (e) => e.length === 0 ? S : b`<div class="presentation">
2116
- ${e.map((e, t) => ot(e, t))}
2117
- </div>`, lt = class extends G {
2118
- static styles = [G.styles, s`
2131
+ }, ft = (e) => e.length === 0 ? w : S`<div class="presentation">
2132
+ ${e.map((e, t) => ut(e, t))}
2133
+ </div>`, pt = class extends K {
2134
+ static styles = [K.styles, c`
2119
2135
  :host {
2120
2136
  display: block;
2121
2137
  }
@@ -2262,17 +2278,17 @@ var K = (e) => typeof e == "string" && e.length > 0 ? `tone-${e}` : "tone-neutra
2262
2278
  `];
2263
2279
  render() {
2264
2280
  let e = this.props, t = Array.isArray(e.content) ? e.content : [];
2265
- return b`
2266
- ${st(e.summary && typeof e.summary == "object" ? e.summary : null, this.reportContext?.label)}
2267
- ${ct(t)}
2281
+ return S`
2282
+ ${dt(e.summary && typeof e.summary == "object" ? e.summary : null, this.reportContext?.label)}
2283
+ ${ft(t)}
2268
2284
  `;
2269
2285
  }
2270
2286
  };
2271
- lt = P([D(A.declarativeReport)], lt);
2287
+ pt = I([k(M.declarativeReport)], pt);
2272
2288
  //#endregion
2273
2289
  //#region src/primitives/base-explanation-element.ts
2274
- var J = class extends E {
2275
- static styles = s`
2290
+ var Y = class extends O {
2291
+ static styles = c`
2276
2292
  :host {
2277
2293
  display: block;
2278
2294
  }
@@ -2298,7 +2314,7 @@ var J = class extends E {
2298
2314
  set context(e) {
2299
2315
  this.#n = e;
2300
2316
  }
2301
- #r = M;
2317
+ #r = P;
2302
2318
  get text() {
2303
2319
  return this.#r;
2304
2320
  }
@@ -2312,11 +2328,11 @@ var J = class extends E {
2312
2328
  return this.context;
2313
2329
  }
2314
2330
  };
2315
- P([O({ attribute: !1 })], J.prototype, "controller", null), P([O({ attribute: !1 })], J.prototype, "descriptor", null), P([O({ attribute: !1 })], J.prototype, "context", null), P([O({ attribute: !1 })], J.prototype, "text", null);
2331
+ I([A({ attribute: !1 })], Y.prototype, "controller", null), I([A({ attribute: !1 })], Y.prototype, "descriptor", null), I([A({ attribute: !1 })], Y.prototype, "context", null), I([A({ attribute: !1 })], Y.prototype, "text", null);
2316
2332
  //#endregion
2317
2333
  //#region src/primitives/components/declarative-explanation.ts
2318
- var ut = class extends J {
2319
- static styles = [J.styles, s`
2334
+ var mt = class extends Y {
2335
+ static styles = [Y.styles, c`
2320
2336
  :host {
2321
2337
  display: block;
2322
2338
  }
@@ -2452,26 +2468,374 @@ var ut = class extends J {
2452
2468
  `];
2453
2469
  render() {
2454
2470
  let e = this.props, t = Array.isArray(e.content) ? e.content : [], n = e.chromeless === !0, r = n && t.length === 1 && t[0]?.type === "text" && !t[0].label ? t[0] : null, i = !n && e.summary && typeof e.summary == "object" ? e.summary : null;
2455
- return r ? b`<pre class="chromeless-text">${B(r.value)}</pre>` : b`
2456
- ${st(i, n ? void 0 : this.explanationContext?.label)}
2457
- ${ct(t)}
2471
+ return r ? S`<pre class="chromeless-text">${V(r.value)}</pre>` : S`
2472
+ ${dt(i, n ? void 0 : this.explanationContext?.label)}
2473
+ ${ft(t)}
2458
2474
  `;
2459
2475
  }
2460
2476
  };
2461
- ut = P([D(A.declarativeExplanation)], ut);
2477
+ mt = I([k(M.declarativeExplanation)], mt);
2462
2478
  //#endregion
2463
- //#region node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/directive.js
2464
- var dt = {
2479
+ //#region src/primitives/components/error-focus.ts
2480
+ var ht = () => new Promise((e) => {
2481
+ window.setTimeout(e, 0);
2482
+ }), gt = (e) => e instanceof HTMLElement && (e.matches("input, select, textarea, button, [tabindex]") || e.getAttribute("role") === "textbox"), _t = (e) => {
2483
+ for (let t of e.querySelectorAll("*")) {
2484
+ if (gt(t)) return t;
2485
+ if (t instanceof HTMLElement && t.shadowRoot) {
2486
+ let e = _t(t.shadowRoot);
2487
+ if (e) return e;
2488
+ }
2489
+ }
2490
+ return null;
2491
+ }, vt = (e, t) => Array.from(e.querySelectorAll("mlf-field-frame")).find((e) => e.dataset.fieldId === t) ?? null, yt = async (e) => e ? (e.scrollIntoView?.({
2492
+ behavior: "smooth",
2493
+ block: "center",
2494
+ inline: "nearest"
2495
+ }), await ht(), _t(e.shadowRoot ?? e)?.focus(), !0) : !1, bt = (e) => e.find((e) => e.state.visible && e.state.errors.length > 0) ?? null, xt = c`
2496
+ :host {
2497
+ display: block;
2498
+ flex: 1 1 auto;
2499
+ align-self: stretch;
2500
+ inline-size: 100%;
2501
+ block-size: 100%;
2502
+ max-inline-size: 100%;
2503
+ max-block-size: 100%;
2504
+ color: var(--mlf-shell-color, var(--mlf-color-text, #0f172a));
2505
+ background: var(--mlf-shell-bg, var(--mlf-color-bg, #f5f7fa));
2506
+ font-family: var(--mlf-font-family-body);
2507
+ min-width: 0;
2508
+ min-height: 0;
2509
+ }
2510
+
2511
+ *,
2512
+ *::before,
2513
+ *::after {
2514
+ box-sizing: border-box;
2515
+ }
2516
+
2517
+ .root {
2518
+ display: grid;
2519
+ gap: var(--mlf-shell-gap, 1rem);
2520
+ inline-size: 100%;
2521
+ block-size: 100%;
2522
+ min-width: 0;
2523
+ min-height: 0;
2524
+ }
2525
+
2526
+ .root.split {
2527
+ display: flex;
2528
+ flex: 1 1 auto;
2529
+ gap: 0;
2530
+ overflow: hidden;
2531
+ inline-size: 100%;
2532
+ block-size: 100%;
2533
+ background: var(--mlf-shell-bg, var(--mlf-color-bg, #f5f7fa));
2534
+ }
2535
+
2536
+ .panel {
2537
+ display: grid;
2538
+ gap: 0;
2539
+ min-width: 0;
2540
+ overflow: hidden;
2541
+ border-radius: var(--mlf-panel-radius, 12px);
2542
+ border: var(--mlf-border-width, 1px) solid
2543
+ var(--mlf-shell-panel-border, var(--mlf-color-border, #e2e8f0));
2544
+ background: var(--mlf-shell-panel-bg, var(--mlf-color-surface, #ffffff));
2545
+ box-shadow:
2546
+ 0 2px 4px var(--mlf-shell-panel-shadow-soft, rgba(0, 0, 0, 0.04)),
2547
+ 0 8px 16px var(--mlf-shell-panel-shadow, rgba(0, 0, 0, 0.04));
2548
+ }
2549
+
2550
+ .pane-header {
2551
+ display: flex;
2552
+ justify-content: space-between;
2553
+ align-items: center;
2554
+ gap: 1rem;
2555
+ padding: 0.85rem 1.5rem;
2556
+ border-bottom: var(--mlf-border-width, 1px) solid
2557
+ var(--mlf-shell-panel-border, var(--mlf-color-border, #e2e8f0));
2558
+ background: var(
2559
+ --mlf-shell-header-bg,
2560
+ color-mix(in srgb, var(--mlf-color-surface, #ffffff) 76%, transparent)
2561
+ );
2562
+ backdrop-filter: blur(var(--mlf-shell-header-blur, 3px));
2563
+ -webkit-backdrop-filter: blur(var(--mlf-shell-header-blur, 3px));
2564
+ }
2565
+
2566
+ .pane-copy {
2567
+ display: grid;
2568
+ gap: 0.28rem;
2569
+ }
2570
+
2571
+ .eyebrow {
2572
+ margin: 0;
2573
+ font-size: 0.8rem;
2574
+ font-weight: 600;
2575
+ letter-spacing: 0.06em;
2576
+ text-transform: uppercase;
2577
+ color: var(--mlf-pane-eyebrow-color, var(--mlf-color-text-muted, #475569));
2578
+ }
2579
+
2580
+ .pane-title {
2581
+ margin: 0;
2582
+ color: var(--mlf-pane-title-color, var(--mlf-color-text, #0f172a));
2583
+ font-size: 1rem;
2584
+ font-weight: 600;
2585
+ }
2586
+
2587
+ .status {
2588
+ display: inline-flex;
2589
+ align-items: center;
2590
+ justify-content: center;
2591
+ min-height: 2rem;
2592
+ padding: 0.35rem 0.75rem;
2593
+ border-radius: 999px;
2594
+ background: var(
2595
+ --mlf-status-bg,
2596
+ color-mix(in srgb, var(--mlf-color-accent, #1e40af) 10%, transparent)
2597
+ );
2598
+ color: var(--mlf-status-color, var(--mlf-color-secondary, #475569));
2599
+ font-size: 0.72rem;
2600
+ font-weight: 700;
2601
+ letter-spacing: 0.08em;
2602
+ text-transform: uppercase;
2603
+ white-space: nowrap;
2604
+ }
2605
+
2606
+ .pane-body {
2607
+ display: grid;
2608
+ gap: 1rem;
2609
+ padding: 1rem 1rem 0;
2610
+ }
2611
+
2612
+ .meta {
2613
+ display: flex;
2614
+ flex-wrap: wrap;
2615
+ gap: 0.6rem 1rem;
2616
+ color: var(--mlf-color-text-muted, #475569);
2617
+ font-size: 0.84rem;
2618
+ }
2619
+
2620
+ .collection {
2621
+ display: grid;
2622
+ gap: var(--mlf-section-gap, 1rem);
2623
+ }
2624
+
2625
+ .actions {
2626
+ padding: 1rem 1.5rem 1.25rem;
2627
+ border-top: var(--mlf-border-width, 1px) solid
2628
+ var(--mlf-shell-panel-border, var(--mlf-color-border, #e2e8f0));
2629
+ background: var(--mlf-shell-action-bg, var(--mlf-color-surface-muted, #f5f7fa));
2630
+ }
2631
+
2632
+ ${c`
2633
+ .split-shell {
2634
+ display: flex;
2635
+ flex: 1 1 auto;
2636
+ inline-size: 100%;
2637
+ block-size: 100%;
2638
+ min-width: 0;
2639
+ min-height: 0;
2640
+ overflow: hidden;
2641
+ background: var(--mlf-shell-bg, var(--mlf-color-bg, #f5f7fa));
2642
+ }
2643
+
2644
+ .left-section,
2645
+ .right-section,
2646
+ .form-inputs,
2647
+ .results-area {
2648
+ min-width: 0;
2649
+ min-height: 0;
2650
+ }
2651
+
2652
+ .left-section,
2653
+ .right-section {
2654
+ display: flex;
2655
+ flex-direction: column;
2656
+ height: 100%;
2657
+ overflow: hidden;
2658
+ background: var(--mlf-shell-panel-bg, var(--mlf-color-surface, #ffffff));
2659
+ box-shadow:
2660
+ 0 2px 4px var(--mlf-shell-panel-shadow-soft, rgba(0, 0, 0, 0.04)),
2661
+ 0 14px 30px var(--mlf-shell-panel-shadow, rgba(0, 0, 0, 0.08));
2662
+ }
2663
+
2664
+ .left-section {
2665
+ flex: 0 1 auto;
2666
+ resize: horizontal;
2667
+ min-width: min-content;
2668
+ max-width: var(--mlf-shell-left-max-width, 48rem);
2669
+ border-right: var(--mlf-border-width, 1px) solid
2670
+ var(--mlf-shell-panel-border, var(--mlf-color-border, #e2e8f0));
2671
+ }
2672
+
2673
+ .right-section {
2674
+ flex: 1 1 0%;
2675
+ min-width: var(--mlf-shell-right-min-width, 24rem);
2676
+ border-left: var(--mlf-border-width, 1px) solid
2677
+ var(--mlf-shell-panel-border, var(--mlf-color-border, #e2e8f0));
2678
+ }
2679
+
2680
+ .scroll-y {
2681
+ overflow-y: auto;
2682
+ overflow-x: hidden;
2683
+ overscroll-behavior: contain;
2684
+ scrollbar-color: color-mix(in srgb, var(--mlf-color-text-muted, #475569) 60%, transparent)
2685
+ transparent;
2686
+ }
2687
+
2688
+ .scroll-y::-webkit-scrollbar {
2689
+ width: 8px;
2690
+ }
2691
+
2692
+ .scroll-y::-webkit-scrollbar-thumb {
2693
+ background: color-mix(in srgb, var(--mlf-color-text-muted, #475569) 55%, transparent);
2694
+ border-radius: 999px;
2695
+ }
2696
+
2697
+ .sticky-header {
2698
+ position: sticky;
2699
+ top: 0;
2700
+ z-index: 10;
2701
+ display: flex;
2702
+ align-items: center;
2703
+ justify-content: space-between;
2704
+ gap: 1rem;
2705
+ padding: 0.75rem 2rem;
2706
+ border-bottom: var(--mlf-border-width, 1px) solid
2707
+ var(--mlf-shell-panel-border, var(--mlf-color-border, #e2e8f0));
2708
+ background: var(
2709
+ --mlf-shell-header-bg,
2710
+ color-mix(in srgb, var(--mlf-color-surface, #ffffff) 76%, transparent)
2711
+ );
2712
+ backdrop-filter: blur(var(--mlf-shell-header-blur, 3px));
2713
+ -webkit-backdrop-filter: blur(var(--mlf-shell-header-blur, 3px));
2714
+ }
2715
+
2716
+ .sticky-header h2 {
2717
+ margin: 0;
2718
+ color: var(--mlf-color-text, #0f172a);
2719
+ font-size: 1rem;
2720
+ font-weight: 600;
2721
+ }
2722
+
2723
+ .sticky-meta {
2724
+ color: var(--mlf-color-text-muted, #475569);
2725
+ font-size: var(--mlf-font-size-xs, 0.72rem);
2726
+ letter-spacing: 0.08em;
2727
+ text-transform: uppercase;
2728
+ white-space: nowrap;
2729
+ }
2730
+
2731
+ .form-inputs,
2732
+ .results-area {
2733
+ flex: 1 1 auto;
2734
+ }
2735
+
2736
+ .split-content {
2737
+ display: grid;
2738
+ gap: 1rem;
2739
+ padding: 1.25rem 2rem 2rem;
2740
+ }
2741
+
2742
+ .form-actions {
2743
+ padding: 1rem 2rem;
2744
+ border-top: var(--mlf-border-width, 1px) solid
2745
+ var(--mlf-shell-panel-border, var(--mlf-color-border, #e2e8f0));
2746
+ background: var(--mlf-shell-action-bg, var(--mlf-color-surface-muted, #f5f7fa));
2747
+ }
2748
+
2749
+ .empty-report-state {
2750
+ display: grid;
2751
+ gap: 0.35rem;
2752
+ padding: 1.1rem 1.2rem;
2753
+ border: var(--mlf-border-width, 1px) dashed
2754
+ color-mix(in srgb, var(--mlf-color-border, #e2e8f0) 90%, transparent);
2755
+ border-radius: var(--mlf-radius-md, 16px);
2756
+ background: color-mix(in srgb, var(--mlf-color-surface, #ffffff) 84%, transparent);
2757
+ color: var(--mlf-color-text-muted, #475569);
2758
+ }
2759
+
2760
+ .empty-report-title {
2761
+ margin: 0;
2762
+ color: var(--mlf-color-text, #0f172a);
2763
+ font-size: 0.95rem;
2764
+ font-weight: 600;
2765
+ }
2766
+
2767
+ .empty-report-copy {
2768
+ margin: 0;
2769
+ font-size: var(--mlf-font-size-sm, 0.84rem);
2770
+ line-height: var(--mlf-line-height-normal, 1.5);
2771
+ }
2772
+
2773
+ @media (max-width: 900px) {
2774
+ .root.split {
2775
+ display: grid;
2776
+ }
2777
+
2778
+ .split-shell {
2779
+ display: grid;
2780
+ }
2781
+
2782
+ .left-section,
2783
+ .right-section {
2784
+ min-width: 0;
2785
+ max-width: none;
2786
+ resize: none;
2787
+ border-left: none;
2788
+ border-right: none;
2789
+ }
2790
+
2791
+ .sticky-header,
2792
+ .split-content,
2793
+ .form-actions {
2794
+ padding-inline: 1.25rem;
2795
+ }
2796
+ }
2797
+ `}
2798
+ `, St = (e) => ({
2799
+ component: "unsupported-field",
2800
+ props: { label: e.config.label ?? e.id }
2801
+ }), Ct = (e, t) => t?.getField(e.kind)?.describe(e.config, {
2802
+ fieldId: e.id,
2803
+ state: e.state,
2804
+ value: e.state.value
2805
+ }) ?? St(e), wt = (e, t, n) => {
2806
+ let r = n?.getReport(e.kind);
2807
+ return r ? r.describe(e.config, {
2808
+ reportId: e.id,
2809
+ state: e.state,
2810
+ payload: e.state.payload,
2811
+ result: t.state.lastResult
2812
+ }) : null;
2813
+ }, Tt = (e, t) => {
2814
+ let n = t?.getExplanation(e.kind);
2815
+ return n ? n.describe(e.config, {
2816
+ explanationId: e.id,
2817
+ state: e.state
2818
+ }) : null;
2819
+ }, Et = (e, t, n) => t.map((t) => e.getField(t)).filter((e) => e !== void 0).map((e) => ({
2820
+ controller: e,
2821
+ descriptor: Ct(e, n)
2822
+ })), Dt = (e, t, n, r) => (n === "always" ? e.reports : t.map((t) => e.getReport(t)).filter((e) => e !== void 0)).map((t) => ({
2823
+ controller: t,
2824
+ descriptor: wt(t, e, r)
2825
+ })).filter((e) => e.descriptor !== null), Ot = (e, t, n) => t.map((t) => e.getExplanation(t)).filter((e) => e !== void 0).map((e) => ({
2826
+ controller: e,
2827
+ descriptor: Tt(e, n)
2828
+ })), kt = {
2465
2829
  ATTRIBUTE: 1,
2466
2830
  CHILD: 2,
2467
2831
  PROPERTY: 3,
2468
2832
  BOOLEAN_ATTRIBUTE: 4,
2469
2833
  EVENT: 5,
2470
2834
  ELEMENT: 6
2471
- }, ft = (e) => (...t) => ({
2835
+ }, At = (e) => (...t) => ({
2472
2836
  _$litDirective$: e,
2473
2837
  values: t
2474
- }), pt = class {
2838
+ }), jt = class {
2475
2839
  constructor(e) {}
2476
2840
  get _$AU() {
2477
2841
  return this._$AM._$AU;
@@ -2485,9 +2849,9 @@ var dt = {
2485
2849
  update(e, t) {
2486
2850
  return this.render(...t);
2487
2851
  }
2488
- }, { I: mt } = Ie, ht = (e) => e, gt = () => document.createComment(""), _t = (e, t, n) => {
2852
+ }, { I: Mt } = Fe, Nt = (e) => e, Pt = () => document.createComment(""), Ft = (e, t, n) => {
2489
2853
  let r = e._$AA.parentNode, i = t === void 0 ? e._$AB : t._$AA;
2490
- if (n === void 0) n = new mt(r.insertBefore(gt(), i), r.insertBefore(gt(), i), e, e.options);
2854
+ if (n === void 0) n = new Mt(r.insertBefore(Pt(), i), r.insertBefore(Pt(), i), e, e.options);
2491
2855
  else {
2492
2856
  let t = n._$AB.nextSibling, a = n._$AM, o = a !== e;
2493
2857
  if (o) {
@@ -2497,21 +2861,21 @@ var dt = {
2497
2861
  if (t !== i || o) {
2498
2862
  let e = n._$AA;
2499
2863
  for (; e !== t;) {
2500
- let t = ht(e).nextSibling;
2501
- ht(r).insertBefore(e, i), e = t;
2864
+ let t = Nt(e).nextSibling;
2865
+ Nt(r).insertBefore(e, i), e = t;
2502
2866
  }
2503
2867
  }
2504
2868
  }
2505
2869
  return n;
2506
- }, Y = (e, t, n = e) => (e._$AI(t, n), e), vt = {}, yt = (e, t = vt) => e._$AH = t, bt = (e) => e._$AH, xt = (e) => {
2870
+ }, X = (e, t, n = e) => (e._$AI(t, n), e), It = {}, Lt = (e, t = It) => e._$AH = t, Rt = (e) => e._$AH, zt = (e) => {
2507
2871
  e._$AR(), e._$AA.remove();
2508
- }, St = (e, t, n) => {
2872
+ }, Bt = (e, t, n) => {
2509
2873
  let r = /* @__PURE__ */ new Map();
2510
2874
  for (let i = t; i <= n; i++) r.set(e[i], i);
2511
2875
  return r;
2512
- }, X = ft(class extends pt {
2876
+ }, Vt = At(class extends jt {
2513
2877
  constructor(e) {
2514
- if (super(e), e.type !== dt.CHILD) throw Error("repeat() can only be used in text expressions");
2878
+ if (super(e), e.type !== kt.CHILD) throw Error("repeat() can only be used in text expressions");
2515
2879
  }
2516
2880
  dt(e, t, n) {
2517
2881
  let r;
@@ -2527,334 +2891,206 @@ var dt = {
2527
2891
  return this.dt(e, t, n).values;
2528
2892
  }
2529
2893
  update(e, [t, n, r]) {
2530
- let i = bt(e), { values: a, keys: o } = this.dt(t, n, r);
2894
+ let i = Rt(e), { values: a, keys: o } = this.dt(t, n, r);
2531
2895
  if (!Array.isArray(i)) return this.ut = o, a;
2532
2896
  let s = this.ut ??= [], c = [], l, u, d = 0, f = i.length - 1, p = 0, m = a.length - 1;
2533
2897
  for (; d <= f && p <= m;) if (i[d] === null) d++;
2534
2898
  else if (i[f] === null) f--;
2535
- else if (s[d] === o[p]) c[p] = Y(i[d], a[p]), d++, p++;
2536
- else if (s[f] === o[m]) c[m] = Y(i[f], a[m]), f--, m--;
2537
- else if (s[d] === o[m]) c[m] = Y(i[d], a[m]), _t(e, c[m + 1], i[d]), d++, m--;
2538
- else if (s[f] === o[p]) c[p] = Y(i[f], a[p]), _t(e, i[d], i[f]), f--, p++;
2539
- else if (l === void 0 && (l = St(o, p, m), u = St(s, d, f)), l.has(s[d])) if (l.has(s[f])) {
2899
+ else if (s[d] === o[p]) c[p] = X(i[d], a[p]), d++, p++;
2900
+ else if (s[f] === o[m]) c[m] = X(i[f], a[m]), f--, m--;
2901
+ else if (s[d] === o[m]) c[m] = X(i[d], a[m]), Ft(e, c[m + 1], i[d]), d++, m--;
2902
+ else if (s[f] === o[p]) c[p] = X(i[f], a[p]), Ft(e, i[d], i[f]), f--, p++;
2903
+ else if (l === void 0 && (l = Bt(o, p, m), u = Bt(s, d, f)), l.has(s[d])) if (l.has(s[f])) {
2540
2904
  let t = u.get(o[p]), n = t === void 0 ? null : i[t];
2541
2905
  if (n === null) {
2542
- let t = _t(e, i[d]);
2543
- Y(t, a[p]), c[p] = t;
2544
- } else c[p] = Y(n, a[p]), _t(e, i[d], n), i[t] = null;
2906
+ let t = Ft(e, i[d]);
2907
+ X(t, a[p]), c[p] = t;
2908
+ } else c[p] = X(n, a[p]), Ft(e, i[d], n), i[t] = null;
2545
2909
  p++;
2546
- } else xt(i[f]), f--;
2547
- else xt(i[d]), d++;
2910
+ } else zt(i[f]), f--;
2911
+ else zt(i[d]), d++;
2548
2912
  for (; p <= m;) {
2549
- let t = _t(e, c[m + 1]);
2550
- Y(t, a[p]), c[p++] = t;
2913
+ let t = Ft(e, c[m + 1]);
2914
+ X(t, a[p]), c[p++] = t;
2551
2915
  }
2552
2916
  for (; d <= f;) {
2553
2917
  let e = i[d++];
2554
- e !== null && xt(e);
2918
+ e !== null && zt(e);
2555
2919
  }
2556
- return this.ut = o, yt(e, c), x;
2557
- }
2558
- }), Ct = (e, t) => e.length === t.length && e.every((e, n) => e === t[n]), wt = (e, t) => e.status === t.status && e.submitCount === t.submitCount && e.hasFormErrors === t.hasFormErrors && e.hasLastResult === t.hasLastResult && e.submissionLoaded === t.submissionLoaded && e.submissionTotal === t.submissionTotal && e.submissionMessage === t.submissionMessage && e.submissionSessionMessageCount === t.submissionSessionMessageCount && Ct(e.visibleFieldIds, t.visibleFieldIds) && Ct(e.visibleReportIds, t.visibleReportIds) && Ct(e.explanationIds, t.explanationIds), Z = class extends E {
2559
- static styles = s`
2560
- :host {
2561
- display: block;
2562
- flex: 1 1 auto;
2563
- align-self: stretch;
2564
- inline-size: 100%;
2565
- block-size: 100%;
2566
- max-inline-size: 100%;
2567
- max-block-size: 100%;
2568
- color: var(--mlf-shell-color, var(--mlf-color-text, #0f172a));
2569
- background: var(--mlf-shell-bg, var(--mlf-color-bg, #f5f7fa));
2570
- font-family: var(--mlf-font-family-body);
2571
- min-width: 0;
2572
- min-height: 0;
2573
- }
2920
+ return this.ut = o, Lt(e, c), C;
2921
+ }
2922
+ }), Ht = (e, t, n) => S`
2923
+ <div class="collection" part="field-list">
2924
+ ${Vt(e, (e) => e.controller.id, (e) => S`
2925
+ <mlf-field-frame
2926
+ data-field-id=${e.controller.id}
2927
+ .controller=${e.controller}
2928
+ .descriptor=${e.descriptor}
2929
+ .registry=${t}
2930
+ .text=${n}
2931
+ ></mlf-field-frame>
2932
+ `)}
2933
+ </div>
2934
+ `, Ut = (e, t, n, r, i) => S`
2935
+ <div class="collection" part="report-list">
2936
+ ${Vt(e, (e) => e.controller.id, (e) => S`
2937
+ <mlf-report-frame
2938
+ .controller=${e.controller}
2939
+ .descriptor=${e.descriptor}
2940
+ .registry=${t}
2941
+ .text=${n}
2942
+ .transport=${r}
2943
+ .lastResult=${i}
2944
+ ></mlf-report-frame>
2945
+ `)}
2946
+ </div>
2947
+ `, Wt = (e, t, n, r, i) => {
2948
+ let a = Ot(e, t.explanationIds, r);
2949
+ return a.length === 0 ? w : S`
2950
+ <div class="collection" part="explanation-list">
2951
+ ${Vt(a, (e) => e.controller.id, (t) => S`
2952
+ <mlf-explanation-panel
2953
+ .controller=${t.controller}
2954
+ .descriptor=${t.descriptor}
2955
+ .registry=${n}
2956
+ .text=${i}
2957
+ .lastResult=${e.state.lastResult ?? null}
2958
+ ></mlf-explanation-panel>
2959
+ `)}
2960
+ </div>
2961
+ `;
2962
+ }, Gt = (e) => S`
2963
+ <div class="root stacked">
2964
+ <section class="panel form-pane" part="form-pane">
2965
+ <header class="pane-header">
2966
+ <div class="pane-copy">
2967
+ <p class="eyebrow">${e.text.formEyebrow}</p>
2968
+ <h1 class="pane-title">${e.formLabel}</h1>
2969
+ </div>
2970
+ <span class="status">${e.text.formStatusLabel(e.state.status)}</span>
2971
+ </header>
2972
+
2973
+ <div class="pane-body">
2974
+ <div class="meta">
2975
+ <span>${e.text.formMetaFields(e.visibleFields.length)}</span>
2976
+ <span>${e.text.formMetaReports(e.form.reports.length)}</span>
2977
+ <span>${e.text.formMetaSubmits(e.state.submitCount)}</span>
2978
+ </div>
2574
2979
 
2575
- *,
2576
- *::before,
2577
- *::after {
2578
- box-sizing: border-box;
2579
- }
2980
+ <mlf-form-errors .form=${e.form} .text=${e.text}></mlf-form-errors>
2981
+ ${Ht(e.visibleFields, e.registry, e.text)}
2982
+ </div>
2580
2983
 
2581
- .root {
2582
- display: grid;
2583
- gap: var(--mlf-shell-gap, 1rem);
2584
- inline-size: 100%;
2585
- block-size: 100%;
2586
- min-width: 0;
2587
- min-height: 0;
2588
- }
2984
+ <div class="actions" part="actions">
2985
+ <mlf-submit-button
2986
+ .status=${e.state.status}
2987
+ .idleLabel=${e.submitLabel}
2988
+ .validatingLabel=${e.validatingLabel}
2989
+ .submittingLabel=${e.submittingLabel}
2990
+ .loaded=${e.state.submissionLoaded}
2991
+ .total=${e.state.submissionTotal}
2992
+ .progressMessage=${e.state.submissionMessage}
2993
+ .sessionMessageCount=${e.state.submissionSessionMessageCount}
2994
+ @mlf-submit-request=${e.onSubmitRequest}
2995
+ ></mlf-submit-button>
2996
+ </div>
2997
+ </section>
2589
2998
 
2590
- .root.split {
2591
- display: flex;
2592
- flex: 1 1 auto;
2593
- gap: 0;
2594
- overflow: hidden;
2595
- inline-size: 100%;
2596
- block-size: 100%;
2597
- background: var(--mlf-shell-bg, var(--mlf-color-bg, #f5f7fa));
2598
- }
2999
+ ${e.showReports ? S`
3000
+ <aside class="panel report-pane" part="report-pane">
3001
+ <header class="pane-header">
3002
+ <div class="pane-copy">
3003
+ <p class="eyebrow">${e.text.reportEyebrow}</p>
3004
+ <h2 class="pane-title">${e.reportsLabel}</h2>
3005
+ </div>
3006
+ <span class="status">${e.reportsToRender.length}</span>
3007
+ </header>
2599
3008
 
2600
- .panel {
2601
- display: grid;
2602
- gap: 0;
2603
- min-width: 0;
2604
- overflow: hidden;
2605
- border-radius: var(--mlf-panel-radius, 12px);
2606
- border: var(--mlf-border-width, 1px) solid
2607
- var(--mlf-panel-border, var(--mlf-color-border, #e2e8f0));
2608
- background: var(--mlf-panel-bg, var(--mlf-color-surface, #ffffff));
2609
- box-shadow:
2610
- 0 2px 4px var(--mlf-panel-shadow-soft, rgba(0, 0, 0, 0.04)),
2611
- 0 8px 16px var(--mlf-panel-shadow, rgba(0, 0, 0, 0.04));
2612
- }
3009
+ <div class="pane-body">
3010
+ ${Ut(e.reportsToRender, e.registry, e.text, e.reportTransport, e.form.state.lastResult ?? null)}
3011
+ ${Wt(e.form, e.state, e.registry, e.presentationRegistry, e.text)}
3012
+ </div>
3013
+ </aside>
3014
+ ` : w}
3015
+ </div>
3016
+ `, Kt = (e) => S`
3017
+ <div class="root split">
3018
+ <div class="split-shell">
3019
+ <section class="left-section" part="form-pane">
3020
+ <div class="form-inputs scroll-y">
3021
+ <header class="sticky-header">
3022
+ <h2>${e.formLabel}</h2>
3023
+ <span class="sticky-meta">${e.text.formStatusLabel(e.state.status)}</span>
3024
+ </header>
2613
3025
 
2614
- .pane-header {
2615
- display: flex;
2616
- justify-content: space-between;
2617
- align-items: center;
2618
- gap: 1rem;
2619
- padding: 0.85rem 1.5rem;
2620
- border-bottom: var(--mlf-border-width, 1px) solid
2621
- var(--mlf-panel-border, var(--mlf-color-border, #e2e8f0));
2622
- background: var(--mlf-panel-header-bg, rgba(255, 255, 255, 0.6));
2623
- backdrop-filter: blur(var(--mlf-header-blur, 3px));
2624
- -webkit-backdrop-filter: blur(var(--mlf-header-blur, 3px));
2625
- }
3026
+ <div class="split-content">
3027
+ <div class="meta">
3028
+ <span>${e.text.formMetaFields(e.visibleFields.length)}</span>
3029
+ <span>${e.text.formMetaReports(e.form.reports.length)}</span>
3030
+ <span>${e.text.formMetaSubmits(e.state.submitCount)}</span>
3031
+ </div>
2626
3032
 
2627
- .pane-copy {
2628
- display: grid;
2629
- gap: 0.28rem;
2630
- }
3033
+ <mlf-form-errors .form=${e.form} .text=${e.text}></mlf-form-errors>
3034
+ ${Ht(e.visibleFields, e.registry, e.text)}
3035
+ </div>
3036
+ </div>
2631
3037
 
2632
- .eyebrow {
2633
- margin: 0;
2634
- font-size: 0.8rem;
2635
- font-weight: 600;
2636
- letter-spacing: 0.06em;
2637
- text-transform: uppercase;
2638
- color: var(--mlf-pane-eyebrow-color, var(--mlf-color-text-muted, #475569));
2639
- }
3038
+ <div class="form-actions" part="actions">
3039
+ <mlf-submit-button
3040
+ .status=${e.state.status}
3041
+ .idleLabel=${e.submitLabel}
3042
+ .validatingLabel=${e.validatingLabel}
3043
+ .submittingLabel=${e.submittingLabel}
3044
+ .loaded=${e.state.submissionLoaded}
3045
+ .total=${e.state.submissionTotal}
3046
+ .progressMessage=${e.state.submissionMessage}
3047
+ .sessionMessageCount=${e.state.submissionSessionMessageCount}
3048
+ @mlf-submit-request=${e.onSubmitRequest}
3049
+ ></mlf-submit-button>
3050
+ </div>
3051
+ </section>
2640
3052
 
2641
- .pane-title {
2642
- margin: 0;
2643
- color: var(--mlf-pane-title-color, var(--mlf-color-text, #0f172a));
2644
- font-size: 1rem;
2645
- font-weight: 600;
2646
- }
3053
+ ${e.showReports ? S`
3054
+ <section class="right-section" part="report-pane">
3055
+ <div class="results-area scroll-y">
3056
+ <header class="sticky-header">
3057
+ <h2>${e.reportsLabel}</h2>
3058
+ <span class="sticky-meta">${e.reportsToRender.length}</span>
3059
+ </header>
2647
3060
 
2648
- .status {
2649
- display: inline-flex;
2650
- align-items: center;
2651
- justify-content: center;
2652
- min-height: 2rem;
2653
- padding: 0.35rem 0.75rem;
2654
- border-radius: 999px;
2655
- background: var(
2656
- --mlf-status-bg,
2657
- color-mix(in srgb, var(--mlf-color-accent, #1e40af) 10%, transparent)
2658
- );
2659
- color: var(--mlf-status-color, var(--mlf-color-secondary, #475569));
2660
- font-size: 0.72rem;
2661
- font-weight: 700;
2662
- letter-spacing: 0.08em;
2663
- text-transform: uppercase;
2664
- white-space: nowrap;
2665
- }
2666
-
2667
- .pane-body {
2668
- display: grid;
2669
- gap: 1rem;
2670
- padding: 1rem 1rem 0;
2671
- }
2672
-
2673
- .meta {
2674
- display: flex;
2675
- flex-wrap: wrap;
2676
- gap: 0.6rem 1rem;
2677
- color: var(--mlf-color-text-muted, #475569);
2678
- font-size: 0.84rem;
2679
- }
2680
-
2681
- .collection {
2682
- display: grid;
2683
- gap: var(--mlf-section-gap, 1rem);
2684
- }
2685
-
2686
- .actions {
2687
- padding: 1rem 1.5rem 1.25rem;
2688
- border-top: var(--mlf-border-width, 1px) solid
2689
- var(--mlf-panel-border, var(--mlf-color-border, #e2e8f0));
2690
- background: var(--mlf-panel-footer-bg, var(--mlf-color-bg-light, #f5f7fa));
2691
- }
2692
-
2693
- .split-shell {
2694
- display: flex;
2695
- flex: 1 1 auto;
2696
- inline-size: 100%;
2697
- block-size: 100%;
2698
- min-width: 0;
2699
- min-height: 0;
2700
- overflow: hidden;
2701
- background: var(--mlf-shell-bg, var(--mlf-color-bg, #f5f7fa));
2702
- }
2703
-
2704
- .left-section,
2705
- .right-section,
2706
- .form-inputs,
2707
- .results-area {
2708
- min-width: 0;
2709
- min-height: 0;
2710
- }
2711
-
2712
- .left-section,
2713
- .right-section {
2714
- display: flex;
2715
- flex-direction: column;
2716
- height: 100%;
2717
- overflow: hidden;
2718
- background: var(--mlf-shell-panel-bg, var(--mlf-color-surface, #ffffff));
2719
- box-shadow:
2720
- 0 2px 4px var(--mlf-shell-panel-shadow-soft, rgba(0, 0, 0, 0.04)),
2721
- 0 14px 30px var(--mlf-shell-panel-shadow, rgba(0, 0, 0, 0.08));
2722
- }
2723
-
2724
- .left-section {
2725
- flex: 0 1 auto;
2726
- resize: horizontal;
2727
- min-width: min-content;
2728
- max-width: var(--mlf-shell-left-max-width, 48rem);
2729
- border-right: var(--mlf-border-width, 1px) solid
2730
- var(--mlf-shell-panel-border, var(--mlf-color-border, #e2e8f0));
2731
- }
2732
-
2733
- .right-section {
2734
- flex: 1 1 0%;
2735
- min-width: var(--mlf-shell-right-min-width, 24rem);
2736
- border-left: var(--mlf-border-width, 1px) solid
2737
- var(--mlf-shell-panel-border, var(--mlf-color-border, #e2e8f0));
2738
- }
2739
-
2740
- .scroll-y {
2741
- overflow-y: auto;
2742
- overflow-x: hidden;
2743
- overscroll-behavior: contain;
2744
- scrollbar-color: color-mix(in srgb, var(--mlf-color-text-muted, #475569) 60%, transparent)
2745
- transparent;
2746
- }
2747
-
2748
- .scroll-y::-webkit-scrollbar {
2749
- width: 8px;
2750
- }
2751
-
2752
- .scroll-y::-webkit-scrollbar-thumb {
2753
- background: color-mix(in srgb, var(--mlf-color-text-muted, #475569) 55%, transparent);
2754
- border-radius: 999px;
2755
- }
2756
-
2757
- .sticky-header {
2758
- position: sticky;
2759
- top: 0;
2760
- z-index: 10;
2761
- display: flex;
2762
- align-items: center;
2763
- justify-content: space-between;
2764
- gap: 1rem;
2765
- padding: 0.75rem 2rem;
2766
- border-bottom: var(--mlf-border-width, 1px) solid
2767
- var(--mlf-shell-panel-border, var(--mlf-color-border, #e2e8f0));
2768
- background: var(
2769
- --mlf-shell-header-bg,
2770
- color-mix(in srgb, var(--mlf-color-surface, #ffffff) 76%, transparent)
2771
- );
2772
- backdrop-filter: blur(var(--mlf-shell-header-blur, 3px));
2773
- -webkit-backdrop-filter: blur(var(--mlf-shell-header-blur, 3px));
2774
- }
2775
-
2776
- .sticky-header h2 {
2777
- margin: 0;
2778
- color: var(--mlf-color-text, #0f172a);
2779
- font-size: 1rem;
2780
- font-weight: 600;
2781
- }
2782
-
2783
- .sticky-meta {
2784
- color: var(--mlf-color-text-muted, #475569);
2785
- font-size: var(--mlf-font-size-xs, 0.72rem);
2786
- letter-spacing: 0.08em;
2787
- text-transform: uppercase;
2788
- white-space: nowrap;
2789
- }
2790
-
2791
- .form-inputs,
2792
- .results-area {
2793
- flex: 1 1 auto;
2794
- }
2795
-
2796
- .split-content {
2797
- display: grid;
2798
- gap: 1rem;
2799
- padding: 1.25rem 2rem 2rem;
2800
- }
2801
-
2802
- .form-actions {
2803
- padding: 1rem 2rem;
2804
- border-top: var(--mlf-border-width, 1px) solid
2805
- var(--mlf-shell-panel-border, var(--mlf-color-border, #e2e8f0));
2806
- background: var(--mlf-shell-action-bg, var(--mlf-color-surface-muted, #f5f7fa));
2807
- }
2808
-
2809
- .empty-report-state {
2810
- display: grid;
2811
- gap: 0.35rem;
2812
- padding: 1.1rem 1.2rem;
2813
- border: var(--mlf-border-width, 1px) dashed
2814
- color-mix(in srgb, var(--mlf-color-border, #e2e8f0) 90%, transparent);
2815
- border-radius: var(--mlf-radius-md, 16px);
2816
- background: color-mix(in srgb, var(--mlf-color-surface, #ffffff) 84%, transparent);
2817
- color: var(--mlf-color-text-muted, #475569);
2818
- }
2819
-
2820
- .empty-report-title {
2821
- margin: 0;
2822
- color: var(--mlf-color-text, #0f172a);
2823
- font-size: 0.95rem;
2824
- font-weight: 600;
2825
- }
2826
-
2827
- .empty-report-copy {
2828
- margin: 0;
2829
- font-size: var(--mlf-font-size-sm, 0.84rem);
2830
- line-height: var(--mlf-line-height-normal, 1.5);
2831
- }
2832
-
2833
- @media (max-width: 900px) {
2834
- .root.split {
2835
- display: grid;
2836
- }
2837
-
2838
- .split-shell {
2839
- display: grid;
2840
- }
2841
-
2842
- .left-section,
2843
- .right-section {
2844
- min-width: 0;
2845
- max-width: none;
2846
- resize: none;
2847
- border-left: none;
2848
- border-right: none;
2849
- }
2850
-
2851
- .sticky-header,
2852
- .split-content,
2853
- .form-actions {
2854
- padding-inline: 1.25rem;
2855
- }
2856
- }
2857
- `;
3061
+ <div class="split-content">
3062
+ ${e.reportsToRender.length > 0 ? Ut(e.reportsToRender, e.registry, e.text, e.reportTransport, e.form.state.lastResult ?? null) : S`
3063
+ <div class="empty-report-state">
3064
+ <p class="empty-report-title">${e.text.reportsEmptyTitle}</p>
3065
+ <p class="empty-report-copy">${e.text.reportsEmptyBody}</p>
3066
+ </div>
3067
+ `}
3068
+ ${Wt(e.form, e.state, e.registry, e.presentationRegistry, e.text)}
3069
+ </div>
3070
+ </div>
3071
+ </section>
3072
+ ` : w}
3073
+ </div>
3074
+ </div>
3075
+ `, qt = (e, t) => e.length === t.length && e.every((e, n) => e === t[n]), Jt = (e, t) => e.status === t.status && e.submitCount === t.submitCount && e.hasFormErrors === t.hasFormErrors && e.hasLastResult === t.hasLastResult && e.submissionLoaded === t.submissionLoaded && e.submissionTotal === t.submissionTotal && e.submissionMessage === t.submissionMessage && e.submissionSessionMessageCount === t.submissionSessionMessageCount && qt(e.visibleFieldIds, t.visibleFieldIds) && qt(e.visibleReportIds, t.visibleReportIds) && qt(e.explanationIds, t.explanationIds) && qt(e.reportStateKeys, t.reportStateKeys) && qt(e.explanationStateKeys, t.explanationStateKeys), Yt = (e) => {
3076
+ let t = e.state;
3077
+ return {
3078
+ status: t.status,
3079
+ submitCount: t.submitCount,
3080
+ hasFormErrors: t.errors.form.length > 0,
3081
+ hasLastResult: t.lastResult !== null,
3082
+ submissionLoaded: t.submissionProgress?.loaded,
3083
+ submissionTotal: t.submissionProgress?.total,
3084
+ submissionMessage: t.submissionProgress?.message,
3085
+ submissionSessionMessageCount: t.submissionProgress?.sessionMessageCount,
3086
+ visibleFieldIds: e.fields.filter((e) => e.state.visible).map((e) => e.id),
3087
+ visibleReportIds: e.reports.map((e) => e.id),
3088
+ explanationIds: t.lastResult === null ? [] : e.explanations.map((e) => e.id),
3089
+ reportStateKeys: e.reports.map((e) => `${e.id}:${e.state.status}:${e.state.payload === void 0}:${e.state.error === null}`),
3090
+ explanationStateKeys: e.explanations.map((e) => `${e.id}:${e.state.status}:${e.state.result === void 0}:${e.state.error === null}`)
3091
+ };
3092
+ }, Z = class extends O {
3093
+ static styles = xt;
2858
3094
  #e;
2859
3095
  get form() {
2860
3096
  return this.#e;
@@ -2869,268 +3105,135 @@ var dt = {
2869
3105
  set registry(e) {
2870
3106
  this.#t = e;
2871
3107
  }
2872
- #n = "stacked";
2873
- get layout() {
3108
+ #n;
3109
+ get presentationRegistry() {
2874
3110
  return this.#n;
2875
3111
  }
2876
- set layout(e) {
3112
+ set presentationRegistry(e) {
2877
3113
  this.#n = e;
2878
3114
  }
2879
- #r = j.form;
2880
- get formLabel() {
3115
+ #r = "stacked";
3116
+ get layout() {
2881
3117
  return this.#r;
2882
3118
  }
2883
- set formLabel(e) {
3119
+ set layout(e) {
2884
3120
  this.#r = e;
2885
3121
  }
2886
- #i = j.reports;
2887
- get reportsLabel() {
3122
+ #i = N.form;
3123
+ get formLabel() {
2888
3124
  return this.#i;
2889
3125
  }
2890
- set reportsLabel(e) {
3126
+ set formLabel(e) {
2891
3127
  this.#i = e;
2892
3128
  }
2893
- #a = j.submit;
2894
- get submitLabel() {
3129
+ #a = N.reports;
3130
+ get reportsLabel() {
2895
3131
  return this.#a;
2896
3132
  }
2897
- set submitLabel(e) {
3133
+ set reportsLabel(e) {
2898
3134
  this.#a = e;
2899
3135
  }
2900
- #o = j.validating;
2901
- get validatingLabel() {
3136
+ #o = N.submit;
3137
+ get submitLabel() {
2902
3138
  return this.#o;
2903
3139
  }
2904
- set validatingLabel(e) {
3140
+ set submitLabel(e) {
2905
3141
  this.#o = e;
2906
3142
  }
2907
- #s = j.submitting;
2908
- get submittingLabel() {
3143
+ #s = N.validating;
3144
+ get validatingLabel() {
2909
3145
  return this.#s;
2910
3146
  }
2911
- set submittingLabel(e) {
3147
+ set validatingLabel(e) {
2912
3148
  this.#s = e;
2913
3149
  }
2914
- #c = "auto";
2915
- get reportPane() {
3150
+ #c = N.submitting;
3151
+ get submittingLabel() {
2916
3152
  return this.#c;
2917
3153
  }
2918
- set reportPane(e) {
3154
+ set submittingLabel(e) {
2919
3155
  this.#c = e;
2920
3156
  }
2921
- #l = M;
2922
- get text() {
3157
+ #l = "auto";
3158
+ get reportPane() {
2923
3159
  return this.#l;
2924
3160
  }
2925
- set text(e) {
3161
+ set reportPane(e) {
2926
3162
  this.#l = e;
2927
3163
  }
2928
- #u;
2929
- get reportTransport() {
3164
+ #u = P;
3165
+ get text() {
2930
3166
  return this.#u;
2931
3167
  }
2932
- set reportTransport(e) {
3168
+ set text(e) {
2933
3169
  this.#u = e;
2934
3170
  }
2935
- #d = null;
2936
- get formState() {
3171
+ #d;
3172
+ get reportTransport() {
2937
3173
  return this.#d;
2938
3174
  }
2939
- set formState(e) {
3175
+ set reportTransport(e) {
2940
3176
  this.#d = e;
2941
3177
  }
2942
3178
  #f = null;
2943
- #p;
3179
+ get formState() {
3180
+ return this.#f;
3181
+ }
3182
+ set formState(e) {
3183
+ this.#f = e;
3184
+ }
3185
+ #p = null;
3186
+ #m;
2944
3187
  willUpdate(e) {
2945
- e.has("form") && this.#_();
3188
+ e.has("form") && this.#g();
2946
3189
  }
2947
3190
  connectedCallback() {
2948
- super.connectedCallback(), this.#_();
3191
+ super.connectedCallback(), this.#g();
2949
3192
  }
2950
3193
  disconnectedCallback() {
2951
- this.#f?.(), this.#f = null, this.#p = void 0, super.disconnectedCallback();
3194
+ this.#p?.(), this.#p = null, this.#m = void 0, super.disconnectedCallback();
2952
3195
  }
2953
3196
  render() {
2954
3197
  let e = this.form, t = this.formState;
2955
- if (!e || !t) return b``;
2956
- let n = this.text, r = this.reportTransport, i = t.visibleFieldIds.map((t) => e.getField(t)).filter((e) => e !== void 0), a = t.visibleReportIds.map((t) => e.getReport(t)).filter((e) => e !== void 0), o = this.reportPane === "always" ? e.reports : a, s = this.reportPane !== "hidden" && (e.reports.length > 0 || t.hasFormErrors), c = this.layout === "split" ? s : this.reportPane === "always" ? e.reports.length > 0 : this.reportPane === "auto" ? o.length > 0 : !1;
2957
- return this.layout === "split" ? this.#m(e, t, i, o, c) : b`
2958
- <div class="root ${this.layout}">
2959
- <section class="panel form-pane" part="form-pane">
2960
- <header class="pane-header">
2961
- <div class="pane-copy">
2962
- <p class="eyebrow">${n.formEyebrow}</p>
2963
- <h1 class="pane-title">${this.formLabel}</h1>
2964
- </div>
2965
- <span class="status">${n.formStatusLabel(t.status)}</span>
2966
- </header>
2967
-
2968
- <div class="pane-body">
2969
- <div class="meta">
2970
- <span>${n.formMetaFields(i.length)}</span>
2971
- <span>${n.formMetaReports(e.reports.length)}</span>
2972
- <span>${n.formMetaSubmits(t.submitCount)}</span>
2973
- </div>
2974
-
2975
- <mlf-form-errors .form=${e} .text=${n}></mlf-form-errors>
2976
-
2977
- <div class="collection" part="field-list">
2978
- ${X(i, (e) => e.id, (e) => b`
2979
- <mlf-field-frame
2980
- .controller=${e}
2981
- .registry=${this.registry}
2982
- .text=${n}
2983
- ></mlf-field-frame>
2984
- `)}
2985
- </div>
2986
- </div>
2987
-
2988
- <div class="actions" part="actions">
2989
- <mlf-submit-button
2990
- .status=${t.status}
2991
- .idleLabel=${this.submitLabel}
2992
- .validatingLabel=${this.validatingLabel}
2993
- .submittingLabel=${this.submittingLabel}
2994
- .loaded=${t.submissionLoaded}
2995
- .total=${t.submissionTotal}
2996
- .progressMessage=${t.submissionMessage}
2997
- .sessionMessageCount=${t.submissionSessionMessageCount}
2998
- @mlf-submit-request=${this.#g}
2999
- ></mlf-submit-button>
3000
- </div>
3001
- </section>
3002
-
3003
- ${c ? b`
3004
- <aside class="panel report-pane" part="report-pane">
3005
- <header class="pane-header">
3006
- <div class="pane-copy">
3007
- <p class="eyebrow">${n.reportEyebrow}</p>
3008
- <h2 class="pane-title">${this.reportsLabel}</h2>
3009
- </div>
3010
- <span class="status">${o.length}</span>
3011
- </header>
3012
-
3013
- <div class="pane-body">
3014
- <div class="collection" part="report-list">
3015
- ${X(o, (e) => e.id, (e) => b`
3016
- <mlf-report-frame
3017
- .controller=${e}
3018
- .registry=${this.registry}
3019
- .text=${n}
3020
- .transport=${r}
3021
- .lastResult=${this.form?.state.lastResult ?? null}
3022
- ></mlf-report-frame>
3023
- `)}
3024
- </div>
3025
- ${this.#h(e, t, n)}
3026
- </div>
3027
- </aside>
3028
- ` : b``}
3029
- </div>
3030
- `;
3031
- }
3032
- #m(e, t, n, r, i) {
3033
- let a = this.text, o = this.reportTransport;
3034
- return b`
3035
- <div class="root split">
3036
- <div class="split-shell">
3037
- <section class="left-section" part="form-pane">
3038
- <div class="form-inputs scroll-y">
3039
- <header class="sticky-header">
3040
- <h2>${this.formLabel}</h2>
3041
- <span class="sticky-meta">${a.formStatusLabel(t.status)}</span>
3042
- </header>
3043
-
3044
- <div class="split-content">
3045
- <div class="meta">
3046
- <span>${a.formMetaFields(n.length)}</span>
3047
- <span>${a.formMetaReports(e.reports.length)}</span>
3048
- <span>${a.formMetaSubmits(t.submitCount)}</span>
3049
- </div>
3050
-
3051
- <mlf-form-errors .form=${e} .text=${a}></mlf-form-errors>
3052
-
3053
- <div class="collection" part="field-list">
3054
- ${X(n, (e) => e.id, (e) => b`
3055
- <mlf-field-frame
3056
- .controller=${e}
3057
- .registry=${this.registry}
3058
- .text=${a}
3059
- ></mlf-field-frame>
3060
- `)}
3061
- </div>
3062
- </div>
3063
- </div>
3064
-
3065
- <div class="form-actions" part="actions">
3066
- <mlf-submit-button
3067
- .status=${t.status}
3068
- .idleLabel=${this.submitLabel}
3069
- .validatingLabel=${this.validatingLabel}
3070
- .submittingLabel=${this.submittingLabel}
3071
- .loaded=${t.submissionLoaded}
3072
- .total=${t.submissionTotal}
3073
- .progressMessage=${t.submissionMessage}
3074
- .sessionMessageCount=${t.submissionSessionMessageCount}
3075
- @mlf-submit-request=${this.#g}
3076
- ></mlf-submit-button>
3077
- </div>
3078
- </section>
3079
-
3080
- ${i ? b`
3081
- <section class="right-section" part="report-pane">
3082
- <div class="results-area scroll-y">
3083
- <header class="sticky-header">
3084
- <h2>${this.reportsLabel}</h2>
3085
- <span class="sticky-meta">${r.length}</span>
3086
- </header>
3087
-
3088
- <div class="split-content">
3089
- ${r.length > 0 ? b`
3090
- <div class="collection" part="report-list">
3091
- ${X(r, (e) => e.id, (e) => b`
3092
- <mlf-report-frame
3093
- .controller=${e}
3094
- .registry=${this.registry}
3095
- .text=${a}
3096
- .transport=${o}
3097
- .lastResult=${this.form?.state.lastResult ?? null}
3098
- ></mlf-report-frame>
3099
- `)}
3100
- </div>
3101
- ` : b`
3102
- <div class="empty-report-state">
3103
- <p class="empty-report-title">${a.reportsEmptyTitle}</p>
3104
- <p class="empty-report-copy">${a.reportsEmptyBody}</p>
3105
- </div>
3106
- `}
3107
- ${this.#h(e, t, a)}
3108
- </div>
3109
- </div>
3110
- </section>
3111
- ` : b``}
3112
- </div>
3113
- </div>
3114
- `;
3115
- }
3116
- #h(e, t, n) {
3117
- let r = t.explanationIds.map((t) => e.getExplanation(t)).filter((e) => e !== void 0);
3118
- return r.length === 0 ? b`` : b`
3119
- <div class="collection" part="explanation-list">
3120
- ${X(r, (e) => e.id, (t) => b`
3121
- <mlf-explanation-panel
3122
- .controller=${t}
3123
- .registry=${this.registry}
3124
- .text=${n}
3125
- .lastResult=${e.state.lastResult ?? null}
3126
- ></mlf-explanation-panel>
3127
- `)}
3128
- </div>
3129
- `;
3130
- }
3131
- #g = async () => {
3198
+ if (!e || !t) return S``;
3199
+ let n = this.text, r = Et(e, t.visibleFieldIds, this.presentationRegistry), i = Dt(e, t.visibleReportIds, this.reportPane, this.presentationRegistry), a = this.reportPane !== "hidden" && (e.reports.length > 0 || t.hasFormErrors), o = this.layout === "split" ? a : this.reportPane === "always" ? e.reports.length > 0 : this.reportPane === "auto" ? i.length > 0 : !1;
3200
+ return this.layout === "split" ? Kt({
3201
+ form: e,
3202
+ state: t,
3203
+ visibleFields: r,
3204
+ reportsToRender: i,
3205
+ showReports: o,
3206
+ registry: this.registry,
3207
+ presentationRegistry: this.presentationRegistry,
3208
+ text: n,
3209
+ formLabel: this.formLabel,
3210
+ reportsLabel: this.reportsLabel,
3211
+ submitLabel: this.submitLabel,
3212
+ validatingLabel: this.validatingLabel,
3213
+ submittingLabel: this.submittingLabel,
3214
+ reportTransport: this.reportTransport,
3215
+ onSubmitRequest: this.#h
3216
+ }) : Gt({
3217
+ form: e,
3218
+ state: t,
3219
+ visibleFields: r,
3220
+ reportsToRender: i,
3221
+ showReports: o,
3222
+ registry: this.registry,
3223
+ presentationRegistry: this.presentationRegistry,
3224
+ text: n,
3225
+ formLabel: this.formLabel,
3226
+ reportsLabel: this.reportsLabel,
3227
+ submitLabel: this.submitLabel,
3228
+ validatingLabel: this.validatingLabel,
3229
+ submittingLabel: this.submittingLabel,
3230
+ reportTransport: this.reportTransport,
3231
+ onSubmitRequest: this.#h
3232
+ });
3233
+ }
3234
+ #h = async () => {
3132
3235
  if (this.form) {
3133
- this.dispatchEvent(new CustomEvent(Ue.submitStart, {
3236
+ this.dispatchEvent(new CustomEvent(He.submitStart, {
3134
3237
  detail: {
3135
3238
  form: this.form,
3136
3239
  state: this.form.state
@@ -3140,7 +3243,7 @@ var dt = {
3140
3243
  }));
3141
3244
  try {
3142
3245
  let e = await this.form.submit();
3143
- this.dispatchEvent(new CustomEvent(Ue.submitSuccess, {
3246
+ this.dispatchEvent(new CustomEvent(He.submitSuccess, {
3144
3247
  detail: {
3145
3248
  form: this.form,
3146
3249
  state: this.form.state,
@@ -3150,7 +3253,8 @@ var dt = {
3150
3253
  composed: !0
3151
3254
  }));
3152
3255
  } catch (t) {
3153
- this.dispatchEvent(new CustomEvent(t instanceof e ? Ue.submitAbort : Ue.submitError, {
3256
+ let n = this.form ? bt(this.form.fields) : null;
3257
+ n && await yt(vt(this.shadowRoot ?? this, n.id)), this.dispatchEvent(new CustomEvent(t instanceof e ? He.submitAbort : He.submitError, {
3154
3258
  detail: {
3155
3259
  form: this.form,
3156
3260
  state: this.form.state,
@@ -3163,74 +3267,58 @@ var dt = {
3163
3267
  }
3164
3268
  }
3165
3269
  };
3166
- #_() {
3270
+ #g() {
3167
3271
  if (!this.isConnected) return;
3168
- if (this.#p === this.form) {
3169
- this.formState = this.form ? this.#v(this.form) : null;
3272
+ if (this.#m === this.form) {
3273
+ this.formState = this.form ? Yt(this.form) : null;
3170
3274
  return;
3171
3275
  }
3172
- if (this.#f?.(), this.#f = null, this.#p = this.form, this.formState = this.form ? this.#v(this.form) : null, !this.form) return;
3276
+ if (this.#p?.(), this.#p = null, this.#m = this.form, this.formState = this.form ? Yt(this.form) : null, !this.form) return;
3173
3277
  let e = this.form;
3174
- this.#f = e.subscribeSelector(() => this.#v(e), (e) => {
3278
+ this.#p = e.subscribeSelector(() => Yt(e), (e) => {
3175
3279
  this.formState = e;
3176
- }, { equality: wt });
3177
- }
3178
- #v(e) {
3179
- let t = e.state;
3180
- return {
3181
- status: t.status,
3182
- submitCount: t.submitCount,
3183
- hasFormErrors: t.errors.form.length > 0,
3184
- hasLastResult: t.lastResult !== null,
3185
- submissionLoaded: t.submissionProgress?.loaded,
3186
- submissionTotal: t.submissionProgress?.total,
3187
- submissionMessage: t.submissionProgress?.message,
3188
- submissionSessionMessageCount: t.submissionProgress?.sessionMessageCount,
3189
- visibleFieldIds: e.fields.filter((e) => e.state.visible).map((e) => e.id),
3190
- visibleReportIds: e.reports.filter((e) => e.descriptor !== null || e.state.status !== "idle").map((e) => e.id),
3191
- explanationIds: t.lastResult === null ? [] : e.explanations.map((e) => e.id)
3192
- };
3280
+ }, { equality: Jt });
3193
3281
  }
3194
3282
  };
3195
- P([O({ attribute: !1 })], Z.prototype, "form", null), P([O({ attribute: !1 })], Z.prototype, "registry", null), P([O({ type: String })], Z.prototype, "layout", null), P([O({
3283
+ I([A({ attribute: !1 })], Z.prototype, "form", null), I([A({ attribute: !1 })], Z.prototype, "registry", null), I([A({ attribute: !1 })], Z.prototype, "presentationRegistry", null), I([A({ type: String })], Z.prototype, "layout", null), I([A({
3196
3284
  type: String,
3197
3285
  attribute: "form-label"
3198
- })], Z.prototype, "formLabel", null), P([O({
3286
+ })], Z.prototype, "formLabel", null), I([A({
3199
3287
  type: String,
3200
3288
  attribute: "reports-label"
3201
- })], Z.prototype, "reportsLabel", null), P([O({
3289
+ })], Z.prototype, "reportsLabel", null), I([A({
3202
3290
  type: String,
3203
3291
  attribute: "submit-label"
3204
- })], Z.prototype, "submitLabel", null), P([O({
3292
+ })], Z.prototype, "submitLabel", null), I([A({
3205
3293
  type: String,
3206
3294
  attribute: "validating-label"
3207
- })], Z.prototype, "validatingLabel", null), P([O({
3295
+ })], Z.prototype, "validatingLabel", null), I([A({
3208
3296
  type: String,
3209
3297
  attribute: "submitting-label"
3210
- })], Z.prototype, "submittingLabel", null), P([O({
3298
+ })], Z.prototype, "submittingLabel", null), I([A({
3211
3299
  type: String,
3212
3300
  attribute: "report-pane"
3213
- })], Z.prototype, "reportPane", null), P([O({ attribute: !1 })], Z.prototype, "text", null), P([O({ attribute: !1 })], Z.prototype, "reportTransport", null), P([k()], Z.prototype, "formState", null), Z = P([D(A.form)], Z);
3301
+ })], Z.prototype, "reportPane", null), I([A({ attribute: !1 })], Z.prototype, "text", null), I([A({ attribute: !1 })], Z.prototype, "reportTransport", null), I([j()], Z.prototype, "formState", null), Z = I([k(M.form)], Z);
3214
3302
  //#endregion
3215
3303
  //#region node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/directives/if-defined.js
3216
- var Q = (e) => e ?? S, Tt = class extends W {
3217
- static styles = [W.styles, s`
3304
+ var Q = (e) => e ?? w, Xt = class extends G {
3305
+ static styles = [G.styles, c`
3218
3306
  input {
3219
3307
  min-height: var(--mlf-control-height, 3rem);
3220
3308
  }
3221
3309
  `];
3222
3310
  render() {
3223
3311
  let e = this.props, t = this.fieldContext, n = typeof e.value == "string" ? e.value : "";
3224
- return b`
3312
+ return S`
3225
3313
  <input
3226
3314
  class="control"
3227
3315
  type="text"
3228
3316
  id=${t?.controlId ?? ""}
3229
3317
  .value=${n}
3230
- aria-label=${t?.label ?? B(e.label)}
3318
+ aria-label=${t?.label ?? V(e.label)}
3231
3319
  aria-describedby=${Q(t?.describedBy)}
3232
3320
  aria-invalid=${String(t?.invalid ?? !1)}
3233
- placeholder=${B(e.placeholder)}
3321
+ placeholder=${V(e.placeholder)}
3234
3322
  ?required=${!!e.required}
3235
3323
  ?disabled=${!!this.fieldContext?.disabled}
3236
3324
  ?readonly=${!!this.fieldContext?.readOnly}
@@ -3250,11 +3338,11 @@ var Q = (e) => e ?? S, Tt = class extends W {
3250
3338
  this.commitBlur();
3251
3339
  };
3252
3340
  };
3253
- Tt = P([D(A.textField)], Tt);
3341
+ Xt = I([k(M.textField)], Xt);
3254
3342
  //#endregion
3255
3343
  //#region src/primitives/fields/number-field.ts
3256
- var Et = class extends W {
3257
- static styles = [W.styles, s`
3344
+ var Zt = class extends G {
3345
+ static styles = [G.styles, c`
3258
3346
  .input-wrapper {
3259
3347
  position: relative;
3260
3348
  min-width: 0;
@@ -3410,8 +3498,8 @@ var Et = class extends W {
3410
3498
  this.#t = e;
3411
3499
  }
3412
3500
  render() {
3413
- let e = this.props, t = this.fieldContext, n = e.input === "range" ? "range" : "text", r = typeof e.value == "number" ? String(e.value) : e.value === null || e.value === void 0 ? "" : B(e.value), i = this.focused && this.draftValue !== null ? this.draftValue : r, a = typeof e.unit == "string" ? e.unit : "", o = `${Math.max(a.length * .56 + .8, 2.2)}rem`, s = this.fieldContext?.disabled ? "input-wrapper is-disabled" : this.fieldContext?.readOnly ? "input-wrapper is-readonly" : "input-wrapper", c = typeof e.value == "number" ? e.value : void 0, l = typeof e.min == "number" ? e.min : void 0, u = typeof e.max == "number" ? e.max : void 0, d = i.length > 0 ? i : r;
3414
- return n === "range" ? b`
3501
+ let e = this.props, t = this.fieldContext, n = e.input === "range" ? "range" : "text", r = typeof e.value == "number" ? String(e.value) : e.value === null || e.value === void 0 ? "" : V(e.value), i = this.focused && this.draftValue !== null ? this.draftValue : r, a = typeof e.unit == "string" ? e.unit : "", o = `${Math.max(a.length * .56 + .8, 2.2)}rem`, s = this.fieldContext?.disabled ? "input-wrapper is-disabled" : this.fieldContext?.readOnly ? "input-wrapper is-readonly" : "input-wrapper", c = typeof e.value == "number" ? e.value : void 0, l = typeof e.min == "number" ? e.min : void 0, u = typeof e.max == "number" ? e.max : void 0, d = i.length > 0 ? i : r;
3502
+ return n === "range" ? S`
3415
3503
  <div class="range-wrapper">
3416
3504
  <div class="range-header">
3417
3505
  <span class="range-value">${d}${a ? ` ${a}` : ""}</span>
@@ -3424,7 +3512,7 @@ var Et = class extends W {
3424
3512
  min=${Q(l)}
3425
3513
  max=${Q(u)}
3426
3514
  step=${Q(typeof e.step == "number" ? String(e.step) : void 0)}
3427
- aria-label=${t?.label ?? B(e.label)}
3515
+ aria-label=${t?.label ?? V(e.label)}
3428
3516
  aria-describedby=${Q(t?.describedBy)}
3429
3517
  aria-invalid=${String(t?.invalid ?? !1)}
3430
3518
  aria-valuenow=${Q(c)}
@@ -3438,7 +3526,7 @@ var Et = class extends W {
3438
3526
  />
3439
3527
  </div>
3440
3528
  ${this.renderAssistiveText()}
3441
- ` : b`
3529
+ ` : S`
3442
3530
  <div class=${s} style=${`--mlf-number-unit-width: ${o};`}>
3443
3531
  <input
3444
3532
  class="control"
@@ -3448,8 +3536,8 @@ var Et = class extends W {
3448
3536
  autocomplete="off"
3449
3537
  id=${t?.controlId ?? ""}
3450
3538
  .value=${i}
3451
- placeholder=${B(e.placeholder)}
3452
- aria-label=${t?.label ?? B(e.label)}
3539
+ placeholder=${V(e.placeholder)}
3540
+ aria-label=${t?.label ?? V(e.label)}
3453
3541
  aria-describedby=${Q(t?.describedBy)}
3454
3542
  aria-invalid=${String(t?.invalid ?? !1)}
3455
3543
  aria-valuenow=${Q(c)}
@@ -3475,7 +3563,7 @@ var Et = class extends W {
3475
3563
  this.focused = !1, this.commitValue(this.draftValue === null || this.draftValue === "" ? null : this.draftValue), this.draftValue = null, this.commitBlur();
3476
3564
  };
3477
3565
  #i = () => {
3478
- this.focused = !0, this.draftValue = typeof this.props.value == "number" ? String(this.props.value) : this.props.value === null || this.props.value === void 0 ? "" : B(this.props.value);
3566
+ this.focused = !0, this.draftValue = typeof this.props.value == "number" ? String(this.props.value) : this.props.value === null || this.props.value === void 0 ? "" : V(this.props.value);
3479
3567
  };
3480
3568
  #a = (e) => {
3481
3569
  let t = e.target.value, n = Number(t);
@@ -3491,11 +3579,11 @@ var Et = class extends W {
3491
3579
  return e;
3492
3580
  }
3493
3581
  };
3494
- P([k()], Et.prototype, "draftValue", null), P([k()], Et.prototype, "focused", null), Et = P([D(A.numberField)], Et);
3582
+ I([j()], Zt.prototype, "draftValue", null), I([j()], Zt.prototype, "focused", null), Zt = I([k(M.numberField)], Zt);
3495
3583
  //#endregion
3496
3584
  //#region src/primitives/fields/boolean-field.ts
3497
- var Dt = class extends W {
3498
- static styles = [W.styles, s`
3585
+ var Qt = class extends G {
3586
+ static styles = [G.styles, c`
3499
3587
  fieldset {
3500
3588
  display: flex;
3501
3589
  width: 100%;
@@ -3562,11 +3650,11 @@ var Dt = class extends W {
3562
3650
  }
3563
3651
  `];
3564
3652
  render() {
3565
- let e = this.props, t = this.fieldContext, n = e.checked === !0, r = this.text, i = N.booleanGroup, a = `${t?.controlId ?? i}-true`, o = `${t?.controlId ?? i}-false`, s = B(e.trueLabel, r.booleanTrue), c = B(e.falseLabel, r.booleanFalse), l = !!(this.fieldContext?.disabled || this.fieldContext?.readOnly);
3566
- return b`
3653
+ let e = this.props, t = this.fieldContext, n = e.checked === !0, r = this.text, i = F.booleanGroup, a = `${t?.controlId ?? i}-true`, o = `${t?.controlId ?? i}-false`, s = V(e.trueLabel, r.booleanTrue), c = V(e.falseLabel, r.booleanFalse), l = !!(this.fieldContext?.disabled || this.fieldContext?.readOnly);
3654
+ return S`
3567
3655
  <fieldset
3568
3656
  role="radiogroup"
3569
- aria-label=${t?.label ?? B(e.label)}
3657
+ aria-label=${t?.label ?? V(e.label)}
3570
3658
  aria-describedby=${Q(t?.describedBy)}
3571
3659
  aria-invalid=${String(t?.invalid ?? !1)}
3572
3660
  aria-readonly=${String(!!this.fieldContext?.readOnly)}
@@ -3605,14 +3693,14 @@ var Dt = class extends W {
3605
3693
  this.commitBlur();
3606
3694
  };
3607
3695
  };
3608
- Dt = P([D(A.booleanField)], Dt);
3696
+ Qt = I([k(M.booleanField)], Qt);
3609
3697
  //#endregion
3610
3698
  //#region src/primitives/fields/category-field.ts
3611
- var Ot = (e) => typeof e == "string" ? {
3699
+ var $t = (e) => typeof e == "string" ? {
3612
3700
  label: e,
3613
3701
  value: e
3614
- } : e, kt = (e, t) => typeof e != "string" || e.length === 0 ? "" : t.some((t) => Ot(t).value === e) ? e : "", At = class extends W {
3615
- static styles = [W.styles, s`
3702
+ } : e, en = (e, t) => typeof e != "string" || e.length === 0 ? "" : t.some((t) => $t(t).value === e) ? e : "", tn = class extends G {
3703
+ static styles = [G.styles, c`
3616
3704
  .select-wrap {
3617
3705
  position: relative;
3618
3706
  min-width: 0;
@@ -3642,13 +3730,13 @@ var Ot = (e) => typeof e == "string" ? {
3642
3730
  }
3643
3731
  `];
3644
3732
  render() {
3645
- let e = this.props, t = this.fieldContext, n = typeof e.value == "string" ? e.value : "", r = Array.isArray(e.options) ? e.options : [], i = kt(n, r), a = this.text;
3646
- return b`
3733
+ let e = this.props, t = this.fieldContext, n = typeof e.value == "string" ? e.value : "", r = Array.isArray(e.options) ? e.options : [], i = en(n, r), a = this.text;
3734
+ return S`
3647
3735
  <div class="select-wrap">
3648
3736
  <select
3649
3737
  class="control"
3650
3738
  id=${t?.controlId ?? ""}
3651
- aria-label=${t?.label ?? B(e.label)}
3739
+ aria-label=${t?.label ?? V(e.label)}
3652
3740
  aria-describedby=${Q(t?.describedBy)}
3653
3741
  aria-invalid=${String(t?.invalid ?? !1)}
3654
3742
  aria-readonly=${String(!!this.fieldContext?.readOnly)}
@@ -3661,8 +3749,8 @@ var Ot = (e) => typeof e == "string" ? {
3661
3749
  &#8212; ${a.categoryPlaceholder} &#8212;
3662
3750
  </option>
3663
3751
  ${r.map((e) => {
3664
- let t = Ot(e);
3665
- return b`
3752
+ let t = $t(e);
3753
+ return S`
3666
3754
  <option value=${t.value} ?selected=${t.value === i}>
3667
3755
  ${t.label}
3668
3756
  </option>
@@ -3688,11 +3776,11 @@ var Ot = (e) => typeof e == "string" ? {
3688
3776
  this.commitBlur();
3689
3777
  };
3690
3778
  };
3691
- At = P([D(A.categoryField)], At);
3779
+ tn = I([k(M.categoryField)], tn);
3692
3780
  //#endregion
3693
3781
  //#region src/primitives/fields/date-field.ts
3694
- var jt = class extends W {
3695
- static styles = [W.styles, s`
3782
+ var nn = class extends G {
3783
+ static styles = [G.styles, c`
3696
3784
  input {
3697
3785
  min-height: var(--mlf-control-height, 3rem);
3698
3786
  }
@@ -3703,13 +3791,13 @@ var jt = class extends W {
3703
3791
  `];
3704
3792
  render() {
3705
3793
  let e = this.props, t = this.fieldContext, n = typeof e.value == "string" ? e.value : "";
3706
- return b`
3794
+ return S`
3707
3795
  <input
3708
3796
  class="control"
3709
3797
  type="date"
3710
3798
  id=${t?.controlId ?? ""}
3711
3799
  .value=${n}
3712
- aria-label=${t?.label ?? B(e.label)}
3800
+ aria-label=${t?.label ?? V(e.label)}
3713
3801
  aria-describedby=${Q(t?.describedBy)}
3714
3802
  aria-invalid=${String(t?.invalid ?? !1)}
3715
3803
  ?required=${!!e.required}
@@ -3732,189 +3820,313 @@ var jt = class extends W {
3732
3820
  this.commitBlur();
3733
3821
  };
3734
3822
  };
3735
- jt = P([D(A.dateField)], jt);
3823
+ nn = I([k(M.dateField)], nn);
3736
3824
  //#endregion
3737
- //#region src/primitives/fields/series-field.ts
3738
- var Mt = 0, Nt = () => `series-row-${++Mt}`, Pt = (e) => e === !0 || e === !1 ? e : e === "true" ? !0 : e === "false" ? !1 : "", Ft = (e, t) => {
3825
+ //#region src/primitives/fields/series-field-helpers.ts
3826
+ var rn = 0, an = () => `series-row-${++rn}`, on = (e) => e === !0 || e === !1 ? e : e === "true" ? !0 : e === "false" ? !1 : "", sn = (e, t) => {
3739
3827
  switch (e.kind) {
3740
3828
  case "number": return typeof t == "number" ? String(t) : typeof t == "string" ? t : "";
3741
3829
  case "date": return typeof t == "string" ? t : "";
3742
3830
  case "category":
3743
3831
  case "text": return typeof t == "string" ? t : "";
3744
- case "boolean": return Pt(t);
3832
+ case "boolean": return on(t);
3745
3833
  default: return typeof t == "string" ? t : t ?? "";
3746
3834
  }
3747
- }, It = (e, t, n) => Array.isArray(e) ? e.map((e) => {
3835
+ }, cn = (e, t, n) => Array.isArray(e) ? e.map((e) => {
3748
3836
  let r = e;
3749
3837
  return {
3750
- key: Nt(),
3751
- field1: Ft(t, r.field1),
3752
- field2: Ft(n, r.field2)
3838
+ key: an(),
3839
+ field1: sn(t, r.field1),
3840
+ field2: sn(n, r.field2)
3753
3841
  };
3754
- }) : [], Lt = class extends W {
3755
- static styles = [W.styles, s`
3756
- .series {
3757
- display: grid;
3758
- gap: 0.9rem;
3759
- }
3760
-
3761
- .toolbar {
3762
- display: flex;
3763
- justify-content: flex-end;
3764
- }
3765
-
3766
- .add-btn,
3767
- .remove-btn {
3768
- border: var(--mlf-border-width, 1px) solid
3769
- var(--mlf-series-action-border, var(--mlf-color-border, #cbd5e1));
3770
- background: var(
3771
- --mlf-series-action-bg,
3772
- color-mix(in srgb, var(--mlf-color-accent, #1e40af) 9%, var(--mlf-color-surface, #ffffff))
3773
- );
3774
- color: var(--mlf-series-action-text, var(--mlf-color-text, #0f172a));
3775
- font: inherit;
3776
- line-height: 1;
3777
- cursor: pointer;
3778
- transition:
3779
- background 0.2s ease,
3780
- border-color 0.2s ease,
3781
- transform 0.2s ease;
3782
- }
3783
-
3784
- .add-btn {
3785
- padding: 0.7rem 1rem;
3786
- border-radius: 999px;
3787
- font-size: 0.85rem;
3788
- font-weight: 700;
3789
- letter-spacing: 0.01em;
3790
- }
3791
-
3792
- .remove-btn {
3793
- width: 2.25rem;
3794
- height: 2.25rem;
3795
- border-radius: 0.8rem;
3796
- font-size: 1.15rem;
3797
- }
3798
-
3799
- .add-btn:hover:not(:disabled),
3800
- .remove-btn:hover:not(:disabled) {
3801
- background: var(
3802
- --mlf-series-action-bg-hover,
3803
- color-mix(
3804
- in srgb,
3805
- var(--mlf-color-accent, #1e40af) 16%,
3806
- var(--mlf-color-surface, #ffffff)
3807
- )
3808
- );
3809
- border-color: var(--mlf-series-action-border-hover, var(--mlf-color-accent, #1e40af));
3810
- transform: translateY(-1px);
3811
- }
3812
-
3813
- .add-btn:disabled,
3814
- .remove-btn:disabled {
3815
- cursor: not-allowed;
3816
- opacity: 0.65;
3817
- transform: none;
3818
- }
3819
-
3820
- .grid {
3821
- display: grid;
3822
- gap: 0.65rem;
3823
- }
3824
-
3825
- .header,
3826
- .row {
3827
- display: grid;
3828
- grid-template-columns: minmax(10rem, 1fr) minmax(10rem, 1fr) auto;
3829
- gap: 0.65rem;
3830
- align-items: start;
3831
- }
3832
-
3833
- .header {
3834
- padding: 0 0.15rem;
3835
- color: var(--mlf-series-heading, var(--mlf-color-text-muted, #475569));
3836
- font-size: 0.72rem;
3837
- font-weight: 700;
3838
- letter-spacing: 0.08em;
3839
- text-transform: uppercase;
3840
- }
3841
-
3842
- .row {
3843
- padding: 0.55rem;
3844
- border-radius: 1rem;
3845
- background: var(
3846
- --mlf-series-row-bg,
3847
- color-mix(
3848
- in srgb,
3849
- var(--mlf-color-surface, #ffffff) 80%,
3850
- var(--mlf-color-bg-light, #f8fafc)
3851
- )
3852
- );
3853
- border: var(--mlf-border-width, 1px) solid
3854
- var(
3855
- --mlf-series-row-border,
3856
- color-mix(in srgb, var(--mlf-color-border, #e2e8f0) 90%, transparent)
3857
- );
3858
- }
3859
-
3860
- .cell {
3861
- min-width: 0;
3862
- }
3863
-
3864
- .cell select,
3865
- .cell input {
3866
- min-height: var(--mlf-control-height, 3rem);
3867
- }
3868
-
3869
- .value-wrap {
3870
- position: relative;
3871
- }
3872
-
3873
- .value-wrap input {
3874
- padding-right: calc(var(--mlf-series-unit-width, 2rem) + 1.8rem);
3875
- }
3876
-
3877
- .unit {
3878
- position: absolute;
3879
- top: 50%;
3880
- right: 0.85rem;
3881
- transform: translateY(-50%);
3882
- max-width: 42%;
3883
- overflow: hidden;
3884
- color: var(--mlf-series-unit-color, var(--mlf-color-text-muted, #475569));
3885
- font-size: 0.82rem;
3886
- font-weight: 700;
3887
- text-overflow: ellipsis;
3888
- white-space: nowrap;
3889
- pointer-events: none;
3890
- }
3891
-
3892
- .unit:empty {
3893
- display: none;
3894
- }
3895
-
3896
- .empty {
3897
- padding: 0.95rem 1rem;
3898
- border-radius: 0.9rem;
3899
- border: 1px dashed var(--mlf-series-empty-border, var(--mlf-color-border, #cbd5e1));
3900
- color: var(--mlf-series-empty-text, var(--mlf-color-text-muted, #475569));
3901
- font-size: 0.9rem;
3902
- }
3903
-
3904
- @media (max-width: 640px) {
3905
- .header {
3906
- display: none;
3907
- }
3842
+ }) : [], ln = (e, t) => {
3843
+ switch (e.kind) {
3844
+ case "number":
3845
+ case "date":
3846
+ case "category":
3847
+ case "text":
3848
+ case "boolean": return t === "" ? null : t;
3849
+ default: return t === "" ? null : t;
3850
+ }
3851
+ }, un = (e) => typeof e.unit == "string" ? e.unit : "", dn = (e, t) => {
3852
+ let n = typeof e == "string" ? {
3853
+ label: e,
3854
+ value: e
3855
+ } : e;
3856
+ if (!n || typeof n != "object") return null;
3857
+ let r = n;
3858
+ return S`
3859
+ <option value=${String(r.value)} ?selected=${String(r.value) === t}>
3860
+ ${String(r.label)}
3861
+ </option>
3862
+ `;
3863
+ }, fn = (e) => typeof e == "string" ? e : typeof e == "number" || typeof e == "boolean" || typeof e == "bigint" ? `${e}` : "", pn = ({ config: e, value: t, index: n, id: r, disabled: i, readOnly: a, field: o, context: s, text: c, onInput: l, onBlur: u, label: d }) => {
3864
+ let f = !!e.required;
3865
+ switch (e.kind) {
3866
+ case "date": return S`
3867
+ <input
3868
+ class="control"
3869
+ id=${r}
3870
+ type="date"
3871
+ .value=${typeof t == "string" ? t : ""}
3872
+ aria-label=${d}
3873
+ aria-describedby=${Q(s?.describedBy)}
3874
+ aria-invalid=${String(s?.invalid ?? !1)}
3875
+ ?required=${f}
3876
+ ?disabled=${i}
3877
+ ?readonly=${a}
3878
+ min=${Q(typeof e.min == "string" ? e.min : void 0)}
3879
+ max=${Q(typeof e.max == "string" ? e.max : void 0)}
3880
+ @input=${(e) => l(n, o, e.target.value)}
3881
+ @blur=${u}
3882
+ />
3883
+ `;
3884
+ case "category": {
3885
+ let p = Array.isArray(e.options) ? e.options : [], m = typeof t == "string" ? t : "";
3886
+ return S`
3887
+ <select
3888
+ class="control"
3889
+ id=${r}
3890
+ aria-label=${d}
3891
+ aria-describedby=${Q(s?.describedBy)}
3892
+ aria-invalid=${String(s?.invalid ?? !1)}
3893
+ ?required=${f}
3894
+ ?disabled=${!!(i || a)}
3895
+ @change=${(e) => l(n, o, e.target.value)}
3896
+ @blur=${u}
3897
+ >
3898
+ <option value="" ?selected=${m === ""}>
3899
+ &#8212; ${c.categoryPlaceholder} &#8212;
3900
+ </option>
3901
+ ${p.map((e) => dn(e, m))}
3902
+ </select>
3903
+ `;
3904
+ }
3905
+ case "boolean": {
3906
+ let p = V(e.trueLabel, c.booleanTrue), m = V(e.falseLabel, c.booleanFalse), h = t === !0 ? "true" : t === !1 ? "false" : "";
3907
+ return S`
3908
+ <select
3909
+ class="control"
3910
+ id=${r}
3911
+ aria-label=${d}
3912
+ aria-describedby=${Q(s?.describedBy)}
3913
+ aria-invalid=${String(s?.invalid ?? !1)}
3914
+ ?required=${f}
3915
+ ?disabled=${!!(i || a)}
3916
+ @change=${(e) => {
3917
+ let t = e.target.value;
3918
+ l(n, o, t === "" ? "" : t === "true");
3919
+ }}
3920
+ @blur=${u}
3921
+ >
3922
+ <option value="" ?selected=${h === ""}>&#8212; Select &#8212;</option>
3923
+ <option value="true" ?selected=${h === "true"}>${p}</option>
3924
+ <option value="false" ?selected=${h === "false"}>${m}</option>
3925
+ </select>
3926
+ `;
3927
+ }
3928
+ case "number": {
3929
+ let c = un(e);
3930
+ return S`
3931
+ <div class="value-wrap">
3932
+ <input
3933
+ class="control"
3934
+ id=${r}
3935
+ type="text"
3936
+ inputmode="decimal"
3937
+ spellcheck="false"
3938
+ autocomplete="off"
3939
+ .value=${typeof t == "string" ? t : ""}
3940
+ placeholder=${V(e.placeholder)}
3941
+ aria-label=${d}
3942
+ aria-describedby=${Q(s?.describedBy)}
3943
+ aria-invalid=${String(s?.invalid ?? !1)}
3944
+ aria-valuemin=${Q(typeof e.min == "number" ? e.min : void 0)}
3945
+ aria-valuemax=${Q(typeof e.max == "number" ? e.max : void 0)}
3946
+ ?required=${f}
3947
+ ?disabled=${i}
3948
+ ?readonly=${a}
3949
+ @input=${(e) => l(n, o, e.target.value)}
3950
+ @blur=${u}
3951
+ />
3952
+ <span class="unit" aria-hidden="true">${c}</span>
3953
+ </div>
3954
+ `;
3955
+ }
3956
+ default: return S`
3957
+ <input
3958
+ class="control"
3959
+ id=${r}
3960
+ type="text"
3961
+ .value=${fn(t)}
3962
+ placeholder=${V(e.placeholder)}
3963
+ aria-label=${d}
3964
+ aria-describedby=${Q(s?.describedBy)}
3965
+ aria-invalid=${String(s?.invalid ?? !1)}
3966
+ ?required=${f}
3967
+ ?disabled=${i}
3968
+ ?readonly=${a}
3969
+ @input=${(e) => l(n, o, e.target.value)}
3970
+ @blur=${u}
3971
+ />
3972
+ `;
3973
+ }
3974
+ }, mn = c`
3975
+ .series {
3976
+ display: grid;
3977
+ gap: 0.9rem;
3978
+ }
3979
+
3980
+ .toolbar {
3981
+ display: flex;
3982
+ justify-content: flex-end;
3983
+ }
3984
+
3985
+ .add-btn,
3986
+ .remove-btn {
3987
+ border: var(--mlf-border-width, 1px) solid
3988
+ var(--mlf-series-action-border, var(--mlf-color-border, #cbd5e1));
3989
+ background: var(
3990
+ --mlf-series-action-bg,
3991
+ color-mix(in srgb, var(--mlf-color-accent, #1e40af) 9%, var(--mlf-color-surface, #ffffff))
3992
+ );
3993
+ color: var(--mlf-series-action-text, var(--mlf-color-text, #0f172a));
3994
+ font: inherit;
3995
+ line-height: 1;
3996
+ cursor: pointer;
3997
+ transition:
3998
+ background 0.2s ease,
3999
+ border-color 0.2s ease,
4000
+ transform 0.2s ease;
4001
+ }
4002
+
4003
+ .add-btn {
4004
+ padding: 0.7rem 1rem;
4005
+ border-radius: 999px;
4006
+ font-size: 0.85rem;
4007
+ font-weight: 700;
4008
+ letter-spacing: 0.01em;
4009
+ }
4010
+
4011
+ .remove-btn {
4012
+ width: 2.25rem;
4013
+ height: 2.25rem;
4014
+ border-radius: 0.8rem;
4015
+ font-size: 1.15rem;
4016
+ }
4017
+
4018
+ .add-btn:hover:not(:disabled),
4019
+ .remove-btn:hover:not(:disabled) {
4020
+ background: var(
4021
+ --mlf-series-action-bg-hover,
4022
+ color-mix(in srgb, var(--mlf-color-accent, #1e40af) 16%, var(--mlf-color-surface, #ffffff))
4023
+ );
4024
+ border-color: var(--mlf-series-action-border-hover, var(--mlf-color-accent, #1e40af));
4025
+ transform: translateY(-1px);
4026
+ }
4027
+
4028
+ .add-btn:disabled,
4029
+ .remove-btn:disabled {
4030
+ cursor: not-allowed;
4031
+ opacity: 0.65;
4032
+ transform: none;
4033
+ }
4034
+
4035
+ .grid {
4036
+ display: grid;
4037
+ gap: 0.65rem;
4038
+ }
4039
+
4040
+ .header,
4041
+ .row {
4042
+ display: grid;
4043
+ grid-template-columns: minmax(10rem, 1fr) minmax(10rem, 1fr) auto;
4044
+ gap: 0.65rem;
4045
+ align-items: start;
4046
+ }
4047
+
4048
+ .header {
4049
+ padding: 0 0.15rem;
4050
+ color: var(--mlf-series-heading, var(--mlf-color-text-muted, #475569));
4051
+ font-size: 0.72rem;
4052
+ font-weight: 700;
4053
+ letter-spacing: 0.08em;
4054
+ text-transform: uppercase;
4055
+ }
4056
+
4057
+ .row {
4058
+ padding: 0.55rem;
4059
+ border-radius: 1rem;
4060
+ background: var(
4061
+ --mlf-series-row-bg,
4062
+ color-mix(in srgb, var(--mlf-color-surface, #ffffff) 80%, var(--mlf-color-bg-light, #f8fafc))
4063
+ );
4064
+ border: var(--mlf-border-width, 1px) solid
4065
+ var(
4066
+ --mlf-series-row-border,
4067
+ color-mix(in srgb, var(--mlf-color-border, #e2e8f0) 90%, transparent)
4068
+ );
4069
+ }
4070
+
4071
+ .cell {
4072
+ min-width: 0;
4073
+ }
4074
+
4075
+ .cell select,
4076
+ .cell input {
4077
+ min-height: var(--mlf-control-height, 3rem);
4078
+ }
4079
+
4080
+ .value-wrap {
4081
+ position: relative;
4082
+ }
4083
+
4084
+ .value-wrap input {
4085
+ padding-right: calc(var(--mlf-series-unit-width, 2rem) + 1.8rem);
4086
+ }
4087
+
4088
+ .unit {
4089
+ position: absolute;
4090
+ top: 50%;
4091
+ right: 0.85rem;
4092
+ transform: translateY(-50%);
4093
+ max-width: 42%;
4094
+ overflow: hidden;
4095
+ color: var(--mlf-series-unit-color, var(--mlf-color-text-muted, #475569));
4096
+ font-size: 0.82rem;
4097
+ font-weight: 700;
4098
+ text-overflow: ellipsis;
4099
+ white-space: nowrap;
4100
+ pointer-events: none;
4101
+ }
4102
+
4103
+ .unit:empty {
4104
+ display: none;
4105
+ }
4106
+
4107
+ .empty {
4108
+ padding: 0.95rem 1rem;
4109
+ border-radius: 0.9rem;
4110
+ border: 1px dashed var(--mlf-series-empty-border, var(--mlf-color-border, #cbd5e1));
4111
+ color: var(--mlf-series-empty-text, var(--mlf-color-text-muted, #475569));
4112
+ font-size: 0.9rem;
4113
+ }
4114
+
4115
+ @media (max-width: 640px) {
4116
+ .header {
4117
+ display: none;
4118
+ }
3908
4119
 
3909
- .row {
3910
- grid-template-columns: 1fr;
3911
- }
4120
+ .row {
4121
+ grid-template-columns: 1fr;
4122
+ }
3912
4123
 
3913
- .remove-btn {
3914
- justify-self: end;
3915
- }
3916
- }
3917
- `];
4124
+ .remove-btn {
4125
+ justify-self: end;
4126
+ }
4127
+ }
4128
+ `, hn = class extends G {
4129
+ static styles = [G.styles, mn];
3918
4130
  #e = [];
3919
4131
  get rows() {
3920
4132
  return this.#e;
@@ -3927,8 +4139,8 @@ var Mt = 0, Nt = () => `series-row-${++Mt}`, Pt = (e) => e === !0 || e === !1 ?
3927
4139
  super.willUpdate(e), e.has("descriptor") && this.#i();
3928
4140
  }
3929
4141
  render() {
3930
- let e = this.fieldContext, t = !!this.fieldContext?.disabled, n = !!this.fieldContext?.readOnly, r = t || n, i = this.#n, a = this.#r, o = `${Math.max(this.#d(a).length * .56 + .8, 2.3)}rem`, s = this.text;
3931
- return b`
4142
+ let e = this.fieldContext, t = !!this.fieldContext?.disabled, n = !!this.fieldContext?.readOnly, r = t || n, i = this.#n, a = this.#r, o = `${Math.max(un(a).length * .56 + .8, 2.3)}rem`, s = this.text;
4143
+ return S`
3932
4144
  <div class="series" style=${`--mlf-series-unit-width: ${o};`}>
3933
4145
  <div class="toolbar">
3934
4146
  <button
@@ -3942,22 +4154,22 @@ var Mt = 0, Nt = () => `series-row-${++Mt}`, Pt = (e) => e === !0 || e === !1 ?
3942
4154
  </button>
3943
4155
  </div>
3944
4156
 
3945
- ${this.rows.length > 0 ? b`
4157
+ ${this.rows.length > 0 ? S`
3946
4158
  <div class="grid">
3947
4159
  <div class="header" aria-hidden="true">
3948
- <div>${B(i.label, "field1")}</div>
3949
- <div>${B(a.label, "field2")}</div>
4160
+ <div>${V(i.label, "field1")}</div>
4161
+ <div>${V(a.label, "field2")}</div>
3950
4162
  <div></div>
3951
4163
  </div>
3952
4164
  ${this.rows.map((o, c) => {
3953
4165
  let l = `${e?.controlId ?? "mlf-series"}-${o.key}-field1`, u = `${e?.controlId ?? "mlf-series"}-${o.key}-field2`;
3954
- return b`
4166
+ return S`
3955
4167
  <div class="row">
3956
4168
  <div class="cell">
3957
- ${this.#f(i, o.field1, c, l, t, n, 1)}
4169
+ ${this.#u(i, o.field1, c, l, t, n, 1)}
3958
4170
  </div>
3959
4171
  <div class="cell">
3960
- ${this.#f(a, o.field2, c, u, t, n, 2)}
4172
+ ${this.#u(a, o.field2, c, u, t, n, 2)}
3961
4173
  </div>
3962
4174
  <button
3963
4175
  class="remove-btn"
@@ -3972,7 +4184,7 @@ var Mt = 0, Nt = () => `series-row-${++Mt}`, Pt = (e) => e === !0 || e === !1 ?
3972
4184
  `;
3973
4185
  })}
3974
4186
  </div>
3975
- ` : b`<div class="empty">${s.seriesEmpty}</div>`}
4187
+ ` : S`<div class="empty">${s.seriesEmpty}</div>`}
3976
4188
  </div>
3977
4189
  ${this.renderAssistiveText()}
3978
4190
  `;
@@ -3984,11 +4196,11 @@ var Mt = 0, Nt = () => `series-row-${++Mt}`, Pt = (e) => e === !0 || e === !1 ?
3984
4196
  return this.props.field2 ?? {};
3985
4197
  }
3986
4198
  #i() {
3987
- this.rows = It(this.props.value, this.#n, this.#r), this.#t = !1;
4199
+ this.rows = cn(this.props.value, this.#n, this.#r), this.#t = !1;
3988
4200
  }
3989
4201
  #a = () => {
3990
4202
  this.rows = [...this.rows, {
3991
- key: Nt(),
4203
+ key: an(),
3992
4204
  field1: "",
3993
4205
  field2: ""
3994
4206
  }], this.#t = !0, this.#l();
@@ -4007,154 +4219,33 @@ var Mt = 0, Nt = () => `series-row-${++Mt}`, Pt = (e) => e === !0 || e === !1 ?
4007
4219
  };
4008
4220
  #l() {
4009
4221
  this.#t &&= (this.commitValue(this.rows.map((e) => ({
4010
- field1: this.#u(this.#n, e.field1),
4011
- field2: this.#u(this.#r, e.field2)
4222
+ field1: ln(this.#n, e.field1),
4223
+ field2: ln(this.#r, e.field2)
4012
4224
  }))), !1);
4013
4225
  }
4014
- #u(e, t) {
4015
- switch (e.kind) {
4016
- case "number":
4017
- case "date":
4018
- case "category":
4019
- case "text": return t === "" ? null : t;
4020
- case "boolean": return t === "" ? null : t;
4021
- default: return t === "" ? null : t;
4022
- }
4023
- }
4024
- #d(e) {
4025
- return typeof e.unit == "string" ? e.unit : "";
4026
- }
4027
- #f(e, t, n, r, i, a, o) {
4028
- let s = this.fieldContext, c = `${s?.label ?? B(this.props.label)} ${B(e.label, `field${o}`)} ${n + 1}`, l = !!e.required;
4029
- switch (e.kind) {
4030
- case "date": return b`
4031
- <input
4032
- class="control"
4033
- id=${r}
4034
- type="date"
4035
- .value=${typeof t == "string" ? t : ""}
4036
- aria-label=${c}
4037
- aria-describedby=${Q(s?.describedBy)}
4038
- aria-invalid=${String(s?.invalid ?? !1)}
4039
- ?required=${l}
4040
- ?disabled=${i}
4041
- ?readonly=${a}
4042
- min=${Q(typeof e.min == "string" ? e.min : void 0)}
4043
- max=${Q(typeof e.max == "string" ? e.max : void 0)}
4044
- @input=${(e) => this.#s(n, o, e.target.value)}
4045
- @blur=${this.#c}
4046
- />
4047
- `;
4048
- case "category": {
4049
- let u = Array.isArray(e.options) ? e.options : [], d = typeof t == "string" ? t : "";
4050
- return b`
4051
- <select
4052
- class="control"
4053
- id=${r}
4054
- aria-label=${c}
4055
- aria-describedby=${Q(s?.describedBy)}
4056
- aria-invalid=${String(s?.invalid ?? !1)}
4057
- ?required=${l}
4058
- ?disabled=${!!(i || a)}
4059
- @change=${(e) => this.#s(n, o, e.target.value)}
4060
- @blur=${this.#c}
4061
- >
4062
- <option value="" ?selected=${d === ""}>
4063
- &#8212; ${this.text.categoryPlaceholder} &#8212;
4064
- </option>
4065
- ${u.map((e) => {
4066
- let t = typeof e == "string" ? {
4067
- label: e,
4068
- value: e
4069
- } : e;
4070
- return b`
4071
- <option
4072
- value=${String(t.value)}
4073
- ?selected=${String(t.value) === d}
4074
- >
4075
- ${String(t.label)}
4076
- </option>
4077
- `;
4078
- })}
4079
- </select>
4080
- `;
4081
- }
4082
- case "boolean": {
4083
- let u = B(e.trueLabel, this.text.booleanTrue), d = B(e.falseLabel, this.text.booleanFalse), f = t === !0 ? "true" : t === !1 ? "false" : "";
4084
- return b`
4085
- <select
4086
- class="control"
4087
- id=${r}
4088
- aria-label=${c}
4089
- aria-describedby=${Q(s?.describedBy)}
4090
- aria-invalid=${String(s?.invalid ?? !1)}
4091
- ?required=${l}
4092
- ?disabled=${!!(i || a)}
4093
- @change=${(e) => {
4094
- let t = e.target.value;
4095
- this.#s(n, o, t === "" ? "" : t === "true");
4096
- }}
4097
- @blur=${this.#c}
4098
- >
4099
- <option value="" ?selected=${f === ""}>&#8212; Select &#8212;</option>
4100
- <option value="true" ?selected=${f === "true"}>${u}</option>
4101
- <option value="false" ?selected=${f === "false"}>${d}</option>
4102
- </select>
4103
- `;
4104
- }
4105
- case "number": {
4106
- let u = this.#d(e);
4107
- return b`
4108
- <div class="value-wrap">
4109
- <input
4110
- class="control"
4111
- id=${r}
4112
- type="text"
4113
- inputmode="decimal"
4114
- spellcheck="false"
4115
- autocomplete="off"
4116
- .value=${typeof t == "string" ? t : ""}
4117
- placeholder=${B(e.placeholder)}
4118
- aria-label=${c}
4119
- aria-describedby=${Q(s?.describedBy)}
4120
- aria-invalid=${String(s?.invalid ?? !1)}
4121
- aria-valuemin=${Q(typeof e.min == "number" ? e.min : void 0)}
4122
- aria-valuemax=${Q(typeof e.max == "number" ? e.max : void 0)}
4123
- ?required=${l}
4124
- ?disabled=${i}
4125
- ?readonly=${a}
4126
- @input=${(e) => this.#s(n, o, e.target.value)}
4127
- @blur=${this.#c}
4128
- />
4129
- <span class="unit" aria-hidden="true">${u}</span>
4130
- </div>
4131
- `;
4132
- }
4133
- default: return b`
4134
- <input
4135
- class="control"
4136
- id=${r}
4137
- type="text"
4138
- .value=${typeof t == "string" ? t : typeof t == "number" || typeof t == "boolean" || typeof t == "bigint" ? `${t}` : ""}
4139
- placeholder=${B(e.placeholder)}
4140
- aria-label=${c}
4141
- aria-describedby=${Q(s?.describedBy)}
4142
- aria-invalid=${String(s?.invalid ?? !1)}
4143
- ?required=${l}
4144
- ?disabled=${i}
4145
- ?readonly=${a}
4146
- @input=${(e) => this.#s(n, o, e.target.value)}
4147
- @blur=${this.#c}
4148
- />
4149
- `;
4150
- }
4226
+ #u(e, t, n, r, i, a, o) {
4227
+ let s = this.fieldContext, c = `${s?.label ?? V(this.props.label)} ${V(e.label, `field${o}`)} ${n + 1}`;
4228
+ return pn({
4229
+ config: e,
4230
+ value: t,
4231
+ index: n,
4232
+ id: r,
4233
+ disabled: i,
4234
+ readOnly: a,
4235
+ field: o,
4236
+ context: s,
4237
+ text: this.text,
4238
+ onInput: (e, t, n) => this.#s(e, t, n),
4239
+ onBlur: this.#c,
4240
+ label: c
4241
+ });
4151
4242
  }
4152
4243
  };
4153
- P([k()], Lt.prototype, "rows", null), Lt = P([D(A.seriesField)], Lt);
4244
+ I([j()], hn.prototype, "rows", null), hn = I([k(M.seriesField)], hn);
4154
4245
  //#endregion
4155
4246
  //#region src/primitives/fields/long-text-field.ts
4156
- var Rt = class extends W {
4157
- static styles = [W.styles, s`
4247
+ var gn = class extends G {
4248
+ static styles = [G.styles, c`
4158
4249
  textarea.control {
4159
4250
  resize: vertical;
4160
4251
  min-height: 6rem;
@@ -4163,14 +4254,14 @@ var Rt = class extends W {
4163
4254
  `];
4164
4255
  render() {
4165
4256
  let e = this.props, t = this.fieldContext, n = typeof e.value == "string" ? e.value : "", r = typeof e.rows == "number" && e.rows > 0 ? e.rows : 4;
4166
- return b`
4257
+ return S`
4167
4258
  <textarea
4168
4259
  class="control"
4169
4260
  id=${t?.controlId ?? ""}
4170
4261
  .value=${n}
4171
- placeholder=${B(e.placeholder)}
4262
+ placeholder=${V(e.placeholder)}
4172
4263
  rows=${r}
4173
- aria-label=${t?.label ?? B(e.label)}
4264
+ aria-label=${t?.label ?? V(e.label)}
4174
4265
  aria-describedby=${Q(t?.describedBy)}
4175
4266
  aria-invalid=${String(t?.invalid ?? !1)}
4176
4267
  ?required=${!!e.required}
@@ -4189,14 +4280,14 @@ var Rt = class extends W {
4189
4280
  this.commitBlur();
4190
4281
  };
4191
4282
  };
4192
- Rt = P([D(A.longTextField)], Rt);
4283
+ gn = I([k(M.longTextField)], gn);
4193
4284
  //#endregion
4194
4285
  //#region src/primitives/fields/single-choice-field.ts
4195
- var zt = (e) => typeof e == "string" ? {
4286
+ var _n = (e) => typeof e == "string" ? {
4196
4287
  label: e,
4197
4288
  value: e
4198
- } : e, Bt = class extends W {
4199
- static styles = [W.styles, s`
4289
+ } : e, vn = class extends G {
4290
+ static styles = [G.styles, c`
4200
4291
  fieldset {
4201
4292
  border: none;
4202
4293
  padding: 0;
@@ -4257,8 +4348,8 @@ var zt = (e) => typeof e == "string" ? {
4257
4348
  }
4258
4349
  `];
4259
4350
  render() {
4260
- let e = this.props, t = this.fieldContext, n = typeof e.value == "string" ? e.value : null, r = Array.isArray(e.options) ? e.options : [], i = e.layout === "horizontal" ? "horizontal" : "vertical", a = t?.label ?? B(e.label), o = !!(t?.disabled || t?.readOnly);
4261
- return b`
4351
+ let e = this.props, t = this.fieldContext, n = typeof e.value == "string" ? e.value : null, r = Array.isArray(e.options) ? e.options : [], i = e.layout === "horizontal" ? "horizontal" : "vertical", a = t?.label ?? V(e.label), o = !!(t?.disabled || t?.readOnly);
4352
+ return S`
4262
4353
  <fieldset>
4263
4354
  <legend>${a}</legend>
4264
4355
  <div
@@ -4270,8 +4361,8 @@ var zt = (e) => typeof e == "string" ? {
4270
4361
  aria-required=${String(!!e.required)}
4271
4362
  >
4272
4363
  ${r.map((e) => {
4273
- let { label: r, value: i } = zt(e), a = `${t?.controlId ?? "sc"}-${i}`;
4274
- return b`
4364
+ let { label: r, value: i } = _n(e), a = `${t?.controlId ?? "sc"}-${i}`;
4365
+ return S`
4275
4366
  <label class=${o ? "disabled" : ""} for=${a}>
4276
4367
  <input
4277
4368
  type="radio"
@@ -4299,14 +4390,14 @@ var zt = (e) => typeof e == "string" ? {
4299
4390
  this.commitBlur();
4300
4391
  };
4301
4392
  };
4302
- Bt = P([D(A.singleChoiceField)], Bt);
4393
+ vn = I([k(M.singleChoiceField)], vn);
4303
4394
  //#endregion
4304
4395
  //#region src/primitives/fields/multi-choice-field.ts
4305
- var Vt = (e) => typeof e == "string" ? {
4396
+ var yn = (e) => typeof e == "string" ? {
4306
4397
  label: e,
4307
4398
  value: e
4308
- } : e, Ht = class extends W {
4309
- static styles = [W.styles, s`
4399
+ } : e, bn = class extends G {
4400
+ static styles = [G.styles, c`
4310
4401
  fieldset {
4311
4402
  border: none;
4312
4403
  padding: 0;
@@ -4368,8 +4459,8 @@ var Vt = (e) => typeof e == "string" ? {
4368
4459
  }
4369
4460
  `];
4370
4461
  render() {
4371
- let e = this.props, t = this.fieldContext, n = Array.isArray(e.value) ? e.value : [], r = Array.isArray(e.options) ? e.options : [], i = e.layout === "horizontal" ? "horizontal" : "vertical", a = t?.label ?? B(e.label), o = !!(t?.disabled || t?.readOnly);
4372
- return b`
4462
+ let e = this.props, t = this.fieldContext, n = Array.isArray(e.value) ? e.value : [], r = Array.isArray(e.options) ? e.options : [], i = e.layout === "horizontal" ? "horizontal" : "vertical", a = t?.label ?? V(e.label), o = !!(t?.disabled || t?.readOnly);
4463
+ return S`
4373
4464
  <fieldset>
4374
4465
  <legend>${a}</legend>
4375
4466
  <div
@@ -4381,8 +4472,8 @@ var Vt = (e) => typeof e == "string" ? {
4381
4472
  aria-required=${String(!!e.required)}
4382
4473
  >
4383
4474
  ${r.map((e) => {
4384
- let { label: r, value: i } = Vt(e), a = `${t?.controlId ?? "mc"}-${i}`;
4385
- return b`
4475
+ let { label: r, value: i } = yn(e), a = `${t?.controlId ?? "mc"}-${i}`;
4476
+ return S`
4386
4477
  <label class=${o ? "disabled" : ""} for=${a}>
4387
4478
  <input
4388
4479
  type="checkbox"
@@ -4410,11 +4501,11 @@ var Vt = (e) => typeof e == "string" ? {
4410
4501
  this.commitBlur();
4411
4502
  };
4412
4503
  };
4413
- Ht = P([D(A.multiChoiceField)], Ht);
4504
+ bn = I([k(M.multiChoiceField)], bn);
4414
4505
  //#endregion
4415
4506
  //#region src/primitives/fields/rating-field.ts
4416
- var Ut = class extends W {
4417
- static styles = [W.styles, s`
4507
+ var xn = class extends G {
4508
+ static styles = [G.styles, c`
4418
4509
  .rating-container {
4419
4510
  display: inline-flex;
4420
4511
  gap: 0.25rem;
@@ -4467,9 +4558,9 @@ var Ut = class extends W {
4467
4558
  }
4468
4559
  `];
4469
4560
  render() {
4470
- let e = this.props, t = this.fieldContext, n = typeof e.value == "number" ? e.value : null, r = typeof e.min == "number" ? e.min : 1, i = typeof e.max == "number" ? e.max : 5, a = typeof e.step == "number" && e.step > 0 ? e.step : 1, o = !!(t?.disabled || t?.readOnly), s = t?.label ?? B(e.label), c = [];
4561
+ let e = this.props, t = this.fieldContext, n = typeof e.value == "number" ? e.value : null, r = typeof e.min == "number" ? e.min : 1, i = typeof e.max == "number" ? e.max : 5, a = typeof e.step == "number" && e.step > 0 ? e.step : 1, o = !!(t?.disabled || t?.readOnly), s = t?.label ?? V(e.label), c = [];
4471
4562
  for (let e = r; e <= i; e += a) c.push(e);
4472
- return b`
4563
+ return S`
4473
4564
  <div
4474
4565
  role="slider"
4475
4566
  aria-label=${s}
@@ -4483,7 +4574,7 @@ var Ut = class extends W {
4483
4574
  tabindex="-1"
4484
4575
  >
4485
4576
  <div class="rating-container">
4486
- ${c.map((e) => b`
4577
+ ${c.map((e) => S`
4487
4578
  <button
4488
4579
  type="button"
4489
4580
  class="rating-btn ${n === e ? "selected" : ""}"
@@ -4521,18 +4612,18 @@ var Ut = class extends W {
4521
4612
  }
4522
4613
  };
4523
4614
  };
4524
- Ut = P([D(A.ratingField)], Ut);
4615
+ xn = I([k(M.ratingField)], xn);
4525
4616
  //#endregion
4526
4617
  //#region src/primitives/base-async-report-element.ts
4527
- var Wt = (e) => e instanceof Error ? e.message : typeof e == "string" && e.trim().length > 0 ? e : String(e), Gt = (e) => {
4618
+ var Sn = (e) => e instanceof Error ? e.message : typeof e == "string" && e.trim().length > 0 ? e : String(e), Cn = (e) => {
4528
4619
  if (typeof e == "string") return e;
4529
4620
  try {
4530
4621
  return JSON.stringify(e, null, 2);
4531
4622
  } catch {
4532
4623
  return String(e);
4533
4624
  }
4534
- }, $ = class extends G {
4535
- static styles = [G.styles, s`
4625
+ }, $ = class extends K {
4626
+ static styles = [K.styles, c`
4536
4627
  .transport-divider {
4537
4628
  border: none;
4538
4629
  border-top: var(--mlf-border-width, 1px) solid
@@ -4662,7 +4753,7 @@ var Wt = (e) => e instanceof Error ? e.message : typeof e == "string" && e.trim(
4662
4753
  return this.transportErrorValue;
4663
4754
  }
4664
4755
  renderTransportPanel(e) {
4665
- return this.transportResultStatus === "idle" ? S : b`
4756
+ return this.transportResultStatus === "idle" ? w : S`
4666
4757
  <hr class="transport-divider" />
4667
4758
  <div class="transport-panel">
4668
4759
  <p class="transport-heading">${e.explanationLabel}</p>
@@ -4672,19 +4763,19 @@ var Wt = (e) => e instanceof Error ? e.message : typeof e == "string" && e.trim(
4672
4763
  }
4673
4764
  #a(e) {
4674
4765
  switch (this.transportResultStatus) {
4675
- case "loading": return b`<div
4766
+ case "loading": return S`<div
4676
4767
  class="transport-skeleton"
4677
4768
  aria-label=${e.explanationLoadingLabel}
4678
4769
  ></div>`;
4679
- case "error": return b`<div class="transport-error">Error: ${this.transportError}</div>`;
4680
- case "done": return b`<pre
4770
+ case "error": return S`<div class="transport-error">Error: ${this.transportError}</div>`;
4771
+ case "done": return S`<pre
4681
4772
  class="transport-content"
4682
4773
  role="region"
4683
4774
  aria-label=${e.explanationAriaLabel}
4684
4775
  >
4685
- ${Gt(this.transportResult)}</pre
4776
+ ${Cn(this.transportResult)}</pre
4686
4777
  >`;
4687
- default: return S;
4778
+ default: return w;
4688
4779
  }
4689
4780
  }
4690
4781
  async #o() {
@@ -4706,15 +4797,15 @@ ${Gt(this.transportResult)}</pre
4706
4797
  this.transportResultValue = r, this.transportStatus = "done";
4707
4798
  } catch (e) {
4708
4799
  if (n.signal.aborted) return;
4709
- this.transportErrorValue = Wt(e), this.transportStatus = "error";
4800
+ this.transportErrorValue = Sn(e), this.transportStatus = "error";
4710
4801
  }
4711
4802
  }
4712
4803
  };
4713
- P([k()], $.prototype, "transportStatus", null), P([k()], $.prototype, "transportResultValue", null), P([k()], $.prototype, "transportErrorValue", null);
4804
+ I([j()], $.prototype, "transportStatus", null), I([j()], $.prototype, "transportResultValue", null), I([j()], $.prototype, "transportErrorValue", null);
4714
4805
  //#endregion
4715
4806
  //#region src/primitives/reports/classifier-report.ts
4716
- var Kt = (e, t, n) => {
4717
- if (!z(e) || !Array.isArray(e.probabilities)) return [];
4807
+ var wn = (e, t, n) => {
4808
+ if (!B(e) || !Array.isArray(e.probabilities)) return [];
4718
4809
  let r = Array.isArray(t) ? t : e.labels, i = Array.isArray(r) ? r : [];
4719
4810
  return e.probabilities.map((e, t) => {
4720
4811
  let r = typeof e == "number" ? e : Number(e);
@@ -4723,8 +4814,8 @@ var Kt = (e, t, n) => {
4723
4814
  value: r
4724
4815
  };
4725
4816
  }).filter((e) => e !== null);
4726
- }, qt = class extends $ {
4727
- static styles = [$.styles, s`
4817
+ }, Tn = class extends $ {
4818
+ static styles = [$.styles, c`
4728
4819
  .rows {
4729
4820
  display: grid;
4730
4821
  gap: 0.5rem;
@@ -4792,21 +4883,21 @@ var Kt = (e, t, n) => {
4792
4883
  }
4793
4884
  `];
4794
4885
  render() {
4795
- let e = this.props.payload, t = typeof this.props.error == "string" ? this.props.error : null, n = this.reportContext, r = this.props.details !== !1, i = this.text;
4796
- if (t) return b`<div class="error">${t}</div>`;
4797
- if (e == null) return b`<div class="empty">${i.classifierEmpty}</div>`;
4798
- let a = z(e) ? e.prediction ?? e.className ?? e.label ?? i.classifierUnknownPrediction : e, o = Kt(e, this.props.labels, i.classifierClassLabel);
4799
- return b`
4886
+ let e = this.props.payload, t = typeof this.props.error == "string" ? this.props.error : null, n = this.reportContext, r = this.props.showClassProbabilities !== !1, i = this.text;
4887
+ if (t) return S`<div class="error">${t}</div>`;
4888
+ if (e == null) return S`<div class="empty">${i.classifierEmpty}</div>`;
4889
+ let a = B(e) ? e.prediction ?? e.className ?? e.label ?? i.classifierUnknownPrediction : e, o = wn(e, this.props.labels, i.classifierClassLabel);
4890
+ return S`
4800
4891
  <section
4801
4892
  part="classifier-report"
4802
4893
  id=${n?.regionId ?? ""}
4803
4894
  aria-label=${n?.label ?? i.classifierAriaLabel}
4804
4895
  >
4805
- ${r && o.length > 0 ? b`
4896
+ ${r && o.length > 0 ? S`
4806
4897
  <div class="rows">
4807
4898
  ${o.map((e) => {
4808
4899
  let t = `${Math.max(0, Math.min(e.value, 1)) * 100}%`;
4809
- return b`
4900
+ return S`
4810
4901
  <div class="item">
4811
4902
  <div class="label">${e.label}</div>
4812
4903
  <div class="bar" style=${`--w: ${t};`} aria-hidden="true"></div>
@@ -4815,36 +4906,36 @@ var Kt = (e, t, n) => {
4815
4906
  `;
4816
4907
  })}
4817
4908
  </div>
4818
- ` : b`
4819
- <div class="compact">${B(a, i.classifierUnknownPrediction)}</div>
4909
+ ` : S`
4910
+ <div class="compact">${V(a, i.classifierUnknownPrediction)}</div>
4820
4911
  `}
4821
4912
  ${this.renderTransportPanel(i)}
4822
4913
  </section>
4823
4914
  `;
4824
4915
  }
4825
4916
  };
4826
- qt = P([D(A.classifierReport)], qt);
4917
+ Tn = I([k(M.classifierReport)], Tn);
4827
4918
  //#endregion
4828
4919
  //#region src/primitives/reports/regressor-report.ts
4829
- var Jt = (e, t, n) => {
4920
+ var En = (e, t, n) => {
4830
4921
  if (typeof e == "number") return `${e.toFixed(t)}${n ? ` ${n}` : ""}`;
4831
4922
  let r = Number(e);
4832
4923
  return Number.isNaN(r) ? String(e) : `${r.toFixed(t)}${n ? ` ${n}` : ""}`;
4833
- }, Yt = (e) => {
4834
- if (z(e) && Array.isArray(e.values)) return e.values.map((e) => Number(e)).filter((e) => !Number.isNaN(e));
4835
- if (z(e) && "value" in e) {
4924
+ }, Dn = (e) => {
4925
+ if (B(e) && Array.isArray(e.values)) return e.values.map((e) => Number(e)).filter((e) => !Number.isNaN(e));
4926
+ if (B(e) && "value" in e) {
4836
4927
  let t = Number(e.value);
4837
4928
  return Number.isNaN(t) ? [] : [t];
4838
4929
  }
4839
4930
  let t = Number(e);
4840
4931
  return Number.isNaN(t) ? [] : [t];
4841
- }, Xt = (e) => {
4842
- if (z(e) && Array.isArray(e.interval) && e.interval.length === 2) {
4932
+ }, On = (e) => {
4933
+ if (B(e) && Array.isArray(e.interval) && e.interval.length === 2) {
4843
4934
  let t = Number(e.interval[0]), n = Number(e.interval[1]);
4844
4935
  if (!Number.isNaN(t) && !Number.isNaN(n)) return [t, n];
4845
4936
  }
4846
- return z(e) && typeof e.min == "number" && typeof e.max == "number" ? [e.min, e.max] : null;
4847
- }, Zt = (e, t) => {
4937
+ return B(e) && typeof e.min == "number" && typeof e.max == "number" ? [e.min, e.max] : null;
4938
+ }, kn = (e, t) => {
4848
4939
  if (t <= e) return "linear-gradient(to right, #ffea00 0%, #00c853 50%, #ffea00 100%)";
4849
4940
  let n = t - e, r = e - n, i = t + n, a = (e) => (e - r) / (i - r) * 100, o = a(e), s = a(t), c = a((e + t) / 2);
4850
4941
  return `linear-gradient(to right,
@@ -4855,12 +4946,12 @@ var Jt = (e, t, n) => {
4855
4946
  #ffea00 ${s}%,
4856
4947
  #ff6d00 ${Math.min(s + 10, 100)}%,
4857
4948
  #c62828 100%)`;
4858
- }, Qt = (e, t, n) => {
4949
+ }, An = (e, t, n) => {
4859
4950
  if (n <= t) return 49;
4860
4951
  let r = n - t, i = t - r, a = n + r;
4861
4952
  return Math.min(Math.max((e - i) / (a - i) * 100, 0), 98.45);
4862
- }, $t = class extends $ {
4863
- static styles = [$.styles, s`
4953
+ }, jn = class extends $ {
4954
+ static styles = [$.styles, c`
4864
4955
  :host {
4865
4956
  --marker-size: 14px;
4866
4957
  --limit-line-width: 3px;
@@ -4937,62 +5028,62 @@ var Jt = (e, t, n) => {
4937
5028
  `];
4938
5029
  render() {
4939
5030
  let e = this.props.payload, t = typeof this.props.error == "string" ? this.props.error : null, n = this.reportContext, r = this.text;
4940
- if (t) return b`<div class="error">${t}</div>`;
4941
- if (e == null) return b`<div class="empty">${r.regressorEmpty}</div>`;
4942
- let i = typeof this.props.unit == "string" ? this.props.unit : "", a = typeof this.props.precision == "number" && this.props.precision >= 0 ? this.props.precision : 2, o = Yt(e), s = Xt(e), c = z(e) && typeof e.execution_time == "number" ? `${e.execution_time} ms` : null;
4943
- return b`
5031
+ if (t) return S`<div class="error">${t}</div>`;
5032
+ if (e == null) return S`<div class="empty">${r.regressorEmpty}</div>`;
5033
+ let i = typeof this.props.unit == "string" ? this.props.unit : "", a = typeof this.props.precision == "number" && this.props.precision >= 0 ? this.props.precision : 2, o = Dn(e), s = On(e), c = B(e) && typeof e.execution_time == "number" ? `${e.execution_time} ms` : null;
5034
+ return S`
4944
5035
  <section
4945
5036
  part="regressor-report"
4946
5037
  id=${n?.regionId ?? ""}
4947
5038
  aria-label=${n?.label ?? r.regressorAriaLabel}
4948
5039
  >
4949
- ${o.length > 0 ? o.map((e) => b`
5040
+ ${o.length > 0 ? o.map((e) => S`
4950
5041
  <div class="item">
4951
- <div class="value">${Jt(e, a, i)}</div>
5042
+ <div class="value">${En(e, a, i)}</div>
4952
5043
 
4953
- ${s ? b`
5044
+ ${s ? S`
4954
5045
  <div
4955
5046
  class="bar-wrapper"
4956
- style=${`background: ${Zt(s[0], s[1])};`}
5047
+ style=${`background: ${kn(s[0], s[1])};`}
4957
5048
  >
4958
5049
  <div
4959
5050
  class="limit-wrapper"
4960
- style=${`left: ${Qt(s[0], s[0], s[1])}%;`}
5051
+ style=${`left: ${An(s[0], s[0], s[1])}%;`}
4961
5052
  >
4962
5053
  <div class="limit-line"></div>
4963
5054
  <div class="limit-label">
4964
- ${Jt(s[0], a, i)}
5055
+ ${En(s[0], a, i)}
4965
5056
  </div>
4966
5057
  </div>
4967
5058
 
4968
5059
  <div
4969
5060
  class="limit-wrapper"
4970
- style=${`left: ${Qt(s[1], s[0], s[1])}%;`}
5061
+ style=${`left: ${An(s[1], s[0], s[1])}%;`}
4971
5062
  >
4972
5063
  <div class="limit-line"></div>
4973
5064
  <div class="limit-label">
4974
- ${Jt(s[1], a, i)}
5065
+ ${En(s[1], a, i)}
4975
5066
  </div>
4976
5067
  </div>
4977
5068
 
4978
5069
  <span
4979
5070
  class="value-marker"
4980
- style=${`left: ${Qt(e, s[0], s[1])}%;`}
5071
+ style=${`left: ${An(e, s[0], s[1])}%;`}
4981
5072
  ></span>
4982
5073
  </div>
4983
- ` : b``}
5074
+ ` : S``}
4984
5075
  </div>
4985
- `) : b`<div class="value">${Jt(e, a, i)}</div>`}
4986
- ${c ? b`<div class="meta">${r.regressorExecutionTime(c)}</div>` : b``}
5076
+ `) : S`<div class="value">${En(e, a, i)}</div>`}
5077
+ ${c ? S`<div class="meta">${r.regressorExecutionTime(c)}</div>` : S``}
4987
5078
  ${this.renderTransportPanel(r)}
4988
5079
  </section>
4989
5080
  `;
4990
5081
  }
4991
5082
  };
4992
- $t = P([D(A.regressorReport)], $t);
5083
+ jn = I([k(M.regressorReport)], jn);
4993
5084
  //#endregion
4994
5085
  //#region src/primitives/registry.ts
4995
- var en = new Set([
5086
+ var Mn = new Set([
4996
5087
  "annotation-xml",
4997
5088
  "color-profile",
4998
5089
  "font-face",
@@ -5001,26 +5092,26 @@ var en = new Set([
5001
5092
  "font-face-format",
5002
5093
  "font-face-name",
5003
5094
  "missing-glyph"
5004
- ]), tn = (e) => /^[a-z][-.0-9_a-z]*-[-.0-9_a-z]*[a-z0-9]$/.test(e) && !en.has(e), nn = (e) => {
5005
- if (!tn(e)) throw TypeError(`Invalid primitive renderer tag name "${e}". Expected a valid custom element name.`);
5006
- }, rn = class e {
5095
+ ]), Nn = (e) => /^[a-z][-.0-9_a-z]*-[-.0-9_a-z]*[a-z0-9]$/.test(e) && !Mn.has(e), Pn = (e) => {
5096
+ if (!Nn(e)) throw TypeError(`Invalid primitive renderer tag name "${e}". Expected a valid custom element name.`);
5097
+ }, Fn = class e {
5007
5098
  #e = /* @__PURE__ */ new Map();
5008
5099
  #t = /* @__PURE__ */ new Map();
5009
5100
  #n = /* @__PURE__ */ new Map();
5010
5101
  registerField(e, t) {
5011
- return nn(t), this.#e.set(e, t), this;
5102
+ return Pn(t), this.#e.set(e, t), this;
5012
5103
  }
5013
5104
  unregisterField(e) {
5014
5105
  return this.#e.delete(e), this;
5015
5106
  }
5016
5107
  registerReport(e, t) {
5017
- return nn(t), this.#t.set(e, t), this;
5108
+ return Pn(t), this.#t.set(e, t), this;
5018
5109
  }
5019
5110
  unregisterReport(e) {
5020
5111
  return this.#t.delete(e), this;
5021
5112
  }
5022
5113
  registerExplanation(e, t) {
5023
- return nn(t), this.#n.set(e, t), this;
5114
+ return Pn(t), this.#n.set(e, t), this;
5024
5115
  }
5025
5116
  unregisterExplanation(e) {
5026
5117
  return this.#n.delete(e), this;
@@ -5041,23 +5132,24 @@ var en = new Set([
5041
5132
  for (let [e, n] of this.#n) t.registerExplanation(e, n);
5042
5133
  return t;
5043
5134
  }
5044
- }, an = () => new rn(), on = () => an().registerField("declarative-field", A.declarativeField).registerField("text-field", A.textField).registerField("number-field", A.numberField).registerField("boolean-field", A.booleanField).registerField("category-field", A.categoryField).registerField("date-field", A.dateField).registerField("series-field", A.seriesField).registerField("long-text-field", A.longTextField).registerField("single-choice-field", A.singleChoiceField).registerField("multi-choice-field", A.multiChoiceField).registerField("rating-field", A.ratingField).registerReport("declarative-report", A.declarativeReport).registerReport("classifier-report", A.classifierReport).registerReport("regressor-report", A.regressorReport).registerExplanation("declarative-explanation", A.declarativeExplanation), sn = (e, t) => {
5135
+ }, In = () => new Fn(), Ln = () => In().registerField("declarative-field", M.declarativeField).registerField("text-field", M.textField).registerField("number-field", M.numberField).registerField("boolean-field", M.booleanField).registerField("category-field", M.categoryField).registerField("date-field", M.dateField).registerField("series-field", M.seriesField).registerField("long-text-field", M.longTextField).registerField("single-choice-field", M.singleChoiceField).registerField("multi-choice-field", M.multiChoiceField).registerField("rating-field", M.ratingField).registerReport("declarative-report", M.declarativeReport).registerReport("classifier-report", M.classifierReport).registerReport("regressor-report", M.regressorReport).registerExplanation("declarative-explanation", M.declarativeExplanation), Rn = (e, t) => {
5045
5136
  if (e.childNodes.length > 0 && t !== "replace") throw TypeError("Mount into an empty container or pass `containerStrategy: \"replace\"`.");
5046
- }, cn = (e) => e ? e.clone() : on(), ln = (e, t, n = {}) => {
5047
- let r = document.createElement(A.form), i = cn(n.registry), a = We(n.text), o = n.containerStrategy ?? "error", s = o === "replace" ? Array.from(e.childNodes) : [];
5048
- sn(e, o), r.form = t, r.registry = i, r.layout = n.layout ?? "stacked", r.formLabel = n.formLabel ?? j.form, r.reportsLabel = n.reportsLabel ?? j.reports, r.submitLabel = n.submitLabel ?? j.submit, r.validatingLabel = n.validatingLabel ?? j.validating, r.submittingLabel = n.submittingLabel ?? j.submitting, r.reportPane = n.reportPane ?? "auto", r.text = a, r.reportTransport = n.reportTransport, e.replaceChildren(r);
5049
- let c = !1;
5137
+ }, zn = (e) => e ? e.clone() : Ln(), Bn = (e) => e?.clone() ?? t().presentationRegistry, Vn = (e, t, n = {}) => {
5138
+ let r = document.createElement(M.form), i = zn(n.registry), a = Bn(n.presentationRegistry), o = Ue(n.text), s = n.containerStrategy ?? "error", c = s === "replace" ? Array.from(e.childNodes) : [];
5139
+ Rn(e, s), r.form = t, r.registry = i, r.presentationRegistry = a, r.layout = n.layout ?? "stacked", r.formLabel = n.formLabel ?? N.form, r.reportsLabel = n.reportsLabel ?? N.reports, r.submitLabel = n.submitLabel ?? N.submit, r.validatingLabel = n.validatingLabel ?? N.validating, r.submittingLabel = n.submittingLabel ?? N.submitting, r.reportPane = n.reportPane ?? "auto", r.text = o, r.reportTransport = n.reportTransport, e.replaceChildren(r);
5140
+ let l = !1;
5050
5141
  return Object.freeze({
5051
5142
  form: t,
5052
5143
  host: r,
5053
5144
  registry: i,
5054
- text: a,
5145
+ presentationRegistry: a,
5146
+ text: o,
5055
5147
  unmount() {
5056
- c || (c = !0, r.parentNode === e ? o === "replace" && s.length > 0 ? e.replaceChildren(...s) : e.removeChild(r) : (r.remove(), o === "replace" && s.length > 0 && e.childNodes.length === 0 && e.replaceChildren(...s)));
5148
+ l || (l = !0, r.parentNode === e ? s === "replace" && c.length > 0 ? e.replaceChildren(...c) : e.removeChild(r) : (r.remove(), s === "replace" && c.length > 0 && e.childNodes.length === 0 && e.replaceChildren(...c)));
5057
5149
  }
5058
5150
  });
5059
- }, un = (e) => {
5151
+ }, Hn = (e) => {
5060
5152
  e.unmount();
5061
5153
  };
5062
5154
  //#endregion
5063
- export { D as _, $ as a, b, G as c, P as d, j as f, O as g, k as h, an as i, W as l, We as m, un as n, X as o, M as p, on as r, J as s, ln as t, Ye as u, E as v, s as x, S as y };
5155
+ export { c as C, S, j as _, $ as a, O as b, vt as c, K as d, G as f, Ue as g, P as h, In as i, yt as l, N as m, Hn as n, Vt as o, I as p, Ln as r, St as s, Vn as t, Y as u, A as v, w as x, k as y };