iss-ctrl 0.0.11 → 0.0.13

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 (328) hide show
  1. package/fesm2022/{iss-ctrl-iss-ctrl-hz0ibyPg.mjs → iss-ctrl-iss-ctrl-BN9rcLt2.mjs} +1293 -198
  2. package/fesm2022/iss-ctrl-iss-ctrl-BN9rcLt2.mjs.map +1 -0
  3. package/fesm2022/iss-ctrl-iss-ctrl-DOmgkxUv.mjs +8924 -0
  4. package/fesm2022/iss-ctrl-iss-ctrl-DOmgkxUv.mjs.map +1 -0
  5. package/fesm2022/iss-ctrl-iss-ctrl-WfIqBEcL.mjs +8913 -0
  6. package/fesm2022/iss-ctrl-iss-ctrl-WfIqBEcL.mjs.map +1 -0
  7. package/fesm2022/{iss-ctrl-load-event-BW5dKG8R.mjs → iss-ctrl-load-event-AgBohfHa.mjs} +3 -3
  8. package/fesm2022/{iss-ctrl-load-event-BW5dKG8R.mjs.map → iss-ctrl-load-event-AgBohfHa.mjs.map} +1 -1
  9. package/fesm2022/iss-ctrl-load-event-D70VZuyD.mjs +60 -0
  10. package/fesm2022/iss-ctrl-load-event-D70VZuyD.mjs.map +1 -0
  11. package/fesm2022/iss-ctrl-load-event-SlQmVmyf.mjs +60 -0
  12. package/fesm2022/iss-ctrl-load-event-SlQmVmyf.mjs.map +1 -0
  13. package/fesm2022/{iss-ctrl-load-options-event-ClX9TiiD.mjs → iss-ctrl-load-options-event-CBejHpME.mjs} +3 -3
  14. package/fesm2022/{iss-ctrl-load-options-event-ClX9TiiD.mjs.map → iss-ctrl-load-options-event-CBejHpME.mjs.map} +1 -1
  15. package/fesm2022/iss-ctrl-load-options-event-ClQPHNBO.mjs +50 -0
  16. package/fesm2022/iss-ctrl-load-options-event-ClQPHNBO.mjs.map +1 -0
  17. package/fesm2022/iss-ctrl-load-options-event-DHmaMAOb.mjs +50 -0
  18. package/fesm2022/iss-ctrl-load-options-event-DHmaMAOb.mjs.map +1 -0
  19. package/fesm2022/{iss-ctrl-load-value-event-DThpI9BA.mjs → iss-ctrl-load-value-event-Bu9-rZ6T.mjs} +3 -3
  20. package/fesm2022/{iss-ctrl-load-value-event-DThpI9BA.mjs.map → iss-ctrl-load-value-event-Bu9-rZ6T.mjs.map} +1 -1
  21. package/fesm2022/iss-ctrl-load-value-event-CDAKsE_O.mjs +52 -0
  22. package/fesm2022/iss-ctrl-load-value-event-CDAKsE_O.mjs.map +1 -0
  23. package/fesm2022/iss-ctrl-load-value-event-Cpuy1og1.mjs +52 -0
  24. package/fesm2022/iss-ctrl-load-value-event-Cpuy1og1.mjs.map +1 -0
  25. package/fesm2022/{iss-ctrl-note.field-4uLl0oS_.mjs → iss-ctrl-note.field-C9cVaAz0.mjs} +24 -2
  26. package/fesm2022/iss-ctrl-note.field-C9cVaAz0.mjs.map +1 -0
  27. package/fesm2022/iss-ctrl-note.field-IM4x1O3b.mjs +65 -0
  28. package/fesm2022/iss-ctrl-note.field-IM4x1O3b.mjs.map +1 -0
  29. package/fesm2022/iss-ctrl-note.field-onDjqI_X.mjs +65 -0
  30. package/fesm2022/iss-ctrl-note.field-onDjqI_X.mjs.map +1 -0
  31. package/fesm2022/{iss-ctrl-replace-api-keys-BQL9zimJ.mjs → iss-ctrl-replace-api-keys-CLP4wBYu.mjs} +2 -2
  32. package/fesm2022/{iss-ctrl-replace-api-keys-BQL9zimJ.mjs.map → iss-ctrl-replace-api-keys-CLP4wBYu.mjs.map} +1 -1
  33. package/fesm2022/iss-ctrl-replace-api-keys-Chwe42Nu.mjs +57 -0
  34. package/fesm2022/iss-ctrl-replace-api-keys-Chwe42Nu.mjs.map +1 -0
  35. package/fesm2022/iss-ctrl-replace-api-keys-CvhCKvNB.mjs +57 -0
  36. package/fesm2022/iss-ctrl-replace-api-keys-CvhCKvNB.mjs.map +1 -0
  37. package/fesm2022/{iss-ctrl-set-value-event-BbEYFBe3.mjs → iss-ctrl-set-value-event-C7YYwHZV.mjs} +2 -2
  38. package/fesm2022/{iss-ctrl-set-value-event-BbEYFBe3.mjs.map → iss-ctrl-set-value-event-C7YYwHZV.mjs.map} +1 -1
  39. package/fesm2022/iss-ctrl-set-value-event-CrpzRR6X.mjs +61 -0
  40. package/fesm2022/iss-ctrl-set-value-event-CrpzRR6X.mjs.map +1 -0
  41. package/fesm2022/iss-ctrl-set-value-event-DiHESiPT.mjs +61 -0
  42. package/fesm2022/iss-ctrl-set-value-event-DiHESiPT.mjs.map +1 -0
  43. package/fesm2022/iss-ctrl-table.field-BP-HMKO3.mjs +592 -0
  44. package/fesm2022/iss-ctrl-table.field-BP-HMKO3.mjs.map +1 -0
  45. package/fesm2022/iss-ctrl-table.field-CDSVakji.mjs +592 -0
  46. package/fesm2022/iss-ctrl-table.field-CDSVakji.mjs.map +1 -0
  47. package/fesm2022/{iss-ctrl-table.field-kPIwve-M.mjs → iss-ctrl-table.field-DxwfNXNc.mjs} +77 -2
  48. package/fesm2022/iss-ctrl-table.field-DxwfNXNc.mjs.map +1 -0
  49. package/fesm2022/{iss-ctrl-trigger-based-on-json-value-DuLD4SOS.mjs → iss-ctrl-trigger-based-on-json-value-CprcFCWi.mjs} +2 -2
  50. package/fesm2022/{iss-ctrl-trigger-based-on-json-value-DuLD4SOS.mjs.map → iss-ctrl-trigger-based-on-json-value-CprcFCWi.mjs.map} +1 -1
  51. package/fesm2022/iss-ctrl-trigger-based-on-json-value-DS4TR38v.mjs +24 -0
  52. package/fesm2022/iss-ctrl-trigger-based-on-json-value-DS4TR38v.mjs.map +1 -0
  53. package/fesm2022/iss-ctrl-trigger-based-on-json-value-Dp0EhVLA.mjs +24 -0
  54. package/fesm2022/iss-ctrl-trigger-based-on-json-value-Dp0EhVLA.mjs.map +1 -0
  55. package/fesm2022/{iss-ctrl-user-picker.field-l-0bW6lP.mjs → iss-ctrl-user-picker.field-8Jb1325c.mjs} +33 -8
  56. package/fesm2022/iss-ctrl-user-picker.field-8Jb1325c.mjs.map +1 -0
  57. package/fesm2022/iss-ctrl-user-picker.field-Mqi37i7D.mjs +225 -0
  58. package/fesm2022/iss-ctrl-user-picker.field-Mqi37i7D.mjs.map +1 -0
  59. package/fesm2022/iss-ctrl-user-picker.field-PxT_dZ_O.mjs +225 -0
  60. package/fesm2022/iss-ctrl-user-picker.field-PxT_dZ_O.mjs.map +1 -0
  61. package/fesm2022/iss-ctrl.mjs +1 -1
  62. package/package.json +1 -1
  63. package/types/iss-ctrl.d.ts +1115 -0
  64. package/upgrade.scss +16 -0
  65. package/fesm2022/iss-ctrl-iss-ctrl-hz0ibyPg.mjs.map +0 -1
  66. package/fesm2022/iss-ctrl-note.field-4uLl0oS_.mjs.map +0 -1
  67. package/fesm2022/iss-ctrl-table.field-kPIwve-M.mjs.map +0 -1
  68. package/fesm2022/iss-ctrl-user-picker.field-l-0bW6lP.mjs.map +0 -1
  69. package/src/components/controls/mobile/flags/ad.svg +0 -282
  70. package/src/components/controls/mobile/flags/ae.svg +0 -6
  71. package/src/components/controls/mobile/flags/af.svg +0 -9
  72. package/src/components/controls/mobile/flags/ag.svg +0 -15
  73. package/src/components/controls/mobile/flags/ai.svg +0 -35
  74. package/src/components/controls/mobile/flags/al.svg +0 -7
  75. package/src/components/controls/mobile/flags/am.svg +0 -5
  76. package/src/components/controls/mobile/flags/ao.svg +0 -19
  77. package/src/components/controls/mobile/flags/aq.svg +0 -45
  78. package/src/components/controls/mobile/flags/ar.svg +0 -66
  79. package/src/components/controls/mobile/flags/as.svg +0 -225
  80. package/src/components/controls/mobile/flags/at.svg +0 -4
  81. package/src/components/controls/mobile/flags/au.svg +0 -32
  82. package/src/components/controls/mobile/flags/aw.svg +0 -11
  83. package/src/components/controls/mobile/flags/ax.svg +0 -11
  84. package/src/components/controls/mobile/flags/az.svg +0 -11
  85. package/src/components/controls/mobile/flags/ba.svg +0 -18
  86. package/src/components/controls/mobile/flags/bb.svg +0 -11
  87. package/src/components/controls/mobile/flags/bd.svg +0 -4
  88. package/src/components/controls/mobile/flags/be.svg +0 -5
  89. package/src/components/controls/mobile/flags/bf.svg +0 -14
  90. package/src/components/controls/mobile/flags/bg.svg +0 -5
  91. package/src/components/controls/mobile/flags/bh.svg +0 -4
  92. package/src/components/controls/mobile/flags/bi.svg +0 -26
  93. package/src/components/controls/mobile/flags/bj.svg +0 -5
  94. package/src/components/controls/mobile/flags/bl.svg +0 -5
  95. package/src/components/controls/mobile/flags/bm.svg +0 -374
  96. package/src/components/controls/mobile/flags/bn.svg +0 -70
  97. package/src/components/controls/mobile/flags/bo.svg +0 -3625
  98. package/src/components/controls/mobile/flags/bq.svg +0 -5
  99. package/src/components/controls/mobile/flags/br.svg +0 -92
  100. package/src/components/controls/mobile/flags/bs.svg +0 -5
  101. package/src/components/controls/mobile/flags/bt.svg +0 -487
  102. package/src/components/controls/mobile/flags/bv.svg +0 -11
  103. package/src/components/controls/mobile/flags/bw.svg +0 -5
  104. package/src/components/controls/mobile/flags/by.svg +0 -15
  105. package/src/components/controls/mobile/flags/bz.svg +0 -629
  106. package/src/components/controls/mobile/flags/ca.svg +0 -7
  107. package/src/components/controls/mobile/flags/cc.svg +0 -33
  108. package/src/components/controls/mobile/flags/cd.svg +0 -5
  109. package/src/components/controls/mobile/flags/cf.svg +0 -7
  110. package/src/components/controls/mobile/flags/cg.svg +0 -5
  111. package/src/components/controls/mobile/flags/ch.svg +0 -4
  112. package/src/components/controls/mobile/flags/ci.svg +0 -5
  113. package/src/components/controls/mobile/flags/ck.svg +0 -29
  114. package/src/components/controls/mobile/flags/cl.svg +0 -14
  115. package/src/components/controls/mobile/flags/cm.svg +0 -15
  116. package/src/components/controls/mobile/flags/cn.svg +0 -11
  117. package/src/components/controls/mobile/flags/co.svg +0 -5
  118. package/src/components/controls/mobile/flags/cr.svg +0 -1332
  119. package/src/components/controls/mobile/flags/cu.svg +0 -6
  120. package/src/components/controls/mobile/flags/cv.svg +0 -24
  121. package/src/components/controls/mobile/flags/cw.svg +0 -16
  122. package/src/components/controls/mobile/flags/cx.svg +0 -24
  123. package/src/components/controls/mobile/flags/cy.svg +0 -13
  124. package/src/components/controls/mobile/flags/cz.svg +0 -5
  125. package/src/components/controls/mobile/flags/de.svg +0 -5
  126. package/src/components/controls/mobile/flags/dj.svg +0 -6
  127. package/src/components/controls/mobile/flags/dk.svg +0 -5
  128. package/src/components/controls/mobile/flags/dm.svg +0 -198
  129. package/src/components/controls/mobile/flags/do.svg +0 -238
  130. package/src/components/controls/mobile/flags/dz.svg +0 -5
  131. package/src/components/controls/mobile/flags/ec.svg +0 -1292
  132. package/src/components/controls/mobile/flags/ee.svg +0 -5
  133. package/src/components/controls/mobile/flags/eg.svg +0 -125
  134. package/src/components/controls/mobile/flags/eh.svg +0 -12
  135. package/src/components/controls/mobile/flags/er.svg +0 -9
  136. package/src/components/controls/mobile/flags/es.svg +0 -445
  137. package/src/components/controls/mobile/flags/et.svg +0 -16
  138. package/src/components/controls/mobile/flags/eu.svg +0 -28
  139. package/src/components/controls/mobile/flags/fi.svg +0 -5
  140. package/src/components/controls/mobile/flags/fj.svg +0 -203
  141. package/src/components/controls/mobile/flags/fk.svg +0 -922
  142. package/src/components/controls/mobile/flags/flags.png +0 -0
  143. package/src/components/controls/mobile/flags/flags@2x.png +0 -0
  144. package/src/components/controls/mobile/flags/fm.svg +0 -16
  145. package/src/components/controls/mobile/flags/fo.svg +0 -11
  146. package/src/components/controls/mobile/flags/fonts.css +0 -271
  147. package/src/components/controls/mobile/flags/fr.svg +0 -5
  148. package/src/components/controls/mobile/flags/ga.svg +0 -5
  149. package/src/components/controls/mobile/flags/gb-eng.svg +0 -7
  150. package/src/components/controls/mobile/flags/gb-nir.svg +0 -15
  151. package/src/components/controls/mobile/flags/gb-sct.svg +0 -11
  152. package/src/components/controls/mobile/flags/gb-wls.svg +0 -16
  153. package/src/components/controls/mobile/flags/gb.svg +0 -15
  154. package/src/components/controls/mobile/flags/gd.svg +0 -11
  155. package/src/components/controls/mobile/flags/ge.svg +0 -17
  156. package/src/components/controls/mobile/flags/gf.svg +0 -5
  157. package/src/components/controls/mobile/flags/gg.svg +0 -8
  158. package/src/components/controls/mobile/flags/gh.svg +0 -6
  159. package/src/components/controls/mobile/flags/gi.svg +0 -69
  160. package/src/components/controls/mobile/flags/gl.svg +0 -4
  161. package/src/components/controls/mobile/flags/gm.svg +0 -7
  162. package/src/components/controls/mobile/flags/gn.svg +0 -5
  163. package/src/components/controls/mobile/flags/gp.svg +0 -5
  164. package/src/components/controls/mobile/flags/gq.svg +0 -88
  165. package/src/components/controls/mobile/flags/gr.svg +0 -4
  166. package/src/components/controls/mobile/flags/gs.svg +0 -693
  167. package/src/components/controls/mobile/flags/gt.svg +0 -317
  168. package/src/components/controls/mobile/flags/gu.svg +0 -58
  169. package/src/components/controls/mobile/flags/gw.svg +0 -13
  170. package/src/components/controls/mobile/flags/gy.svg +0 -7
  171. package/src/components/controls/mobile/flags/hk.svg +0 -17
  172. package/src/components/controls/mobile/flags/hm.svg +0 -32
  173. package/src/components/controls/mobile/flags/hn.svg +0 -10
  174. package/src/components/controls/mobile/flags/hr.svg +0 -282
  175. package/src/components/controls/mobile/flags/ht.svg +0 -1470
  176. package/src/components/controls/mobile/flags/hu.svg +0 -5
  177. package/src/components/controls/mobile/flags/id.svg +0 -4
  178. package/src/components/controls/mobile/flags/ie.svg +0 -5
  179. package/src/components/controls/mobile/flags/il.svg +0 -5
  180. package/src/components/controls/mobile/flags/im.svg +0 -33
  181. package/src/components/controls/mobile/flags/in.svg +0 -25
  182. package/src/components/controls/mobile/flags/io.svg +0 -895
  183. package/src/components/controls/mobile/flags/iq.svg +0 -12
  184. package/src/components/controls/mobile/flags/ir.svg +0 -31
  185. package/src/components/controls/mobile/flags/is.svg +0 -5
  186. package/src/components/controls/mobile/flags/it.svg +0 -5
  187. package/src/components/controls/mobile/flags/je.svg +0 -40
  188. package/src/components/controls/mobile/flags/jm.svg +0 -9
  189. package/src/components/controls/mobile/flags/jo.svg +0 -10
  190. package/src/components/controls/mobile/flags/jp.svg +0 -4
  191. package/src/components/controls/mobile/flags/ke.svg +0 -28
  192. package/src/components/controls/mobile/flags/kg.svg +0 -7
  193. package/src/components/controls/mobile/flags/kh.svg +0 -133
  194. package/src/components/controls/mobile/flags/ki.svg +0 -54
  195. package/src/components/controls/mobile/flags/km.svg +0 -13
  196. package/src/components/controls/mobile/flags/kn.svg +0 -24
  197. package/src/components/controls/mobile/flags/kp.svg +0 -16
  198. package/src/components/controls/mobile/flags/kr.svg +0 -16
  199. package/src/components/controls/mobile/flags/kw.svg +0 -6
  200. package/src/components/controls/mobile/flags/ky.svg +0 -153
  201. package/src/components/controls/mobile/flags/kz.svg +0 -49
  202. package/src/components/controls/mobile/flags/la.svg +0 -5
  203. package/src/components/controls/mobile/flags/lb.svg +0 -8
  204. package/src/components/controls/mobile/flags/lc.svg +0 -6
  205. package/src/components/controls/mobile/flags/li.svg +0 -75
  206. package/src/components/controls/mobile/flags/lk.svg +0 -50
  207. package/src/components/controls/mobile/flags/lr.svg +0 -15
  208. package/src/components/controls/mobile/flags/ls.svg +0 -32
  209. package/src/components/controls/mobile/flags/lt.svg +0 -5
  210. package/src/components/controls/mobile/flags/lu.svg +0 -5
  211. package/src/components/controls/mobile/flags/lv.svg +0 -4
  212. package/src/components/controls/mobile/flags/ly.svg +0 -8
  213. package/src/components/controls/mobile/flags/ma.svg +0 -4
  214. package/src/components/controls/mobile/flags/mc.svg +0 -4
  215. package/src/components/controls/mobile/flags/md.svg +0 -102
  216. package/src/components/controls/mobile/flags/me.svg +0 -240
  217. package/src/components/controls/mobile/flags/mf.svg +0 -5
  218. package/src/components/controls/mobile/flags/mg.svg +0 -5
  219. package/src/components/controls/mobile/flags/mh.svg +0 -18
  220. package/src/components/controls/mobile/flags/mk.svg +0 -6
  221. package/src/components/controls/mobile/flags/ml.svg +0 -5
  222. package/src/components/controls/mobile/flags/mm.svg +0 -12
  223. package/src/components/controls/mobile/flags/mn.svg +0 -12
  224. package/src/components/controls/mobile/flags/mo.svg +0 -13
  225. package/src/components/controls/mobile/flags/mp.svg +0 -2919
  226. package/src/components/controls/mobile/flags/mq.svg +0 -5
  227. package/src/components/controls/mobile/flags/mr.svg +0 -5
  228. package/src/components/controls/mobile/flags/ms.svg +0 -59
  229. package/src/components/controls/mobile/flags/mt.svg +0 -52
  230. package/src/components/controls/mobile/flags/mu.svg +0 -6
  231. package/src/components/controls/mobile/flags/mv.svg +0 -8
  232. package/src/components/controls/mobile/flags/mw.svg +0 -24
  233. package/src/components/controls/mobile/flags/mx.svg +0 -1129
  234. package/src/components/controls/mobile/flags/my.svg +0 -12
  235. package/src/components/controls/mobile/flags/mz.svg +0 -50
  236. package/src/components/controls/mobile/flags/na.svg +0 -17
  237. package/src/components/controls/mobile/flags/nc.svg +0 -5
  238. package/src/components/controls/mobile/flags/ne.svg +0 -6
  239. package/src/components/controls/mobile/flags/nf.svg +0 -8
  240. package/src/components/controls/mobile/flags/ng.svg +0 -4
  241. package/src/components/controls/mobile/flags/ni.svg +0 -281
  242. package/src/components/controls/mobile/flags/nl.svg +0 -5
  243. package/src/components/controls/mobile/flags/no.svg +0 -11
  244. package/src/components/controls/mobile/flags/np.svg +0 -33
  245. package/src/components/controls/mobile/flags/nr.svg +0 -8
  246. package/src/components/controls/mobile/flags/nu.svg +0 -23
  247. package/src/components/controls/mobile/flags/nz.svg +0 -37
  248. package/src/components/controls/mobile/flags/om.svg +0 -307
  249. package/src/components/controls/mobile/flags/pa.svg +0 -15
  250. package/src/components/controls/mobile/flags/pe.svg +0 -767
  251. package/src/components/controls/mobile/flags/pf.svg +0 -38
  252. package/src/components/controls/mobile/flags/pg.svg +0 -16
  253. package/src/components/controls/mobile/flags/ph.svg +0 -28
  254. package/src/components/controls/mobile/flags/pk.svg +0 -7
  255. package/src/components/controls/mobile/flags/pl.svg +0 -4
  256. package/src/components/controls/mobile/flags/pm.svg +0 -5
  257. package/src/components/controls/mobile/flags/pn.svg +0 -131
  258. package/src/components/controls/mobile/flags/pr.svg +0 -6
  259. package/src/components/controls/mobile/flags/ps.svg +0 -6
  260. package/src/components/controls/mobile/flags/pt.svg +0 -79
  261. package/src/components/controls/mobile/flags/pw.svg +0 -4
  262. package/src/components/controls/mobile/flags/py.svg +0 -192
  263. package/src/components/controls/mobile/flags/qa.svg +0 -7
  264. package/src/components/controls/mobile/flags/re.svg +0 -5
  265. package/src/components/controls/mobile/flags/ro.svg +0 -5
  266. package/src/components/controls/mobile/flags/rs.svg +0 -1143
  267. package/src/components/controls/mobile/flags/ru.svg +0 -5
  268. package/src/components/controls/mobile/flags/rw.svg +0 -17
  269. package/src/components/controls/mobile/flags/sa.svg +0 -23
  270. package/src/components/controls/mobile/flags/sb.svg +0 -30
  271. package/src/components/controls/mobile/flags/sc.svg +0 -7
  272. package/src/components/controls/mobile/flags/sd.svg +0 -6
  273. package/src/components/controls/mobile/flags/se.svg +0 -5
  274. package/src/components/controls/mobile/flags/sg.svg +0 -15
  275. package/src/components/controls/mobile/flags/sh.svg +0 -15
  276. package/src/components/controls/mobile/flags/si.svg +0 -30
  277. package/src/components/controls/mobile/flags/sj.svg +0 -11
  278. package/src/components/controls/mobile/flags/sk.svg +0 -21
  279. package/src/components/controls/mobile/flags/sl.svg +0 -5
  280. package/src/components/controls/mobile/flags/sm.svg +0 -847
  281. package/src/components/controls/mobile/flags/sn.svg +0 -15
  282. package/src/components/controls/mobile/flags/so.svg +0 -13
  283. package/src/components/controls/mobile/flags/sr.svg +0 -6
  284. package/src/components/controls/mobile/flags/ss.svg +0 -8
  285. package/src/components/controls/mobile/flags/st.svg +0 -16
  286. package/src/components/controls/mobile/flags/stc-icons.css +0 -1
  287. package/src/components/controls/mobile/flags/sv.svg +0 -3368
  288. package/src/components/controls/mobile/flags/sx.svg +0 -172
  289. package/src/components/controls/mobile/flags/sy.svg +0 -6
  290. package/src/components/controls/mobile/flags/sz.svg +0 -54
  291. package/src/components/controls/mobile/flags/tc.svg +0 -88
  292. package/src/components/controls/mobile/flags/td.svg +0 -5
  293. package/src/components/controls/mobile/flags/tf.svg +0 -18
  294. package/src/components/controls/mobile/flags/tg.svg +0 -15
  295. package/src/components/controls/mobile/flags/th.svg +0 -5
  296. package/src/components/controls/mobile/flags/tj.svg +0 -32
  297. package/src/components/controls/mobile/flags/tk.svg +0 -25
  298. package/src/components/controls/mobile/flags/tl.svg +0 -6
  299. package/src/components/controls/mobile/flags/tm.svg +0 -349
  300. package/src/components/controls/mobile/flags/tn.svg +0 -9
  301. package/src/components/controls/mobile/flags/to.svg +0 -8
  302. package/src/components/controls/mobile/flags/tr.svg +0 -6
  303. package/src/components/controls/mobile/flags/tt.svg +0 -5
  304. package/src/components/controls/mobile/flags/tv.svg +0 -18
  305. package/src/components/controls/mobile/flags/tw.svg +0 -12
  306. package/src/components/controls/mobile/flags/tz.svg +0 -13
  307. package/src/components/controls/mobile/flags/ua.svg +0 -4
  308. package/src/components/controls/mobile/flags/ug.svg +0 -46
  309. package/src/components/controls/mobile/flags/um.svg +0 -25
  310. package/src/components/controls/mobile/flags/us.svg +0 -25
  311. package/src/components/controls/mobile/flags/uy.svg +0 -138
  312. package/src/components/controls/mobile/flags/uz.svg +0 -30
  313. package/src/components/controls/mobile/flags/va.svg +0 -277
  314. package/src/components/controls/mobile/flags/vc.svg +0 -9
  315. package/src/components/controls/mobile/flags/ve.svg +0 -28
  316. package/src/components/controls/mobile/flags/vg.svg +0 -96
  317. package/src/components/controls/mobile/flags/vi.svg +0 -311
  318. package/src/components/controls/mobile/flags/vn.svg +0 -12
  319. package/src/components/controls/mobile/flags/vu.svg +0 -20
  320. package/src/components/controls/mobile/flags/wf.svg +0 -7
  321. package/src/components/controls/mobile/flags/ws.svg +0 -14
  322. package/src/components/controls/mobile/flags/xk.svg +0 -11
  323. package/src/components/controls/mobile/flags/ye.svg +0 -5
  324. package/src/components/controls/mobile/flags/yt.svg +0 -5
  325. package/src/components/controls/mobile/flags/za.svg +0 -17
  326. package/src/components/controls/mobile/flags/zm.svg +0 -20
  327. package/src/components/controls/mobile/flags/zw.svg +0 -130
  328. package/src/upgrade.scss +0 -68
