mlform 0.1.2 → 0.1.4

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 (299) hide show
  1. package/README.md +241 -88
  2. package/dist/design-system-CrrSGfFB.js +1352 -0
  3. package/dist/engine-nnhWPT2L.js +5301 -0
  4. package/dist/kit-Dt_1Fxlc.js +76 -0
  5. package/dist/mlform/design-system.mjs +2 -0
  6. package/dist/mlform/engine.mjs +3 -0
  7. package/dist/mlform/kit.mjs +3 -0
  8. package/dist/mlform/primitives.mjs +2 -0
  9. package/dist/mlform/questionnaire.mjs +640 -0
  10. package/dist/mlform/transport.mjs +2 -0
  11. package/dist/mlform.mjs +4 -709
  12. package/dist/primitives-Pi-ztAr6.js +5063 -0
  13. package/dist/transport-A1RsnZhD.js +2143 -0
  14. package/dist/types/src/design-system/constants.d.ts +34 -0
  15. package/dist/types/src/design-system/contract/component-keys.d.ts +2 -0
  16. package/dist/types/src/design-system/contract/component-tokens.d.ts +5 -0
  17. package/dist/types/src/design-system/contract/global-tokens.d.ts +7 -0
  18. package/dist/types/src/design-system/contract/index.d.ts +4 -0
  19. package/dist/types/src/design-system/contract/token-keys.d.ts +12 -0
  20. package/dist/types/src/design-system/index.d.ts +8 -0
  21. package/dist/types/src/design-system/recipes/contrast.d.ts +2 -0
  22. package/dist/types/src/design-system/recipes/default.d.ts +2 -0
  23. package/dist/types/src/design-system/recipes/index.d.ts +4 -0
  24. package/dist/types/src/design-system/recipes/minimal.d.ts +2 -0
  25. package/dist/types/src/design-system/recipes/soft.d.ts +2 -0
  26. package/dist/types/src/design-system/registry/builtins.d.ts +5 -0
  27. package/dist/types/src/design-system/registry/create-registry.d.ts +2 -0
  28. package/dist/types/src/design-system/registry/deep-freeze.d.ts +5 -0
  29. package/dist/types/src/design-system/registry/define-recipe.d.ts +2 -0
  30. package/dist/types/src/design-system/registry/define-theme.d.ts +2 -0
  31. package/dist/types/src/design-system/registry/define-token-maps.d.ts +6 -0
  32. package/dist/types/src/design-system/registry/index.d.ts +5 -0
  33. package/dist/types/src/design-system/resolve/diagnostics.d.ts +9 -0
  34. package/dist/types/src/design-system/resolve/index.d.ts +5 -0
  35. package/dist/types/src/design-system/resolve/merge-config.d.ts +2 -0
  36. package/dist/types/src/design-system/resolve/migrate-tokens.d.ts +44 -0
  37. package/dist/types/src/design-system/resolve/resolve-mode.d.ts +6 -0
  38. package/dist/types/src/design-system/resolve/resolve-recipe.d.ts +2 -0
  39. package/dist/types/src/design-system/resolve/resolve-theme.d.ts +2 -0
  40. package/dist/types/src/design-system/resolve/resolve-tokens.d.ts +2 -0
  41. package/dist/types/src/design-system/runtime/apply-tokens.d.ts +4 -0
  42. package/dist/types/src/design-system/runtime/attach-design-system.d.ts +11 -0
  43. package/dist/types/src/design-system/runtime/create-stylesheet.d.ts +11 -0
  44. package/dist/types/src/design-system/runtime/declarations.d.ts +5 -0
  45. package/dist/types/src/design-system/runtime/design-system-controller.d.ts +9 -0
  46. package/dist/types/src/design-system/runtime/host-state.d.ts +3 -0
  47. package/dist/types/src/design-system/runtime/hydrate-design-system.d.ts +25 -0
  48. package/dist/types/src/design-system/runtime/index.d.ts +8 -0
  49. package/dist/types/src/design-system/themes/cobalt.d.ts +2 -0
  50. package/dist/types/src/design-system/themes/graphite.d.ts +2 -0
  51. package/dist/types/src/design-system/themes/index.d.ts +5 -0
  52. package/dist/types/src/design-system/themes/neutral.d.ts +2 -0
  53. package/dist/types/src/design-system/themes/sage.d.ts +2 -0
  54. package/dist/types/src/design-system/themes/sunset.d.ts +2 -0
  55. package/dist/types/src/design-system/tokens/base.d.ts +5 -0
  56. package/dist/types/src/design-system/tokens/contrast.d.ts +8 -0
  57. package/dist/types/src/design-system/tokens/density.d.ts +9 -0
  58. package/dist/types/src/design-system/tokens/forced-colors.d.ts +12 -0
  59. package/dist/types/src/design-system/tokens/index.d.ts +5 -0
  60. package/dist/types/src/design-system/tokens/motion.d.ts +2 -0
  61. package/dist/types/src/design-system/types.d.ts +225 -0
  62. package/dist/types/src/engine/builtins/fields/boolean.d.ts +8 -0
  63. package/dist/types/src/engine/builtins/fields/category.d.ts +11 -0
  64. package/dist/types/src/engine/builtins/fields/date.d.ts +9 -0
  65. package/dist/types/src/engine/builtins/fields/long-text.d.ts +10 -0
  66. package/dist/types/src/engine/builtins/fields/multi-choice.d.ts +12 -0
  67. package/dist/types/src/engine/builtins/fields/number.d.ts +11 -0
  68. package/dist/types/src/engine/builtins/fields/rating.d.ts +9 -0
  69. package/dist/types/src/engine/builtins/fields/series.d.ts +20 -0
  70. package/dist/types/src/engine/builtins/fields/single-choice.d.ts +12 -0
  71. package/dist/types/src/engine/builtins/fields/text.d.ts +10 -0
  72. package/dist/types/src/engine/builtins/index.d.ts +97 -0
  73. package/dist/types/src/engine/builtins/reports/classifier.d.ts +8 -0
  74. package/dist/types/src/engine/builtins/reports/regressor.d.ts +8 -0
  75. package/dist/types/src/engine/builtins/shared.d.ts +49 -0
  76. package/dist/types/src/engine/comparison.d.ts +2 -0
  77. package/dist/types/src/engine/constants.d.ts +51 -0
  78. package/dist/types/src/engine/declarative/explanation.d.ts +2 -0
  79. package/dist/types/src/engine/declarative/field.d.ts +2 -0
  80. package/dist/types/src/engine/declarative/presentation.d.ts +61 -0
  81. package/dist/types/src/engine/declarative/report.d.ts +2 -0
  82. package/dist/types/src/engine/equality.d.ts +4 -0
  83. package/dist/types/src/engine/errors.d.ts +28 -0
  84. package/dist/types/src/engine/explanations/controller.d.ts +13 -0
  85. package/dist/types/src/engine/explanations/index.d.ts +1 -0
  86. package/dist/types/src/engine/fields/controller.d.ts +30 -0
  87. package/dist/types/src/engine/fields/index.d.ts +1 -0
  88. package/dist/types/src/engine/form.d.ts +2 -0
  89. package/dist/types/src/engine/index.d.ts +11 -0
  90. package/dist/types/src/engine/paths.d.ts +2 -0
  91. package/dist/types/src/engine/registry/index.d.ts +26 -0
  92. package/dist/types/src/engine/reports/controller.d.ts +19 -0
  93. package/dist/types/src/engine/reports/index.d.ts +1 -0
  94. package/dist/types/src/engine/schema/index.d.ts +7 -0
  95. package/dist/types/src/engine/state/engine.d.ts +60 -0
  96. package/dist/types/src/engine/state/index.d.ts +3 -0
  97. package/dist/types/src/engine/state/snapshots.d.ts +5 -0
  98. package/dist/types/src/engine/state/store.d.ts +13 -0
  99. package/dist/types/src/engine/submission/abort.d.ts +15 -0
  100. package/dist/types/src/engine/submission/explanations.d.ts +2 -0
  101. package/dist/types/src/engine/submission/index.d.ts +5 -0
  102. package/dist/types/src/engine/submission/lifecycle.d.ts +16 -0
  103. package/dist/types/src/engine/submission/pipeline.d.ts +2 -0
  104. package/dist/types/src/engine/submission/reports.d.ts +12 -0
  105. package/dist/types/src/engine/submission/request.d.ts +23 -0
  106. package/dist/types/src/engine/submission/result.d.ts +4 -0
  107. package/dist/types/src/engine/submission/submitter.d.ts +40 -0
  108. package/dist/types/src/engine/types/explanation.d.ts +109 -0
  109. package/dist/types/src/engine/types/field.d.ts +172 -0
  110. package/dist/types/src/engine/types/form.d.ts +120 -0
  111. package/dist/types/src/engine/types/index.d.ts +9 -0
  112. package/dist/types/src/engine/types/pipeline.d.ts +31 -0
  113. package/dist/types/src/engine/types/registry.d.ts +17 -0
  114. package/dist/types/src/engine/types/report.d.ts +87 -0
  115. package/dist/types/src/engine/types/transport.d.ts +41 -0
  116. package/dist/types/src/engine/utils.d.ts +9 -0
  117. package/dist/types/src/engine/validation/conditions.d.ts +11 -0
  118. package/dist/types/src/engine/validation/field.d.ts +29 -0
  119. package/dist/types/src/engine/validation/form.d.ts +35 -0
  120. package/dist/types/src/engine/validation/index.d.ts +3 -0
  121. package/dist/types/src/engine/values.d.ts +2 -0
  122. package/dist/types/src/index.d.ts +7 -0
  123. package/dist/types/src/kit/constants.d.ts +4 -0
  124. package/dist/types/src/kit/defaults.d.ts +11 -0
  125. package/dist/types/src/kit/index.d.ts +4 -0
  126. package/dist/types/src/kit/mount-form.d.ts +3 -0
  127. package/dist/types/src/kit/types.d.ts +52 -0
  128. package/dist/types/src/primitives/base-async-report-element.d.ts +19 -0
  129. package/dist/types/src/primitives/base-explanation-element.d.ts +21 -0
  130. package/dist/types/src/primitives/base-field-element.d.ts +21 -0
  131. package/dist/types/src/primitives/base-report-element.d.ts +15 -0
  132. package/dist/types/src/primitives/components/declarative-explanation.d.ts +5 -0
  133. package/dist/types/src/primitives/components/declarative-field.d.ts +6 -0
  134. package/dist/types/src/primitives/components/declarative-report.d.ts +5 -0
  135. package/dist/types/src/primitives/components/explanation-panel.d.ts +22 -0
  136. package/dist/types/src/primitives/components/field-frame.d.ts +21 -0
  137. package/dist/types/src/primitives/components/form-errors.d.ts +19 -0
  138. package/dist/types/src/primitives/components/form-root.d.ts +29 -0
  139. package/dist/types/src/primitives/components/presentation.d.ts +4 -0
  140. package/dist/types/src/primitives/components/report-frame.d.ts +22 -0
  141. package/dist/types/src/primitives/components/submit-button.d.ts +21 -0
  142. package/dist/types/src/primitives/components/unsupported-component.d.ts +14 -0
  143. package/dist/types/src/primitives/constants.d.ts +94 -0
  144. package/dist/types/src/primitives/controller-binding.d.ts +32 -0
  145. package/dist/types/src/primitives/fields/boolean-field.d.ts +6 -0
  146. package/dist/types/src/primitives/fields/category-field.d.ts +6 -0
  147. package/dist/types/src/primitives/fields/date-field.d.ts +6 -0
  148. package/dist/types/src/primitives/fields/long-text-field.d.ts +6 -0
  149. package/dist/types/src/primitives/fields/multi-choice-field.d.ts +6 -0
  150. package/dist/types/src/primitives/fields/number-field.d.ts +8 -0
  151. package/dist/types/src/primitives/fields/rating-field.d.ts +6 -0
  152. package/dist/types/src/primitives/fields/series-field.d.ts +8 -0
  153. package/dist/types/src/primitives/fields/single-choice-field.d.ts +6 -0
  154. package/dist/types/src/primitives/fields/text-field.d.ts +6 -0
  155. package/dist/types/src/primitives/index.d.ts +8 -0
  156. package/dist/types/src/primitives/mount-form.d.ts +4 -0
  157. package/dist/types/src/primitives/register.d.ts +0 -0
  158. package/dist/types/src/primitives/registry.d.ts +3 -0
  159. package/dist/types/src/primitives/reports/classifier-report.d.ts +5 -0
  160. package/dist/types/src/primitives/reports/regressor-report.d.ts +5 -0
  161. package/dist/types/src/primitives/types.d.ts +128 -0
  162. package/dist/types/src/primitives/utils.d.ts +3 -0
  163. package/dist/types/src/questionnaire/constants.d.ts +31 -0
  164. package/dist/types/src/questionnaire/defaults.d.ts +8 -0
  165. package/dist/types/src/questionnaire/engine/controller.d.ts +12 -0
  166. package/dist/types/src/questionnaire/engine/schema.d.ts +9 -0
  167. package/dist/types/src/questionnaire/errors.d.ts +3 -0
  168. package/dist/types/src/questionnaire/index.d.ts +6 -0
  169. package/dist/types/src/questionnaire/mount.d.ts +3 -0
  170. package/dist/types/src/questionnaire/primitives/components/questionnaire-root.d.ts +23 -0
  171. package/dist/types/src/questionnaire/primitives/components/step-indicator.d.ts +14 -0
  172. package/dist/types/src/questionnaire/primitives/register.d.ts +0 -0
  173. package/dist/types/src/questionnaire/types.d.ts +69 -0
  174. package/dist/types/src/shared/errors.d.ts +3 -0
  175. package/dist/types/src/shared/index.d.ts +1 -0
  176. package/dist/types/src/transport/capabilities.d.ts +7 -0
  177. package/dist/types/src/transport/clone.d.ts +6 -0
  178. package/dist/types/src/transport/composition/fallback.d.ts +2 -0
  179. package/dist/types/src/transport/composition/fanout.d.ts +3 -0
  180. package/dist/types/src/transport/composition/hedged.d.ts +2 -0
  181. package/dist/types/src/transport/composition/index.d.ts +7 -0
  182. package/dist/types/src/transport/composition/load-balancing.d.ts +2 -0
  183. package/dist/types/src/transport/composition/pipeline.d.ts +2 -0
  184. package/dist/types/src/transport/composition/racing.d.ts +2 -0
  185. package/dist/types/src/transport/composition/routing.d.ts +3 -0
  186. package/dist/types/src/transport/constants.d.ts +34 -0
  187. package/dist/types/src/transport/errors.d.ts +36 -0
  188. package/dist/types/src/transport/index.d.ts +9 -0
  189. package/dist/types/src/transport/internal.d.ts +110 -0
  190. package/dist/types/src/transport/middleware/auth.d.ts +2 -0
  191. package/dist/types/src/transport/middleware/cache.d.ts +2 -0
  192. package/dist/types/src/transport/middleware/circuit-breaker.d.ts +2 -0
  193. package/dist/types/src/transport/middleware/dedup.d.ts +2 -0
  194. package/dist/types/src/transport/middleware/index.d.ts +12 -0
  195. package/dist/types/src/transport/middleware/logging.d.ts +2 -0
  196. package/dist/types/src/transport/middleware/metrics.d.ts +2 -0
  197. package/dist/types/src/transport/middleware/pipe.d.ts +2 -0
  198. package/dist/types/src/transport/middleware/rate-limit.d.ts +2 -0
  199. package/dist/types/src/transport/middleware/retry.d.ts +2 -0
  200. package/dist/types/src/transport/middleware/timeout.d.ts +2 -0
  201. package/dist/types/src/transport/middleware/tracing.d.ts +2 -0
  202. package/dist/types/src/transport/middleware/transform.d.ts +3 -0
  203. package/dist/types/src/transport/policy-context.d.ts +3 -0
  204. package/dist/types/src/transport/protocols/graphql.d.ts +2 -0
  205. package/dist/types/src/transport/protocols/grpc.d.ts +5 -0
  206. package/dist/types/src/transport/protocols/index.d.ts +5 -0
  207. package/dist/types/src/transport/protocols/json.d.ts +2 -0
  208. package/dist/types/src/transport/protocols/sse.d.ts +2 -0
  209. package/dist/types/src/transport/protocols/websocket.d.ts +2 -0
  210. package/dist/types/src/transport/runtime.d.ts +4 -0
  211. package/dist/types/src/transport/state/cache-store.d.ts +2 -0
  212. package/dist/types/src/transport/state/circuit-breaker.d.ts +2 -0
  213. package/dist/types/src/transport/state/health.d.ts +2 -0
  214. package/dist/types/src/transport/state/index.d.ts +5 -0
  215. package/dist/types/src/transport/state/rate-limiter.d.ts +2 -0
  216. package/dist/types/src/transport/state/session.d.ts +2 -0
  217. package/dist/types/src/transport/types/capabilities.d.ts +35 -0
  218. package/dist/types/src/transport/types/core.d.ts +57 -0
  219. package/dist/types/src/transport/types/events.d.ts +50 -0
  220. package/dist/types/src/transport/types/index.d.ts +7 -0
  221. package/dist/types/src/transport/types/middleware.d.ts +3 -0
  222. package/dist/types/src/transport/types/options.d.ts +258 -0
  223. package/dist/types/src/transport/types/session.d.ts +48 -0
  224. package/dist/types/src/transport/types/state.d.ts +46 -0
  225. package/package.json +93 -37
  226. package/dist/FieldStrategy-pPekBtH-.js +0 -2318
  227. package/dist/ModelTypes-B9_veCKB.js +0 -5
  228. package/dist/ReportStrategy-DY3GC_mJ.js +0 -23
  229. package/dist/boolean-field-Cd3uhIPj.js +0 -104
  230. package/dist/category-field-D_Ms1x9u.js +0 -73
  231. package/dist/classifier-prediction-C5QzorTo.js +0 -193
  232. package/dist/custom-element-ttkHUa8w.js +0 -13
  233. package/dist/date-field-Cg_ja679.js +0 -162
  234. package/dist/error-card-BwjPChwf.js +0 -195
  235. package/dist/field-wrapper-DqIQl76d.js +0 -177
  236. package/dist/ml-layout-Dx63KKf7.js +0 -332
  237. package/dist/mlform/extensions.mjs +0 -38
  238. package/dist/mlform/strategies.mjs +0 -292
  239. package/dist/number-field-CC2DrVEb.js +0 -165
  240. package/dist/property-jKFNMQpR.js +0 -561
  241. package/dist/range-field-Cr7LEtsJ.js +0 -98
  242. package/dist/regressor-prediction-C18dHlfK.js +0 -236
  243. package/dist/src/core/app/DescriptorItem.d.ts +0 -6
  244. package/dist/src/core/app/DescriptorRegistry.d.ts +0 -13
  245. package/dist/src/core/app/DescriptorService.d.ts +0 -22
  246. package/dist/src/core/app/DescriptorStrategy.d.ts +0 -11
  247. package/dist/src/core/app/index.d.ts +0 -4
  248. package/dist/src/core/domain/index.d.ts +0 -24
  249. package/dist/src/core/index.d.ts +0 -3
  250. package/dist/src/core/ui/error-card.d.ts +0 -38
  251. package/dist/src/core/ui/field-wrapper.d.ts +0 -23
  252. package/dist/src/core/ui/index.d.ts +0 -3
  253. package/dist/src/core/ui/ml-layout.d.ts +0 -23
  254. package/dist/src/extensions/app/FieldStrategy.d.ts +0 -10
  255. package/dist/src/extensions/app/ReportStrategy.d.ts +0 -9
  256. package/dist/src/extensions/app/index.d.ts +0 -2
  257. package/dist/src/extensions/domain/BaseField.d.ts +0 -7
  258. package/dist/src/extensions/domain/BaseModel.d.ts +0 -6
  259. package/dist/src/extensions/domain/index.d.ts +0 -2
  260. package/dist/src/extensions/index.d.ts +0 -3
  261. package/dist/src/extensions/ui/field-element.d.ts +0 -9
  262. package/dist/src/extensions/ui/index.d.ts +0 -1
  263. package/dist/src/index.d.ts +0 -1
  264. package/dist/src/mlform/index.d.ts +0 -1
  265. package/dist/src/mlform/mlform.d.ts +0 -27
  266. package/dist/src/mlform/mlform.types.d.ts +0 -11
  267. package/dist/src/strategies/app/BooleanStrategy.d.ts +0 -12
  268. package/dist/src/strategies/app/CategoryStrategy.d.ts +0 -13
  269. package/dist/src/strategies/app/ClassifierStrategy.d.ts +0 -15
  270. package/dist/src/strategies/app/DateStrategy.d.ts +0 -15
  271. package/dist/src/strategies/app/NumberStrategy.d.ts +0 -29
  272. package/dist/src/strategies/app/RegressorStrategy.d.ts +0 -15
  273. package/dist/src/strategies/app/TextStrategy.d.ts +0 -16
  274. package/dist/src/strategies/app/index.d.ts +0 -7
  275. package/dist/src/strategies/domain/BooleanField.d.ts +0 -10
  276. package/dist/src/strategies/domain/CategoryField.d.ts +0 -11
  277. package/dist/src/strategies/domain/ClassifierModel.d.ts +0 -11
  278. package/dist/src/strategies/domain/DateField.d.ts +0 -13
  279. package/dist/src/strategies/domain/FieldTypes.d.ts +0 -7
  280. package/dist/src/strategies/domain/ModelTypes.d.ts +0 -4
  281. package/dist/src/strategies/domain/NumberField.d.ts +0 -15
  282. package/dist/src/strategies/domain/RegressorModel.d.ts +0 -11
  283. package/dist/src/strategies/domain/TextField.d.ts +0 -14
  284. package/dist/src/strategies/domain/index.d.ts +0 -9
  285. package/dist/src/strategies/index.d.ts +0 -1
  286. package/dist/src/strategies/ui/boolean-field.d.ts +0 -13
  287. package/dist/src/strategies/ui/category-field.d.ts +0 -14
  288. package/dist/src/strategies/ui/classifier-prediction.d.ts +0 -39
  289. package/dist/src/strategies/ui/date-field.d.ts +0 -18
  290. package/dist/src/strategies/ui/index.d.ts +0 -8
  291. package/dist/src/strategies/ui/number-field.d.ts +0 -19
  292. package/dist/src/strategies/ui/range-field.d.ts +0 -17
  293. package/dist/src/strategies/ui/regressor-prediction.d.ts +0 -29
  294. package/dist/src/strategies/ui/text-field.d.ts +0 -17
  295. package/dist/state-CLlTRyl1.js +0 -12
  296. package/dist/test/_fixtures/DummyField.d.ts +0 -9
  297. package/dist/test/setup.d.ts +0 -1
  298. package/dist/test/unit/DummyField.test.d.ts +0 -1
  299. package/dist/text-field-DwP-Fa1w.js +0 -114
