@panneau/fields 5.0.0-alpha.2 → 5.0.0-alpha.20

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 (408) hide show
  1. package/README.md +186 -20
  2. package/dist/address/AddressField.css +44 -0
  3. package/dist/address/AddressField.d.ts +37 -0
  4. package/dist/address/AddressField.d.ts.map +1 -0
  5. package/dist/address/AddressField.js +411 -0
  6. package/dist/address/AddressField.js.map +1 -0
  7. package/dist/address/AddressField.module.js +22 -0
  8. package/dist/address/AddressField.module.js.map +1 -0
  9. package/dist/address/address.d.ts +23 -0
  10. package/dist/address/address.d.ts.map +1 -0
  11. package/dist/address/address.js +58 -0
  12. package/dist/address/address.js.map +1 -0
  13. package/dist/address/index.d.ts +3 -0
  14. package/dist/address/index.d.ts.map +1 -0
  15. package/dist/address/index.js +3 -0
  16. package/dist/boolean/BooleanField.d.ts +1 -1
  17. package/dist/boolean/BooleanField.js +78 -17
  18. package/dist/boolean/BooleanField.js.map +1 -1
  19. package/dist/boolean/index.d.ts +1 -1
  20. package/dist/color/ColorField.css +9 -0
  21. package/dist/color/ColorField.d.ts +12 -5
  22. package/dist/color/ColorField.d.ts.map +1 -1
  23. package/dist/color/ColorField.js +341 -81
  24. package/dist/color/ColorField.js.map +1 -1
  25. package/dist/color/ColorField.module.js +4 -2
  26. package/dist/color/ColorField.module.js.map +1 -1
  27. package/dist/color/index.d.ts +2 -1
  28. package/dist/color/index.d.ts.map +1 -1
  29. package/dist/color/index.js +3 -1
  30. package/dist/color/palette.d.ts +23 -0
  31. package/dist/color/palette.d.ts.map +1 -0
  32. package/dist/color/palette.js +34 -0
  33. package/dist/color/palette.js.map +1 -0
  34. package/dist/compound/Compound.css +26 -0
  35. package/dist/compound/Compound.module.js +16 -0
  36. package/dist/compound/Compound.module.js.map +1 -0
  37. package/dist/compound/compound.d.ts +56 -0
  38. package/dist/compound/compound.d.ts.map +1 -0
  39. package/dist/compound/compound.js +186 -0
  40. package/dist/compound/compound.js.map +1 -0
  41. package/dist/country/CountryField.css +42 -0
  42. package/dist/country/CountryField.d.ts +32 -0
  43. package/dist/country/CountryField.d.ts.map +1 -0
  44. package/dist/country/CountryField.js +424 -0
  45. package/dist/country/CountryField.js.map +1 -0
  46. package/dist/country/CountryField.module.js +20 -0
  47. package/dist/country/CountryField.module.js.map +1 -0
  48. package/dist/country/codes.d.ts +6 -0
  49. package/dist/country/codes.d.ts.map +1 -0
  50. package/dist/country/codes.js +261 -0
  51. package/dist/country/codes.js.map +1 -0
  52. package/dist/country/countries.d.ts +32 -0
  53. package/dist/country/countries.d.ts.map +1 -0
  54. package/dist/country/countries.js +60 -0
  55. package/dist/country/countries.js.map +1 -0
  56. package/dist/country/index.d.ts +3 -0
  57. package/dist/country/index.d.ts.map +1 -0
  58. package/dist/country/index.js +4 -0
  59. package/dist/credits/CreditsField.d.ts +15 -0
  60. package/dist/credits/CreditsField.d.ts.map +1 -0
  61. package/dist/credits/CreditsField.js +58 -0
  62. package/dist/credits/CreditsField.js.map +1 -0
  63. package/dist/credits/credits.d.ts +18 -0
  64. package/dist/credits/credits.d.ts.map +1 -0
  65. package/dist/credits/credits.js +33 -0
  66. package/dist/credits/credits.js.map +1 -0
  67. package/dist/credits/index.d.ts +5 -0
  68. package/dist/credits/index.d.ts.map +1 -0
  69. package/dist/credits/index.js +3 -0
  70. package/dist/date/DateField.d.ts +1 -1
  71. package/dist/date/DateField.js.map +1 -1
  72. package/dist/date/index.d.ts +1 -1
  73. package/dist/daterange/DateRangeField.css +9 -0
  74. package/dist/daterange/DateRangeField.d.ts +31 -0
  75. package/dist/daterange/DateRangeField.d.ts.map +1 -0
  76. package/dist/daterange/DateRangeField.js +372 -0
  77. package/dist/daterange/DateRangeField.js.map +1 -0
  78. package/dist/daterange/DateRangeField.module.js +12 -0
  79. package/dist/daterange/DateRangeField.module.js.map +1 -0
  80. package/dist/daterange/index.d.ts +3 -0
  81. package/dist/daterange/index.d.ts.map +1 -0
  82. package/dist/daterange/index.js +3 -0
  83. package/dist/daterange/range.d.ts +61 -0
  84. package/dist/daterange/range.d.ts.map +1 -0
  85. package/dist/daterange/range.js +119 -0
  86. package/dist/daterange/range.js.map +1 -0
  87. package/dist/datetime/DateTimeField.d.ts +1 -1
  88. package/dist/datetime/DateTimeField.js +107 -20
  89. package/dist/datetime/DateTimeField.js.map +1 -1
  90. package/dist/datetime/index.d.ts +1 -1
  91. package/dist/duration/DurationField.css +11 -0
  92. package/dist/duration/DurationField.d.ts +67 -0
  93. package/dist/duration/DurationField.d.ts.map +1 -0
  94. package/dist/duration/DurationField.js +260 -0
  95. package/dist/duration/DurationField.js.map +1 -0
  96. package/dist/duration/DurationField.module.js +12 -0
  97. package/dist/duration/DurationField.module.js.map +1 -0
  98. package/dist/duration/index.d.ts +2 -0
  99. package/dist/duration/index.d.ts.map +1 -0
  100. package/dist/duration/index.js +1 -0
  101. package/dist/email/EmailField.d.ts +2 -2
  102. package/dist/email/EmailField.js.map +1 -1
  103. package/dist/email/index.d.ts +1 -1
  104. package/dist/embed/EmbedField.css +60 -0
  105. package/dist/embed/EmbedField.d.ts +29 -0
  106. package/dist/embed/EmbedField.d.ts.map +1 -0
  107. package/dist/embed/EmbedField.js +309 -0
  108. package/dist/embed/EmbedField.js.map +1 -0
  109. package/dist/embed/EmbedField.module.js +22 -0
  110. package/dist/embed/EmbedField.module.js.map +1 -0
  111. package/dist/embed/index.d.ts +3 -0
  112. package/dist/embed/index.d.ts.map +1 -0
  113. package/dist/embed/index.js +3 -0
  114. package/dist/file/FileField.css +54 -0
  115. package/dist/file/FileField.d.ts +50 -0
  116. package/dist/file/FileField.d.ts.map +1 -0
  117. package/dist/file/FileField.js +288 -0
  118. package/dist/file/FileField.js.map +1 -0
  119. package/dist/file/FileField.module.js +22 -0
  120. package/dist/file/FileField.module.js.map +1 -0
  121. package/dist/file/index.d.ts +3 -0
  122. package/dist/file/index.d.ts.map +1 -0
  123. package/dist/file/index.js +1 -0
  124. package/dist/group/GroupField.css +20 -3
  125. package/dist/group/GroupField.d.ts +10 -4
  126. package/dist/group/GroupField.d.ts.map +1 -1
  127. package/dist/group/GroupField.js +71 -66
  128. package/dist/group/GroupField.js.map +1 -1
  129. package/dist/group/GroupField.module.js +10 -2
  130. package/dist/group/GroupField.module.js.map +1 -1
  131. package/dist/group/index.d.ts +1 -1
  132. package/dist/index.d.ts +21 -7
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +14 -2
  135. package/dist/json/JsonField.css +7 -0
  136. package/dist/json/JsonField.d.ts +22 -0
  137. package/dist/json/JsonField.d.ts.map +1 -0
  138. package/dist/json/JsonField.js +207 -0
  139. package/dist/json/JsonField.js.map +1 -0
  140. package/dist/json/JsonField.module.js +8 -0
  141. package/dist/json/JsonField.module.js.map +1 -0
  142. package/dist/json/index.d.ts +2 -0
  143. package/dist/json/index.d.ts.map +1 -0
  144. package/dist/json/index.js +1 -0
  145. package/dist/link/LinkField.css +12 -0
  146. package/dist/link/LinkField.d.ts +38 -0
  147. package/dist/link/LinkField.d.ts.map +1 -0
  148. package/dist/link/LinkField.js +742 -0
  149. package/dist/link/LinkField.js.map +1 -0
  150. package/dist/link/LinkField.module.js +8 -0
  151. package/dist/link/LinkField.module.js.map +1 -0
  152. package/dist/link/index.d.ts +3 -0
  153. package/dist/link/index.d.ts.map +1 -0
  154. package/dist/link/index.js +3 -0
  155. package/dist/link/link.d.ts +30 -0
  156. package/dist/link/link.d.ts.map +1 -0
  157. package/dist/link/link.js +63 -0
  158. package/dist/link/link.js.map +1 -0
  159. package/dist/link/pages.d.ts +17 -0
  160. package/dist/link/pages.d.ts.map +1 -0
  161. package/dist/link/pages.js +104 -0
  162. package/dist/link/pages.js.map +1 -0
  163. package/dist/locales/index.js.map +1 -1
  164. package/dist/localized/LocalizedField.css +27 -6
  165. package/dist/localized/LocalizedField.d.ts +19 -8
  166. package/dist/localized/LocalizedField.d.ts.map +1 -1
  167. package/dist/localized/LocalizedField.js +238 -105
  168. package/dist/localized/LocalizedField.js.map +1 -1
  169. package/dist/localized/LocalizedField.module.js +10 -4
  170. package/dist/localized/LocalizedField.module.js.map +1 -1
  171. package/dist/localized/index.d.ts +1 -1
  172. package/dist/location/LocationField.css +54 -0
  173. package/dist/location/LocationField.d.ts +31 -0
  174. package/dist/location/LocationField.d.ts.map +1 -0
  175. package/dist/location/LocationField.js +487 -0
  176. package/dist/location/LocationField.js.map +1 -0
  177. package/dist/location/LocationField.module.js +22 -0
  178. package/dist/location/LocationField.module.js.map +1 -0
  179. package/dist/location/LocationMap.d.ts +25 -0
  180. package/dist/location/LocationMap.d.ts.map +1 -0
  181. package/dist/location/LocationMap.js +205 -0
  182. package/dist/location/LocationMap.js.map +1 -0
  183. package/dist/location/index.d.ts +5 -0
  184. package/dist/location/index.d.ts.map +1 -0
  185. package/dist/location/index.js +4 -0
  186. package/dist/location/leafletCss.d.ts +2 -0
  187. package/dist/location/leafletCss.d.ts.map +1 -0
  188. package/dist/location/leafletCss.js +6 -0
  189. package/dist/location/leafletCss.js.map +1 -0
  190. package/dist/location/nominatim.d.ts +23 -0
  191. package/dist/location/nominatim.d.ts.map +1 -0
  192. package/dist/location/nominatim.js +79 -0
  193. package/dist/location/nominatim.js.map +1 -0
  194. package/dist/location/search.d.ts +10 -0
  195. package/dist/location/search.d.ts.map +1 -0
  196. package/dist/location/search.js +83 -0
  197. package/dist/location/search.js.map +1 -0
  198. package/dist/location/types.d.ts +46 -0
  199. package/dist/location/types.d.ts.map +1 -0
  200. package/dist/missing/MissingField.d.ts +4 -3
  201. package/dist/missing/MissingField.d.ts.map +1 -1
  202. package/dist/missing/MissingField.js +3 -2
  203. package/dist/missing/MissingField.js.map +1 -1
  204. package/dist/money/MoneyField.d.ts +28 -0
  205. package/dist/money/MoneyField.d.ts.map +1 -0
  206. package/dist/money/MoneyField.js +269 -0
  207. package/dist/money/MoneyField.js.map +1 -0
  208. package/dist/money/index.d.ts +3 -0
  209. package/dist/money/index.d.ts.map +1 -0
  210. package/dist/money/index.js +3 -0
  211. package/dist/money/money.d.ts +27 -0
  212. package/dist/money/money.d.ts.map +1 -0
  213. package/dist/money/money.js +56 -0
  214. package/dist/money/money.js.map +1 -0
  215. package/dist/number/NumberField.d.ts +1 -1
  216. package/dist/number/NumberField.js.map +1 -1
  217. package/dist/number/index.d.ts +1 -1
  218. package/dist/range/RangeField.d.ts +22 -0
  219. package/dist/range/RangeField.d.ts.map +1 -0
  220. package/dist/range/RangeField.js +203 -0
  221. package/dist/range/RangeField.js.map +1 -0
  222. package/dist/range/index.d.ts +2 -0
  223. package/dist/range/index.d.ts.map +1 -0
  224. package/dist/range/index.js +1 -0
  225. package/dist/region/RegionField.d.ts +23 -0
  226. package/dist/region/RegionField.d.ts.map +1 -0
  227. package/dist/region/RegionField.js +174 -0
  228. package/dist/region/RegionField.js.map +1 -0
  229. package/dist/region/RegionFlag.css +9 -0
  230. package/dist/region/RegionFlag.d.ts +20 -0
  231. package/dist/region/RegionFlag.d.ts.map +1 -0
  232. package/dist/region/RegionFlag.js +61 -0
  233. package/dist/region/RegionFlag.js.map +1 -0
  234. package/dist/region/RegionFlag.module.js +8 -0
  235. package/dist/region/RegionFlag.module.js.map +1 -0
  236. package/dist/region/data.d.ts +5 -0
  237. package/dist/region/data.d.ts.map +1 -0
  238. package/dist/region/data.js +513 -0
  239. package/dist/region/data.js.map +1 -0
  240. package/dist/region/flags/CA.d.ts +4 -0
  241. package/dist/region/flags/CA.d.ts.map +1 -0
  242. package/dist/region/flags/CA.js +21 -0
  243. package/dist/region/flags/CA.js.map +1 -0
  244. package/dist/region/flags/US.d.ts +4 -0
  245. package/dist/region/flags/US.d.ts.map +1 -0
  246. package/dist/region/flags/US.js +65 -0
  247. package/dist/region/flags/US.js.map +1 -0
  248. package/dist/region/flags.d.ts +17 -0
  249. package/dist/region/flags.d.ts.map +1 -0
  250. package/dist/region/flags.js +84 -0
  251. package/dist/region/flags.js.map +1 -0
  252. package/dist/region/index.d.ts +5 -0
  253. package/dist/region/index.d.ts.map +1 -0
  254. package/dist/region/index.js +5 -0
  255. package/dist/region/regions.d.ts +15 -0
  256. package/dist/region/regions.d.ts.map +1 -0
  257. package/dist/region/regions.js +29 -0
  258. package/dist/region/regions.js.map +1 -0
  259. package/dist/relation/RelationField.d.ts +2 -2
  260. package/dist/relation/RelationField.d.ts.map +1 -1
  261. package/dist/relation/RelationField.js +511 -171
  262. package/dist/relation/RelationField.js.map +1 -1
  263. package/dist/relation/index.d.ts +2 -2
  264. package/dist/repeater/RepeaterField.d.ts +13 -2
  265. package/dist/repeater/RepeaterField.d.ts.map +1 -1
  266. package/dist/repeater/RepeaterField.js +138 -50
  267. package/dist/repeater/RepeaterField.js.map +1 -1
  268. package/dist/repeater/index.d.ts +1 -1
  269. package/dist/select/SelectField.d.ts +1 -1
  270. package/dist/select/SelectField.js.map +1 -1
  271. package/dist/select/index.d.ts +1 -1
  272. package/dist/sessions/SessionsField.d.ts +15 -0
  273. package/dist/sessions/SessionsField.d.ts.map +1 -0
  274. package/dist/sessions/SessionsField.js +49 -0
  275. package/dist/sessions/SessionsField.js.map +1 -0
  276. package/dist/sessions/index.d.ts +4 -0
  277. package/dist/sessions/index.d.ts.map +1 -0
  278. package/dist/sessions/index.js +1 -0
  279. package/dist/shared/CodeComboBox.d.ts +21 -0
  280. package/dist/shared/CodeComboBox.d.ts.map +1 -0
  281. package/dist/shared/CodeComboBox.js +238 -0
  282. package/dist/shared/CodeComboBox.js.map +1 -0
  283. package/dist/shared/DefinitionField.d.ts +9 -4
  284. package/dist/shared/DefinitionField.d.ts.map +1 -1
  285. package/dist/shared/DefinitionField.js +98 -78
  286. package/dist/shared/DefinitionField.js.map +1 -1
  287. package/dist/shared/builtIn.d.ts +7 -3
  288. package/dist/shared/builtIn.d.ts.map +1 -1
  289. package/dist/shared/builtIn.js +39 -7
  290. package/dist/shared/builtIn.js.map +1 -1
  291. package/dist/shared/check.d.ts +27 -0
  292. package/dist/shared/check.d.ts.map +1 -0
  293. package/dist/shared/check.js +18 -0
  294. package/dist/shared/check.js.map +1 -0
  295. package/dist/shared/context.d.ts +33 -5
  296. package/dist/shared/context.d.ts.map +1 -1
  297. package/dist/shared/context.js +36 -20
  298. package/dist/shared/context.js.map +1 -1
  299. package/dist/shared/cx.js.map +1 -1
  300. package/dist/shared/dates.js +2 -2
  301. package/dist/shared/dates.js.map +1 -1
  302. package/dist/shared/embed.d.ts +19 -0
  303. package/dist/shared/embed.d.ts.map +1 -0
  304. package/dist/shared/embed.js +14 -0
  305. package/dist/shared/embed.js.map +1 -0
  306. package/dist/shared/entry.d.ts +13 -4
  307. package/dist/shared/entry.d.ts.map +1 -1
  308. package/dist/shared/entry.js +24 -7
  309. package/dist/shared/entry.js.map +1 -1
  310. package/dist/shared/flow.d.ts +8 -0
  311. package/dist/shared/flow.d.ts.map +1 -0
  312. package/dist/shared/flow.js +38 -0
  313. package/dist/shared/flow.js.map +1 -0
  314. package/dist/shared/part.d.ts +26 -0
  315. package/dist/shared/part.d.ts.map +1 -0
  316. package/dist/shared/part.js +64 -0
  317. package/dist/shared/part.js.map +1 -0
  318. package/dist/shared/relation.js.map +1 -1
  319. package/dist/shared/reveal.d.ts +16 -0
  320. package/dist/shared/reveal.d.ts.map +1 -0
  321. package/dist/shared/reveal.js +46 -0
  322. package/dist/shared/reveal.js.map +1 -0
  323. package/dist/shared/types.d.ts +12 -0
  324. package/dist/shared/types.d.ts.map +1 -1
  325. package/dist/slug/SlugField.css +18 -0
  326. package/dist/slug/SlugField.d.ts +33 -5
  327. package/dist/slug/SlugField.d.ts.map +1 -1
  328. package/dist/slug/SlugField.js +346 -126
  329. package/dist/slug/SlugField.js.map +1 -1
  330. package/dist/slug/SlugField.module.js +14 -0
  331. package/dist/slug/SlugField.module.js.map +1 -0
  332. package/dist/slug/index.d.ts +1 -1
  333. package/dist/slug/index.d.ts.map +1 -1
  334. package/dist/slug/index.js +1 -1
  335. package/dist/tags/TagsField.d.ts +17 -0
  336. package/dist/tags/TagsField.d.ts.map +1 -0
  337. package/dist/tags/TagsField.js +120 -0
  338. package/dist/tags/TagsField.js.map +1 -0
  339. package/dist/tags/index.d.ts +2 -0
  340. package/dist/tags/index.d.ts.map +1 -0
  341. package/dist/tags/index.js +1 -0
  342. package/dist/tel/TelField.css +25 -0
  343. package/dist/tel/TelField.d.ts +34 -0
  344. package/dist/tel/TelField.d.ts.map +1 -0
  345. package/dist/tel/TelField.js +390 -0
  346. package/dist/tel/TelField.js.map +1 -0
  347. package/dist/tel/TelField.module.js +12 -0
  348. package/dist/tel/TelField.module.js.map +1 -0
  349. package/dist/tel/index.d.ts +3 -0
  350. package/dist/tel/index.d.ts.map +1 -0
  351. package/dist/tel/index.js +3 -0
  352. package/dist/tel/phone.d.ts +59 -0
  353. package/dist/tel/phone.d.ts.map +1 -0
  354. package/dist/tel/phone.js +107 -0
  355. package/dist/tel/phone.js.map +1 -0
  356. package/dist/text/TextField.d.ts +12 -4
  357. package/dist/text/TextField.d.ts.map +1 -1
  358. package/dist/text/TextField.js +104 -60
  359. package/dist/text/TextField.js.map +1 -1
  360. package/dist/text/index.d.ts +1 -1
  361. package/dist/textarea/TextAreaField.d.ts +1 -1
  362. package/dist/textarea/TextAreaField.js.map +1 -1
  363. package/dist/textarea/index.d.ts +1 -1
  364. package/dist/time/TimeField.d.ts +1 -1
  365. package/dist/time/TimeField.js +64 -10
  366. package/dist/time/TimeField.js.map +1 -1
  367. package/dist/time/index.d.ts +1 -1
  368. package/dist/upload/FilePicker.css +24 -0
  369. package/dist/upload/FilePicker.d.ts +14 -0
  370. package/dist/upload/FilePicker.d.ts.map +1 -0
  371. package/dist/upload/FilePicker.js +130 -0
  372. package/dist/upload/FilePicker.js.map +1 -0
  373. package/dist/upload/FilePicker.module.js +12 -0
  374. package/dist/upload/FilePicker.module.js.map +1 -0
  375. package/dist/upload/UploadList.css +93 -0
  376. package/dist/upload/UploadList.d.ts +18 -0
  377. package/dist/upload/UploadList.d.ts.map +1 -0
  378. package/dist/upload/UploadList.js +144 -0
  379. package/dist/upload/UploadList.js.map +1 -0
  380. package/dist/upload/UploadList.module.js +32 -0
  381. package/dist/upload/UploadList.module.js.map +1 -0
  382. package/dist/upload/files.d.ts +5 -0
  383. package/dist/upload/files.d.ts.map +1 -0
  384. package/dist/upload/files.js +26 -0
  385. package/dist/upload/files.js.map +1 -0
  386. package/dist/upload/types.d.ts +58 -0
  387. package/dist/upload/types.d.ts.map +1 -0
  388. package/dist/upload/useRejectionMessage.d.ts +4 -0
  389. package/dist/upload/useRejectionMessage.d.ts.map +1 -0
  390. package/dist/upload/useRejectionMessage.js +25 -0
  391. package/dist/upload/useRejectionMessage.js.map +1 -0
  392. package/dist/upload/useUploads.d.ts +30 -0
  393. package/dist/upload/useUploads.d.ts.map +1 -0
  394. package/dist/upload/useUploads.js +115 -0
  395. package/dist/upload/useUploads.js.map +1 -0
  396. package/dist/uppy/index.d.ts +3 -0
  397. package/dist/uppy/index.d.ts.map +1 -0
  398. package/dist/uppy/index.js +1 -0
  399. package/dist/uppy/uploader.d.ts +44 -0
  400. package/dist/uppy/uploader.d.ts.map +1 -0
  401. package/dist/uppy/uploader.js +139 -0
  402. package/dist/uppy/uploader.js.map +1 -0
  403. package/dist/url/UrlField.d.ts +2 -2
  404. package/dist/url/UrlField.d.ts.map +1 -1
  405. package/dist/url/UrlField.js +69 -14
  406. package/dist/url/UrlField.js.map +1 -1
  407. package/dist/url/index.d.ts +1 -1
  408. package/package.json +110 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkField.js","names":["File","FileIcon","FileText","Globe","Hash","Mail","Phone","ReactNode","useState","Field","LinkValue","LinkNewTab","LinkType","getLinkNewTab","getLinkTypes","Checkbox","ComboBox","Fieldset","IconComponent","SegmentedControl","TextInput","usePanneauIntl","EmailField","LocalizedField","LocalizedValue","DefinitionField","useFieldsContext","getFieldProps","getSetting","isString","messages","BoundPart","BoundPartProps","FieldEntryProps","FieldProps","TelField","TextField","UrlField","styles","LinkPage","cleanLink","getLinkPage","isLink","usePageSearch","LinkLabelMode","LinkFieldProps","path","types","pages","libraries","newTab","labelMode","singleLabel","DEFAULT_TYPES","id","TYPE_ICONS","Readonly","Record","url","page","email","tel","file","withoutScheme","scheme","undefined","toLowerCase","startsWith","slice","length","LinkField","t0","$","_c","value","onChange","onBlur","name","typesProp","t1","t2","t3","t4","label","description","errors","disabled","readOnly","required","className","t5","intl","locales","relationSource","defaultType","t6","type","find","candidate","base","t7","part","partPath","editable","t8","next","link","change","t9","setUrl","t10","candidate_0","formatMessage","linkTypeUrl","linkTypePage","linkTypeEmail","linkTypeTel","linkTypeFile","typeName","t11","bound","shared","t12","partName","partType","render","part_0","input","bb0","t13","bound_5","linkUrl","t14","bound_4","linkEmail","bound_3","linkTel","number","bound_2","linkPage","linkFile","resource","t15","fileField","t16","bound_1","t17","bound_0","placeholder","linkLabel","labelText","labelRequired","bound_6","text","next_0","localeInput","text_0","labelInput","linkType","map","candidate_1","icon","next_1","selected","linkNewTab","t18","PagePickerProps","resources","PagePicker","query","setQuery","enabled","items","isLoading","item","keyOf","T0","current","shown","some","item_0","item_1","key","found","item_2","search","noResults","isLabelMode","isCodes","Array","isArray","every","LinkFieldEntry","props","field","fieldProps","_placeholder","locale","FileIcon","_c","styles"],"sources":["../../src/link/LinkField.tsx"],"sourcesContent":["import { File as FileIcon, FileText, Globe, Hash, Mail, Phone } from 'lucide-react';\nimport { type ReactNode, useState } from 'react';\n\nimport type { Field, LinkValue } from '@panneau/protocol';\nimport {\n type LinkNewTab,\n type LinkType,\n getLinkNewTab,\n getLinkTypes,\n} from '@panneau/protocol/runtime';\nimport {\n Checkbox,\n ComboBox,\n Fieldset,\n type IconComponent,\n SegmentedControl,\n TextInput,\n usePanneauIntl,\n} from '@panneau/ui';\n\nimport { EmailField } from '../email/EmailField';\nimport { LocalizedField, type LocalizedValue } from '../localized/LocalizedField';\nimport { DefinitionField } from '../shared/DefinitionField';\nimport { useFieldsContext } from '../shared/context';\nimport { getFieldProps, getSetting, isString } from '../shared/entry';\nimport { messages } from '../shared/messages';\nimport { BoundPart, type BoundPartProps } from '../shared/part';\nimport type { FieldEntryProps, FieldProps } from '../shared/types';\nimport { TelField } from '../tel/TelField';\nimport { TextField } from '../text/TextField';\nimport { UrlField } from '../url/UrlField';\nimport styles from './LinkField.module.css';\nimport { type LinkPage, cleanLink, getLinkPage, isLink } from './link';\nimport { usePageSearch } from './pages';\n\n/** Whether links have a label: optional, required, or none. */\nexport type LinkLabelMode = 'optional' | 'required' | 'none';\n\nexport interface LinkFieldProps extends FieldProps<LinkValue> {\n /** Dot path of the value, the prefix of the paths of its parts. Defaults to `name`. */\n path?: string;\n /** The types offered, in order. Defaults to `url`, `email` and `tel`. */\n types?: readonly LinkType[];\n /** The resources of `page` links. */\n pages?: readonly string[];\n /** The media libraries of `file` links. Defaults to every library. */\n libraries?: readonly string[];\n /** Which links open in a new tab. Defaults to `choose`, a checkbox. */\n newTab?: LinkNewTab;\n /** Whether links have a label. Defaults to `optional`. */\n labelMode?: LinkLabelMode;\n /**\n * The label is a string, not a value per locale: in a `localized` link field, where the whole\n * link is per locale already.\n */\n singleLabel?: boolean;\n}\n\nconst DEFAULT_TYPES: readonly LinkType[] = [{ id: 'url' }, { id: 'email' }, { id: 'tel' }];\n\nconst TYPE_ICONS: Readonly<Record<string, IconComponent>> = {\n url: Globe,\n page: FileText,\n email: Mail,\n tel: Phone,\n file: FileIcon,\n};\n\n/** The text of a URL after its scheme: `info@example.com` in `mailto:info@example.com`. */\nfunction withoutScheme(url: string | undefined, scheme: string): string | null {\n if (url === undefined || url === '') {\n return null;\n }\n return url.toLowerCase().startsWith(scheme) ? url.slice(scheme.length) : url;\n}\n\n/**\n * A link (decision 0055): its type, in a segmented control, then the input of the type (a URL, a\n * page searched in the resources of `pages`, an email address, a phone number, a media, or the\n * text of a type of the site), its label per locale, and whether it opens in a new tab. Each part\n * shows the errors of its own path (`link.url`) in a form.\n */\nexport function LinkField({\n value,\n onChange,\n onBlur,\n path,\n name,\n types: typesProp,\n pages = [],\n libraries,\n newTab = 'choose',\n labelMode = 'optional',\n singleLabel = false,\n label,\n description,\n errors,\n disabled,\n readOnly,\n required,\n className,\n}: LinkFieldProps) {\n const intl = usePanneauIntl();\n const { locales, relationSource } = useFieldsContext();\n const types = typesProp !== undefined && typesProp.length > 0 ? typesProp : DEFAULT_TYPES;\n const defaultType = types[0]?.id;\n const type = types.find((candidate) => candidate.id === value?.type) ?? types[0];\n const base = path ?? name ?? '';\n const partPath = (part: string) => (base !== '' ? `${base}.${part}` : part);\n const editable = disabled !== true && readOnly !== true;\n\n const change = (next: Partial<LinkValue>) => {\n const link = { ...value, type: value?.type ?? defaultType ?? 'url', ...next };\n onChange?.(cleanLink(link, { newTab, defaultType }));\n };\n const setUrl = (url: string | null) => change({ url: url ?? undefined });\n\n const typeName = (candidate: LinkType) => {\n switch (candidate.id) {\n case 'url':\n return intl.formatMessage(messages.linkTypeUrl);\n case 'page':\n return intl.formatMessage(messages.linkTypePage);\n case 'email':\n return intl.formatMessage(messages.linkTypeEmail);\n case 'tel':\n return intl.formatMessage(messages.linkTypeTel);\n case 'file':\n return intl.formatMessage(messages.linkTypeFile);\n default:\n return candidate.label ?? candidate.id;\n }\n };\n const shared = (bound: BoundPartProps) => ({\n errors: bound.errors ?? [],\n ...(bound.onBlur !== undefined ? { onBlur: bound.onBlur } : {}),\n ...(disabled !== undefined ? { disabled } : {}),\n ...(readOnly !== undefined ? { readOnly } : {}),\n required: required === true || (value ?? null) !== null,\n });\n const part = (\n partName: string,\n partType: string,\n render: (bound: BoundPartProps) => ReactNode,\n ) => (\n <BoundPart\n field={{ name: partName, type: partType }}\n path={partPath(partName)}\n {...(onBlur !== undefined ? { onBlur } : {})}\n render={render}\n />\n );\n\n let input: ReactNode = null;\n if (type !== undefined) {\n switch (type.id) {\n case 'url':\n input = part('url', 'url', (bound) => (\n <UrlField\n {...shared(bound)}\n label={intl.formatMessage(messages.linkUrl)}\n value={value?.url ?? null}\n onChange={setUrl}\n />\n ));\n break;\n case 'email':\n input = part('url', 'email', (bound) => (\n <EmailField\n {...shared(bound)}\n label={intl.formatMessage(messages.linkEmail)}\n value={withoutScheme(value?.url, 'mailto:')}\n onChange={(email) => setUrl(email !== null ? `mailto:${email}` : null)}\n />\n ));\n break;\n case 'tel':\n input = part('url', 'tel', (bound) => (\n <TelField\n {...shared(bound)}\n label={intl.formatMessage(messages.linkTel)}\n value={withoutScheme(value?.url, 'tel:')}\n onChange={(number) => setUrl(number !== null ? `tel:${number}` : null)}\n />\n ));\n break;\n case 'page':\n input = part('page', 'relation', (bound) => (\n <PagePicker\n {...shared(bound)}\n label={intl.formatMessage(messages.linkPage)}\n resources={pages}\n page={getLinkPage(value)}\n editable={editable && relationSource !== null}\n onChange={(page) =>\n change({ page: page !== null ? { ...page } : undefined })\n }\n />\n ));\n break;\n case 'file': {\n const fileField: Field = {\n name: 'file',\n type: 'media',\n label: intl.formatMessage(messages.linkFile),\n ...(libraries !== undefined && libraries.length > 0\n ? { resource: [...libraries] }\n : {}),\n };\n // The media entry of the fields context, set as a part of the link\n input = part('file', 'media', (bound) => (\n <DefinitionField\n field={fileField}\n path={partPath('file')}\n value={value?.file ?? null}\n onChange={(file) =>\n change({ file: (file ?? undefined) as LinkValue['file'] })\n }\n errors={bound.errors ?? []}\n {...(bound.onBlur !== undefined ? { onBlur: bound.onBlur } : {})}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(readOnly !== undefined ? { readOnly } : {})}\n />\n ));\n break;\n }\n default:\n input = part('url', 'text', (bound) => (\n <TextField\n {...shared(bound)}\n label={typeName(type)}\n autoComplete=\"off\"\n {...(type.placeholder !== undefined\n ? { placeholder: type.placeholder }\n : {})}\n value={value?.url ?? null}\n onChange={setUrl}\n />\n ));\n }\n }\n\n const labelText = intl.formatMessage(messages.linkLabel);\n const labelRequired = labelMode === 'required';\n const labelInput =\n labelMode === 'none'\n ? null\n : part('label', 'text', (bound) =>\n singleLabel || locales.length === 0 ? (\n <TextField\n {...shared(bound)}\n label={labelText}\n required={labelRequired}\n value={typeof value?.label === 'string' ? value.label : null}\n onChange={(text) => change({ label: text })}\n />\n ) : (\n <LocalizedField<string>\n label={labelText}\n errors={bound.errors ?? []}\n required={labelRequired}\n locales={locales}\n value={\n value?.label !== null && typeof value?.label === 'object'\n ? (value.label as LocalizedValue<string>)\n : {}\n }\n onChange={(next) =>\n change({ label: (next ?? null) as LinkValue['label'] })\n }\n >\n {(localeInput) => (\n <TextInput\n aria-label={`${labelText} (${localeInput.label})`}\n value={localeInput.value ?? ''}\n onChange={(text) =>\n localeInput.onChange(text === '' ? null : text)\n }\n {...(bound.onBlur !== undefined ? { onBlur: bound.onBlur } : {})}\n isDisabled={disabled === true}\n isReadOnly={readOnly === true}\n />\n )}\n </LocalizedField>\n ),\n );\n\n return (\n <Fieldset\n legend={label}\n description={description}\n errors={errors}\n isRequired={required}\n isDisabled={disabled}\n className={className}\n >\n <div className={styles.link}>\n {types.length > 1 ? (\n <SegmentedControl\n aria-label={intl.formatMessage(messages.linkType)}\n size=\"sm\"\n isDisabled={!editable}\n options={types.map((candidate) => ({\n value: candidate.id,\n label: typeName(candidate),\n icon: TYPE_ICONS[candidate.id] ?? Hash,\n }))}\n {...(type !== undefined ? { value: type.id } : {})}\n onChange={(next) => {\n if (next !== type?.id) {\n // A new type keeps the label only\n onChange?.(\n cleanLink(\n {\n type: next,\n label: value?.label ?? null,\n newTab: value?.newTab ?? false,\n },\n { newTab, defaultType },\n ),\n );\n }\n }}\n />\n ) : null}\n {input}\n {labelInput}\n {newTab === 'choose' ? (\n <Checkbox\n isSelected={value?.newTab === true}\n onChange={(selected) => change({ newTab: selected })}\n isDisabled={!editable}\n >\n {intl.formatMessage(messages.linkNewTab)}\n </Checkbox>\n ) : null}\n </div>\n </Fieldset>\n );\n}\n\ninterface PagePickerProps {\n label: string;\n resources: readonly string[];\n page: LinkPage | null;\n onChange: (page: LinkPage | null) => void;\n editable: boolean;\n errors: readonly string[];\n onBlur?: () => void;\n required: boolean;\n}\n\n/** The page of a link: searched in every resource of `pages`, with the relation source. */\nfunction PagePicker({\n label,\n resources,\n page,\n onChange,\n editable,\n errors,\n onBlur,\n required,\n}: PagePickerProps) {\n const intl = usePanneauIntl();\n const { relationSource } = useFieldsContext();\n const [query, setQuery] = useState<string | null>(null);\n const { items, isLoading } = usePageSearch(relationSource, resources, query ?? '', {\n enabled: editable,\n });\n const keyOf = (item: { id: string; resource?: string }) =>\n `${item.resource ?? resources[0] ?? ''}\\u0000${item.id}`;\n const current = page !== null ? { ...page, label: page.label ?? page.id } : null;\n const shown =\n current !== null && !items.some((item) => keyOf(item) === keyOf(current))\n ? [current, ...items]\n : items;\n return (\n <ComboBox\n label={label}\n errors={errors}\n isRequired={required}\n isDisabled={!editable}\n items={shown.map((item) => ({ id: keyOf(item), label: item.label }))}\n value={current !== null ? keyOf(current) : null}\n inputValue={query ?? current?.label ?? ''}\n onInputChange={(text) => {\n setQuery(text);\n if (text === '' && current !== null) {\n onChange(null);\n }\n }}\n onChange={(key) => {\n setQuery(null);\n const found = shown.find((item) => keyOf(item) === key);\n if (found !== undefined) {\n onChange({\n id: found.id,\n label: found.label,\n ...(found.resource !== undefined\n ? { resource: found.resource }\n : resources[0] !== undefined\n ? { resource: resources[0] }\n : {}),\n });\n }\n }}\n isLoading={isLoading}\n placeholder={intl.formatMessage(messages.search)}\n emptyMessage={intl.formatMessage(messages.noResults)}\n {...(onBlur !== undefined ? { onBlur: () => onBlur() } : {})}\n />\n );\n}\n\nconst isLabelMode = (value: unknown): value is LinkLabelMode =>\n value === 'optional' || value === 'required' || value === 'none';\nconst isCodes = (value: unknown): value is string[] =>\n Array.isArray(value) && value.every(isString);\n\n/**\n * The `link` type: its `resource` (the resources of `page` links), and settings `types`,\n * `newTab`, `label` and `libraries`. In a localized field, the label of each locale's link is a\n * string.\n */\nexport function LinkFieldEntry(props: FieldEntryProps) {\n const { field } = props;\n const labelMode = getSetting(field, 'label', isLabelMode);\n const libraries = getSetting(field, 'libraries', isCodes);\n const pages =\n field.resource === undefined\n ? []\n : typeof field.resource === 'string'\n ? [field.resource]\n : field.resource;\n const { placeholder: _placeholder, ...fieldProps } = getFieldProps(props);\n return (\n <LinkField\n {...fieldProps}\n path={props.path}\n value={isLink(props.value) ? props.value : null}\n onChange={props.onChange}\n types={getLinkTypes(field)}\n pages={pages}\n newTab={getLinkNewTab(field)}\n singleLabel={props.locale !== undefined}\n {...(labelMode !== undefined ? { labelMode } : {})}\n {...(libraries !== undefined ? { libraries } : {})}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA0DA,IAAMqD,gBAAqC;CAAC,EAAEC,IAAI,MAAM;CAAG,EAAEA,IAAI,QAAQ;CAAG,EAAEA,IAAI,MAAM;AAAC;AAEzF,IAAMC,aAAsD;CACxDG,KAAKvD;CACLwD,MAAMzD;CACN0D,OAAOvD;CACPwD,KAAKvD;CACLwD,MAAM7D;AACV;;AAGA,SAAS8D,cAAcL,KAAyBM,QAA+B;CAC3E,IAAIN,QAAQO,KAAAA,KAAaP,QAAQ,IAC7B,OAAO;CAEX,OAAOA,IAAIQ,YAAY,CAAC,CAACC,WAAWH,MAAM,IAAIN,IAAIU,MAAMJ,OAAOK,MAAM,IAAIX;AAC7E;;;;;;;AAQA,SAAOY,UAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAmB,MAAA,EAAAC,OAAAC,UAAAC,QAAA9B,MAAA+B,MAAA9B,OAAA+B,WAAA9B,OAAA+B,IAAA9B,WAAAC,QAAA8B,IAAA7B,WAAA8B,IAAA7B,aAAA8B,IAAAC,OAAAC,aAAAC,QAAAC,UAAAC,UAAAC,UAAAC,cAAAlB;CAmBT,IAAAmB;CAAA,IAAAlB,EAAA,OAAAO,IAAA;EAZbW,KAAAX,OAAAd,KAAAA,IAAA,CAAA,IAAAc;EAAUP,EAAA,KAAAO;EAAAP,EAAA,KAAAkB;CAAA,OAAAA,KAAAlB,EAAA;CAAV,MAAAxB,QAAA0C;CAEA,MAAAxC,SAAA8B,OAAAf,KAAAA,IAAA,WAAAe;CACA,MAAA7B,YAAA8B,OAAAhB,KAAAA,IAAA,aAAAgB;CACA,MAAA7B,cAAA8B,OAAAjB,KAAAA,IAAA,QAAAiB;CASA,MAAAS,OAAatE,eAAe;CAC5B,MAAA,EAAAuE,SAAAC,mBAAoCnE,iBAAiB;CACrD,MAAAqB,QAAc+B,cAAcb,KAAAA,KAAaa,UAAST,SAAU,IAA9CS,YAAAzB;CACd,MAAAyC,cAAoB/C,MAAK,EAAO,EAAAO;CAAC,IAAAyC;CAAA,IAAAvB,EAAA,OAAAzB,SAAAyB,EAAA,OAAAE,OAAAsB,MAAA;EACpBD,KAAAhD,MAAKkD,MAAMC,cAAeA,UAAS5C,OAAQoB,OAAKsB,IAAkB,KAAPjD,MAAK;EAAGyB,EAAA,KAAAzB;EAAAyB,EAAA,KAAAE,OAAAsB;EAAAxB,EAAA,KAAAuB;CAAA,OAAAA,KAAAvB,EAAA;CAAhF,MAAAwB,OAAaD;CACb,MAAAI,OAAarD,QAAA+B,QAAA;CAAmB,IAAAuB;CAAA,IAAA5B,EAAA,OAAA2B,MAAA;EACfC,MAAAC,SAAmBF,SAAS,KAAT,GAAiBA,KAAI,GAAIE,SAAzBA;EAAuC7B,EAAA,KAAA2B;EAAA3B,EAAA,KAAA4B;CAAA,OAAAA,KAAA5B,EAAA;CAA3E,MAAA8B,WAAiBF;CACjB,MAAAG,WAAiBjB,aAAa,QAAQC,aAAa;CAAK,IAAAiB;CAAA,IAAAhC,EAAA,OAAAsB,eAAAtB,EAAA,OAAAtB,UAAAsB,EAAA,OAAAG,YAAAH,EAAA,QAAAE,OAAA;EAEzC8B,MAAAC,SAAA;GACX,MAAAC,OAAa;IAAA,GAAKhC;IAAKsB,MAAQtB,OAAKsB,QAALF,eAAA;IAAmC,GAAKW;GAAK;GAC5E9B,WAAWnC,UAAUkE,MAAM;IAAAxD;IAAA4C;GAAsB,CAAC,CAAC;EAAC;EACvDtB,EAAA,KAAAsB;EAAAtB,EAAA,KAAAtB;EAAAsB,EAAA,KAAAG;EAAAH,EAAA,MAAAE;EAAAF,EAAA,MAAAgC;CAAA,OAAAA,KAAAhC,EAAA;CAHD,MAAAmC,SAAeH;CAGb,IAAAI;CAAA,IAAApC,EAAA,QAAAmC,QAAA;EACaC,MAAAlD,QAAwBiD,OAAO,EAAAjD,KAAOA,OAAAO,KAAAA,EAAiB,CAAC;EAACO,EAAA,MAAAmC;EAAAnC,EAAA,MAAAoC;CAAA,OAAAA,KAAApC,EAAA;CAAxE,MAAAqC,SAAeD;CAA0D,IAAAE;CAAA,IAAAtC,EAAA,QAAAmB,MAAA;EAExDmB,OAAAC,gBAAA;GACb,QAAQb,YAAS5C,IAAjB;IAAoB,KACX,OAAK,OACCqC,KAAIqB,cAAelF,SAAQmF,WAAY;IAAC,KAC9C,QAAM,OACAtB,KAAIqB,cAAelF,SAAQoF,YAAa;IAAC,KAC/C,SAAO,OACDvB,KAAIqB,cAAelF,SAAQqF,aAAc;IAAC,KAChD,OAAK,OACCxB,KAAIqB,cAAelF,SAAQsF,WAAY;IAAC,KAC9C,QAAM,OACAzB,KAAIqB,cAAelF,SAAQuF,YAAa;IAAC,SAAA,OAEzCnB,YAASf,SAAUe,YAAS5C;GAC3C;EAAC;EACJkB,EAAA,MAAAmB;EAAAnB,EAAA,MAAAsC;CAAA,OAAAA,MAAAtC,EAAA;CAfD,MAAA8C,WAAiBR;CAef,IAAAS;CAAA,IAAA/C,EAAA,QAAAc,YAAAd,EAAA,QAAAe,YAAAf,EAAA,QAAAgB,YAAAhB,EAAA,QAAAE,OAAA;EACa6C,OAAAC,WAA4B;GAAAnC,QAC/BmC,MAAKnC,UAAL,CAAA;GAAkB,GACtBmC,MAAK5C,WAAYX,KAAAA,IAAjB,EAAAW,QAAuC4C,MAAK5C,OAAa,IAAzD,CAAyD;GAAC,GAC1DU,aAAarB,KAAAA,IAAb,EAAAqB,SAAyC,IAAzC,CAAyC;GAAC,GAC1CC,aAAatB,KAAAA,IAAb,EAAAsB,SAAyC,IAAzC,CAAyC;GAACC,UACpCA,aAAa,SAASd,SAAA,UAAmB;EACvD;EAAEF,EAAA,MAAAc;EAAAd,EAAA,MAAAe;EAAAf,EAAA,MAAAgB;EAAAhB,EAAA,MAAAE;EAAAF,EAAA,MAAA+C;CAAA,OAAAA,MAAA/C,EAAA;CANF,MAAAiD,SAAeF;CAMZ,IAAAG;CAAA,IAAAlD,EAAA,QAAAI,UAAAJ,EAAA,QAAA8B,UAAA;EACUoB,OAAAC,UAAAC,UAAAC,WAKT,oBAAC,WAAD;GACW,OAAA;IAAAhD,MAAQ8C;IAAQ3B,MAAQ4B;GAAS;GAClC,MAAAtB,SAASqB,QAAQ;GAAC,GACnB/C,WAAWX,KAAAA,IAAX,EAAAW,OAAqC,IAArC,CAAqC;GAClCiD;EAAM,CAAA;EAErBrD,EAAA,MAAAI;EAAAJ,EAAA,MAAA8B;EAAA9B,EAAA,MAAAkD;CAAA,OAAAA,MAAAlD,EAAA;CAXD,MAAAsD,SAAaJ;CAab,IAAAK,QAAuB;CACvB,IAAI/B,SAAS/B,KAAAA,GAAS+D,KAClB,QAAQhC,KAAI1C,IAAZ;EAAe,KACN,OAAK;GAAA,IAAA2E;GAAA,IAAAzD,EAAA,QAAAmB,QAAAnB,EAAA,QAAAqC,UAAArC,EAAA,QAAAiD,UAAAjD,EAAA,QAAAE,OAAAhB,KAAA;IACqBuE,OAAAC,YACvB,oBAAC,UAAD;KAAS,GACDT,OAAOD,OAAK;KACT,OAAA7B,KAAIqB,cAAelF,SAAQqG,OAAQ;KACnC,OAAAzD,OAAKhB,OAAL;KACGmD,UAAAA;IAAM,CAAA;IAEvBrC,EAAA,MAAAmB;IAAAnB,EAAA,MAAAqC;IAAArC,EAAA,MAAAiD;IAAAjD,EAAA,MAAAE,OAAAhB;IAAAc,EAAA,MAAAyD;GAAA,OAAAA,MAAAzD,EAAA;GAAA,IAAA4D;GAAA,IAAA5D,EAAA,QAAAsD,UAAAtD,EAAA,QAAAyD,KAAA;IAPOG,MAAA/B,OAAK,OAAO,OAAO4B,GAO1B;IAACzD,EAAA,MAAAsD;IAAAtD,EAAA,MAAAyD;IAAAzD,EAAA,MAAA4D;GAAA,OAAAA,MAAA5D,EAAA;GAPFuD,QAAQA;GAQR,MAAAC;EAAM;EAAA,KACL,SAAO;GAAA,IAAAC;GAAA,IAAAzD,EAAA,QAAAmB,QAAAnB,EAAA,QAAAqC,UAAArC,EAAA,QAAAiD,UAAAjD,EAAA,QAAAE,OAAAhB,KAAA;IACqBuE,OAAAI,YACzB,oBAAC,YAAD;KAAW,GACHZ,OAAOD,OAAK;KACT,OAAA7B,KAAIqB,cAAelF,SAAQwG,SAAU;KACrC,OAAAvE,cAAcW,OAAKhB,KAAO,SAAS;KAChC,WAAAE,UAAWiD,OAAOjD,UAAU,OAAV,UAA2BA,UAA3B,IAAyC;IAAC,CAAA;IAE7EY,EAAA,MAAAmB;IAAAnB,EAAA,MAAAqC;IAAArC,EAAA,MAAAiD;IAAAjD,EAAA,MAAAE,OAAAhB;IAAAc,EAAA,MAAAyD;GAAA,OAAAA,MAAAzD,EAAA;GAAA,IAAA4D;GAAA,IAAA5D,EAAA,QAAAsD,UAAAtD,EAAA,QAAAyD,KAAA;IAPOG,MAAA/B,OAAK,OAAO,SAAS4B,GAO5B;IAACzD,EAAA,MAAAsD;IAAAtD,EAAA,MAAAyD;IAAAzD,EAAA,MAAA4D;GAAA,OAAAA,MAAA5D,EAAA;GAPFuD,QAAQA;GAQR,MAAAC;EAAM;EAAA,KACL,OAAK;GAAA,IAAAC;GAAA,IAAAzD,EAAA,QAAAmB,QAAAnB,EAAA,QAAAqC,UAAArC,EAAA,QAAAiD,UAAAjD,EAAA,QAAAE,OAAAhB,KAAA;IACqBuE,OAAAM,YACvB,oBAAC,UAAD;KAAS,GACDd,OAAOD,OAAK;KACT,OAAA7B,KAAIqB,cAAelF,SAAQ0G,OAAQ;KACnC,OAAAzE,cAAcW,OAAKhB,KAAO,MAAM;KAC7B,WAAA+E,WAAY5B,OAAO4B,WAAW,OAAX,OAAyBA,WAAzB,IAAwC;IAAC,CAAA;IAE7EjE,EAAA,MAAAmB;IAAAnB,EAAA,MAAAqC;IAAArC,EAAA,MAAAiD;IAAAjD,EAAA,MAAAE,OAAAhB;IAAAc,EAAA,MAAAyD;GAAA,OAAAA,MAAAzD,EAAA;GAAA,IAAA4D;GAAA,IAAA5D,EAAA,QAAAsD,UAAAtD,EAAA,QAAAyD,KAAA;IAPOG,MAAA/B,OAAK,OAAO,OAAO4B,GAO1B;IAACzD,EAAA,MAAAsD;IAAAtD,EAAA,MAAAyD;IAAAzD,EAAA,MAAA4D;GAAA,OAAAA,MAAA5D,EAAA;GAPFuD,QAAQA;GAQR,MAAAC;EAAM;EAAA,KACL,QAAM;GAAA,IAAAC;GAAA,IAAAzD,EAAA,QAAAmC,UAAAnC,EAAA,QAAA+B,YAAA/B,EAAA,QAAAmB,QAAAnB,EAAA,QAAAxB,SAAAwB,EAAA,QAAAqB,kBAAArB,EAAA,QAAAiD,UAAAjD,EAAA,QAAAE,OAAA;IAC0BuD,OAAAS,YAC7B,oBAAC,YAAD;KAAW,GACHjB,OAAOD,OAAK;KACT,OAAA7B,KAAIqB,cAAelF,SAAQ6G,QAAS;KAChC3F,WAAAA;KACL,MAAAP,YAAYiC,KAAK;KACb,UAAA6B,YAAYV,mBAAmB;KAC/B,WAAAlC,SACNgD,OAAO,EAAAhD,MAAQA,SAAS,OAAT,EAAA,GAAqBA,KAAiB,IAAtCM,KAAAA,EAAwC,CAAC;IAAC,CAAA;IAGpEO,EAAA,MAAAmC;IAAAnC,EAAA,MAAA+B;IAAA/B,EAAA,MAAAmB;IAAAnB,EAAA,MAAAxB;IAAAwB,EAAA,MAAAqB;IAAArB,EAAA,MAAAiD;IAAAjD,EAAA,MAAAE;IAAAF,EAAA,MAAAyD;GAAA,OAAAA,MAAAzD,EAAA;GAAA,IAAA4D;GAAA,IAAA5D,EAAA,QAAAsD,UAAAtD,EAAA,QAAAyD,KAAA;IAXOG,MAAA/B,OAAK,QAAQ,YAAY4B,GAWhC;IAACzD,EAAA,MAAAsD;IAAAtD,EAAA,MAAAyD;IAAAzD,EAAA,MAAA4D;GAAA,OAAAA,MAAA5D,EAAA;GAXFuD,QAAQA;GAYR,MAAAC;EAAM;EAAA,KACL,QAAM;GAAA,IAAAC;GAAA,IAAAzD,EAAA,QAAAmB,MAAA;IAIIsC,MAAAtC,KAAIqB,cAAelF,SAAQ8G,QAAS;IAACpE,EAAA,MAAAmB;IAAAnB,EAAA,MAAAyD;GAAA,OAAAA,MAAAzD,EAAA;GAAA,IAAA4D;GAAA,IAAA5D,EAAA,QAAAvB,WAAA;IACxCmF,MAAAnF,cAAcgB,KAAAA,KAAahB,UAASoB,SAAU,IAA9C,EAAAwE,UACc,CAAA,GAAI5F,SAAS,EACxB,IAFH,CAEG;IAACuB,EAAA,MAAAvB;IAAAuB,EAAA,MAAA4D;GAAA,OAAAA,MAAA5D,EAAA;GAAA,IAAAsE;GAAA,IAAAtE,EAAA,QAAAyD,OAAAzD,EAAA,QAAA4D,KAAA;IANaU,MAAA;KAAAjE,MACf;KAAMmB,MACN;KAAOb,OACN8C;KAAqC,GACxCG;IAGR;IAAC5D,EAAA,MAAAyD;IAAAzD,EAAA,MAAA4D;IAAA5D,EAAA,MAAAsE;GAAA,OAAAA,MAAAtE,EAAA;GAPD,MAAAuE,YAAyBD;GAOvB,IAAAE;GAAA,IAAAxE,EAAA,QAAAmC,UAAAnC,EAAA,QAAAc,YAAAd,EAAA,QAAAuE,aAAAvE,EAAA,QAAA8B,YAAA9B,EAAA,QAAAe,YAAAf,EAAA,QAAAE,OAAAZ,MAAA;IAE4BkF,OAAAC,YAC1B,oBAAC,iBAAD;KACWF,OAAAA;KACD,MAAAzC,SAAS,MAAM;KACd,OAAA5B,OAAKZ,QAAL;KACG,WAAAA,SACN6C,OAAO,EAAA7C,MAASA,QAAAG,KAAAA,EAAwC,CAAC;KAErD,QAAAuD,QAAKnC,UAAL,CAAA;KAAkB,GACrBmC,QAAK5C,WAAYX,KAAAA,IAAjB,EAAAW,QAAuC4C,QAAK5C,OAAa,IAAzD,CAAyD;KAAC,GAC1DU,aAAarB,KAAAA,IAAb,EAAAqB,SAAyC,IAAzC,CAAyC;KAAC,GAC1CC,aAAatB,KAAAA,IAAb,EAAAsB,SAAyC,IAAzC,CAAyC;IAAC,CAAA;IAEtDf,EAAA,MAAAmC;IAAAnC,EAAA,MAAAc;IAAAd,EAAA,MAAAuE;IAAAvE,EAAA,MAAA8B;IAAA9B,EAAA,MAAAe;IAAAf,EAAA,MAAAE,OAAAZ;IAAAU,EAAA,MAAAwE;GAAA,OAAAA,MAAAxE,EAAA;GAAA,IAAA0E;GAAA,IAAA1E,EAAA,QAAAsD,UAAAtD,EAAA,QAAAwE,KAAA;IAbOE,MAAA7C,OAAK,QAAQ,SAAS2C,GAa7B;IAACxE,EAAA,MAAAsD;IAAAtD,EAAA,MAAAwE;IAAAxE,EAAA,MAAA0E;GAAA,OAAAA,MAAA1E,EAAA;GAbFuD,QAAQA;GAcR,MAAAC;EAAM;EAAA,SAAA;GAAA,IAAAC;GAAA,IAAAzD,EAAA,QAAAqC,UAAArC,EAAA,QAAAiD,UAAAjD,EAAA,QAAAwB,QAAAxB,EAAA,QAAA8C,YAAA9C,EAAA,QAAAE,OAAAhB,KAAA;IAGsBuE,OAAAkB,YACxB,oBAAC,WAAD;KAAU,GACF1B,OAAOD,OAAK;KACT,OAAAF,SAAStB,IAAI;KACP,cAAA;KAAK,GACbA,KAAIoD,gBAAiBnF,KAAAA,IAArB,EAAAmF,aACgBpD,KAAIoD,YAClB,IAFF,CAEE;KACA,OAAA1E,OAAKhB,OAAL;KACGmD,UAAAA;IAAM,CAAA;IAEvBrC,EAAA,MAAAqC;IAAArC,EAAA,MAAAiD;IAAAjD,EAAA,MAAAwB;IAAAxB,EAAA,MAAA8C;IAAA9C,EAAA,MAAAE,OAAAhB;IAAAc,EAAA,MAAAyD;GAAA,OAAAA,MAAAzD,EAAA;GAAA,IAAA4D;GAAA,IAAA5D,EAAA,QAAAsD,UAAAtD,EAAA,QAAAyD,KAAA;IAXOG,MAAA/B,OAAK,OAAO,QAAQ4B,GAW3B;IAACzD,EAAA,MAAAsD;IAAAtD,EAAA,MAAAyD;IAAAzD,EAAA,MAAA4D;GAAA,OAAAA,MAAA5D,EAAA;GAXFuD,QAAQA;EAAH;CAYb;CACH,IAAAE;CAAA,IAAAzD,EAAA,QAAAmB,MAAA;EAEiBsC,MAAAtC,KAAIqB,cAAelF,SAAQuH,SAAU;EAAC7E,EAAA,MAAAmB;EAAAnB,EAAA,MAAAyD;CAAA,OAAAA,MAAAzD,EAAA;CAAxD,MAAA8E,YAAkBrB;CAClB,MAAAsB,gBAAsBpG,cAAc;CAAW,IAAAiF;CAAA,IAAA5D,EAAA,QAAAmC,UAAAnC,EAAA,QAAAc,YAAAd,EAAA,QAAArB,aAAAqB,EAAA,QAAA+E,iBAAA/E,EAAA,QAAA8E,aAAA9E,EAAA,QAAAoB,WAAApB,EAAA,QAAAsD,UAAAtD,EAAA,QAAAe,YAAAf,EAAA,QAAAiD,UAAAjD,EAAA,QAAApB,eAAAoB,EAAA,QAAAE,OAAA;EAE3C0D,MAAAjF,cAAc,SAAd,OAEMkD,OAAK,SAAS,SAAQmD,YAClBpG,eAAewC,QAAOvB,WAAY,IAC9B,oBAAC,WAAD;GAAU,GACFoD,OAAOD,OAAK;GACT8B,OAAAA;GACGC,UAAAA;GACH,OAAA,OAAO7E,OAAKS,UAAY,WAAWT,MAAKS,QAAxC;GACG,WAAAsE,SAAU9C,OAAO,EAAAxB,OAASsE,KAAK,CAAC;EAAC,CAAA,IAG/C,oBAAC,gBAAD;GACWH,OAAAA;GACC,QAAA9B,QAAKnC,UAAL,CAAA;GACEkE,UAAAA;GACD3D;GAEL,OAAAlB,OAAKS,UAAY,QAAQ,OAAOT,OAAKS,UAAY,WAC1CT,MAAKS,QADZ,CAEO;GAED,WAAAuE,WACN/C,OAAO,EAAAxB,OAAUuE,UAAA,KAAoC,CAAC;GAGzDC,WAAAA,gBACG,oBAAC,WAAD;IACgB,cAAA,GAAGL,UAAS,IAAKK,YAAWxE,MAAM;IACvC,OAAAwE,YAAWjF,SAAX;IACG,WAAAkF,WACND,YAAWhF,SAAU8E,WAAS,KAAT,OAAAG,MAAyB;IAAC,GAE9CpC,QAAK5C,WAAYX,KAAAA,IAAjB,EAAAW,QAAuC4C,QAAK5C,OAAa,IAAzD,CAAyD;IAClD,YAAAU,aAAa;IACb,YAAAC,aAAa;GAAI,CAAA;EAvB1B,CAAA,CA4BvB;EAACf,EAAA,MAAAmC;EAAAnC,EAAA,MAAAc;EAAAd,EAAA,MAAArB;EAAAqB,EAAA,MAAA+E;EAAA/E,EAAA,MAAA8E;EAAA9E,EAAA,MAAAoB;EAAApB,EAAA,MAAAsD;EAAAtD,EAAA,MAAAe;EAAAf,EAAA,MAAAiD;EAAAjD,EAAA,MAAApB;EAAAoB,EAAA,MAAAE;EAAAF,EAAA,MAAA4D;CAAA,OAAAA,MAAA5D,EAAA;CAzCX,MAAAqF,aACIzB;CAwCQ,IAAAU;CAAA,IAAAtE,EAAA,QAAAsB,eAAAtB,EAAA,SAAA+B,YAAA/B,EAAA,SAAAmB,QAAAnB,EAAA,SAAAtB,UAAAsB,EAAA,SAAAG,YAAAH,EAAA,SAAAwB,QAAAxB,EAAA,SAAA8C,YAAA9C,EAAA,SAAAzB,SAAAyB,EAAA,SAAAE,OAAAS,SAAAX,EAAA,SAAAE,OAAAxB,QAAA;EAYC4F,MAAA/F,MAAKsB,SAAU,IACZ,oBAAC,kBAAD;GACgB,cAAAsB,KAAIqB,cAAelF,SAAQgI,QAAS;GAC3C,MAAA;GACO,YAAA,CAACvD;GACJ,SAAAxD,MAAKgH,KAAKC,iBAAgB;IAAAtF,OACxBwB,YAAS5C;IAAG6B,OACZmC,SAASpB,WAAS;IAAC+D,MACpB1G,WAAW2C,YAAS5C,OAApBlD;GACV,EAAE;GAAC,GACE4F,SAAS/B,KAAAA,IAAT,EAAAS,OAA8BsB,KAAI1C,GAAS,IAA3C,CAA2C;GACtC,WAAA4G,WAAA;IACN,IAAIzD,WAAST,MAAI1C,IAEbqB,WACInC,UACI;KAAAwD,MACUS;KAAItB,OACHT,OAAKS,SAAL;KAAoBjC,QACnBwB,OAAKxB,UAAL;IACZ,GACA;KAAAA;KAAA4C;IAAsB,CAC1B,CACJ;GACH;EACJ,CAAA,IAzBR;EA2BOtB,EAAA,MAAAsB;EAAAtB,EAAA,OAAA+B;EAAA/B,EAAA,OAAAmB;EAAAnB,EAAA,OAAAtB;EAAAsB,EAAA,OAAAG;EAAAH,EAAA,OAAAwB;EAAAxB,EAAA,OAAA8C;EAAA9C,EAAA,OAAAzB;EAAAyB,EAAA,OAAAE,OAAAS;EAAAX,EAAA,OAAAE,OAAAxB;EAAAsB,EAAA,OAAAsE;CAAA,OAAAA,MAAAtE,EAAA;CAAA,IAAAwE;CAAA,IAAAxE,EAAA,SAAAmC,UAAAnC,EAAA,SAAA+B,YAAA/B,EAAA,SAAAmB,QAAAnB,EAAA,SAAAtB,UAAAsB,EAAA,SAAAE,OAAAxB,QAAA;EAGP8F,MAAA9F,WAAW,WACR,oBAAC,UAAD;GACgB,YAAAwB,OAAKxB,WAAa;GACpB,WAAAiH,aAAcxD,OAAO,EAAAzD,QAAUiH,SAAS,CAAC;GACvC,YAAA,CAAC5D;GAEZZ,UAAAA,KAAIqB,cAAelF,SAAQsI,UAAW;EALlC,CAAA,IADZ;EAQO5F,EAAA,OAAAmC;EAAAnC,EAAA,OAAA+B;EAAA/B,EAAA,OAAAmB;EAAAnB,EAAA,OAAAtB;EAAAsB,EAAA,OAAAE,OAAAxB;EAAAsB,EAAA,OAAAwE;CAAA,OAAAA,MAAAxE,EAAA;CAAA,IAAA0E;CAAA,IAAA1E,EAAA,SAAAuD,SAAAvD,EAAA,SAAAqF,cAAArF,EAAA,SAAAsE,OAAAtE,EAAA,SAAAwE,KAAA;EAvCZE,MAAA,qBAAA,OAAA;GAAgB,WAAA5G,yBAAMoE;GAAtB,UAAA;IACKoC;IA4BAf;IACA8B;IACAb;GASC;;EAAAxE,EAAA,OAAAuD;EAAAvD,EAAA,OAAAqF;EAAArF,EAAA,OAAAsE;EAAAtE,EAAA,OAAAwE;EAAAxE,EAAA,OAAA0E;CAAA,OAAAA,MAAA1E,EAAA;CAAA,IAAA6F;CAAA,IAAA7F,EAAA,SAAAiB,aAAAjB,EAAA,SAAAY,eAAAZ,EAAA,SAAAc,YAAAd,EAAA,SAAAa,UAAAb,EAAA,SAAAW,SAAAX,EAAA,SAAAgB,YAAAhB,EAAA,SAAA0E,KAAA;EAhDVmB,MAAA,oBAAC,UAAD;GACYlF,QAAAA;GACKC;GACLC;GACIG,YAAAA;GACAF,YAAAA;GACDG;GAEXyD,UAAAA;EARK,CAAA;EAiDE1E,EAAA,OAAAiB;EAAAjB,EAAA,OAAAY;EAAAZ,EAAA,OAAAc;EAAAd,EAAA,OAAAa;EAAAb,EAAA,OAAAW;EAAAX,EAAA,OAAAgB;EAAAhB,EAAA,OAAA0E;EAAA1E,EAAA,OAAA6F;CAAA,OAAAA,MAAA7F,EAAA;CAAA,OAjDX6F;AAiDW;;AAgBnB,SAAAG,WAAAjG,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAoB,MAAA,EAAAU,OAAAoF,WAAA5G,MAAAgB,UAAA4B,UAAAlB,QAAAT,QAAAY,aAAAjB;CAUhB,MAAAoB,OAAatE,eAAe;CAC5B,MAAA,EAAAwE,mBAA2BnE,iBAAiB;CAC5C,MAAA,CAAA+I,OAAAC,YAA0BlK,SAAwB,IAAI;CAAE,IAAAuE;CAAA,IAAAP,EAAA,OAAA+B,UAAA;EAC2BxB,KAAA,EAAA4F,SACtEpE,SACb;EAAC/B,EAAA,KAAA+B;EAAA/B,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAFD,MAAA,EAAAoG,OAAAC,cAA6BlI,cAAckD,gBAAgB0E,WAAWE,SAAA,IAAa1F,EAElF;CAAE,IAAAC;CAAA,IAAAR,EAAA,OAAA+F,WAAA;EACWvF,MAAA8F,SACV,GAAGA,KAAIjC,YAAa0B,UAAS,MAA1B,GAAmC,QAASO,KAAIxH;EAAKkB,EAAA,KAAA+F;EAAA/F,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAD5D,MAAAuG,QAAc/F;CAC+C,IAAAgG;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAjG;CAAA,IAAAC;CAAA,IAAAQ;CAAA,IAAAK;CAAA,IAAAK;CAAA,IAAAI;CAAA,IAAAhC,EAAA,OAAA+B,YAAA/B,EAAA,OAAAa,UAAAb,EAAA,OAAAoG,SAAApG,EAAA,OAAAuG,SAAAvG,EAAA,OAAAW,SAAAX,EAAA,OAAAb,QAAAa,EAAA,QAAAgB,UAAA;EAC7DyF,UAAgBtH,SAAS,OAAT;GAAA,GAAqBA;GAAIwB,OAASxB,KAAIwB,SAAUxB,KAAIL;EAAW,IAA/D;EAChB4H,QACID,YAAY,QAAZ,CAAqBL,MAAKO,MAAMC,WAAUL,MAAMD,MAAI,MAAMC,MAAME,OAAO,CAAC,IAAxE,CACOA,SAAO,GAAKL,KAAK,IADxBA;EAICI,KAAAhK;EACUmE,KAAAA;EACCE,KAAAA;EACIG,KAAAA;EACAO,KAAA,CAACQ;EAAQ,IAAAK;EAAA,IAAApC,EAAA,QAAAuG,OAAA;GACJnE,MAAAyE,YAAW;IAAA/H,IAAMyH,MAAMD,MAAI;IAAC3F,OAAS2F,OAAI3F;GAAO;GAAEX,EAAA,MAAAuG;GAAAvG,EAAA,MAAAoC;EAAA,OAAAA,KAAApC,EAAA;EAA5D4B,KAAA8E,MAAKnB,IAAKnD,EAAkD;EAC5DJ,KAAAyE,YAAY,OAAOF,MAAME,OAAc,IAAvC;EAAwCzG,EAAA,KAAA+B;EAAA/B,EAAA,KAAAa;EAAAb,EAAA,KAAAoG;EAAApG,EAAA,KAAAuG;EAAAvG,EAAA,KAAAW;EAAAX,EAAA,KAAAb;EAAAa,EAAA,MAAAgB;EAAAhB,EAAA,MAAAwG;EAAAxG,EAAA,MAAAyG;EAAAzG,EAAA,MAAA0G;EAAA1G,EAAA,MAAAS;EAAAT,EAAA,MAAAU;EAAAV,EAAA,MAAAkB;EAAAlB,EAAA,MAAAuB;EAAAvB,EAAA,MAAA4B;EAAA5B,EAAA,MAAAgC;CAAA,OAAA;EAAAwE,KAAAxG,EAAA;EAAAyG,UAAAzG,EAAA;EAAA0G,QAAA1G,EAAA;EAAAS,KAAAT,EAAA;EAAAU,KAAAV,EAAA;EAAAkB,KAAAlB,EAAA;EAAAuB,KAAAvB,EAAA;EAAA4B,KAAA5B,EAAA;EAAAgC,KAAAhC,EAAA;CAAA;CACnC,MAAAoC,KAAA6D,SAASQ,SAAO9F,SAAhB;CAA6B,IAAA2B;CAAA,IAAAtC,EAAA,QAAAyG,WAAAzG,EAAA,QAAAG,UAAA;EAC1BmC,OAAA2C,SAAA;GACXiB,SAASjB,IAAI;GACb,IAAIA,SAAS,MAAMwB,YAAY,MAC3BtG,SAAS,IAAI;EAChB;EACJH,EAAA,MAAAyG;EAAAzG,EAAA,MAAAG;EAAAH,EAAA,MAAAsC;CAAA,OAAAA,MAAAtC,EAAA;CAAA,IAAA+C;CAAA,IAAA/C,EAAA,QAAAuG,SAAAvG,EAAA,QAAAG,YAAAH,EAAA,QAAA+F,aAAA/F,EAAA,QAAA0G,OAAA;EACS3D,OAAA+D,QAAA;GACNZ,SAAS,IAAI;GACb,MAAAa,QAAcL,MAAKjF,MAAMuF,WAAUT,MAAMD,MAAI,MAAMQ,GAAG;GACtD,IAAIC,UAAUtH,KAAAA,GACVU,SAAS;IAAArB,IACDiI,MAAKjI;IAAG6B,OACLoG,MAAKpG;IAAM,GACdoG,MAAK1C,aAAc5E,KAAAA,IAAnB,EAAA4E,UACc0C,MAAK1C,SAGd,IAFH0B,UAAS,OAAQtG,KAAAA,IAAjB,EAAA4E,UACc0B,UAAS,GACpB,IAFH,CAEG;GACb,CAAC;EACJ;EACJ/F,EAAA,MAAAuG;EAAAvG,EAAA,MAAAG;EAAAH,EAAA,MAAA+F;EAAA/F,EAAA,MAAA0G;EAAA1G,EAAA,MAAA+C;CAAA,OAAAA,MAAA/C,EAAA;CAAA,IAAAkD;CAAA,IAAAlD,EAAA,QAAAmB,MAAA;EAEY+B,MAAA/B,KAAIqB,cAAelF,SAAQ2J,MAAO;EAACjH,EAAA,MAAAmB;EAAAnB,EAAA,MAAAkD;CAAA,OAAAA,MAAAlD,EAAA;CAAA,IAAAyD;CAAA,IAAAzD,EAAA,QAAAmB,MAAA;EAClCsC,MAAAtC,KAAIqB,cAAelF,SAAQ4J,SAAU;EAAClH,EAAA,MAAAmB;EAAAnB,EAAA,MAAAyD;CAAA,OAAAA,MAAAzD,EAAA;CAAA,IAAA4D;CAAA,IAAA5D,EAAA,QAAAI,QAAA;EAC/CwD,MAAAxD,WAAWX,KAAAA,IAAX,EAAAW,cAAuCA,OAAO,EAAO,IAArD,CAAqD;EAACJ,EAAA,MAAAI;EAAAJ,EAAA,MAAA4D;CAAA,OAAAA,MAAA5D,EAAA;CAAA,IAAAsE;CAAA,IAAAtE,EAAA,QAAAwG,MAAAxG,EAAA,QAAAqG,aAAArG,EAAA,QAAAsC,OAAAtC,EAAA,QAAA+C,OAAA/C,EAAA,QAAAkD,OAAAlD,EAAA,QAAAyD,OAAAzD,EAAA,QAAA4D,OAAA5D,EAAA,QAAAS,MAAAT,EAAA,QAAAU,MAAAV,EAAA,QAAAkB,MAAAlB,EAAA,QAAAuB,MAAAvB,EAAA,QAAA4B,MAAA5B,EAAA,QAAAgC,MAAAhC,EAAA,QAAAoC,IAAA;EAhC/DkC,MAAA,oBAAC,IAAD;GACW3D,OAAAA;GACCE,QAAAA;GACIG,YAAAA;GACA,YAAAO;GACL,OAAAK;GACA,OAAAI;GACK,YAAAI;GACG,eAAAE;GAML,UAAAS;GAeCsD;GACE,aAAAnD;GACC,cAAAO;GAAsC,GAC/CG;EAAsD,CAAA;EAC7D5D,EAAA,MAAAwG;EAAAxG,EAAA,MAAAqG;EAAArG,EAAA,MAAAsC;EAAAtC,EAAA,MAAA+C;EAAA/C,EAAA,MAAAkD;EAAAlD,EAAA,MAAAyD;EAAAzD,EAAA,MAAA4D;EAAA5D,EAAA,MAAAS;EAAAT,EAAA,MAAAU;EAAAV,EAAA,MAAAkB;EAAAlB,EAAA,MAAAuB;EAAAvB,EAAA,MAAA4B;EAAA5B,EAAA,MAAAgC;EAAAhC,EAAA,MAAAoC;EAAApC,EAAA,MAAAsE;CAAA,OAAAA,MAAAtE,EAAA;CAAA,OAjCFsE;AAiCE;AAIV,IAAM6C,eAAejH,UACjBA,UAAU,cAAcA,UAAU,cAAcA,UAAU;AAC9D,IAAMkH,WAAWlH,UACbmH,MAAMC,QAAQpH,KAAK,KAAKA,MAAMqH,MAAMlK,QAAQ;;;;;;AAOhD,SAAOmK,eAAAC,OAAA;CAAA,MAAAzH,IAAAC,EAAA,EAAA;CACH,MAAA,EAAAyH,UAAkBD;CAAM,IAAA1H;CAAA,IAAAC,EAAA,OAAA0H,OAAA;EACN3H,KAAA3C,WAAWsK,OAAO,SAASP,WAAW;EAACnH,EAAA,KAAA0H;EAAA1H,EAAA,KAAAD;CAAA,OAAAA,KAAAC,EAAA;CAAzD,MAAArB,YAAkBoB;CAAwC,IAAAQ;CAAA,IAAAP,EAAA,OAAA0H,OAAA;EACxCnH,KAAAnD,WAAWsK,OAAO,aAAaN,OAAO;EAACpH,EAAA,KAAA0H;EAAA1H,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAzD,MAAAvB,YAAkB8B;CAAwC,IAAAC;CAAA,IAAAR,EAAA,OAAA0H,MAAArD,UAAA;EAEtD7D,KAAAkH,MAAKrD,aAAc5E,KAAAA,IAAnB,CAAA,IAEM,OAAOiI,MAAKrD,aAAc,WAA1B,CACGqD,MAAKrD,QAAS,IACfqD,MAAKrD;EAASrE,EAAA,KAAA0H,MAAArD;EAAArE,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAL1B,MAAAxB,QACIgC;CAIuB,IAAAC;CAAA,IAAAT,EAAA,OAAAyH,OAAA;EAC0BhH,KAAAtD,cAAcsK,KAAK;EAACzH,EAAA,KAAAyH;EAAAzH,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,IAAA2H;CAAA,IAAA3H,EAAA,OAAAS,IAAA;EAAzE,MAAA,EAAAmE,aAAAgD,cAAA,GAAAlH,OAAqDD;EAArDkH,aAAAjH;EAA0EV,EAAA,KAAAS;EAAAT,EAAA,KAAA2H;CAAA,OAAAA,aAAA3H,EAAA;CAI5D,MAAAU,KAAA+G,MAAKnJ;CACJ,MAAA4C,KAAAhD,OAAOuJ,MAAKvH,KAA2B,IAAjBuH,MAAKvH,QAA3B;CACG,MAAAqB,KAAAkG,MAAKtH;CAAS,IAAAyB;CAAA,IAAA5B,EAAA,QAAA0H,OAAA;EACjB9F,KAAAtF,aAAaoL,KAAK;EAAC1H,EAAA,MAAA0H;EAAA1H,EAAA,MAAA4B;CAAA,OAAAA,KAAA5B,EAAA;CAAA,IAAAgC;CAAA,IAAAhC,EAAA,QAAA0H,OAAA;EAElB1F,KAAA3F,cAAcqL,KAAK;EAAC1H,EAAA,MAAA0H;EAAA1H,EAAA,MAAAgC;CAAA,OAAAA,KAAAhC,EAAA;CACf,MAAAoC,KAAAqF,MAAKI,WAAYpI,KAAAA;CAAS,IAAA6C;CAAA,IAAAtC,EAAA,QAAArB,WAAA;EAClC2D,MAAA3D,cAAcc,KAAAA,IAAd,EAAAd,UAA2C,IAA3C,CAA2C;EAACqB,EAAA,MAAArB;EAAAqB,EAAA,MAAAsC;CAAA,OAAAA,MAAAtC,EAAA;CAAA,IAAA+C;CAAA,IAAA/C,EAAA,QAAAvB,WAAA;EAC5CsE,MAAAtE,cAAcgB,KAAAA,IAAd,EAAAhB,UAA2C,IAA3C,CAA2C;EAACuB,EAAA,MAAAvB;EAAAuB,EAAA,MAAA+C;CAAA,OAAAA,MAAA/C,EAAA;CAAA,IAAAkD;CAAA,IAAAlD,EAAA,QAAA2H,cAAA3H,EAAA,QAAAxB,SAAAwB,EAAA,QAAAyH,MAAAtH,YAAAH,EAAA,QAAAyH,MAAAnJ,QAAA0B,EAAA,QAAAsC,OAAAtC,EAAA,QAAA+C,OAAA/C,EAAA,QAAAkB,MAAAlB,EAAA,QAAA4B,MAAA5B,EAAA,QAAAgC,MAAAhC,EAAA,QAAAoC,IAAA;EAVrDc,MAAA,oBAAC,WAAD;GAAU,GACFyE;GACE,MAAAjH;GACC,OAAAQ;GACG,UAAAK;GACH,OAAAK;GACApD;GACC,QAAAwD;GACK,aAAAI;GAA0B,GAClCE;GAA4C,GAC5CS;EAA4C,CAAA;EACnD/C,EAAA,MAAA2H;EAAA3H,EAAA,MAAAxB;EAAAwB,EAAA,MAAAyH,MAAAtH;EAAAH,EAAA,MAAAyH,MAAAnJ;EAAA0B,EAAA,MAAAsC;EAAAtC,EAAA,MAAA+C;EAAA/C,EAAA,MAAAkB;EAAAlB,EAAA,MAAA4B;EAAA5B,EAAA,MAAAgC;EAAAhC,EAAA,MAAAoC;EAAApC,EAAA,MAAAkD;CAAA,OAAAA,MAAAlD,EAAA;CAAA,OAXFkD;AAWE"}
@@ -0,0 +1,8 @@
1
+ import "./LinkField.css";
2
+ //#region src/link/LinkField.module.css
3
+ var link = "panneau-link-field-link";
4
+ var LinkField_module_default = { link };
5
+ //#endregion
6
+ export { LinkField_module_default as default, link };
7
+
8
+ //# sourceMappingURL=LinkField.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkField.module.js","names":[],"sources":["../../src/link/LinkField.module.css"],"sourcesContent":["/* The type, its input, the label, then the new tab. */\n.link {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--panneau-space-3);\n}\n\n.link > :first-child {\n align-self: flex-start;\n max-width: 100%;\n}\n"],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { LinkField, LinkFieldEntry, type LinkFieldProps, type LinkLabelMode } from './LinkField.js';
2
+ export { type LinkPage, type LinkValue, cleanLink, getLinkLabel, getLinkPage, getLinkText, isLink, } from './link.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/link/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EACH,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,SAAS,EACT,YAAY,EACZ,WAAW,EACX,WAAW,EACX,MAAM,GACT,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { cleanLink, getLinkLabel, getLinkPage, getLinkText, isLink } from "./link.js";
2
+ import { LinkField, LinkFieldEntry } from "./LinkField.js";
3
+ export { LinkField, LinkFieldEntry, cleanLink, getLinkLabel, getLinkPage, getLinkText, isLink };
@@ -0,0 +1,30 @@
1
+ import type { LinkValue } from '@panneau/protocol';
2
+ import { type LinkNewTab } from '@panneau/protocol/runtime';
3
+ export type { LinkValue };
4
+ /** A page of a link: its id, its resource, and its label. */
5
+ export interface LinkPage {
6
+ id: string;
7
+ resource?: string;
8
+ label?: string;
9
+ }
10
+ /** Whether a value is a link: an object with a `type`. */
11
+ export declare function isLink(value: unknown): value is LinkValue;
12
+ /** The page of a link, as a reference: an id alone (`"12"`) has no label. */
13
+ export declare function getLinkPage(link: LinkValue | null | undefined): LinkPage | null;
14
+ /** The label of a link in a locale: that locale's, the first filled one, or a string label. */
15
+ export declare function getLinkLabel(link: LinkValue | null | undefined, locale?: string): string | null;
16
+ /**
17
+ * What a link shows: its label in the locale, or the label of its page, or its URL without its
18
+ * scheme (`example.com`, `info@example.com`, `+15145550199`).
19
+ */
20
+ export declare function getLinkText(link: LinkValue | null | undefined, locale?: string): string | null;
21
+ /**
22
+ * A link with the parts of its type only (`url`, or `page`, or `file`), its label when it has one,
23
+ * and its `newTab` as the setting sets it. `null` when the link is of the first type of its field,
24
+ * without a URL, a page, a file or a label.
25
+ */
26
+ export declare function cleanLink(link: LinkValue, { newTab, defaultType }: {
27
+ newTab: LinkNewTab;
28
+ defaultType: string | undefined;
29
+ }): LinkValue | null;
30
+ //# sourceMappingURL=link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/link/link.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,2BAA2B,CAAC;AAE/E,YAAY,EAAE,SAAS,EAAE,CAAC;AAE1B,6DAA6D;AAC7D,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,0DAA0D;AAC1D,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAOzD;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAY/E;AAED,+FAA+F;AAC/F,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkB/F;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa9F;AAYD;;;;GAIG;AACH,wBAAgB,SAAS,CACrB,IAAI,EAAE,SAAS,EACf,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACjF,SAAS,GAAG,IAAI,CAiBlB"}
@@ -0,0 +1,63 @@
1
+ import { resolveLinkNewTab } from "@panneau/protocol/runtime";
2
+ //#region src/link/link.ts
3
+ /** Whether a value is a link: an object with a `type`. */
4
+ function isLink(value) {
5
+ return value !== null && typeof value === "object" && !Array.isArray(value) && typeof value.type === "string";
6
+ }
7
+ /** The page of a link, as a reference: an id alone (`"12"`) has no label. */
8
+ function getLinkPage(link) {
9
+ const page = link?.page;
10
+ if (typeof page === "string") return page !== "" ? { id: page } : null;
11
+ return page !== void 0 && page !== null && typeof page.id === "string" ? {
12
+ id: page.id,
13
+ ...typeof page.resource === "string" ? { resource: page.resource } : {},
14
+ ...typeof page.label === "string" ? { label: page.label } : {}
15
+ } : null;
16
+ }
17
+ /** The label of a link in a locale: that locale's, the first filled one, or a string label. */
18
+ function getLinkLabel(link, locale) {
19
+ const label = link?.label;
20
+ if (typeof label === "string") return label.trim() !== "" ? label : null;
21
+ if (label === null || label === void 0) return null;
22
+ const language = locale?.split("-")[0];
23
+ const own = (locale !== void 0 ? label[locale] : void 0) ?? (language !== void 0 ? label[language] : void 0);
24
+ if (typeof own === "string" && own.trim() !== "") return own;
25
+ return Object.values(label).find((text) => typeof text === "string" && text.trim() !== "") ?? null;
26
+ }
27
+ /**
28
+ * What a link shows: its label in the locale, or the label of its page, or its URL without its
29
+ * scheme (`example.com`, `info@example.com`, `+15145550199`).
30
+ */
31
+ function getLinkText(link, locale) {
32
+ const label = getLinkLabel(link, locale);
33
+ if (label !== null) return label;
34
+ const page = getLinkPage(link);
35
+ if (page !== null) return page.label ?? page.id;
36
+ const url = link?.url;
37
+ return typeof url === "string" && url !== "" ? url.replace(/^(https?:\/\/|mailto:|tel:)/i, "").replace(/\/$/, "") : null;
38
+ }
39
+ function isEmptyLabel(label) {
40
+ if (label === null || label === void 0) return true;
41
+ if (typeof label === "string") return label.trim() === "";
42
+ return !Object.values(label).some((text) => typeof text === "string" && text.trim() !== "");
43
+ }
44
+ /**
45
+ * A link with the parts of its type only (`url`, or `page`, or `file`), its label when it has one,
46
+ * and its `newTab` as the setting sets it. `null` when the link is of the first type of its field,
47
+ * without a URL, a page, a file or a label.
48
+ */
49
+ function cleanLink(link, { newTab, defaultType }) {
50
+ const { type } = link;
51
+ const next = { type };
52
+ if (type === "page" || type === "file") {
53
+ const target = link[type];
54
+ if (target !== void 0 && target !== null && target !== "") next[type] = target;
55
+ } else if (typeof link.url === "string" && link.url !== "") next.url = link.url;
56
+ if (!isEmptyLabel(link.label)) next.label = link.label ?? null;
57
+ next.newTab = resolveLinkNewTab(newTab, link);
58
+ return next.url === void 0 && next.page === void 0 && next.file === void 0 && next.label === void 0 && type === defaultType ? null : next;
59
+ }
60
+ //#endregion
61
+ export { cleanLink, getLinkLabel, getLinkPage, getLinkText, isLink };
62
+
63
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","names":["LinkValue","LinkNewTab","resolveLinkNewTab","LinkPage","id","resource","label","isLink","value","Array","isArray","type","getLinkPage","link","page","undefined","getLinkLabel","locale","trim","language","split","own","Object","values","find","text","getLinkText","url","replace","isEmptyLabel","some","cleanLink","newTab","defaultType","next","target","empty","file"],"sources":["../../src/link/link.ts"],"sourcesContent":["import type { LinkValue } from '@panneau/protocol';\nimport { type LinkNewTab, resolveLinkNewTab } from '@panneau/protocol/runtime';\n\nexport type { LinkValue };\n\n/** A page of a link: its id, its resource, and its label. */\nexport interface LinkPage {\n id: string;\n resource?: string;\n label?: string;\n}\n\n/** Whether a value is a link: an object with a `type`. */\nexport function isLink(value: unknown): value is LinkValue {\n return (\n value !== null &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n typeof (value as { type?: unknown }).type === 'string'\n );\n}\n\n/** The page of a link, as a reference: an id alone (`\"12\"`) has no label. */\nexport function getLinkPage(link: LinkValue | null | undefined): LinkPage | null {\n const page = link?.page;\n if (typeof page === 'string') {\n return page !== '' ? { id: page } : null;\n }\n return page !== undefined && page !== null && typeof page.id === 'string'\n ? {\n id: page.id,\n ...(typeof page.resource === 'string' ? { resource: page.resource } : {}),\n ...(typeof page.label === 'string' ? { label: page.label } : {}),\n }\n : null;\n}\n\n/** The label of a link in a locale: that locale's, the first filled one, or a string label. */\nexport function getLinkLabel(link: LinkValue | null | undefined, locale?: string): string | null {\n const label = link?.label;\n if (typeof label === 'string') {\n return label.trim() !== '' ? label : null;\n }\n if (label === null || label === undefined) {\n return null;\n }\n const language = locale?.split('-')[0];\n const own =\n (locale !== undefined ? label[locale] : undefined) ??\n (language !== undefined ? label[language] : undefined);\n if (typeof own === 'string' && own.trim() !== '') {\n return own;\n }\n return (\n Object.values(label).find((text) => typeof text === 'string' && text.trim() !== '') ?? null\n );\n}\n\n/**\n * What a link shows: its label in the locale, or the label of its page, or its URL without its\n * scheme (`example.com`, `info@example.com`, `+15145550199`).\n */\nexport function getLinkText(link: LinkValue | null | undefined, locale?: string): string | null {\n const label = getLinkLabel(link, locale);\n if (label !== null) {\n return label;\n }\n const page = getLinkPage(link);\n if (page !== null) {\n return page.label ?? page.id;\n }\n const url = link?.url;\n return typeof url === 'string' && url !== ''\n ? url.replace(/^(https?:\\/\\/|mailto:|tel:)/i, '').replace(/\\/$/, '')\n : null;\n}\n\nfunction isEmptyLabel(label: LinkValue['label']): boolean {\n if (label === null || label === undefined) {\n return true;\n }\n if (typeof label === 'string') {\n return label.trim() === '';\n }\n return !Object.values(label).some((text) => typeof text === 'string' && text.trim() !== '');\n}\n\n/**\n * A link with the parts of its type only (`url`, or `page`, or `file`), its label when it has one,\n * and its `newTab` as the setting sets it. `null` when the link is of the first type of its field,\n * without a URL, a page, a file or a label.\n */\nexport function cleanLink(\n link: LinkValue,\n { newTab, defaultType }: { newTab: LinkNewTab; defaultType: string | undefined },\n): LinkValue | null {\n const { type } = link;\n const next: LinkValue = { type };\n if (type === 'page' || type === 'file') {\n const target = link[type];\n if (target !== undefined && target !== null && target !== '') {\n next[type] = target as never;\n }\n } else if (typeof link.url === 'string' && link.url !== '') {\n next.url = link.url;\n }\n if (!isEmptyLabel(link.label)) {\n next.label = link.label ?? null;\n }\n next.newTab = resolveLinkNewTab(newTab, link);\n const empty = next.url === undefined && next.page === undefined && next.file === undefined;\n return empty && next.label === undefined && type === defaultType ? null : next;\n}\n"],"mappings":";;;AAaA,SAAgBO,OAAOC,OAAoC;CACvD,OACIA,UAAU,QACV,OAAOA,UAAU,YACjB,CAACC,MAAMC,QAAQF,KAAK,KACpB,OAAQA,MAA6BG,SAAS;AAEtD;;AAGA,SAAgBC,YAAYC,MAAqD;CAC7E,MAAMC,OAAOD,MAAMC;CACnB,IAAI,OAAOA,SAAS,UAChB,OAAOA,SAAS,KAAK,EAAEV,IAAIU,KAAK,IAAI;CAExC,OAAOA,SAASC,KAAAA,KAAaD,SAAS,QAAQ,OAAOA,KAAKV,OAAO,WAC3D;EACIA,IAAIU,KAAKV;EACT,GAAI,OAAOU,KAAKT,aAAa,WAAW,EAAEA,UAAUS,KAAKT,SAAS,IAAI,CAAC;EACvE,GAAI,OAAOS,KAAKR,UAAU,WAAW,EAAEA,OAAOQ,KAAKR,MAAM,IAAI,CAAC;CAClE,IACA;AACV;;AAGA,SAAgBU,aAAaH,MAAoCI,QAAgC;CAC7F,MAAMX,QAAQO,MAAMP;CACpB,IAAI,OAAOA,UAAU,UACjB,OAAOA,MAAMY,KAAK,MAAM,KAAKZ,QAAQ;CAEzC,IAAIA,UAAU,QAAQA,UAAUS,KAAAA,GAC5B,OAAO;CAEX,MAAMI,WAAWF,QAAQG,MAAM,GAAG,CAAC,CAAC;CACpC,MAAMC,OACDJ,WAAWF,KAAAA,IAAYT,MAAMW,UAAUF,KAAAA,OACvCI,aAAaJ,KAAAA,IAAYT,MAAMa,YAAYJ,KAAAA;CAChD,IAAI,OAAOM,QAAQ,YAAYA,IAAIH,KAAK,MAAM,IAC1C,OAAOG;CAEX,OACIC,OAAOC,OAAOjB,KAAK,CAAC,CAACkB,MAAMC,SAAS,OAAOA,SAAS,YAAYA,KAAKP,KAAK,MAAM,EAAE,KAAK;AAE/F;;;;;AAMA,SAAgBQ,YAAYb,MAAoCI,QAAgC;CAC5F,MAAMX,QAAQU,aAAaH,MAAMI,MAAM;CACvC,IAAIX,UAAU,MACV,OAAOA;CAEX,MAAMQ,OAAOF,YAAYC,IAAI;CAC7B,IAAIC,SAAS,MACT,OAAOA,KAAKR,SAASQ,KAAKV;CAE9B,MAAMuB,MAAMd,MAAMc;CAClB,OAAO,OAAOA,QAAQ,YAAYA,QAAQ,KACpCA,IAAIC,QAAQ,gCAAgC,EAAE,CAAC,CAACA,QAAQ,OAAO,EAAE,IACjE;AACV;AAEA,SAASC,aAAavB,OAAoC;CACtD,IAAIA,UAAU,QAAQA,UAAUS,KAAAA,GAC5B,OAAO;CAEX,IAAI,OAAOT,UAAU,UACjB,OAAOA,MAAMY,KAAK,MAAM;CAE5B,OAAO,CAACI,OAAOC,OAAOjB,KAAK,CAAC,CAACwB,MAAML,SAAS,OAAOA,SAAS,YAAYA,KAAKP,KAAK,MAAM,EAAE;AAC9F;;;;;;AAOA,SAAgBa,UACZlB,MACA,EAAEmB,QAAQC,eACM;CAChB,MAAM,EAAEtB,SAASE;CACjB,MAAMqB,OAAkB,EAAEvB,KAAK;CAC/B,IAAIA,SAAS,UAAUA,SAAS,QAAQ;EACpC,MAAMwB,SAAStB,KAAKF;EACpB,IAAIwB,WAAWpB,KAAAA,KAAaoB,WAAW,QAAQA,WAAW,IACtDD,KAAKvB,QAAQwB;CAErB,OAAO,IAAI,OAAOtB,KAAKc,QAAQ,YAAYd,KAAKc,QAAQ,IACpDO,KAAKP,MAAMd,KAAKc;CAEpB,IAAI,CAACE,aAAahB,KAAKP,KAAK,GACxB4B,KAAK5B,QAAQO,KAAKP,SAAS;CAE/B4B,KAAKF,SAAS9B,kBAAkB8B,QAAQnB,IAAI;CAE5C,OADcqB,KAAKP,QAAQZ,KAAAA,KAAamB,KAAKpB,SAASC,KAAAA,KAAamB,KAAKG,SAAStB,KAAAA,KACjEmB,KAAK5B,UAAUS,KAAAA,KAAaJ,SAASsB,cAAc,OAAOC;AAC9E"}
@@ -0,0 +1,17 @@
1
+ import type { RelationReference, RelationSource } from '../shared/relation.js';
2
+ /** A page found: its reference, and its resource. */
3
+ export interface FoundPage extends RelationReference {
4
+ resource: string;
5
+ }
6
+ /**
7
+ * The pages of several resources that match a text, as it is typed: the results of each resource,
8
+ * in the order of the resources.
9
+ */
10
+ export declare function usePageSearch(source: RelationSource | null, resources: readonly string[], query: string, { enabled, delay }?: {
11
+ enabled?: boolean;
12
+ delay?: number;
13
+ }): {
14
+ items: FoundPage[];
15
+ isLoading: boolean;
16
+ };
17
+ //# sourceMappingURL=pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/link/pages.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE5E,qDAAqD;AACrD,MAAM,WAAW,SAAU,SAAQ,iBAAiB;IAChD,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CACzB,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,KAAK,EAAE,MAAM,EACb,EAAE,OAAc,EAAE,KAAW,EAAE,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5E;IAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAqC5C"}
@@ -0,0 +1,104 @@
1
+ import { c } from "react/compiler-runtime";
2
+ import { useEffect, useState } from "react";
3
+ //#region src/link/pages.ts
4
+ /**
5
+ * The pages of several resources that match a text, as it is typed: the results of each resource,
6
+ * in the order of the resources.
7
+ */
8
+ function usePageSearch(source, resources, query, t0) {
9
+ const $ = c(14);
10
+ let t1;
11
+ if ($[0] !== t0) {
12
+ t1 = t0 === void 0 ? {} : t0;
13
+ $[0] = t0;
14
+ $[1] = t1;
15
+ } else t1 = $[1];
16
+ const { enabled: t2, delay: t3 } = t1;
17
+ const enabled = t2 === void 0 ? true : t2;
18
+ const delay = t3 === void 0 ? 250 : t3;
19
+ let t4;
20
+ if ($[2] !== resources) {
21
+ t4 = resources.join("\0");
22
+ $[2] = resources;
23
+ $[3] = t4;
24
+ } else t4 = $[3];
25
+ const key = `${t4}\u0001${query}`;
26
+ let t5;
27
+ if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
28
+ t5 = {
29
+ key: "",
30
+ items: [],
31
+ isLoading: false
32
+ };
33
+ $[4] = t5;
34
+ } else t5 = $[4];
35
+ const [state, setState] = useState(t5);
36
+ let t6;
37
+ let t7;
38
+ if ($[5] !== delay || $[6] !== enabled || $[7] !== key || $[8] !== source) {
39
+ t6 = () => {
40
+ if (source === null || !enabled) return;
41
+ const controller = new AbortController();
42
+ const timer = setTimeout(() => {
43
+ setState((current) => ({
44
+ ...current,
45
+ key,
46
+ isLoading: true
47
+ }));
48
+ const [t8, t9] = key.split("");
49
+ const joined = t8 === void 0 ? "" : t8;
50
+ const text = t9 === void 0 ? "" : t9;
51
+ Promise.all(joined.split("\0").map((resource) => source.search(resource, text, { signal: controller.signal }).then((items) => items.map((item) => ({
52
+ ...item,
53
+ resource
54
+ }))).catch(_temp))).then((lists) => {
55
+ if (!controller.signal.aborted) setState({
56
+ key,
57
+ items: lists.flat(),
58
+ isLoading: false
59
+ });
60
+ }).catch(_temp2);
61
+ }, delay);
62
+ return () => {
63
+ clearTimeout(timer);
64
+ controller.abort();
65
+ };
66
+ };
67
+ t7 = [
68
+ source,
69
+ key,
70
+ enabled,
71
+ delay
72
+ ];
73
+ $[5] = delay;
74
+ $[6] = enabled;
75
+ $[7] = key;
76
+ $[8] = source;
77
+ $[9] = t6;
78
+ $[10] = t7;
79
+ } else {
80
+ t6 = $[9];
81
+ t7 = $[10];
82
+ }
83
+ useEffect(t6, t7);
84
+ const t8 = state.isLoading || state.key !== key;
85
+ let t9;
86
+ if ($[11] !== state.items || $[12] !== t8) {
87
+ t9 = {
88
+ items: state.items,
89
+ isLoading: t8
90
+ };
91
+ $[11] = state.items;
92
+ $[12] = t8;
93
+ $[13] = t9;
94
+ } else t9 = $[13];
95
+ return t9;
96
+ }
97
+ function _temp2() {}
98
+ function _temp() {
99
+ return [];
100
+ }
101
+ //#endregion
102
+ export { usePageSearch };
103
+
104
+ //# sourceMappingURL=pages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages.js","names":["useEffect","useState","RelationReference","RelationSource","FoundPage","resource","usePageSearch","source","resources","query","t0","$","_c","t1","undefined","enabled","t2","delay","t3","t4","join","key","t5","Symbol","for","items","isLoading","state","setState","t6","t7","controller","AbortController","timer","setTimeout","current","t8","t9","split","joined","text","Promise","all","map","search","signal","then","item","catch","_temp","lists","aborted","flat","_temp2","clearTimeout","abort","_c"],"sources":["../../src/link/pages.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { RelationReference, RelationSource } from '../shared/relation';\n\n/** A page found: its reference, and its resource. */\nexport interface FoundPage extends RelationReference {\n resource: string;\n}\n\n/**\n * The pages of several resources that match a text, as it is typed: the results of each resource,\n * in the order of the resources.\n */\nexport function usePageSearch(\n source: RelationSource | null,\n resources: readonly string[],\n query: string,\n { enabled = true, delay = 250 }: { enabled?: boolean; delay?: number } = {},\n): { items: FoundPage[]; isLoading: boolean } {\n const key = `${resources.join('\\u0000')}\\u0001${query}`;\n const [state, setState] = useState<{ key: string; items: FoundPage[]; isLoading: boolean }>({\n key: '',\n items: [],\n isLoading: false,\n });\n useEffect(() => {\n if (source === null || !enabled) {\n return undefined;\n }\n const controller = new AbortController();\n const timer = setTimeout(() => {\n setState((current) => ({ ...current, key, isLoading: true }));\n // The resources and the query, from the key that stands for them\n const [joined = '', text = ''] = key.split('\\u0001');\n Promise.all(\n joined.split('\\u0000').map((resource) =>\n source\n .search(resource, text, { signal: controller.signal })\n .then((items) => items.map((item) => ({ ...item, resource })))\n .catch(() => [] as FoundPage[]),\n ),\n )\n .then((lists) => {\n if (!controller.signal.aborted) {\n setState({ key, items: lists.flat(), isLoading: false });\n }\n })\n .catch(() => undefined);\n }, delay);\n return () => {\n clearTimeout(timer);\n controller.abort();\n };\n }, [source, key, enabled, delay]);\n return { items: state.items, isLoading: state.isLoading || state.key !== key };\n}\n"],"mappings":";;;;;;;AAaA,SAAOM,cAAAC,QAAAC,WAAAC,OAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAIHG,KAAAH,OAAAI,KAAAA,IAAA,CAA0E,IAA1EJ;EAA2EC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAA3E,MAAA,EAAAI,SAAAC,IAAAC,OAAAC,OAAAL;CAAE,MAAAE,UAAAC,OAAAF,KAAAA,IAAA,OAAAE;CAAgB,MAAAC,QAAAC,OAAAJ,KAAAA,IAAA,MAAAI;CAAW,IAAAC;CAAA,IAAAR,EAAA,OAAAH,WAAA;EAEdW,KAAAX,UAASY,KAAM,IAAQ;EAACT,EAAA,KAAAH;EAAAG,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAvC,MAAAU,MAAY,GAAGF,GAAwB,QAASV;CAAQ,IAAAa;CAAA,IAAAX,EAAA,OAAAY,OAAAC,IAAA,2BAAA,GAAA;EACoCF,KAAA;GAAAD,KACnF;GAAEI,OACA,CAAA;GAAEC,WACE;EACf;EAACf,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CAJD,MAAA,CAAAgB,OAAAC,YAA0B3B,SAAkEqB,EAI3F;CAAE,IAAAO;CAAA,IAAAC;CAAA,IAAAnB,EAAA,OAAAM,SAAAN,EAAA,OAAAI,WAAAJ,EAAA,OAAAU,OAAAV,EAAA,OAAAJ,QAAA;EACOsB,WAAA;GACN,IAAItB,WAAW,QAAX,CAAoBQ,SAAO;GAG/B,MAAAgB,aAAmB,IAAIC,gBAAgB;GACvC,MAAAC,QAAcC,iBAAW;IACrBN,UAASO,aAAc;KAAA,GAAKA;KAAOd;KAAAK,WAAkB;IAAK,EAAE;IAE5D,MAAA,CAAAU,IAAAC,MAAiChB,IAAGiB,MAAO,GAAQ;IAA5C,MAAAC,SAAAH,OAAAtB,KAAAA,IAAA,KAAAsB;IAAa,MAAAI,OAAAH,OAAAvB,KAAAA,IAAA,KAAAuB;IACpBI,QAAOC,IACHH,OAAMD,MAAO,IAAQ,CAAC,CAAAK,KAAKtC,aACvBE,OAAMqC,OACMvC,UAAUmC,MAAM,EAAAK,QAAUd,WAAUc,OAAQ,CAAC,CAAC,CAAAC,MAChDrB,UAAWA,MAAKkB,KAAKI,UAAW;KAAA,GAAKA;KAAI1C;IAAW,EAAE,CAAC,CAAC,CAAA2C,MACvDC,KAAuB,CACtC,CACJ,CAAC,CAAAH,MACSI,UAAA;KACF,IAAI,CAACnB,WAAUc,OAAOM,SAClBvB,SAAS;MAAAP;MAAAI,OAAcyB,MAAKE,KAAM;MAAC1B,WAAa;KAAM,CAAC;IAC1D,CACJ,CAAC,CAAAsB,MACKK,MAAe;GAAC,GAC5BpC,KAAK;GAAE,aACH;IACHqC,aAAarB,KAAK;IAClBF,WAAUwB,MAAO;GAAC;EACrB;EACFzB,KAAA;GAACvB;GAAQc;GAAKN;GAASE;EAAK;EAACN,EAAA,KAAAM;EAAAN,EAAA,KAAAI;EAAAJ,EAAA,KAAAU;EAAAV,EAAA,KAAAJ;EAAAI,EAAA,KAAAkB;EAAAlB,EAAA,MAAAmB;CAAA,OAAA;EAAAD,KAAAlB,EAAA;EAAAmB,KAAAnB,EAAA;CAAA;CA5BhCX,UAAU6B,IA4BPC,EAA6B;CACQ,MAAAM,KAAAT,MAAKD,aAAcC,MAAKN,QAASA;CAAG,IAAAgB;CAAA,IAAA1B,EAAA,QAAAgB,MAAAF,SAAAd,EAAA,QAAAyB,IAAA;EAArEC,KAAA;GAAAZ,OAASE,MAAKF;GAAMC,WAAaU;EAAqC;EAACzB,EAAA,MAAAgB,MAAAF;EAAAd,EAAA,MAAAyB;EAAAzB,EAAA,MAAA0B;CAAA,OAAAA,KAAA1B,EAAA;CAAA,OAAvE0B;AAAuE;AAzC3E,SAAAgB,SAAA,CAAA;AAAA,SAAAJ,QAAA;CAAA,OA0B8B,CAAA;AAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["allFr"],"sources":["../../src/locales/index.ts"],"sourcesContent":["import { fr as allFr, getDefaultMessages } from '@panneau/intl';\n\nimport { messages } from '../shared/messages';\n\n/**\n * The English messages of `@panneau/fields`, by id. They are also the default messages.\n *\n * @deprecated Use `en`, or `withPanneauMessages()`, from `@panneau/intl`: they have the messages\n * of every package.\n */\nexport const en: Record<string, string> = getDefaultMessages(messages);\n\n/**\n * The French messages of `@panneau/fields`, by id.\n *\n * @deprecated Use `fr`, or `withPanneauMessages()`, from `@panneau/intl`: they have the messages\n * of every package.\n */\nexport const fr: Record<string, string> = Object.fromEntries(\n Object.entries(allFr).filter(([id]) => id in en),\n);\n"],"mappings":";;;;;;;;;AAUA,IAAa,KAA6B,mBAAmB,QAAQ;;;;;;;AAQrE,IAAa,KAA6B,OAAO,YAC7C,OAAO,QAAQA,IAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,MAAM,EAAE,CACnD"}
1
+ {"version":3,"file":"index.js","names":["fr","allFr","getDefaultMessages","messages","en","Record","Object","fromEntries","entries","filter","id","allFr"],"sources":["../../src/locales/index.ts"],"sourcesContent":["import { fr as allFr, getDefaultMessages } from '@panneau/intl';\n\nimport { messages } from '../shared/messages';\n\n/**\n * The English messages of `@panneau/fields`, by id. They are also the default messages.\n *\n * @deprecated Use `en`, or `withPanneauMessages()`, from `@panneau/intl`: they have the messages\n * of every package.\n */\nexport const en: Record<string, string> = getDefaultMessages(messages);\n\n/**\n * The French messages of `@panneau/fields`, by id.\n *\n * @deprecated Use `fr`, or `withPanneauMessages()`, from `@panneau/intl`: they have the messages\n * of every package.\n */\nexport const fr: Record<string, string> = Object.fromEntries(\n Object.entries(allFr).filter(([id]) => id in en),\n);\n"],"mappings":";;;;;;;;;AAUA,IAAaI,KAA6BF,mBAAmBC,QAAQ;;;;;;;AAQrE,IAAaH,KAA6BM,OAAOC,YAC7CD,OAAOE,QAAQP,IAAK,CAAC,CAACQ,QAAQ,CAACC,QAAQA,MAAMN,EAAE,CACnD"}
@@ -1,9 +1,30 @@
1
- .panneau-localized-field-locales {
2
- display: flex;
3
- flex-direction: column;
4
- gap: var(--panneau-space-3);
5
- }
6
-
7
1
  .panneau-localized-field-locale {
8
2
  min-width: 0;
9
3
  }
4
+
5
+ .panneau-localized-field-locale[hidden] {
6
+ display: none;
7
+ }
8
+
9
+ .panneau-localized-field-option {
10
+ display: inline-flex;
11
+ align-items: center;
12
+ gap: var(--panneau-space-1);
13
+ letter-spacing: 0.02em;
14
+ }
15
+
16
+ .panneau-localized-field-marker {
17
+ flex: 0 0 auto;
18
+ width: 0.45em;
19
+ height: 0.45em;
20
+ background-color: currentcolor;
21
+ border-radius: 50%;
22
+ }
23
+
24
+ .panneau-localized-field-invalid {
25
+ color: var(--panneau-color-danger);
26
+ }
27
+
28
+ .panneau-localized-field-empty {
29
+ color: var(--panneau-color-warning);
30
+ }
@@ -1,11 +1,14 @@
1
- import type { ReactNode } from 'react';
2
- import type { FieldEntryProps, FieldProps } from '../shared/types';
1
+ import { type ReactNode } from 'react';
2
+ import type { FieldEntryProps, FieldProps } from '../shared/types.js';
3
3
  /** A localized value: a value per locale (`{ fr: 'Été', en: 'Summer' }`). */
4
4
  export type LocalizedValue<V> = Partial<Record<string, V | null>>;
5
5
  /** What `LocalizedField` gives the input of each locale. */
6
6
  export interface LocalizedInputProps<V> {
7
7
  locale: string;
8
- /** Name of the locale in the UI's language, as the input's label. */
8
+ /**
9
+ * Name of the locale in the UI's language. The field shows the locales: give it to the input
10
+ * as its `aria-label`, not as a visible label.
11
+ */
9
12
  label: string;
10
13
  value: V | null;
11
14
  onChange: (value: V | null) => void;
@@ -15,22 +18,30 @@ export interface LocalizedInputProps<V> {
15
18
  required?: boolean;
16
19
  }
17
20
  export interface LocalizedFieldProps<V> extends FieldProps<LocalizedValue<V>> {
18
- /** Locales, in order. */
21
+ /** Locales, in order. The first one shows first. */
19
22
  locales: readonly string[];
20
23
  /** Renders the input of a locale. */
21
24
  children: (props: LocalizedInputProps<V>) => ReactNode;
25
+ /** The locale shown. Controlled with `onLocaleChange`. */
26
+ locale?: string;
27
+ onLocaleChange?: (locale: string) => void;
28
+ /** Locales whose value has errors: their switch shows it. */
29
+ invalidLocales?: readonly string[];
22
30
  localeClassName?: string;
23
31
  }
24
32
  /** The name of a locale in the UI's language, capitalized (`Français`, `English`). */
25
33
  export declare function useLocaleName(): (locale: string) => string;
26
34
  /**
27
- * A value per locale, with an input for each locale under one legend. A value without any locale
28
- * filled is `null`.
35
+ * A value per locale: one locale at a time, under the field's label, with a switch at the end of
36
+ * the label's line for the others. The switch marks the locales in error, and the empty ones: to
37
+ * fill in when the field is required, to add otherwise. A value without any locale filled is
38
+ * `null`.
29
39
  */
30
- export declare function LocalizedField<V>({ locales, children, value, onChange, onBlur, label, description, errors, disabled, readOnly, required, className, labelClassName, descriptionClassName, errorsClassName, localeClassName, }: LocalizedFieldProps<V>): import("react").JSX.Element;
40
+ export declare function LocalizedField<V>({ locales, children, value, onChange, onBlur, label, description, errors, disabled, readOnly, required, locale, onLocaleChange, invalidLocales, className, labelClassName, descriptionClassName, errorsClassName, localeClassName, }: LocalizedFieldProps<V>): import("react").JSX.Element;
31
41
  /**
32
42
  * A field of the definition with `localized: true`: the field of its type for each locale of the
33
- * fields context, each at its own path (`title.fr`).
43
+ * fields context, each at its own path (`title.fr`). It shows the locale of a path the form
44
+ * reveals, such as the first error on submit.
34
45
  */
35
46
  export declare function LocalizedFieldEntry(props: FieldEntryProps): import("react").JSX.Element;
36
47
  //# sourceMappingURL=LocalizedField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocalizedField.d.ts","sourceRoot":"","sources":["../../src/localized/LocalizedField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGnE,6EAA6E;AAC7E,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAElE,4DAA4D;AAC5D,MAAM,WAAW,mBAAmB,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACzE,yBAAyB;IACzB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,qCAAqC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,sFAAsF;AACtF,wBAAgB,aAAa,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAY1D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAC9B,OAAO,EACP,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAK,EACL,WAAW,EACX,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,eAAe,GAClB,EAAE,mBAAmB,CAAC,CAAC,CAAC,+BAsCxB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,+BA8BzD"}
1
+ {"version":3,"file":"LocalizedField.d.ts","sourceRoot":"","sources":["../../src/localized/LocalizedField.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAWjD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGnE,6EAA6E;AAC7E,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAElE,4DAA4D;AAC5D,MAAM,WAAW,mBAAmB,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACzE,oDAAoD;IACpD,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,qCAAqC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;IACvD,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,6DAA6D;IAC7D,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,sFAAsF;AACtF,wBAAgB,aAAa,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAY1D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAC9B,OAAO,EACP,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAK,EACL,WAAW,EACX,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,cAAc,EACd,cAAmB,EACnB,SAAS,EACT,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,eAAe,GAClB,EAAE,mBAAmB,CAAC,CAAC,CAAC,+BAyFxB;AASD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,+BA+CzD"}