@@ -20,19 +20,102 @@ interface Hint {
20
20
  align: HintAlignment;
21
21
  }
22
22
 
23
+ /**
24
+ * Base class for every `iss-ctrl-*` control.
25
+ *
26
+ * Controls are the presentational layer: they know nothing about {@link IssField} and are
27
+ * driven purely by bindings, so they can be used standalone inside any reactive form.
28
+ * Every control below inherits the properties declared here and adds its own on top.
29
+ *
30
+ * ### Inherited inputs
31
+ * | Property | Type | Default | Description |
32
+ * | --- | --- | --- | --- |
33
+ * | `formControlName` | `string` | `""` | Name of the control in the surrounding `FormGroup`. |
34
+ * | `placeholder` | `string` | `""` | Placeholder text shown while the field is empty. |
35
+ * | `readonly` | `boolean` | `false` | Renders the value but blocks every interaction. |
36
+ * | `multiple` | `boolean \| undefined` | `false` | Allows more than one value, where the control supports it. |
37
+ * | `min` | `number \| string \| null` | `null` | Lower bound (number or date/time string). |
38
+ * | `max` | `number \| string \| null` | `null` | Upper bound (number or date/time string). |
39
+ * | `minLength` | `number \| null` | `null` | Minimum number of characters. |
40
+ * | `maxLength` | `number \| null` | `null` | Maximum number of characters. |
41
+ * | `hints` | `Hint[]` | `[]` | Helper messages rendered under the field. |
42
+ * | `className` | `string \| null` | `null` | Extra CSS classes for the host. |
43
+ *
44
+ * ### Inherited outputs
45
+ * | Event | Payload | Description |
46
+ * | --- | --- | --- |
47
+ * | `(onChange)` | `any` | Fires after every committed value change. |
48
+ *
49
+ * ### Not inputs
50
+ * `disabled` and `touched` are signals owned by the control. Disable a control through the
51
+ * forms API (`ctrl.disable()` or a `disabled` field config), never with a template binding.
52
+ *
53
+ * ### Content projection
54
+ * Controls that render a `mat-form-field` project `<label>` into the floating label.
55
+ * An omitted label — or one that interpolates to an empty string — leaves `<mat-label>`
56
+ * empty, and `upgrade.scss` collapses the floating-label space for it. No label markup is
57
+ * removed at runtime, so a label that arrives later simply shows up.
58
+ *
59
+ * @example
60
+ * ```html
61
+ * <iss-ctrl-input formControlName="email" [readonly]="false" (onChange)="save($event)">
62
+ * <label>Email</label>
63
+ * </iss-ctrl-input>
64
+ * ```
65
+ */
23
66
  declare class ControlBase implements ControlValueAccessor, Validator {
67
+ /**
68
+ * Name of this control inside the surrounding `FormGroup`.
69
+ */
24
70
  formControlName: InputSignal<string>;
71
+ /**
72
+ * Lower bound forwarded to the underlying input — a number, or a date/time string.
73
+ */
25
74
  min: InputSignal<number | string | null>;
75
+ /**
76
+ * Upper bound forwarded to the underlying input — a number, or a date/time string.
77
+ */
26
78
  max: InputSignal<number | string | null>;
79
+ /**
80
+ * Minimum number of characters accepted by the underlying input.
81
+ */
27
82
  minLength: InputSignal<number | null>;
83
+ /**
84
+ * Maximum number of characters accepted by the underlying input.
85
+ */
28
86
  maxLength: InputSignal<number | null>;
87
+ /**
88
+ * Disabled state. **Not an input** — it is set by the forms API through
89
+ * {@link ControlBase.setDisabledState}. Disable via `ctrl.disable()` or the field config.
90
+ */
29
91
  disabled: WritableSignal<boolean>;
92
+ /**
93
+ * Renders the current value but blocks every user interaction.
94
+ */
30
95
  readonly: InputSignal<boolean>;
96
+ /**
97
+ * Allows selecting/entering more than one value, on controls that support it.
98
+ */
31
99
  multiple: InputSignal<boolean | undefined>;
100
+ /**
101
+ * Placeholder text shown while the control has no value.
102
+ */
32
103
  placeholder: InputSignal<string>;
104
+ /**
105
+ * Helper messages rendered beneath the field. See {@link Hint}.
106
+ */
33
107
  hints: InputSignal<Hint[]>;
108
+ /**
109
+ * Extra CSS class names applied to the control host.
110
+ */
34
111
  className: InputSignal<string | null>;
112
+ /**
113
+ * Whether the user has interacted with the control. Owned by the control, not an input.
114
+ */
35
115
  touched: WritableSignal<boolean>;
116
+ /**
117
+ * Emits the committed value after every change.
118
+ */
36
119
  onChange: OutputEmitterRef<any>;
37
120
  protected ctrl: FormControl;
38
121
  registerOnChange(fn: () => void): void;
@@ -50,9 +133,36 @@ declare class ControlBase implements ControlValueAccessor, Validator {
50
133
  static ɵcmp: i0.ɵɵComponentDeclaration<ControlBase, "ng-component", never, { "formControlName": { "alias": "formControlName"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "hints": { "alias": "hints"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "onChange": "onChange"; }, never, never, true, never>;
51
134
  }
52
135
 
136
+ /**
137
+ * `<iss-ctrl-checkbox>` — a list of checkboxes over a fixed set of options.
138
+ *
139
+ * The form value is the comma separated list of selected option values, while `(onChange)`
140
+ * emits the resolved `Option[]` (or `null` when nothing is selected).
141
+ *
142
+ * @example
143
+ * ```html
144
+ * <iss-ctrl-checkbox formControlName="days" [options]="days" (onChange)="pick($event)"/>
145
+ * ```
146
+ *
147
+ * ### Own inputs
148
+ * | Property | Type | Default | Description |
149
+ * | --- | --- | --- | --- |
150
+ * | `options` | `Option[]` | **required** | The selectable choices. |
151
+ *
152
+ * ### Inherited from {@link ControlBase}
153
+ * `formControlName` · `readonly` · `className` · `(onChange)`
154
+ *
155
+ * Does not project a label — the field label is rendered by the wrapping `iss-field-*`.
156
+ */
53
157
  declare class CheckboxControl extends ControlBase {
54
158
  #private;
159
+ /**
160
+ * Selectable choices, each a `{ value, label }` pair. Required.
161
+ */
55
162
  options: InputSignal<Option[]>;
163
+ /**
164
+ * Currently checked options, keyed by value. Internal state, not an input.
165
+ */
56
166
  selectedOptions: WritableSignal<Map<string, Option>>;
57
167
  writeValue(value: string | null): void;
58
168
  addToSelectedOptionsMap(option: Map<string, Option>): void;
@@ -63,8 +173,32 @@ declare class CheckboxControl extends ControlBase {
63
173
  static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxControl, "iss-ctrl-checkbox", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
64
174
  }
65
175
 
176
+ /**
177
+ * `<iss-ctrl-chips>` — free text entered as removable chips.
178
+ *
179
+ * Each `Enter` turns the typed text into a chip. The form value is the comma separated list
180
+ * of chip labels.
181
+ *
182
+ * @example
183
+ * ```html
184
+ * <iss-ctrl-chips formControlName="tags" placeholder="Add a tag">
185
+ * <label>Tags</label>
186
+ * </iss-ctrl-chips>
187
+ * ```
188
+ *
189
+ * ### Own inputs
190
+ * None — the control is configured entirely through the inherited properties.
191
+ *
192
+ * ### Inherited from {@link ControlBase}
193
+ * `formControlName` · `readonly` · `className` · `(onChange)` · `placeholder`
194
+ *
195
+ * Projects `<label>` into the floating label; omit it to render the control without one.
196
+ */
66
197
  declare class ChipsControl extends ControlBase {
67
198
  #private;
199
+ /**
200
+ * The chips currently rendered. Internal state, not an input.
201
+ */
68
202
  readonly keywords: WritableSignal<string[]>;
69
203
  writeValue(value: string | null): void;
70
204
  remove(keyword: string): void;
@@ -73,9 +207,43 @@ declare class ChipsControl extends ControlBase {
73
207
  static ɵcmp: i0.ɵɵComponentDeclaration<ChipsControl, "iss-ctrl-chips", never, {}, {}, never, ["label"], true, never>;
74
208
  }
75
209
 
210
+ /**
211
+ * `<iss-ctrl-date-picker>` — single date selection through a Material calendar.
212
+ *
213
+ * The input itself is read-only; clicking it opens the calendar. The emitted value is a
214
+ * `yyyy-MM-dd` string, and a clear button appears once a date is picked.
215
+ *
216
+ * @example
217
+ * ```html
218
+ * <iss-ctrl-date-picker formControlName="startsOn" [minDate]="today" [disabledDays]="[5, 6]">
219
+ * <label>Start date</label>
220
+ * </iss-ctrl-date-picker>
221
+ * ```
222
+ *
223
+ * ### Own inputs
224
+ * | Property | Type | Default | Description |
225
+ * | --- | --- | --- | --- |
226
+ * | `minDate` | `Date \| null` | `null` | Earliest selectable date. |
227
+ * | `maxDate` | `Date \| null` | `null` | Latest selectable date. |
228
+ * | `disabledDays` | `number[]` | `[]` | Week days to block, `0` = Sunday … `6` = Saturday. |
229
+ *
230
+ * ### Inherited from {@link ControlBase}
231
+ * `formControlName` · `readonly` · `className` · `(onChange)`
232
+ *
233
+ * Projects `<label>` into the floating label; omit it to render the control without one.
234
+ */
76
235
  declare class DatePickerControl extends ControlBase implements Validator {
236
+ /**
237
+ * Week days that cannot be selected — `0` is Sunday through `6` for Saturday.
238
+ */
77
239
  disabledDays: InputSignal<number[]>;
240
+ /**
241
+ * Earliest selectable date.
242
+ */
78
243
  minDate: InputSignal<Date | null>;
244
+ /**
245
+ * Latest selectable date.
246
+ */
79
247
  maxDate: InputSignal<Date | null>;
80
248
  clear(event: MouseEvent): void;
81
249
  protected calendarDaysFilter: (d: Date | null) => boolean;
@@ -91,12 +259,56 @@ interface DateRangeEmission {
91
259
  end: string;
92
260
  }
93
261
 
262
+ /**
263
+ * `<iss-ctrl-date-range-picker>` — a start/end date range in one field.
264
+ *
265
+ * A half-filled range is not a value: clearing either endpoint clears the form value and
266
+ * emits `null`. The form value is a `yyyy-MM-dd` string pair; `(onDateRangeObjectChange)`
267
+ * emits the same range as a {@link DateRangeEmission} object.
268
+ *
269
+ * @example
270
+ * ```html
271
+ * <iss-ctrl-date-range-picker formControlName="period" (onDateRangeObjectChange)="apply($event)">
272
+ * <label>Period</label>
273
+ * </iss-ctrl-date-range-picker>
274
+ * ```
275
+ *
276
+ * ### Own inputs
277
+ * | Property | Type | Default | Description |
278
+ * | --- | --- | --- | --- |
279
+ * | `minDate` | `Date \| null` | `null` | Earliest selectable date. |
280
+ * | `maxDate` | `Date \| null` | `null` | Latest selectable date. |
281
+ * | `disabledDays` | `number[]` | `[]` | Week days to block, `0` = Sunday … `6` = Saturday. |
282
+ *
283
+ * ### Inherited from {@link ControlBase}
284
+ * `formControlName` · `readonly` · `className` · `(onChange)`
285
+ *
286
+ * ### Outputs
287
+ * - `(onDateRangeObjectChange)` — `DateRangeEmission | null`, the range as an object.
288
+ *
289
+ * Projects `<label>` into the floating label; omit it to render the control without one.
290
+ */
94
291
  declare class DateRangePickerControl extends ControlBase implements OnInit, OnDestroy {
95
292
  #private;
293
+ /**
294
+ * Week days that cannot be selected — `0` is Sunday through `6` for Saturday.
295
+ */
96
296
  disabledDays: InputSignal<number[]>;
297
+ /**
298
+ * Earliest selectable date.
299
+ */
97
300
  minDate: InputSignal<Date | null>;
301
+ /**
302
+ * Latest selectable date.
303
+ */
98
304
  maxDate: InputSignal<Date | null>;
305
+ /**
306
+ * Emits the selected range as an object, or `null` while the range is incomplete.
307
+ */
99
308
  onDateRangeObjectChange: OutputEmitterRef<DateRangeEmission | null>;
309
+ /**
310
+ * The `start`/`end` form group backing the range input. Internal state.
311
+ */
100
312
  readonly range: FormGroup;
101
313
  ngOnInit(): void;
102
314
  setDisabledState(isDisabled: boolean): void;
@@ -109,13 +321,55 @@ declare class DateRangePickerControl extends ControlBase implements OnInit, OnDe
109
321
  static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePickerControl, "iss-ctrl-date-range-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, { "onDateRangeObjectChange": "onDateRangeObjectChange"; }, never, ["label"], true, never>;
110
322
  }
111
323
 
324
+ /**
325
+ * `<iss-ctrl-datetime-picker>` — a date and a time in a single field.
326
+ *
327
+ * Combines the calendar of the date picker with the time list of the time picker; both parts
328
+ * must be set before a value is emitted.
329
+ *
330
+ * @example
331
+ * ```html
332
+ * <iss-ctrl-datetime-picker formControlName="scheduledAt" [minDate]="today" minTime="08:00" maxTime="17:00">
333
+ * <label>Scheduled at</label>
334
+ * </iss-ctrl-datetime-picker>
335
+ * ```
336
+ *
337
+ * ### Own inputs
338
+ * | Property | Type | Default | Description |
339
+ * | --- | --- | --- | --- |
340
+ * | `minDate` | `Date \| null` | `null` | Earliest selectable date. |
341
+ * | `maxDate` | `Date \| null` | `null` | Latest selectable date. |
342
+ * | `minTime` | `string \| null` | `null` | Earliest selectable time, `HH:mm`. |
343
+ * | `maxTime` | `string \| null` | `null` | Latest selectable time, `HH:mm`. |
344
+ * | `disabledDays` | `number[]` | `[]` | Week days to block, `0` = Sunday … `6` = Saturday. |
345
+ *
346
+ * ### Inherited from {@link ControlBase}
347
+ * `formControlName` · `readonly` · `className` · `(onChange)`
348
+ *
349
+ * Projects `<label>` into the floating label; omit it to render the control without one.
350
+ */
112
351
  declare class DatetimePickerControl extends ControlBase {
113
352
  #private;
114
353
  datetimeForm: FormGroup;
354
+ /**
355
+ * Week days that cannot be selected — `0` is Sunday through `6` for Saturday.
356
+ */
115
357
  disabledDays: InputSignal<number[]>;
358
+ /**
359
+ * Earliest selectable date.
360
+ */
116
361
  minDate: InputSignal<Date | null>;
362
+ /**
363
+ * Latest selectable date.
364
+ */
117
365
  maxDate: InputSignal<Date | null>;
366
+ /**
367
+ * Earliest selectable time of day, as `HH:mm`.
368
+ */
118
369
  minTime: InputSignal<string | null>;
370
+ /**
371
+ * Latest selectable time of day, as `HH:mm`.
372
+ */
119
373
  maxTime: InputSignal<string | null>;
120
374
  setDisabledState(isDisabled: boolean): void;
121
375
  emit(): void;
@@ -141,13 +395,63 @@ interface IssFile {
141
395
  file?: File;
142
396
  }
143
397
 
398
+ /**
399
+ * `<iss-ctrl-file-picker>` — attachment upload with a per-file progress and error state.
400
+ *
401
+ * Uploading is done by the host: the control emits the picked files and renders whatever is
402
+ * fed back through `uploadedFiles`, `uploading` and `uploadingError`.
403
+ *
404
+ * @example
405
+ * ```html
406
+ * <iss-ctrl-file-picker
407
+ * formControlName="attachments"
408
+ * [multiple]="true"
409
+ * accept=".pdf,.png"
410
+ * [uploading]="uploading()"
411
+ * [uploadedFiles]="uploaded()"
412
+ * />
413
+ * ```
414
+ *
415
+ * ### Own inputs
416
+ * | Property | Type | Default | Description |
417
+ * | --- | --- | --- | --- |
418
+ * | `accept` | `string \| undefined` | `undefined` | Accepted extensions or MIME types for the native picker. |
419
+ * | `showDownloadButton` | `boolean` | `true` | Shows the download action on each attachment. |
420
+ * | `showDeleteButton` | `boolean` | `true` | Shows the remove action on each attachment. |
421
+ * | `uploading` | `boolean` | `false` | Renders the in-progress state. |
422
+ * | `uploadedFiles` | `IssAttachment[]` | `[]` | Files already stored on the server. |
423
+ * | `uploadingError` | `string \| undefined` | `undefined` | Error message attached to the failed upload. |
424
+ *
425
+ * ### Inherited from {@link ControlBase}
426
+ * `formControlName` · `readonly` · `className` · `(onChange)` · `multiple` · `hints`
427
+ *
428
+ * Does not project a label — the field label is rendered by the wrapping `iss-field-*`.
429
+ */
144
430
  declare class FilePickerControl extends ControlBase implements OnDestroy {
145
431
  #private;
432
+ /**
433
+ * Accepted extensions or MIME types, passed straight to the native file input.
434
+ */
146
435
  accept: InputSignal<string | undefined>;
436
+ /**
437
+ * Shows the download action on each listed attachment.
438
+ */
147
439
  showDownloadButton: InputSignal<boolean>;
440
+ /**
441
+ * Shows the remove action on each listed attachment.
442
+ */
148
443
  showDeleteButton: InputSignal<boolean>;
444
+ /**
445
+ * Renders the upload-in-progress state; set by the host that performs the upload.
446
+ */
149
447
  uploading: InputSignal<boolean>;
448
+ /**
449
+ * Attachments already stored on the server, merged into the rendered list.
450
+ */
150
451
  uploadedFiles: InputSignal<IssAttachment[]>;
452
+ /**
453
+ * Error message shown on the attachment whose upload failed.
454
+ */
151
455
  uploadingError: InputSignal<string | undefined>;
152
456
  readonly filesValue: Signal<any>;
153
457
  protected attachments: WritableSignal<IssFile[]>;
@@ -160,14 +464,68 @@ declare class FilePickerControl extends ControlBase implements OnDestroy {
160
464
  static ɵcmp: i0.ɵɵComponentDeclaration<FilePickerControl, "iss-ctrl-file-picker", never, { "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "showDownloadButton": { "alias": "showDownloadButton"; "required": false; "isSignal": true; }; "showDeleteButton": { "alias": "showDeleteButton"; "required": false; "isSignal": true; }; "uploading": { "alias": "uploading"; "required": false; "isSignal": true; }; "uploadedFiles": { "alias": "uploadedFiles"; "required": false; "isSignal": true; }; "uploadingError": { "alias": "uploadingError"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
161
465
  }
162
466
 
467
+ /**
468
+ * `<iss-ctrl-input>` — single line text input, the base for every scalar text field.
469
+ *
470
+ * `type` is forwarded to the native input, so `number`, `email` and `password` variants all
471
+ * come from this one control.
472
+ *
473
+ * @example
474
+ * ```html
475
+ * <iss-ctrl-input formControlName="amount" type="number" [min]="0" suffixText="SAR">
476
+ * <label>Amount</label>
477
+ * </iss-ctrl-input>
478
+ * ```
479
+ *
480
+ * ### Own inputs
481
+ * | Property | Type | Default | Description |
482
+ * | --- | --- | --- | --- |
483
+ * | `type` | `string` | `"text"` | Native input type: `text`, `number`, `email`, `password`, … |
484
+ * | `prefixIcon` | `string` | `""` | Icon rendered before the value. |
485
+ * | `prefixText` | `string` | `""` | Text rendered before the value. |
486
+ * | `suffixIcon` | `string` | `""` | Icon rendered after the value. |
487
+ * | `suffixText` | `string` | `""` | Text rendered after the value. |
488
+ *
489
+ * ### Inherited from {@link ControlBase}
490
+ * `formControlName` · `readonly` · `className` · `(onChange)` · `placeholder` · `min` · `max` · `minLength` · `maxLength` · `hints`
491
+ *
492
+ * ### Outputs
493
+ * - `(onPrefixClick)` — `string`, the prefix affix was clicked.
494
+ * - `(onSuffixClick)` — `string`, the suffix affix was clicked.
495
+ *
496
+ * Projects `<label>` into the floating label; omit it to render the control without one.
497
+ *
498
+ * Also projects `[issPrefix]` and `[issSuffix]` for fully custom affixes.
499
+ */
163
500
  declare class InputControl extends ControlBase implements Validator, OnDestroy {
164
501
  #private;
502
+ /**
503
+ * Native input type — `text`, `number`, `email`, `password`, and so on.
504
+ */
165
505
  type: InputSignal<string>;
506
+ /**
507
+ * Icon name rendered before the value.
508
+ */
166
509
  prefixIcon: InputSignal<string>;
510
+ /**
511
+ * Static text rendered before the value.
512
+ */
167
513
  prefixText: InputSignal<string>;
514
+ /**
515
+ * Icon name rendered after the value.
516
+ */
168
517
  suffixIcon: InputSignal<string>;
518
+ /**
519
+ * Static text rendered after the value, a unit or currency for example.
520
+ */
169
521
  suffixText: InputSignal<string>;
522
+ /**
523
+ * Emits when the prefix affix is clicked.
524
+ */
170
525
  onPrefixClick: OutputEmitterRef<string>;
526
+ /**
527
+ * Emits when the suffix affix is clicked.
528
+ */
171
529
  onSuffixClick: OutputEmitterRef<string>;
172
530
  emitSuffixClick(): void;
173
531
  emitPrefixClick(): void;
@@ -211,11 +569,36 @@ declare class Phone {
211
569
  static ɵprov: i0.ɵɵInjectableDeclaration<Phone>;
212
570
  }
213
571
 
572
+ /**
573
+ * `<iss-ctrl-mobile>` — international phone number with a country selector.
574
+ *
575
+ * The number is validated against the selected country and stored in its international form.
576
+ *
577
+ * @example
578
+ * ```html
579
+ * <iss-ctrl-mobile formControlName="mobile" [preferredCountries]="['SA', 'AE']">
580
+ * <label>Mobile</label>
581
+ * </iss-ctrl-mobile>
582
+ * ```
583
+ *
584
+ * ### Own inputs
585
+ * | Property | Type | Default | Description |
586
+ * | --- | --- | --- | --- |
587
+ * | `preferredCountries` | `ISO2[]` | `["SA"]` | Countries pinned to the top of the country list. |
588
+ *
589
+ * ### Inherited from {@link ControlBase}
590
+ * `formControlName` · `readonly` · `className` · `(onChange)`
591
+ *
592
+ * Projects `<label>` into the floating label; omit it to render the control without one.
593
+ */
214
594
  declare class MobileControl extends ControlBase implements OnDestroy, Validator {
215
595
  #private;
216
596
  phoneService: Phone;
217
597
  isOpen: WritableSignal<boolean>;
218
598
  selectedCountry: WritableSignal<Country>;
599
+ /**
600
+ * ISO-2 country codes pinned to the top of the country list; the first one is preselected.
601
+ */
219
602
  preferredCountries: InputSignal<ISO2[]>;
220
603
  searchInput: FormControl;
221
604
  filteredCountries: Signal<Country[]>;
@@ -231,6 +614,26 @@ declare class MobileControl extends ControlBase implements OnDestroy, Validator
231
614
  static ɵcmp: i0.ɵɵComponentDeclaration<MobileControl, "iss-ctrl-mobile", never, { "preferredCountries": { "alias": "preferredCountries"; "required": false; "isSignal": true; }; }, {}, never, ["label"], true, never>;
232
615
  }
233
616
 
617
+ /**
618
+ * `<iss-ctrl-plate-number>` — Saudi vehicle plate, entered as digits and letters in both
619
+ * Arabic and English.
620
+ *
621
+ * Typing into one script fills the matching cell in the other automatically, and letters are
622
+ * validated against the allowed plate alphabet.
623
+ *
624
+ * @example
625
+ * ```html
626
+ * <iss-ctrl-plate-number formControlName="plate" [readonly]="false"/>
627
+ * ```
628
+ *
629
+ * ### Own inputs
630
+ * None — the control is configured entirely through the inherited properties.
631
+ *
632
+ * ### Inherited from {@link ControlBase}
633
+ * `formControlName` · `readonly` · `className` · `(onChange)`
634
+ *
635
+ * Does not project a label — the field label is rendered by the wrapping `iss-field-*`.
636
+ */
234
637
  declare class PlateControl extends ControlBase {
235
638
  #private;
236
639
  numbersAr: i0.WritableSignal<string[]>;
@@ -250,7 +653,28 @@ declare class PlateControl extends ControlBase {
250
653
  static ɵcmp: i0.ɵɵComponentDeclaration<PlateControl, "iss-ctrl-plate-number", never, {}, {}, never, never, true, never>;
251
654
  }
252
655
 
656
+ /**
657
+ * `<iss-ctrl-radio>` — one choice out of a fixed set of options.
658
+ *
659
+ * @example
660
+ * ```html
661
+ * <iss-ctrl-radio formControlName="gender" [options]="genders"/>
662
+ * ```
663
+ *
664
+ * ### Own inputs
665
+ * | Property | Type | Default | Description |
666
+ * | --- | --- | --- | --- |
667
+ * | `options` | `Option[]` | **required** | The selectable choices. |
668
+ *
669
+ * ### Inherited from {@link ControlBase}
670
+ * `formControlName` · `readonly` · `className` · `(onChange)`
671
+ *
672
+ * Does not project a label — the field label is rendered by the wrapping `iss-field-*`.
673
+ */
253
674
  declare class RadioControl extends ControlBase {
675
+ /**
676
+ * Selectable choices, each a `{ value, label }` pair. Required.
677
+ */
254
678
  options: InputSignal<Option[]>;
255
679
  writeValue(value: string | null): void;
256
680
  onRadioChange(value: string): void;
@@ -258,14 +682,60 @@ declare class RadioControl extends ControlBase {
258
682
  static ɵcmp: i0.ɵɵComponentDeclaration<RadioControl, "iss-ctrl-radio", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
259
683
  }
260
684
 
685
+ /**
686
+ * `<iss-ctrl-select>` — dropdown selection, single or multiple, with a search box.
687
+ *
688
+ * Typing in the search box emits `(onQueryChange)`, so options can be loaded remotely; set
689
+ * `loading` while that request is in flight.
690
+ *
691
+ * @example
692
+ * ```html
693
+ * <iss-ctrl-select
694
+ * formControlName="city"
695
+ * [options]="cities()"
696
+ * [multiple]="false"
697
+ * [loading]="loading()"
698
+ * (onQueryChange)="search($event)"
699
+ * >
700
+ * <label>City</label>
701
+ * </iss-ctrl-select>
702
+ * ```
703
+ *
704
+ * ### Own inputs
705
+ * | Property | Type | Default | Description |
706
+ * | --- | --- | --- | --- |
707
+ * | `options` | `Option[]` | **required** | The selectable choices. |
708
+ * | `height` | `string` | `"150px"` | Max height of the open panel. |
709
+ * | `loading` | `boolean` | `false` | Shows the loading state inside the panel. |
710
+ *
711
+ * ### Inherited from {@link ControlBase}
712
+ * `formControlName` · `readonly` · `className` · `(onChange)` · `placeholder` · `multiple`
713
+ *
714
+ * ### Outputs
715
+ * - `(onQueryChange)` — `string`, the current search text.
716
+ *
717
+ * Projects `<label>` into the floating label; omit it to render the control without one.
718
+ */
261
719
  declare class SelectControl extends ControlBase implements OnDestroy {
262
720
  #private;
263
721
  selectedOptions: WritableSignal<Map<string, Option>>;
722
+ /**
723
+ * Selectable choices, each a `{ value, label }` pair. Required.
724
+ */
264
725
  options: InputSignal<Option[]>;
726
+ /**
727
+ * Maximum height of the open options panel, as a CSS length.
728
+ */
265
729
  height: InputSignal<string>;
266
730
  query: Signal<string>;
267
731
  readonly filteredOptions: Signal<Option[]>;
732
+ /**
733
+ * Shows the loading state inside the panel while options are being fetched.
734
+ */
268
735
  loading: InputSignal<boolean>;
736
+ /**
737
+ * Emits the search text so the host can load matching options.
738
+ */
269
739
  onQueryChange: OutputEmitterRef<string>;
270
740
  protected optionTemplate: any;
271
741
  protected cardViewerTemplate: any;
@@ -281,12 +751,46 @@ declare class SelectControl extends ControlBase implements OnDestroy {
281
751
  static ɵcmp: i0.ɵɵComponentDeclaration<SelectControl, "iss-ctrl-select", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, { "onQueryChange": "onQueryChange"; }, ["optionTemplate", "cardViewerTemplate"], ["label"], true, never>;
282
752
  }
283
753
 
754
+ /**
755
+ * `<iss-ctrl-slide-toggle>` — an on/off switch for a boolean value.
756
+ *
757
+ * @example
758
+ * ```html
759
+ * <iss-ctrl-slide-toggle formControlName="active" (onChange)="save($event)"/>
760
+ * ```
761
+ *
762
+ * ### Own inputs
763
+ * None — the control is configured entirely through the inherited properties.
764
+ *
765
+ * ### Inherited from {@link ControlBase}
766
+ * `formControlName` · `readonly` · `className` · `(onChange)`
767
+ *
768
+ * Does not project a label — the field label is rendered by the wrapping `iss-field-*`.
769
+ */
284
770
  declare class SlideToggleControl extends ControlBase {
285
771
  onSlideToggleChange(checked: boolean): void;
286
772
  static ɵfac: i0.ɵɵFactoryDeclaration<SlideToggleControl, never>;
287
773
  static ɵcmp: i0.ɵɵComponentDeclaration<SlideToggleControl, "iss-ctrl-slide-toggle", never, {}, {}, never, never, true, never>;
288
774
  }
289
775
 
776
+ /**
777
+ * `<iss-ctrl-textarea>` — multi line free text.
778
+ *
779
+ * @example
780
+ * ```html
781
+ * <iss-ctrl-textarea formControlName="notes" [maxLength]="500" placeholder="Add a note">
782
+ * <label>Notes</label>
783
+ * </iss-ctrl-textarea>
784
+ * ```
785
+ *
786
+ * ### Own inputs
787
+ * None — the control is configured entirely through the inherited properties.
788
+ *
789
+ * ### Inherited from {@link ControlBase}
790
+ * `formControlName` · `readonly` · `className` · `(onChange)` · `placeholder` · `minLength` · `maxLength` · `hints`
791
+ *
792
+ * Projects `<label>` into the floating label; omit it to render the control without one.
793
+ */
290
794
  declare class TextareaControl extends ControlBase implements OnDestroy {
291
795
  #private;
292
796
  ngOnDestroy(): void;
@@ -294,10 +798,41 @@ declare class TextareaControl extends ControlBase implements OnDestroy {
294
798
  static ɵcmp: i0.ɵɵComponentDeclaration<TextareaControl, "iss-ctrl-textarea", never, {}, {}, never, ["label"], true, never>;
295
799
  }
296
800
 
801
+ /**
802
+ * `<iss-ctrl-time-picker>` — time of day, picked from a list generated at a fixed interval.
803
+ *
804
+ * @example
805
+ * ```html
806
+ * <iss-ctrl-time-picker formControlName="startsAt" interval="15min" minTime="08:00" maxTime="17:00">
807
+ * <label>Starts at</label>
808
+ * </iss-ctrl-time-picker>
809
+ * ```
810
+ *
811
+ * ### Own inputs
812
+ * | Property | Type | Default | Description |
813
+ * | --- | --- | --- | --- |
814
+ * | `interval` | `string` | `"30min"` | Step between the offered times. |
815
+ * | `minTime` | `string \| null` | `null` | Earliest offered time, `HH:mm`. |
816
+ * | `maxTime` | `string \| null` | `null` | Latest offered time, `HH:mm`. |
817
+ *
818
+ * ### Inherited from {@link ControlBase}
819
+ * `formControlName` · `readonly` · `className` · `(onChange)`
820
+ *
821
+ * Projects `<label>` into the floating label; omit it to render the control without one.
822
+ */
297
823
  declare class TimePickerControl extends ControlBase {
298
824
  #private;
825
+ /**
826
+ * Step between the offered times, for example `"15min"` or `"30min"`.
827
+ */
299
828
  interval: InputSignal<string>;
829
+ /**
830
+ * Earliest offered time of day, as `HH:mm`.
831
+ */
300
832
  minTime: InputSignal<string | null>;
833
+ /**
834
+ * Latest offered time of day, as `HH:mm`.
835
+ */
301
836
  maxTime: InputSignal<string | null>;
302
837
  emit(evt: any): void;
303
838
  clear(event: MouseEvent): void;
@@ -306,8 +841,31 @@ declare class TimePickerControl extends ControlBase {
306
841
  static ɵcmp: i0.ɵɵComponentDeclaration<TimePickerControl, "iss-ctrl-time-picker", never, { "interval": { "alias": "interval"; "required": false; "isSignal": true; }; "minTime": { "alias": "minTime"; "required": false; "isSignal": true; }; "maxTime": { "alias": "maxTime"; "required": false; "isSignal": true; }; }, {}, never, ["label"], true, never>;
307
842
  }
308
843
 
844
+ /**
845
+ * `<iss-ctrl-toggle-button>` — options rendered as a button group instead of a dropdown.
846
+ *
847
+ * With `multiple` set, several buttons can be active at once.
848
+ *
849
+ * @example
850
+ * ```html
851
+ * <iss-ctrl-toggle-button formControlName="priority" [options]="priorities" [multiple]="false"/>
852
+ * ```
853
+ *
854
+ * ### Own inputs
855
+ * | Property | Type | Default | Description |
856
+ * | --- | --- | --- | --- |
857
+ * | `options` | `Option[]` | **required** | The selectable choices. |
858
+ *
859
+ * ### Inherited from {@link ControlBase}
860
+ * `formControlName` · `readonly` · `className` · `(onChange)` · `multiple`
861
+ *
862
+ * Does not project a label — the field label is rendered by the wrapping `iss-field-*`.
863
+ */
309
864
  declare class ToggleButtonControl extends ControlBase {
310
865
  #private;
866
+ /**
867
+ * Selectable choices, each a `{ value, label }` pair. Required.
868
+ */
311
869
  options: InputSignal<Option[]>;
312
870
  selectedOptions: WritableSignal<Map<string, Option>>;
313
871
  writeValue(value: string | null): void;
@@ -333,32 +891,131 @@ declare class FieldAsyncValidation {
333
891
  constructor(asyncValidation: any);
334
892
  }
335
893
 
894
+ /**
895
+ * Per-field configuration, reachable as `field.config` and consumed by the `iss-field-*`
896
+ * components. Every entry is a signal, so it can be changed at runtime by field events.
897
+ *
898
+ * Not every key applies to every field — the class doc of each `iss-field-*` component
899
+ * lists exactly which of these it reads.
900
+ *
901
+ * ### Keys by area
902
+ * - **Common:** `type` · `disabled` · `readonly` · `placeholder` · `suffix` · `hideLabel` · `multiple`
903
+ * - **Bounds:** `min` · `max` · `minLength` · `maxLength`
904
+ * - **Dates:** `minDate` · `maxDate` · `dateFilter`
905
+ * - **Attachments:** `allowedFileSize` · `allowedFileTypes` · `minFilesCount` · `maxFilesCount` · `templateId` · `templateUrl`
906
+ * - **Users:** `minUsersCount` · `maxUsersCount`
907
+ * - **Table:** `showInTableColumns` · `tableWithFilter` · `tableWithSort` · `tableWithPagination`
908
+ *
909
+ * @example
910
+ * ```json
911
+ * { "name": "email", "type": "text_input", "config": { "type": "email", "maxLength": 120 } }
912
+ * ```
913
+ */
336
914
  declare class FieldConfig {
915
+ /**
916
+ * Native input type for `text_input` (`text`, `email`, `number`, `password`, …).
917
+ */
337
918
  type: WritableSignal<string | undefined>;
919
+ /**
920
+ * Disables the control; the underlying `FormControl` is disabled on init.
921
+ */
338
922
  disabled: WritableSignal<boolean | undefined>;
923
+ /**
924
+ * Shows the value but blocks interaction. Unlike `disabled`, the value is still submitted.
925
+ */
339
926
  readonly: WritableSignal<boolean | undefined>;
927
+ /**
928
+ * Placeholder text shown while the field is empty.
929
+ */
340
930
  placeholder: WritableSignal<string | undefined>;
931
+ /**
932
+ * Text rendered after the value (a unit or currency, for example).
933
+ */
341
934
  suffix: WritableSignal<string | undefined>;
935
+ /**
936
+ * Hides the field label without removing it from the accessibility tree.
937
+ */
342
938
  hideLabel: WritableSignal<boolean | undefined>;
939
+ /**
940
+ * Allows more than one value — multi select, multi file upload, multi toggle.
941
+ */
343
942
  multiple: WritableSignal<boolean | undefined>;
943
+ /**
944
+ * Minimum number of characters. Source: `config.minLength`.
945
+ */
344
946
  minLength: WritableSignal<number | undefined>;
947
+ /**
948
+ * Maximum number of characters. Source: `config.maxLength`.
949
+ */
345
950
  maxLength: WritableSignal<number | undefined>;
951
+ /**
952
+ * Minimum numeric value (also the minimum user count for the user picker).
953
+ */
346
954
  min: WritableSignal<number | undefined>;
955
+ /**
956
+ * Maximum numeric value (also the maximum user count for the user picker).
957
+ */
347
958
  max: WritableSignal<number | undefined>;
959
+ /**
960
+ * Earliest selectable date for date, datetime and date-range fields.
961
+ */
348
962
  minDate: WritableSignal<Date | undefined>;
963
+ /**
964
+ * Latest selectable date for date, datetime and date-range fields.
965
+ */
349
966
  maxDate: WritableSignal<Date | undefined>;
967
+ /**
968
+ * Restricts the calendar to working days. Source: `config.acceptWorkDaysOnly`.
969
+ */
350
970
  dateFilter: WritableSignal<boolean | undefined>;
971
+ /**
972
+ * Id of a downloadable template offered next to an attachment field.
973
+ */
351
974
  templateId: WritableSignal<string | undefined>;
975
+ /**
976
+ * Direct URL of the downloadable template for an attachment field.
977
+ */
352
978
  templateUrl: WritableSignal<string | undefined>;
979
+ /**
980
+ * Maximum size per uploaded file. Source: `config.allowedSize`.
981
+ */
353
982
  allowedFileSize: WritableSignal<number | undefined>;
983
+ /**
984
+ * Comma separated list of accepted file extensions or MIME types.
985
+ */
354
986
  allowedFileTypes: WritableSignal<string | undefined>;
987
+ /**
988
+ * Maximum number of files that may be attached.
989
+ */
355
990
  maxFilesCount: WritableSignal<number | undefined>;
991
+ /**
992
+ * Minimum number of files required.
993
+ */
356
994
  minFilesCount: WritableSignal<number | undefined>;
995
+ /**
996
+ * Maximum number of users selectable in a user picker.
997
+ */
357
998
  maxUsersCount: WritableSignal<number | undefined>;
999
+ /**
1000
+ * Minimum number of users required in a user picker.
1001
+ */
358
1002
  minUsersCount: WritableSignal<number | undefined>;
1003
+ /**
1004
+ * Parsed from the field definition but not consumed yet — table columns currently come
1005
+ * from `field.children`.
1006
+ */
359
1007
  showInTableColumns: WritableSignal<boolean | undefined>;
1008
+ /**
1009
+ * Enables the filter row on a `table` field.
1010
+ */
360
1011
  tableWithFilter: WritableSignal<boolean | undefined>;
1012
+ /**
1013
+ * Enables column sorting on a `table` field.
1014
+ */
361
1015
  tableWithSort: WritableSignal<boolean | undefined>;
1016
+ /**
1017
+ * Enables the paginator on a `table` field.
1018
+ */
362
1019
  tableWithPagination: WritableSignal<boolean | undefined>;
363
1020
  constructor(config: any);
364
1021
  }
@@ -419,6 +1076,38 @@ declare class FieldEvent {
419
1076
  constructor(action: any, loader: Loader);
420
1077
  }
421
1078
 
1079
+ /**
1080
+ * Runtime model of a single form field, built from the JSON definition returned by the API.
1081
+ *
1082
+ * It is what `iss-field-*` components inject through the `FIELD_DATA` token, and the object
1083
+ * field events read from and write to. Signal-valued members can be changed at runtime and
1084
+ * the rendered field reacts immediately.
1085
+ *
1086
+ * ### Properties
1087
+ * | Property | Type | Description |
1088
+ * | --- | --- | --- |
1089
+ * | `id` | `number` | Unique field id. |
1090
+ * | `name` | `string` | Control name inside the form group. |
1091
+ * | `type` | `string` | Key into the `COMPONENTS` index (`text_input`, `dropdown_list`, …). |
1092
+ * | `base` | `string` | Underlying data type of the field. |
1093
+ * | `label()` | `string` | Visible label. |
1094
+ * | `hint()` | `string` | Helper text under the field. |
1095
+ * | `options()` | `Option[]` | Choices for select, radio, checkbox and toggle fields. |
1096
+ * | `api()` | `string` | Endpoint used to load options or lookups. |
1097
+ * | `mode()` | `"edit" \| "view"` | Renders the control or the read-only viewer. |
1098
+ * | `visible()` | `boolean` | Whether the field is rendered at all. |
1099
+ * | `loading()` | `boolean` | Shows the field's own loading state. |
1100
+ * | `config` | `FieldConfig` | Per-type configuration — see {@link FieldConfig}. |
1101
+ * | `validation` | `any` | Synchronous validation rules. |
1102
+ * | `asyncValidation` | `FieldAsyncValidation` | Remote validation rules. |
1103
+ * | `events` | `FieldEvent[]` | Cross-field reactions (show, hide, set value, …). |
1104
+ * | `children` | `IssField[]` | Nested fields, used by table and group fields. |
1105
+ * | `value` / `defaultValue` | `string` | Initial and fallback raw values. |
1106
+ * | `jsonValue` | `any` | Initial resolved value for controls with a rich payload. |
1107
+ * | `ctrlValue()` | `string \| null` | Live raw value of the control. |
1108
+ * | `ctrlJsonValue()` | `any` | Live resolved value (selected options, files, users, …). |
1109
+ * | `response()` / `apiResponse` | `any` | Latest payload returned for this field. |
1110
+ */
422
1111
  declare class IssField {
423
1112
  id: number;
424
1113
  name: string;
@@ -496,15 +1185,50 @@ declare class FormEngine {
496
1185
  static ɵprov: i0.ɵɵInjectableDeclaration<FormEngine>;
497
1186
  }
498
1187
 
1188
+ /**
1189
+ * Base class for every `iss-field-*` field.
1190
+ *
1191
+ * A field is the form-engine layer around a control: it reads its whole configuration from
1192
+ * the injected {@link IssField} (label, options, config, validation, events), registers its
1193
+ * `FormControl` on the parent `FormGroup` on init and removes it again on destroy, and
1194
+ * switches between the control (`mode() === "edit"`) and the viewer (`mode() === "view"`).
1195
+ *
1196
+ * ### Inputs
1197
+ * | Property | Type | Description |
1198
+ * | --- | --- | --- |
1199
+ * | `issField` | `IssField` | **Required.** The field definition; also provided through the `FIELD_DATA` token. |
1200
+ * | `formReady` | `boolean \| undefined` | Set by the outlet once the whole form exists; gates event wiring. |
1201
+ *
1202
+ * ### Properties available on `field`
1203
+ * `name` · `type` · `base` · `label()` · `hint()` · `options()` · `api()` · `mode()` ·
1204
+ * `visible()` · `loading()` · `value` · `jsonValue` · `defaultValue` · `ctrlValue()` ·
1205
+ * `ctrlJsonValue()` · `events` · `validation` · `asyncValidation` · `children` ·
1206
+ * `response()` · `config` — see {@link IssField} and {@link FieldConfig}.
1207
+ *
1208
+ * Fields are not used directly in templates; the outlet resolves them from the field `type`
1209
+ * through the `COMPONENTS` index.
1210
+ */
499
1211
  declare class FieldBase implements OnInit, OnDestroy {
500
1212
  #private;
1213
+ /**
1214
+ * The field definition rendered by this component. Required.
1215
+ */
501
1216
  issField: InputSignal<IssField>;
1217
+ /**
1218
+ * Set by the outlet once every field is registered; field events start only after it turns true.
1219
+ */
502
1220
  formReady: InputSignal<boolean | undefined>;
1221
+ /**
1222
+ * The {@link IssField} for this instance, injected through the `FIELD_DATA` token.
1223
+ */
503
1224
  field: IssField;
504
1225
  parentFormGroup: ControlContainer;
505
1226
  formEngine: FormEngine;
506
1227
  eventHandler: EventHandler;
507
1228
  destroyRef: DestroyRef;
1229
+ /**
1230
+ * The `FormControl` this field registers on the parent form under `field.name`.
1231
+ */
508
1232
  ctrl: FormControl;
509
1233
  ctrlValueChange: i0.Signal<any>;
510
1234
  get form(): FormGroup;
@@ -514,56 +1238,294 @@ declare class FieldBase implements OnInit, OnDestroy {
514
1238
  static ɵcmp: i0.ɵɵComponentDeclaration<FieldBase, "ng-component", never, { "issField": { "alias": "issField"; "required": true; "isSignal": true; }; "formReady": { "alias": "formReady"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
515
1239
  }
516
1240
 
1241
+ /**
1242
+ * `<iss-field-input>` — single line text, number, email or password entry.
1243
+ *
1244
+ * Rendered by the outlet for fields of type `text_input`. In `edit` mode it renders
1245
+ * {@link InputControl} plus the validation message; in `view` mode the matching viewer.
1246
+ *
1247
+ * ### Supported `config` keys
1248
+ * | Key | Type | Description |
1249
+ * | --- | --- | --- |
1250
+ * | `type` | `string` | Native input type — `text`, `number`, `email`, `password`, … |
1251
+ * | `placeholder` | `string` | Placeholder shown while empty. |
1252
+ * | `min` | `number` | Minimum numeric value. |
1253
+ * | `max` | `number` | Maximum numeric value. |
1254
+ * | `minLength` | `number` | Minimum number of characters. |
1255
+ * | `maxLength` | `number` | Maximum number of characters. |
1256
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1257
+ *
1258
+ * ### Other field members used
1259
+ * `label()`
1260
+ *
1261
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
1262
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1263
+ *
1264
+ * @example
1265
+ * ```json
1266
+ * { "name": "email", "type": "text_input", "label": "Email", "config": { "type": "email", "maxLength": 120 } }
1267
+ * ```
1268
+ */
517
1269
  declare class InputField extends FieldBase {
518
1270
  static ɵfac: i0.ɵɵFactoryDeclaration<InputField, never>;
519
1271
  static ɵcmp: i0.ɵɵComponentDeclaration<InputField, "iss-field-input", never, {}, {}, never, never, true, never>;
520
1272
  }
521
1273
 
1274
+ /**
1275
+ * `<iss-field-textarea>` — multi line free text.
1276
+ *
1277
+ * Rendered by the outlet for fields of type `textarea`. In `edit` mode it renders
1278
+ * {@link TextareaControl} plus the validation message; in `view` mode the matching viewer.
1279
+ *
1280
+ * ### Supported `config` keys
1281
+ * | Key | Type | Description |
1282
+ * | --- | --- | --- |
1283
+ * | `minLength` | `number` | Minimum number of characters. |
1284
+ * | `maxLength` | `number` | Maximum number of characters. |
1285
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1286
+ *
1287
+ * ### Other field members used
1288
+ * `label()`
1289
+ *
1290
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
1291
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1292
+ *
1293
+ * @example
1294
+ * ```json
1295
+ * { "name": "notes", "type": "textarea", "label": "Notes", "config": { "maxLength": 500 } }
1296
+ * ```
1297
+ */
522
1298
  declare class TextareaField extends FieldBase {
523
1299
  static ɵfac: i0.ɵɵFactoryDeclaration<TextareaField, never>;
524
1300
  static ɵcmp: i0.ɵɵComponentDeclaration<TextareaField, "iss-field-textarea", never, {}, {}, never, never, true, never>;
525
1301
  }
526
1302
 
1303
+ /**
1304
+ * `<iss-field-chips>` — free text entered as removable chips.
1305
+ *
1306
+ * Rendered by the outlet for fields of type `chips`. In `edit` mode it renders
1307
+ * {@link ChipsControl} plus the validation message; in `view` mode the matching viewer.
1308
+ *
1309
+ * ### Supported `config` keys
1310
+ * | Key | Type | Description |
1311
+ * | --- | --- | --- |
1312
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1313
+ *
1314
+ * ### Other field members used
1315
+ * `label()`
1316
+ *
1317
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
1318
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1319
+ *
1320
+ * @example
1321
+ * ```json
1322
+ * { "name": "tags", "type": "chips", "label": "Tags" }
1323
+ * ```
1324
+ */
527
1325
  declare class ChipsField extends FieldBase {
528
1326
  static ɵfac: i0.ɵɵFactoryDeclaration<ChipsField, never>;
529
1327
  static ɵcmp: i0.ɵɵComponentDeclaration<ChipsField, "iss-field-chips", never, {}, {}, never, never, true, never>;
530
1328
  }
531
1329
 
1330
+ /**
1331
+ * `<iss-field-radio>` — one choice out of a fixed set of options.
1332
+ *
1333
+ * Rendered by the outlet for fields of type `radio`. In `edit` mode it renders
1334
+ * {@link RadioControl} plus the validation message; in `view` mode the matching viewer.
1335
+ *
1336
+ * ### Supported `config` keys
1337
+ * | Key | Type | Description |
1338
+ * | --- | --- | --- |
1339
+ * | `hideLabel` | `boolean` | Hides the field label. |
1340
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1341
+ *
1342
+ * ### Other field members used
1343
+ * `label()` · `options()`
1344
+ *
1345
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
1346
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1347
+ *
1348
+ * @example
1349
+ * ```json
1350
+ * { "name": "gender", "type": "radio", "label": "Gender", "options": [{ "value": "m", "label": "Male" }] }
1351
+ * ```
1352
+ */
532
1353
  declare class RadioField extends FieldBase {
533
1354
  onChange($event: any): void;
534
1355
  static ɵfac: i0.ɵɵFactoryDeclaration<RadioField, never>;
535
1356
  static ɵcmp: i0.ɵɵComponentDeclaration<RadioField, "iss-field-radio", never, {}, {}, never, never, true, never>;
536
1357
  }
537
1358
 
1359
+ /**
1360
+ * `<iss-field-select>` — single or multiple selection from a dropdown.
1361
+ *
1362
+ * Rendered by the outlet for fields of type `dropdown_list`. In `edit` mode it renders
1363
+ * {@link SelectControl} plus the validation message; in `view` mode the matching viewer.
1364
+ *
1365
+ * ### Supported `config` keys
1366
+ * | Key | Type | Description |
1367
+ * | --- | --- | --- |
1368
+ * | `multiple` | `boolean` | Allows selecting more than one option. |
1369
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1370
+ *
1371
+ * ### Other field members used
1372
+ * `label()` · `options()` · `ctrlJsonValue()`
1373
+ *
1374
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
1375
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1376
+ *
1377
+ * The raw form value holds the selected option values; the resolved options are written
1378
+ * back to `field.ctrlJsonValue`.
1379
+ *
1380
+ * @example
1381
+ * ```json
1382
+ * { "name": "city", "type": "dropdown_list", "label": "City", "options": [{ "value": "1", "label": "Riyadh" }] }
1383
+ * ```
1384
+ */
538
1385
  declare class SelectField extends FieldBase {
539
1386
  onChange($event: string | FormData): void;
540
1387
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectField, never>;
541
1388
  static ɵcmp: i0.ɵɵComponentDeclaration<SelectField, "iss-field-select", never, {}, {}, never, never, true, never>;
542
1389
  }
543
1390
 
1391
+ /**
1392
+ * `<iss-field-mobile>` — an international phone number with a country selector.
1393
+ *
1394
+ * Rendered by the outlet for fields of the type `mobile`. In `edit` mode it renders
1395
+ * {@link MobileControl} plus the validation message; in `view` mode the matching viewer.
1396
+ *
1397
+ * ### Supported `config` keys
1398
+ * | Key | Type | Description |
1399
+ * | --- | --- | --- |
1400
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1401
+ *
1402
+ * ### Other field members used
1403
+ * `label()`
1404
+ *
1405
+ * Every field also honors `visible`, `mode`, `validation`, `asyncValidation` and
1406
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1407
+ *
1408
+ * @example
1409
+ * ```json
1410
+ * { "name": "mobile", "type": "mobile", "label": "Mobile" }
1411
+ * ```
1412
+ */
544
1413
  declare class MobileField extends FieldBase {
545
1414
  static ɵfac: i0.ɵɵFactoryDeclaration<MobileField, never>;
546
1415
  static ɵcmp: i0.ɵɵComponentDeclaration<MobileField, "iss-field-mobile", never, {}, {}, never, never, true, never>;
547
1416
  }
548
1417
 
1418
+ /**
1419
+ * `<iss-field-checkbox>` — a list of checkboxes over a fixed set of options.
1420
+ *
1421
+ * Rendered by the outlet for fields of type `checkbox`. In `edit` mode it renders
1422
+ * {@link CheckboxControl} plus the validation message; in `view` mode the matching viewer.
1423
+ *
1424
+ * ### Supported `config` keys
1425
+ * | Key | Type | Description |
1426
+ * | --- | --- | --- |
1427
+ * | `hideLabel` | `boolean` | Hides the field label. |
1428
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1429
+ *
1430
+ * ### Other field members used
1431
+ * `label()` · `options()`
1432
+ *
1433
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
1434
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1435
+ *
1436
+ * @example
1437
+ * ```json
1438
+ * { "name": "days", "type": "checkbox", "label": "Days", "options": [{ "value": "sun", "label": "Sunday" }] }
1439
+ * ```
1440
+ */
549
1441
  declare class CheckboxField extends FieldBase {
550
1442
  updateField($event: any): void;
551
1443
  static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxField, never>;
552
1444
  static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxField, "iss-field-checkbox", never, {}, {}, never, never, true, never>;
553
1445
  }
554
1446
 
1447
+ /**
1448
+ * `<iss-field-toggle-button>` — options rendered as a button group.
1449
+ *
1450
+ * Rendered by the outlet for fields of type `toggle_button`. In `edit` mode it renders
1451
+ * {@link ToggleButtonControl} plus the validation message; in `view` mode the matching viewer.
1452
+ *
1453
+ * ### Supported `config` keys
1454
+ * | Key | Type | Description |
1455
+ * | --- | --- | --- |
1456
+ * | `multiple` | `boolean` | Allows more than one active button. |
1457
+ * | `hideLabel` | `boolean` | Hides the field label. |
1458
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1459
+ *
1460
+ * ### Other field members used
1461
+ * `label()` · `options()`
1462
+ *
1463
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
1464
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1465
+ *
1466
+ * @example
1467
+ * ```json
1468
+ * { "name": "priority", "type": "toggle_button", "label": "Priority", "options": [{ "value": "high", "label": "High" }] }
1469
+ * ```
1470
+ */
555
1471
  declare class ToggleButtonField extends FieldBase {
556
1472
  onChange($event: any): void;
557
1473
  static ɵfac: i0.ɵɵFactoryDeclaration<ToggleButtonField, never>;
558
1474
  static ɵcmp: i0.ɵɵComponentDeclaration<ToggleButtonField, "iss-field-toggle-button", never, {}, {}, never, never, true, never>;
559
1475
  }
560
1476
 
1477
+ /**
1478
+ * `<iss-field-slide-toggle>` — an on/off switch for a boolean value.
1479
+ *
1480
+ * Rendered by the outlet for fields of type `switch`. In `edit` mode it renders
1481
+ * {@link SlideToggleControl} plus the validation message; in `view` mode the matching viewer.
1482
+ *
1483
+ * ### Supported `config` keys
1484
+ * | Key | Type | Description |
1485
+ * | --- | --- | --- |
1486
+ * | `hideLabel` | `boolean` | Hides the field label. |
1487
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1488
+ *
1489
+ * ### Other field members used
1490
+ * `label()`
1491
+ *
1492
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
1493
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1494
+ *
1495
+ * @example
1496
+ * ```json
1497
+ * { "name": "active", "type": "switch", "label": "Active" }
1498
+ * ```
1499
+ */
561
1500
  declare class SlideToggleField extends FieldBase {
562
1501
  onChange($event: any): void;
563
1502
  static ɵfac: i0.ɵɵFactoryDeclaration<SlideToggleField, never>;
564
1503
  static ɵcmp: i0.ɵɵComponentDeclaration<SlideToggleField, "iss-field-slide-toggle", never, {}, {}, never, never, true, never>;
565
1504
  }
566
1505
 
1506
+ /**
1507
+ * `<iss-field-plate-number>` — a Saudi vehicle plate in Arabic and English.
1508
+ *
1509
+ * Rendered by the outlet for fields of type `vehicle_plate`. In `edit` mode it renders
1510
+ * {@link PlateControl} plus the validation message; in `view` mode the matching viewer.
1511
+ *
1512
+ * ### Supported `config` keys
1513
+ * | Key | Type | Description |
1514
+ * | --- | --- | --- |
1515
+ * | `hideLabel` | `boolean` | Hides the field label. |
1516
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1517
+ *
1518
+ * ### Other field members used
1519
+ * `label()`
1520
+ *
1521
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
1522
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1523
+ *
1524
+ * @example
1525
+ * ```json
1526
+ * { "name": "plate", "type": "vehicle_plate", "label": "Plate number" }
1527
+ * ```
1528
+ */
567
1529
  declare class PlateField extends FieldBase {
568
1530
  updateField($event: any): void;
569
1531
  static ɵfac: i0.ɵɵFactoryDeclaration<PlateField, never>;
@@ -586,6 +1548,36 @@ declare class FileHandler {
586
1548
  static ɵprov: i0.ɵɵInjectableDeclaration<FileHandler>;
587
1549
  }
588
1550
 
1551
+ /**
1552
+ * `<iss-field-file-picker>` — attachment upload.
1553
+ *
1554
+ * Rendered by the outlet for fields of type `attachment`. In `edit` mode it renders
1555
+ * {@link FilePickerControl} plus the validation message; in `view` mode the matching viewer.
1556
+ *
1557
+ * ### Supported `config` keys
1558
+ * | Key | Type | Description |
1559
+ * | --- | --- | --- |
1560
+ * | `multiple` | `boolean` | Allows attaching more than one file. |
1561
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1562
+ *
1563
+ * ### Other field members used
1564
+ * `label()` · `value` · `validation` · `ctrlJsonValue()`
1565
+ *
1566
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
1567
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1568
+ *
1569
+ * The field uploads the picked files itself, stores the returned ids as the control value
1570
+ * and keeps the resolved attachments in `field.ctrlJsonValue`.
1571
+ *
1572
+ * Accepted extensions come from the `fileType` **validation** rule, not from `config`; the
1573
+ * `allowedFileSize`, `allowedFileTypes`, `minFilesCount`, `maxFilesCount`, `templateId` and
1574
+ * `templateUrl` config keys exist on {@link FieldConfig} but are not read here yet.
1575
+ *
1576
+ * @example
1577
+ * ```json
1578
+ * { "name": "attachments", "type": "attachment", "label": "Attachments", "config": { "multiple": true }, "validation": { "fileType": ["pdf", "png"] } }
1579
+ * ```
1580
+ */
589
1581
  declare class FilePickerField extends FieldBase implements OnDestroy {
590
1582
  #private;
591
1583
  picker: FormControl<any>;
@@ -602,21 +1594,117 @@ declare class FilePickerField extends FieldBase implements OnDestroy {
602
1594
  static ɵcmp: i0.ɵɵComponentDeclaration<FilePickerField, "iss-field-file-picker", never, {}, {}, never, never, true, never>;
603
1595
  }
604
1596
 
1597
+ /**
1598
+ * `<iss-field-time-picker>` — a time of day, picked from a generated list.
1599
+ *
1600
+ * Rendered by the outlet for fields of type `time`. In `edit` mode it renders
1601
+ * {@link TimePickerControl} plus the validation message; in `view` mode the matching viewer.
1602
+ *
1603
+ * ### Supported `config` keys
1604
+ * | Key | Type | Description |
1605
+ * | --- | --- | --- |
1606
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1607
+ *
1608
+ * ### Other field members used
1609
+ * `label()`
1610
+ *
1611
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
1612
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1613
+ *
1614
+ * @example
1615
+ * ```json
1616
+ * { "name": "startsAt", "type": "time", "label": "Starts at" }
1617
+ * ```
1618
+ */
605
1619
  declare class TimePickerField extends FieldBase {
606
1620
  static ɵfac: i0.ɵɵFactoryDeclaration<TimePickerField, never>;
607
1621
  static ɵcmp: i0.ɵɵComponentDeclaration<TimePickerField, "iss-field-time-picker", never, {}, {}, never, never, true, never>;
608
1622
  }
609
1623
 
1624
+ /**
1625
+ * `<iss-field-date-picker>` — a single date, picked from a calendar.
1626
+ *
1627
+ * Rendered by the outlet for fields of type `date`. In `edit` mode it renders
1628
+ * {@link DatePickerControl} plus the validation message; in `view` mode the matching viewer.
1629
+ *
1630
+ * ### Supported `config` keys
1631
+ * | Key | Type | Description |
1632
+ * | --- | --- | --- |
1633
+ * | `minDate` | `Date` | Earliest selectable date. |
1634
+ * | `maxDate` | `Date` | Latest selectable date. |
1635
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1636
+ *
1637
+ * ### Other field members used
1638
+ * `label()`
1639
+ *
1640
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
1641
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1642
+ *
1643
+ * @example
1644
+ * ```json
1645
+ * { "name": "startsOn", "type": "date", "label": "Start date", "config": { "minDate": "2026-01-01" } }
1646
+ * ```
1647
+ */
610
1648
  declare class DatePickerField extends FieldBase {
611
1649
  static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerField, never>;
612
1650
  static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerField, "iss-field-date-picker", never, {}, {}, never, never, true, never>;
613
1651
  }
614
1652
 
1653
+ /**
1654
+ * `<iss-field-datetime-picker>` — a date and a time in one field.
1655
+ *
1656
+ * Rendered by the outlet for fields of type `datetime`. In `edit` mode it renders
1657
+ * {@link DatetimePickerControl} plus the validation message; in `view` mode the matching viewer.
1658
+ *
1659
+ * ### Supported `config` keys
1660
+ * | Key | Type | Description |
1661
+ * | --- | --- | --- |
1662
+ * | `minDate` | `Date` | Earliest selectable date. |
1663
+ * | `maxDate` | `Date` | Latest selectable date. |
1664
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1665
+ *
1666
+ * ### Other field members used
1667
+ * `label()`
1668
+ *
1669
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
1670
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1671
+ *
1672
+ * @example
1673
+ * ```json
1674
+ * { "name": "scheduledAt", "type": "datetime", "label": "Scheduled at" }
1675
+ * ```
1676
+ */
615
1677
  declare class DatetimePickerField extends FieldBase {
616
1678
  static ɵfac: i0.ɵɵFactoryDeclaration<DatetimePickerField, never>;
617
1679
  static ɵcmp: i0.ɵɵComponentDeclaration<DatetimePickerField, "iss-field-datetime-picker", never, {}, {}, never, never, true, never>;
618
1680
  }
619
1681
 
1682
+ /**
1683
+ * `<iss-field-date-range-picker>` — a start and end date in one field.
1684
+ *
1685
+ * Rendered by the outlet for fields of type `date_range`. In `edit` mode it renders
1686
+ * {@link DateRangePickerControl} plus the validation message; in `view` mode the matching viewer.
1687
+ *
1688
+ * ### Supported `config` keys
1689
+ * | Key | Type | Description |
1690
+ * | --- | --- | --- |
1691
+ * | `minDate` | `Date` | Earliest selectable date. |
1692
+ * | `maxDate` | `Date` | Latest selectable date. |
1693
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
1694
+ *
1695
+ * ### Other field members used
1696
+ * `label()`
1697
+ *
1698
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
1699
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
1700
+ *
1701
+ * A half-filled range is treated as no value at all.
1702
+ *
1703
+ * @example
1704
+ * ```json
1705
+ * { "name": "period", "type": "date_range", "label": "Period" }
1706
+ * ```
1707
+ */
620
1708
  declare class DateRangePickerField extends FieldBase {
621
1709
  static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePickerField, never>;
622
1710
  static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePickerField, "iss-field-date-range-picker", never, {}, {}, never, never, true, never>;
@@ -758,6 +1846,33 @@ interface DynamicImport<T> {
758
1846
  [key: PropertyKey]: () => Promise<T>;
759
1847
  }
760
1848
 
1849
+ /**
1850
+ * Maps a field's `type` to the `iss-field-*` component that renders it.
1851
+ *
1852
+ * The outlet looks the field up here and lazy-loads the component, so a `type` that is not
1853
+ * a key of this object renders nothing. Hover a field class for the `config` keys it reads.
1854
+ *
1855
+ * | `type` | Component | Control | Renders |
1856
+ * | --- | --- | --- | --- |
1857
+ * | `text_input` | `InputField` | `iss-ctrl-input` | Single line text, number, email, password. |
1858
+ * | `textarea` | `TextareaField` | `iss-ctrl-textarea` | Multi line free text. |
1859
+ * | `dropdown_list` | `SelectField` | `iss-ctrl-select` | Searchable single/multi select. |
1860
+ * | `toggle_button` | `ToggleButtonField` | `iss-ctrl-toggle-button` | Options as a button group. |
1861
+ * | `checkbox` | `CheckboxField` | `iss-ctrl-checkbox` | Multi choice checkbox list. |
1862
+ * | `radio` | `RadioField` | `iss-ctrl-radio` | Single choice radio list. |
1863
+ * | `date` | `DatePickerField` | `iss-ctrl-date-picker` | A single date. |
1864
+ * | `time` | `TimePickerField` | `iss-ctrl-time-picker` | A time of day. |
1865
+ * | `datetime` | `DatetimePickerField` | `iss-ctrl-datetime-picker` | Date and time together. |
1866
+ * | `date_range` | `DateRangePickerField` | `iss-ctrl-date-range-picker` | A start/end date range. |
1867
+ * | `attachment` | `FilePickerField` | `iss-ctrl-file-picker` | File upload. |
1868
+ * | `userPicker` | `UserPickerField` | `iss-ctrl-select` | Employee lookup. |
1869
+ * | `vehicle_plate` | `PlateField` | `iss-ctrl-plate-number` | Saudi vehicle plate. |
1870
+ * | `enrichment` | `NoteField` | — | Read-only explanatory text. |
1871
+ * | `mobile` | `MobileField` | `iss-ctrl-mobile` | International phone number. |
1872
+ * | `table` | `TableField` | `iss-ctrl-table` | Repeatable rows built from `children`. |
1873
+ * | `chips` | `ChipsField` | `iss-ctrl-chips` | Free text as removable chips. |
1874
+ * | `switch` | `SlideToggleField` | `iss-ctrl-slide-toggle` | Boolean on/off switch. |
1875
+ */
761
1876
  declare const COMPONENTS: DynamicImport<Type<any>>;
762
1877
 
763
1878
  declare const SERVICES: DynamicImport<Type<any>>;