@@ -0,0 +1,640 @@
1
+ import { f as e, h as t, r as n } from "../design-system-CrrSGfFB.js";
2
+ import { E as r, I as i, S as a, l as o, t as s } from "../engine-nnhWPT2L.js";
3
+ import { _ as c, b as l, d as u, g as d, h as f, m as p, o as m, p as h, r as g, u as _, v, x as y, y as b } from "../primitives-Pi-ztAr6.js";
4
+ //#region src/questionnaire/constants.ts
5
+ var x = {
6
+ questionnaire: "mlf-questionnaire",
7
+ stepIndicator: "mlf-step-indicator"
8
+ }, S = {
9
+ stepChange: "mlf-step-change",
10
+ stepValidationError: "mlf-step-validation-error",
11
+ submitStart: "mlf-q-submit-start",
12
+ submitAbort: "mlf-q-submit-abort",
13
+ submitSuccess: "mlf-q-submit-success",
14
+ submitError: "mlf-q-submit-error"
15
+ }, C = {
16
+ prev: "Previous",
17
+ next: "Next",
18
+ submit: "Submit",
19
+ validating: "Validating...",
20
+ submitting: "Submitting..."
21
+ }, w = Object.freeze({
22
+ stepLabel: (e, t) => `Step ${e} of ${t}`,
23
+ prevLabel: "Previous",
24
+ nextLabel: "Next",
25
+ submitLabel: "Submit",
26
+ validatingLabel: "Validating...",
27
+ submittingLabel: "Submitting..."
28
+ }), T = (e) => e ? Object.freeze({
29
+ ...w,
30
+ ...e
31
+ }) : w, E = class extends v {
32
+ static styles = y`
33
+ :host {
34
+ display: block;
35
+ min-width: 0;
36
+ }
37
+
38
+ *,
39
+ *::before,
40
+ *::after {
41
+ box-sizing: border-box;
42
+ }
43
+
44
+ .indicator {
45
+ display: grid;
46
+ gap: 0.5rem;
47
+ }
48
+
49
+ .header {
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: space-between;
53
+ gap: 1rem;
54
+ }
55
+
56
+ .step-label {
57
+ font-size: var(--mlf-font-size-sm, 0.84rem);
58
+ font-weight: 600;
59
+ letter-spacing: 0.05em;
60
+ text-transform: uppercase;
61
+ color: var(--mlf-color-text-muted, #475569);
62
+ }
63
+
64
+ .step-fraction {
65
+ font-size: var(--mlf-font-size-sm, 0.84rem);
66
+ font-weight: 700;
67
+ color: var(--mlf-color-accent, #1e40af);
68
+ }
69
+
70
+ .track {
71
+ height: 4px;
72
+ border-radius: 999px;
73
+ background: var(--mlf-color-border, #e2e8f0);
74
+ overflow: hidden;
75
+ }
76
+
77
+ .fill {
78
+ height: 100%;
79
+ border-radius: 999px;
80
+ background: var(--mlf-color-accent, #1e40af);
81
+ transition: width 0.3s ease;
82
+ }
83
+
84
+ .dots {
85
+ display: flex;
86
+ gap: 0.4rem;
87
+ flex-wrap: wrap;
88
+ }
89
+
90
+ .dot {
91
+ width: 8px;
92
+ height: 8px;
93
+ border-radius: 50%;
94
+ background: var(--mlf-color-border, #e2e8f0);
95
+ transition:
96
+ background-color 0.2s ease,
97
+ transform 0.2s ease;
98
+ }
99
+
100
+ .dot.active {
101
+ background: var(--mlf-color-accent, #1e40af);
102
+ transform: scale(1.25);
103
+ }
104
+
105
+ .dot.done {
106
+ background: color-mix(in srgb, var(--mlf-color-accent, #1e40af) 50%, transparent);
107
+ }
108
+ `;
109
+ #e = 1;
110
+ get current() {
111
+ return this.#e;
112
+ }
113
+ set current(e) {
114
+ this.#e = e;
115
+ }
116
+ #t = 1;
117
+ get total() {
118
+ return this.#t;
119
+ }
120
+ set total(e) {
121
+ this.#t = e;
122
+ }
123
+ #n = "Step";
124
+ get label() {
125
+ return this.#n;
126
+ }
127
+ set label(e) {
128
+ this.#n = e;
129
+ }
130
+ render() {
131
+ let e = this.total > 0 ? Math.round(this.current / this.total * 100) : 0;
132
+ return l`
133
+ <div
134
+ class="indicator"
135
+ role="status"
136
+ aria-label=${`${this.label} ${this.current} of ${this.total}`}
137
+ >
138
+ <div class="header">
139
+ <span class="step-label">${this.label}</span>
140
+ <span class="step-fraction">${this.current} / ${this.total}</span>
141
+ </div>
142
+ <div class="track" aria-hidden="true">
143
+ <div class="fill" style="width: ${e}%"></div>
144
+ </div>
145
+ <div class="dots" aria-hidden="true">
146
+ ${Array.from({ length: this.total }, (e, t) => l`<div class=${t + 1 < this.current ? "dot done" : t + 1 === this.current ? "dot active" : "dot"}></div>`)}
147
+ </div>
148
+ </div>
149
+ `;
150
+ }
151
+ };
152
+ u([d({ type: Number })], E.prototype, "current", null), u([d({ type: Number })], E.prototype, "total", null), u([d({ type: String })], E.prototype, "label", null), E = u([c(x.stepIndicator)], E);
153
+ //#endregion
154
+ //#region src/questionnaire/primitives/components/questionnaire-root.ts
155
+ var D = class extends v {
156
+ static styles = y`
157
+ :host {
158
+ display: block;
159
+ flex: 1 1 auto;
160
+ align-self: stretch;
161
+ inline-size: 100%;
162
+ block-size: 100%;
163
+ color: var(--mlf-shell-color, var(--mlf-color-text, #0f172a));
164
+ background: var(--mlf-shell-bg, var(--mlf-color-bg, #f5f7fa));
165
+ font-family: var(--mlf-font-family-body);
166
+ min-width: 0;
167
+ min-height: 0;
168
+ }
169
+
170
+ *,
171
+ *::before,
172
+ *::after {
173
+ box-sizing: border-box;
174
+ }
175
+
176
+ .root {
177
+ display: grid;
178
+ grid-template-rows: 1fr;
179
+ gap: var(--mlf-shell-gap, 1rem);
180
+ inline-size: 100%;
181
+ block-size: 100%;
182
+ min-width: 0;
183
+ min-height: 0;
184
+ }
185
+
186
+ .panel {
187
+ display: flex;
188
+ flex-direction: column;
189
+ min-width: 0;
190
+ min-height: 0;
191
+ overflow: hidden;
192
+ border-radius: var(--mlf-panel-radius, 12px);
193
+ border: var(--mlf-border-width, 1px) solid
194
+ var(--mlf-panel-border, var(--mlf-color-border, #e2e8f0));
195
+ background: var(--mlf-panel-bg, var(--mlf-color-surface, #ffffff));
196
+ box-shadow:
197
+ 0 2px 4px var(--mlf-panel-shadow-soft, rgba(0, 0, 0, 0.04)),
198
+ 0 8px 16px var(--mlf-panel-shadow, rgba(0, 0, 0, 0.04));
199
+ }
200
+
201
+ /* Fixed header — never scrolls */
202
+ .pane-header {
203
+ flex: 0 0 auto;
204
+ display: grid;
205
+ gap: 0.85rem;
206
+ padding: 1rem 1.5rem;
207
+ border-bottom: var(--mlf-border-width, 1px) solid
208
+ var(--mlf-panel-border, var(--mlf-color-border, #e2e8f0));
209
+ background: var(--mlf-panel-header-bg, rgba(255, 255, 255, 0.6));
210
+ backdrop-filter: blur(var(--mlf-header-blur, 3px));
211
+ -webkit-backdrop-filter: blur(var(--mlf-header-blur, 3px));
212
+ }
213
+
214
+ .step-title {
215
+ margin: 0;
216
+ font-size: 1.1rem;
217
+ font-weight: 700;
218
+ color: var(--mlf-pane-title-color, var(--mlf-color-text, #0f172a));
219
+ line-height: 1.3;
220
+ }
221
+
222
+ .step-description {
223
+ margin: 0;
224
+ font-size: var(--mlf-font-size-sm, 0.84rem);
225
+ color: var(--mlf-color-text-muted, #475569);
226
+ line-height: 1.5;
227
+ }
228
+
229
+ /* Scrollable middle — grows to fill available space */
230
+ .pane-body {
231
+ flex: 1 1 auto;
232
+ display: grid;
233
+ align-content: start;
234
+ gap: 1rem;
235
+ padding: 1rem 1rem 1.25rem;
236
+ overflow-y: auto;
237
+ overflow-x: hidden;
238
+ overscroll-behavior: contain;
239
+ scrollbar-color: color-mix(in srgb, var(--mlf-color-text-muted, #475569) 55%, transparent)
240
+ transparent;
241
+ }
242
+
243
+ .pane-body::-webkit-scrollbar {
244
+ width: 8px;
245
+ }
246
+
247
+ .pane-body::-webkit-scrollbar-thumb {
248
+ background: color-mix(in srgb, var(--mlf-color-text-muted, #475569) 50%, transparent);
249
+ border-radius: 999px;
250
+ }
251
+
252
+ .collection {
253
+ display: grid;
254
+ gap: var(--mlf-section-gap, 1rem);
255
+ }
256
+
257
+ /* Fixed footer — never scrolls */
258
+ .actions {
259
+ flex: 0 0 var(--mlf-q-footer-height, 4.5rem);
260
+ display: flex;
261
+ align-items: center;
262
+ justify-content: space-between;
263
+ gap: 1rem;
264
+ padding: 0.75rem 1.5rem;
265
+ border-top: var(--mlf-border-width, 1px) solid
266
+ var(--mlf-panel-border, var(--mlf-color-border, #e2e8f0));
267
+ background: var(--mlf-panel-footer-bg, var(--mlf-color-bg-light, #f5f7fa));
268
+ }
269
+
270
+ .btn {
271
+ display: inline-flex;
272
+ align-items: center;
273
+ justify-content: center;
274
+ gap: 0.5rem;
275
+ min-height: 2.5rem;
276
+ padding: 0.5rem 1.25rem;
277
+ border: var(--mlf-border-width, 1px) solid transparent;
278
+ border-radius: var(--mlf-input-radius, 12px);
279
+ font: inherit;
280
+ font-size: 0.95rem;
281
+ font-weight: 600;
282
+ cursor: pointer;
283
+ transition:
284
+ background-color 0.2s ease,
285
+ border-color 0.2s ease,
286
+ opacity 0.2s ease;
287
+ }
288
+
289
+ .btn:disabled {
290
+ cursor: not-allowed;
291
+ opacity: 0.55;
292
+ }
293
+
294
+ .btn-prev {
295
+ background: transparent;
296
+ border-color: var(--mlf-input-border, var(--mlf-color-border, #e2e8f0));
297
+ color: var(--mlf-color-text-muted, #475569);
298
+ }
299
+
300
+ .btn-prev:hover:not(:disabled) {
301
+ background: color-mix(in srgb, var(--mlf-color-text-muted, #475569) 8%, transparent);
302
+ }
303
+
304
+ .btn-next,
305
+ .btn-submit {
306
+ background: var(--mlf-submit-bg, var(--mlf-color-accent, #1e40af));
307
+ border-color: var(--mlf-submit-bg, var(--mlf-color-accent, #1e40af));
308
+ color: var(--mlf-submit-color, #ffffff);
309
+ }
310
+
311
+ .btn-next:hover:not(:disabled),
312
+ .btn-submit:hover:not(:disabled) {
313
+ opacity: 0.88;
314
+ }
315
+
316
+ .btn-next:focus-visible,
317
+ .btn-submit:focus-visible,
318
+ .btn-prev:focus-visible {
319
+ outline: none;
320
+ box-shadow: 0 0 0 3px var(--mlf-input-shadow-focus, rgba(29, 78, 216, 0.18));
321
+ }
322
+
323
+ .spacer {
324
+ flex: 1 1 auto;
325
+ }
326
+ `;
327
+ #e;
328
+ get controller() {
329
+ return this.#e;
330
+ }
331
+ set controller(e) {
332
+ this.#e = e;
333
+ }
334
+ #t;
335
+ get registry() {
336
+ return this.#t;
337
+ }
338
+ set registry(e) {
339
+ this.#t = e;
340
+ }
341
+ #n = w;
342
+ get text() {
343
+ return this.#n;
344
+ }
345
+ set text(e) {
346
+ this.#n = e;
347
+ }
348
+ #r = h;
349
+ get primitiveText() {
350
+ return this.#r;
351
+ }
352
+ set primitiveText(e) {
353
+ this.#r = e;
354
+ }
355
+ #i = null;
356
+ get qState() {
357
+ return this.#i;
358
+ }
359
+ set qState(e) {
360
+ this.#i = e;
361
+ }
362
+ #a = "idle";
363
+ get formStatus() {
364
+ return this.#a;
365
+ }
366
+ set formStatus(e) {
367
+ this.#a = e;
368
+ }
369
+ #o = new _(this, (e) => {
370
+ this.qState = e?.state ?? null, e && this.#f(e.form);
371
+ });
372
+ #s = null;
373
+ #c;
374
+ willUpdate(e) {
375
+ e.has("controller") && this.#o.bind(this.controller);
376
+ }
377
+ disconnectedCallback() {
378
+ this.#s?.(), this.#s = null, this.#c = void 0, super.disconnectedCallback();
379
+ }
380
+ render() {
381
+ let e = this.controller, t = this.qState;
382
+ if (!e || !t) return l``;
383
+ let { currentStep: n, stepProgress: r, canGoPrev: i, isLastStep: a } = t, o = e.form, s = this.text, c = this.formStatus, u = c === "submitting" || c === "validating", d = n.fieldIds.map((e) => o.getField(e)).filter((e) => e !== void 0 && e.state.visible), f = a ? c === "validating" ? s.validatingLabel : c === "submitting" ? s.submittingLabel : s.submitLabel : s.nextLabel;
384
+ return l`
385
+ <div class="root">
386
+ <section class="panel" part="questionnaire-panel">
387
+ <header class="pane-header">
388
+ <mlf-step-indicator
389
+ .current=${r.current}
390
+ .total=${r.total}
391
+ .label=${s.stepLabel(r.current, r.total).split(" ")[0] ?? "Step"}
392
+ ></mlf-step-indicator>
393
+
394
+ <h1 class="step-title">${n.title}</h1>
395
+
396
+ ${n.description ? l`<p class="step-description">${n.description}</p>` : b}
397
+ </header>
398
+
399
+ <div class="pane-body">
400
+ <div class="collection" part="field-list">
401
+ ${m(d, (e) => e.id, (e) => l`
402
+ <mlf-field-frame
403
+ .controller=${e}
404
+ .registry=${this.registry}
405
+ .text=${this.primitiveText}
406
+ ></mlf-field-frame>
407
+ `)}
408
+ </div>
409
+ </div>
410
+
411
+ <div class="actions" part="actions">
412
+ <button
413
+ type="button"
414
+ class="btn btn-prev"
415
+ ?disabled=${!i || u}
416
+ @click=${this.#u}
417
+ >
418
+ ${s.prevLabel}
419
+ </button>
420
+
421
+ <span class="spacer"></span>
422
+
423
+ <button
424
+ type="button"
425
+ class=${a ? "btn btn-submit" : "btn btn-next"}
426
+ ?disabled=${u}
427
+ @click=${a ? this.#d : this.#l}
428
+ >
429
+ ${f}
430
+ </button>
431
+ </div>
432
+ </section>
433
+ </div>
434
+ `;
435
+ }
436
+ #l = async () => {
437
+ let e = this.controller;
438
+ e && (await e.next() ? this.dispatchEvent(new CustomEvent(S.stepChange, {
439
+ detail: { state: e.state },
440
+ bubbles: !0,
441
+ composed: !0
442
+ })) : this.dispatchEvent(new CustomEvent(S.stepValidationError, {
443
+ detail: { state: e.state },
444
+ bubbles: !0,
445
+ composed: !0
446
+ })));
447
+ };
448
+ #u = () => {
449
+ let e = this.controller;
450
+ e && (e.prev(), this.dispatchEvent(new CustomEvent(S.stepChange, {
451
+ detail: { state: e.state },
452
+ bubbles: !0,
453
+ composed: !0
454
+ })));
455
+ };
456
+ #d = async () => {
457
+ let e = this.controller;
458
+ if (e) {
459
+ if (!await e.next()) {
460
+ this.dispatchEvent(new CustomEvent(S.stepValidationError, {
461
+ detail: { state: e.state },
462
+ bubbles: !0,
463
+ composed: !0
464
+ }));
465
+ return;
466
+ }
467
+ this.dispatchEvent(new CustomEvent(S.submitStart, {
468
+ detail: {
469
+ form: e.form,
470
+ state: e.form.state
471
+ },
472
+ bubbles: !0,
473
+ composed: !0
474
+ }));
475
+ try {
476
+ let t = await e.form.submit();
477
+ this.dispatchEvent(new CustomEvent(S.submitSuccess, {
478
+ detail: {
479
+ form: e.form,
480
+ state: e.form.state,
481
+ result: t
482
+ },
483
+ bubbles: !0,
484
+ composed: !0
485
+ }));
486
+ } catch (t) {
487
+ this.dispatchEvent(new CustomEvent(t instanceof i ? S.submitAbort : S.submitError, {
488
+ detail: {
489
+ form: e.form,
490
+ state: e.form.state,
491
+ error: t
492
+ },
493
+ bubbles: !0,
494
+ composed: !0
495
+ }));
496
+ }
497
+ }
498
+ };
499
+ #f(e) {
500
+ this.#c !== e && (this.#s?.(), this.#s = null, this.#c = e, this.formStatus = e.state.status, this.#s = e.subscribeSelector(() => e.state.status, (e) => {
501
+ this.formStatus = e;
502
+ }));
503
+ }
504
+ };
505
+ u([d({ attribute: !1 })], D.prototype, "controller", null), u([d({ attribute: !1 })], D.prototype, "registry", null), u([d({ attribute: !1 })], D.prototype, "text", null), u([d({ attribute: !1 })], D.prototype, "primitiveText", null), u([f()], D.prototype, "qState", null), u([f()], D.prototype, "formStatus", null), D = u([c(x.questionnaire)], D);
506
+ //#endregion
507
+ //#region src/questionnaire/defaults.ts
508
+ var O = {
509
+ mode: "auto",
510
+ theme: "neutral",
511
+ recipe: "default"
512
+ }, k = (e) => {
513
+ if (!e) return o();
514
+ let t = r();
515
+ for (let n of e.listFields()) t.registerField(n);
516
+ for (let n of e.listReports()) t.registerReport(n);
517
+ for (let n of e.listExplanations()) t.registerExplanation(n);
518
+ return t;
519
+ }, A = (e) => e?.clone() ?? g(), j = (e) => e?.clone() ?? t.clone(), M = (t) => e(O, t ?? {}), N = class {
520
+ #e;
521
+ #t;
522
+ #n = 0;
523
+ #r = /* @__PURE__ */ new Set();
524
+ constructor(e, t) {
525
+ this.#e = e, this.#t = t;
526
+ }
527
+ get steps() {
528
+ return this.#t;
529
+ }
530
+ get form() {
531
+ return this.#e;
532
+ }
533
+ get state() {
534
+ return this.#a();
535
+ }
536
+ async next() {
537
+ let e = this.#t[this.#n];
538
+ if (!e) return !1;
539
+ let t = e.fieldIds.map((e) => this.#e.getField(e)).filter((e) => e !== void 0 && e.state.visible);
540
+ return (await Promise.all(t.map((e) => e.validate()))).some((e) => e.errors.length > 0) ? !1 : (this.#n < this.#t.length - 1 && (this.#n++, this.#i()), !0);
541
+ }
542
+ prev() {
543
+ this.#n > 0 && (this.#n--, this.#i());
544
+ }
545
+ subscribe(e) {
546
+ return this.#r.add(e), () => {
547
+ this.#r.delete(e);
548
+ };
549
+ }
550
+ #i() {
551
+ let e = this.#a();
552
+ for (let t of this.#r) t(e);
553
+ }
554
+ #a() {
555
+ let e = this.#t.length, t = this.#n, n = this.#t[t];
556
+ if (!n) throw Error("QuestionnaireController: invalid step index.");
557
+ return {
558
+ stepIndex: t,
559
+ canGoNext: t < e - 1,
560
+ canGoPrev: t > 0,
561
+ isLastStep: t === e - 1,
562
+ stepProgress: {
563
+ current: t + 1,
564
+ total: e
565
+ },
566
+ currentStep: n
567
+ };
568
+ }
569
+ }, P = class extends Error {
570
+ constructor(e) {
571
+ super(e), this.name = "QuestionnaireError";
572
+ }
573
+ }, F = (e, t, n, r) => {
574
+ let i = a(e ?? t) || `step-${n + 1}`;
575
+ if (e) {
576
+ if (r.has(i)) throw new P(`Duplicate step id "${i}".`);
577
+ return r.add(i), i;
578
+ }
579
+ let o = i, s = 2;
580
+ for (; r.has(o);) o = `${i}-${s}`, s++;
581
+ return r.add(o), o;
582
+ }, I = (e, t) => {
583
+ if (!e.steps || e.steps.length === 0) throw new P("Questionnaire must have at least one step.");
584
+ let n = [], r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Map();
585
+ return {
586
+ steps: e.steps.map((e, t) => {
587
+ let o = F(e.id, e.title, t, r);
588
+ if (!e.fields || e.fields.length === 0) throw new P(`Step "${e.title}" must have at least one field.`);
589
+ let s = e.fields.map((e) => {
590
+ let t = `${o}-${a(e.label) || "field"}`, r = i.get(t) ?? 0;
591
+ i.set(t, r + 1);
592
+ let s = r === 0 ? t : `${t}-${r + 1}`;
593
+ return n.push({
594
+ ...e,
595
+ id: s
596
+ }), s;
597
+ });
598
+ return {
599
+ id: o,
600
+ title: e.title,
601
+ description: e.description,
602
+ fieldIds: s
603
+ };
604
+ }),
605
+ formSchema: { fields: n }
606
+ };
607
+ }, L = (e) => e, R = Symbol("mlform.questionnaire.mounted"), z = (e, t) => {
608
+ let r = e;
609
+ r[R]?.unmount();
610
+ let i = k(t.registry), a = A(t.primitiveRegistry), o = j(t.designSystemRegistry), c = M(t.designSystem), { steps: l, formSchema: u } = I(t.schema, i), d = s({
611
+ schema: u,
612
+ registry: i,
613
+ transport: t.transport,
614
+ initialValues: t.initialValues,
615
+ validators: t.validators,
616
+ hooks: t.hooks,
617
+ inactiveFieldPolicy: t.inactiveFieldPolicy,
618
+ listenerErrorPolicy: t.listenerErrorPolicy,
619
+ onListenerError: t.onListenerError
620
+ }), f = new N(d, l), m = document.createElement(x.questionnaire);
621
+ m.controller = f, m.registry = a, m.text = T(t.text), m.primitiveText = p(t.primitiveText), e.replaceChildren(m);
622
+ let h = n(m, {
623
+ config: c,
624
+ registry: o,
625
+ onChange: t.onDesignSystemChange
626
+ }), g = !1, _ = Object.freeze({
627
+ controller: f,
628
+ form: d,
629
+ host: m,
630
+ designSystem: h,
631
+ unmount() {
632
+ g || (g = !0, r[R] === _ && delete r[R], d.abortSubmit("unmount"), h.disconnect(), m.remove());
633
+ }
634
+ });
635
+ return r[R] = _, _;
636
+ }, B = (e) => {
637
+ e.unmount();
638
+ };
639
+ //#endregion
640
+ export { N as QuestionnaireController, P as QuestionnaireError, L as createQuestionnaireSchema, z as mountQuestionnaire, I as normalizeQuestionnaireSchema, C as questionnaireDefaultLabels, S as questionnaireEventNames, w as questionnaireStaticText, x as questionnaireTagNames, T as resolveQuestionnaireText, B as unmountQuestionnaire };
@@ -0,0 +1,2 @@
1
+ import { A as e, B as t, C as n, D as r, E as i, F as a, G as o, H as s, I as c, K as l, L as u, M as d, N as f, O as p, P as m, R as h, S as g, T as _, U as v, V as y, W as b, _ as x, a as S, b as C, c as w, d as T, f as E, g as D, h as O, i as k, j as A, k as j, l as M, m as N, n as P, o as F, p as I, q as L, r as R, s as z, t as B, u as V, v as H, w as U, x as W, y as G, z as K } from "../transport-A1RsnZhD.js";
2
+ export { l as TransportError, h as assertPayloadWithinLimits, K as assertTransportCapabilities, t as cloneCapabilities, S as createFallbackTransport, F as createFanoutTransport, m as createGraphqlTransport, r as createGrpcSessionTransport, p as createGrpcStreamTransport, j as createGrpcTransport, e as createGrpcUnaryTransport, P as createHedgedTransport, a as createJsonTransport, w as createLoadBalancedTransport, x as createMemoryCircuitBreakerState, O as createMemorySharedRateLimiter, E as createMemoryTransportCacheStore, B as createMemoryTransportHealthState, k as createPipelineTransport, z as createQuorumFanoutTransport, R as createRacingTransport, M as createRoutingTransport, d as createSessionTransport, f as createSseTransport, A as createWebSocketSessionTransport, V as createWeightedRoutingTransport, c as getTransportPolicyContext, y as inferTransportCapabilities, s as mergeTransportCapabilities, v as normalizeTransportCapabilities, i as pipe, b as transportDefaults, L as transportErrorCodes, o as transportErrorMessages, H as withAuth, T as withCache, D as withCircuitBreaker, I as withDedup, W as withLogging, G as withMetrics, N as withRateLimit, g as withRequestTransform, n as withResponseTransform, _ as withRetry, U as withTimeout, C as withTracing, u as withTransportPolicyContext };