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

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
@@ -1 +1 @@
1
- {"version":3,"file":"SelectField.js","names":["index","option","readOnly","value","controlClassName","label","description","errors","required","disabled","className","labelClassName","descriptionClassName","errorsClassName","options","selected","change","locked","_c","styles"],"sources":["../../src/select/SelectField.tsx"],"sourcesContent":["import type { Option } from '@panneau/protocol';\nimport { Checkbox, Fieldset, type OptionValue, RadioGroup, Select } from '@panneau/ui';\n\nimport { getFieldProps, getSetting, isString } from '../shared/entry';\nimport type { FieldEntryProps, FieldProps } from '../shared/types';\nimport styles from './SelectField.module.css';\n\nexport type { OptionValue };\n\n/** Props of both single and multiple select fields. */\nexport interface SelectFieldBaseProps extends Omit<FieldProps<never>, 'value' | 'onChange'> {\n /** The choices. Same shape as the protocol's `Option`. */\n options: readonly Option[];\n placeholder?: string;\n controlClassName?: string;\n}\n\nexport interface SingleSelectFieldProps extends SelectFieldBaseProps {\n multiple?: false;\n value?: OptionValue | null;\n onChange?: (value: OptionValue | null) => void;\n /** `select` (default): a dropdown. `radios`: every choice visible. */\n widget?: 'select' | 'radios';\n}\n\nexport interface MultipleSelectFieldProps extends SelectFieldBaseProps {\n multiple: true;\n value?: readonly OptionValue[] | null;\n /** Called with the selected values, in the order of the options. An empty list is `null`. */\n onChange?: (value: OptionValue[] | null) => void;\n /** `select` (default): a dropdown. `checkboxes`: every choice visible. */\n widget?: 'select' | 'checkboxes';\n}\n\nexport type SelectFieldProps = SingleSelectFieldProps | MultipleSelectFieldProps;\n\n/**\n * A choice among options, or several with `multiple`, as a dropdown or as radios and checkboxes.\n * Values keep their type (strings, numbers, booleans).\n */\nexport function SelectField(props: SelectFieldProps) {\n const {\n options,\n label,\n description,\n errors,\n disabled,\n readOnly,\n required,\n placeholder,\n name,\n id,\n autoFocus,\n onBlur,\n className,\n labelClassName,\n descriptionClassName,\n errorsClassName,\n controlClassName,\n } = props;\n const chrome = {\n label,\n description,\n errors,\n className,\n labelClassName,\n descriptionClassName,\n errorsClassName,\n ...(props['aria-label'] !== undefined ? { 'aria-label': props['aria-label'] } : {}),\n };\n const locked = disabled === true || readOnly === true;\n\n if (props.multiple === true) {\n const selected = props.value ?? [];\n const change = (next: readonly OptionValue[]) => {\n // Keep the order of the options, whatever the order of the clicks.\n const ordered = options\n .map((option) => option.value)\n .filter((value) => next.includes(value));\n props.onChange?.(ordered.length > 0 ? ordered : null);\n };\n if (props.widget === 'checkboxes') {\n return (\n <Fieldset\n legend={label}\n description={description}\n errors={errors}\n isRequired={required}\n isDisabled={disabled}\n className={className}\n legendClassName={labelClassName}\n descriptionClassName={descriptionClassName}\n errorsClassName={errorsClassName}\n >\n <div className={styles.checkboxes}>\n {options.map((option, index) => (\n <Checkbox\n key={index}\n isSelected={selected.includes(option.value)}\n isDisabled={option.disabled}\n isReadOnly={readOnly}\n description={option.description}\n onChange={(checked) =>\n change(\n checked\n ? [...selected, option.value]\n : selected.filter((value) => value !== option.value),\n )\n }\n checkboxClassName={controlClassName}\n >\n {option.label}\n </Checkbox>\n ))}\n </div>\n </Fieldset>\n );\n }\n return (\n <Select\n {...chrome}\n multiple\n options={options}\n value={selected}\n onChange={change}\n isRequired={required}\n isDisabled={locked}\n {...(placeholder !== undefined ? { placeholder } : {})}\n {...(name !== undefined ? { name } : {})}\n {...(id !== undefined ? { id } : {})}\n {...(autoFocus !== undefined ? { autoFocus } : {})}\n {...(onBlur !== undefined ? { onBlur } : {})}\n {...(controlClassName !== undefined ? { triggerClassName: controlClassName } : {})}\n />\n );\n }\n\n if (props.widget === 'radios') {\n return (\n <RadioGroup\n {...chrome}\n options={options}\n value={props.value ?? null}\n onChange={(value) => props.onChange?.(value)}\n isRequired={required}\n isDisabled={disabled}\n isReadOnly={readOnly}\n {...(name !== undefined ? { name } : {})}\n {...(id !== undefined ? { id } : {})}\n {...(onBlur !== undefined ? { onBlur } : {})}\n {...(controlClassName !== undefined ? { radioClassName: controlClassName } : {})}\n />\n );\n }\n return (\n <Select\n {...chrome}\n options={options}\n value={props.value ?? null}\n onChange={(value) => props.onChange?.(value)}\n isRequired={required}\n isDisabled={locked}\n {...(placeholder !== undefined ? { placeholder } : {})}\n {...(name !== undefined ? { name } : {})}\n {...(id !== undefined ? { id } : {})}\n {...(autoFocus !== undefined ? { autoFocus } : {})}\n {...(onBlur !== undefined ? { onBlur } : {})}\n {...(controlClassName !== undefined ? { triggerClassName: controlClassName } : {})}\n />\n );\n}\n\nfunction isOptionValue(value: unknown): value is OptionValue {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\n\n/**\n * The `select` type: `options`, `multiple`, and setting `widget` (`radios` for a single choice,\n * `checkboxes` for several).\n */\nexport function SelectFieldEntry(props: FieldEntryProps) {\n const { field } = props;\n const widget = getSetting(field, 'widget', isString);\n const options = field.options ?? [];\n if (field.multiple === true) {\n const value = Array.isArray(props.value) ? props.value.filter(isOptionValue) : null;\n return (\n <SelectField\n {...getFieldProps(props)}\n multiple\n options={options}\n value={value}\n onChange={props.onChange}\n {...(widget === 'checkboxes' ? { widget } : {})}\n />\n );\n }\n return (\n <SelectField\n {...getFieldProps(props)}\n options={options}\n value={isOptionValue(props.value) ? props.value : null}\n onChange={props.onChange}\n {...(widget === 'radios' ? { widget } : {})}\n />\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SelectField.js","names":["Option","Checkbox","Fieldset","OptionValue","RadioGroup","Select","getFieldProps","getSetting","isString","FieldEntryProps","FieldProps","styles","SelectFieldBaseProps","Omit","options","placeholder","controlClassName","SingleSelectFieldProps","multiple","value","onChange","widget","MultipleSelectFieldProps","SelectFieldProps","SelectField","props","$","_c","label","description","errors","disabled","readOnly","required","name","id","autoFocus","onBlur","className","labelClassName","descriptionClassName","errorsClassName","t0","undefined","t1","chrome","locked","t2","selected","t3","next","ordered","map","_temp","filter","includes","length","change","t4","t5","option_0","index","option","checked","value_0","checkboxes","t6","t7","t8","t9","triggerClassName","t10","value_1","radioClassName","value_2","isOptionValue","SelectFieldEntry","field","Array","isArray","_c","styles"],"sources":["../../src/select/SelectField.tsx"],"sourcesContent":["import type { Option } from '@panneau/protocol';\nimport { Checkbox, Fieldset, type OptionValue, RadioGroup, Select } from '@panneau/ui';\n\nimport { getFieldProps, getSetting, isString } from '../shared/entry';\nimport type { FieldEntryProps, FieldProps } from '../shared/types';\nimport styles from './SelectField.module.css';\n\nexport type { OptionValue };\n\n/** Props of both single and multiple select fields. */\nexport interface SelectFieldBaseProps extends Omit<FieldProps<never>, 'value' | 'onChange'> {\n /** The choices. Same shape as the protocol's `Option`. */\n options: readonly Option[];\n placeholder?: string;\n controlClassName?: string;\n}\n\nexport interface SingleSelectFieldProps extends SelectFieldBaseProps {\n multiple?: false;\n value?: OptionValue | null;\n onChange?: (value: OptionValue | null) => void;\n /** `select` (default): a dropdown. `radios`: every choice visible. */\n widget?: 'select' | 'radios';\n}\n\nexport interface MultipleSelectFieldProps extends SelectFieldBaseProps {\n multiple: true;\n value?: readonly OptionValue[] | null;\n /** Called with the selected values, in the order of the options. An empty list is `null`. */\n onChange?: (value: OptionValue[] | null) => void;\n /** `select` (default): a dropdown. `checkboxes`: every choice visible. */\n widget?: 'select' | 'checkboxes';\n}\n\nexport type SelectFieldProps = SingleSelectFieldProps | MultipleSelectFieldProps;\n\n/**\n * A choice among options, or several with `multiple`, as a dropdown or as radios and checkboxes.\n * Values keep their type (strings, numbers, booleans).\n */\nexport function SelectField(props: SelectFieldProps) {\n const {\n options,\n label,\n description,\n errors,\n disabled,\n readOnly,\n required,\n placeholder,\n name,\n id,\n autoFocus,\n onBlur,\n className,\n labelClassName,\n descriptionClassName,\n errorsClassName,\n controlClassName,\n } = props;\n const chrome = {\n label,\n description,\n errors,\n className,\n labelClassName,\n descriptionClassName,\n errorsClassName,\n ...(props['aria-label'] !== undefined ? { 'aria-label': props['aria-label'] } : {}),\n };\n const locked = disabled === true || readOnly === true;\n\n if (props.multiple === true) {\n const selected = props.value ?? [];\n const change = (next: readonly OptionValue[]) => {\n // Keep the order of the options, whatever the order of the clicks.\n const ordered = options\n .map((option) => option.value)\n .filter((value) => next.includes(value));\n props.onChange?.(ordered.length > 0 ? ordered : null);\n };\n if (props.widget === 'checkboxes') {\n return (\n <Fieldset\n legend={label}\n description={description}\n errors={errors}\n isRequired={required}\n isDisabled={disabled}\n className={className}\n legendClassName={labelClassName}\n descriptionClassName={descriptionClassName}\n errorsClassName={errorsClassName}\n >\n <div className={styles.checkboxes}>\n {options.map((option, index) => (\n <Checkbox\n key={index}\n isSelected={selected.includes(option.value)}\n isDisabled={option.disabled}\n isReadOnly={readOnly}\n description={option.description}\n onChange={(checked) =>\n change(\n checked\n ? [...selected, option.value]\n : selected.filter((value) => value !== option.value),\n )\n }\n checkboxClassName={controlClassName}\n >\n {option.label}\n </Checkbox>\n ))}\n </div>\n </Fieldset>\n );\n }\n return (\n <Select\n {...chrome}\n multiple\n options={options}\n value={selected}\n onChange={change}\n isRequired={required}\n isDisabled={locked}\n {...(placeholder !== undefined ? { placeholder } : {})}\n {...(name !== undefined ? { name } : {})}\n {...(id !== undefined ? { id } : {})}\n {...(autoFocus !== undefined ? { autoFocus } : {})}\n {...(onBlur !== undefined ? { onBlur } : {})}\n {...(controlClassName !== undefined ? { triggerClassName: controlClassName } : {})}\n />\n );\n }\n\n if (props.widget === 'radios') {\n return (\n <RadioGroup\n {...chrome}\n options={options}\n value={props.value ?? null}\n onChange={(value) => props.onChange?.(value)}\n isRequired={required}\n isDisabled={disabled}\n isReadOnly={readOnly}\n {...(name !== undefined ? { name } : {})}\n {...(id !== undefined ? { id } : {})}\n {...(onBlur !== undefined ? { onBlur } : {})}\n {...(controlClassName !== undefined ? { radioClassName: controlClassName } : {})}\n />\n );\n }\n return (\n <Select\n {...chrome}\n options={options}\n value={props.value ?? null}\n onChange={(value) => props.onChange?.(value)}\n isRequired={required}\n isDisabled={locked}\n {...(placeholder !== undefined ? { placeholder } : {})}\n {...(name !== undefined ? { name } : {})}\n {...(id !== undefined ? { id } : {})}\n {...(autoFocus !== undefined ? { autoFocus } : {})}\n {...(onBlur !== undefined ? { onBlur } : {})}\n {...(controlClassName !== undefined ? { triggerClassName: controlClassName } : {})}\n />\n );\n}\n\nfunction isOptionValue(value: unknown): value is OptionValue {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\n\n/**\n * The `select` type: `options`, `multiple`, and setting `widget` (`radios` for a single choice,\n * `checkboxes` for several).\n */\nexport function SelectFieldEntry(props: FieldEntryProps) {\n const { field } = props;\n const widget = getSetting(field, 'widget', isString);\n const options = field.options ?? [];\n if (field.multiple === true) {\n const value = Array.isArray(props.value) ? props.value.filter(isOptionValue) : null;\n return (\n <SelectField\n {...getFieldProps(props)}\n multiple\n options={options}\n value={value}\n onChange={props.onChange}\n {...(widget === 'checkboxes' ? { widget } : {})}\n />\n );\n }\n return (\n <SelectField\n {...getFieldProps(props)}\n options={options}\n value={isOptionValue(props.value) ? props.value : null}\n onChange={props.onChange}\n {...(widget === 'radios' ? { widget } : {})}\n />\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { type MultipleSelectFieldProps, type SelectFieldBaseProps, type OptionValue, SelectField, SelectFieldEntry, type SelectFieldProps, type SingleSelectFieldProps, } from './SelectField';
1
+ export { type MultipleSelectFieldProps, type SelectFieldBaseProps, type OptionValue, SelectField, SelectFieldEntry, type SelectFieldProps, type SingleSelectFieldProps, } from './SelectField.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,15 @@
1
+ import { type CompoundFieldEntry } from '../compound/compound.js';
2
+ /**
3
+ * The `sessions` type (decision 0065): a compound field whose items are the `dates` of a session
4
+ * (a `daterange`) and its `venue` (a relation). The definition gives the sub-fields: those of a
5
+ * site (a price, a link to the tickets) come after these.
6
+ */
7
+ export declare const SessionsFieldEntry: CompoundFieldEntry;
8
+ /** The `sessions` type, as a `@panneau/core` plugin. */
9
+ export declare const sessionsPlugin: {
10
+ id: string;
11
+ fields: {
12
+ sessions: CompoundFieldEntry;
13
+ };
14
+ };
15
+ //# sourceMappingURL=SessionsField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionsField.d.ts","sourceRoot":"","sources":["../../src/sessions/SessionsField.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAkC,MAAM,sBAAsB,CAAC;AAM/F;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBA+B/B,CAAC;AAEH,wDAAwD;AACxD,eAAO,MAAM,cAAc;;;;;CAG1B,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { formatDateRange, getDateRangeSettings } from "../daterange/range.js";
2
+ import { toReferences } from "../shared/relation.js";
3
+ import { defineCompoundField, restParts } from "../compound/compound.js";
4
+ import Compound_module_default from "../compound/Compound.module.js";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/sessions/SessionsField.tsx
7
+ var PLACED = ["dates", "venue"];
8
+ /**
9
+ * The `sessions` type (decision 0065): a compound field whose items are the `dates` of a session
10
+ * (a `daterange`) and its `venue` (a relation). The definition gives the sub-fields: those of a
11
+ * site (a price, a link to the tickets) come after these.
12
+ */
13
+ var SessionsFieldEntry = defineCompoundField({
14
+ layout: ({ parts }) => /* @__PURE__ */ jsxs("div", {
15
+ className: Compound_module_default.stack,
16
+ children: [/* @__PURE__ */ jsxs("div", {
17
+ className: Compound_module_default.row,
18
+ children: [/* @__PURE__ */ jsx("div", {
19
+ className: `${Compound_module_default.part} ${Compound_module_default.wide}`,
20
+ children: parts.dates
21
+ }), /* @__PURE__ */ jsx("div", {
22
+ className: Compound_module_default.part,
23
+ children: parts.venue
24
+ })]
25
+ }), restParts(parts, PLACED).length > 0 ? /* @__PURE__ */ jsx("div", {
26
+ className: Compound_module_default.row,
27
+ children: restParts(parts, PLACED).map((part, index) => /* @__PURE__ */ jsx("div", {
28
+ className: Compound_module_default.part,
29
+ children: part
30
+ }, index))
31
+ }) : null]
32
+ }),
33
+ summarize: (session, { field, locale }) => {
34
+ const dates = field.fields?.find((part) => part.name === "dates");
35
+ const range = formatDateRange(session.dates, locale, getDateRangeSettings(dates?.settings).timeZone);
36
+ const venue = toReferences(session.venue)[0]?.label;
37
+ const texts = [range?.text, venue].filter((text) => text !== void 0 && text !== "");
38
+ return texts.length > 0 ? texts.join(" · ") : null;
39
+ }
40
+ });
41
+ /** The `sessions` type, as a `@panneau/core` plugin. */
42
+ var sessionsPlugin = {
43
+ id: "panneau.sessions",
44
+ fields: { sessions: SessionsFieldEntry }
45
+ };
46
+ //#endregion
47
+ export { SessionsFieldEntry, sessionsPlugin };
48
+
49
+ //# sourceMappingURL=SessionsField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionsField.js","names":["styles","CompoundFieldEntry","defineCompoundField","restParts","formatDateRange","getDateRangeSettings","toReferences","PLACED","SessionsFieldEntry","layout","parts","stack","row","part","wide","dates","venue","length","map","index","summarize","session","field","locale","fields","find","name","range","settings","timeZone","label","texts","text","filter","undefined","join","sessionsPlugin","id","sessions","styles"],"sources":["../../src/sessions/SessionsField.tsx"],"sourcesContent":["import styles from '../compound/Compound.module.css';\nimport { type CompoundFieldEntry, defineCompoundField, restParts } from '../compound/compound';\nimport { formatDateRange, getDateRangeSettings } from '../daterange/range';\nimport { toReferences } from '../shared/relation';\n\nconst PLACED = ['dates', 'venue'];\n\n/**\n * The `sessions` type (decision 0065): a compound field whose items are the `dates` of a session\n * (a `daterange`) and its `venue` (a relation). The definition gives the sub-fields: those of a\n * site (a price, a link to the tickets) come after these.\n */\nexport const SessionsFieldEntry: CompoundFieldEntry = defineCompoundField({\n layout: ({ parts }) => (\n <div className={styles.stack}>\n <div className={styles.row}>\n <div className={`${styles.part} ${styles.wide}`}>{parts.dates}</div>\n <div className={styles.part}>{parts.venue}</div>\n </div>\n {restParts(parts, PLACED).length > 0 ? (\n <div className={styles.row}>\n {restParts(parts, PLACED).map((part, index) => (\n <div key={index} className={styles.part}>\n {part}\n </div>\n ))}\n </div>\n ) : null}\n </div>\n ),\n summarize: (session, { field, locale }) => {\n const dates = field.fields?.find((part) => part.name === 'dates');\n const range = formatDateRange(\n session.dates,\n locale,\n getDateRangeSettings(dates?.settings).timeZone,\n );\n const venue = toReferences(session.venue)[0]?.label;\n const texts = [range?.text, venue].filter(\n (text): text is string => text !== undefined && text !== '',\n );\n return texts.length > 0 ? texts.join(' · ') : null;\n },\n});\n\n/** The `sessions` type, as a `@panneau/core` plugin. */\nexport const sessionsPlugin = {\n id: 'panneau.sessions',\n fields: { sessions: SessionsFieldEntry },\n};\n"],"mappings":";;;;;;AAKA,IAAMO,SAAS,CAAC,SAAS,OAAO;;;;;;AAOhC,IAAaC,qBAAyCN,oBAAoB;CACtEO,SAAS,EAAEC,YACP,qBAAC,OAAD;EAAK,WAAWV,wBAAOW;EAAvB,UAAA,CACI,qBAAC,OAAD;GAAK,WAAWX,wBAAOY;GAAvB,UAAA,CACI,oBAAC,OAAD;IAAK,WAAW,GAAGZ,wBAAOa,KAAI,GAAIb,wBAAOc;IAASJ,UAAAA,MAAMK;GAAW,CAAA,GACnE,oBAAC,OAAD;IAAK,WAAWf,wBAAOa;IAAOH,UAAAA,MAAMM;GAAW,CAAA,CAC9C;EACJb,CAAAA,GAAAA,UAAUO,OAAOH,MAAM,CAAC,CAACU,SAAS,IAC/B,oBAAC,OAAD;GAAK,WAAWjB,wBAAOY;GAClBT,UAAAA,UAAUO,OAAOH,MAAM,CAAC,CAACW,KAAKL,MAAMM,UACjC,oBAAC,OAAD;IAAiB,WAAWnB,wBAAOa;IAC9BA,UAAAA;GACA,GAFKM,KAEL,CACR;EACA,CAAA,IACL,IACH;;CAETC,YAAYC,SAAS,EAAEC,OAAOC,aAAa;EACvC,MAAMR,QAAQO,MAAME,QAAQC,MAAMZ,SAASA,KAAKa,SAAS,OAAO;EAChE,MAAMC,QAAQvB,gBACViB,QAAQN,OACRQ,QACAlB,qBAAqBU,OAAOa,QAAQ,CAAC,CAACC,QAC1C;EACA,MAAMb,QAAQV,aAAae,QAAQL,KAAK,CAAC,CAAC,EAAE,EAAEc;EAC9C,MAAMC,QAAQ,CAACJ,OAAOK,MAAMhB,KAAK,CAAC,CAACiB,QAC9BD,SAAyBA,SAASE,KAAAA,KAAaF,SAAS,EAC7D;EACA,OAAOD,MAAMd,SAAS,IAAIc,MAAMI,KAAK,KAAK,IAAI;CAClD;AACJ,CAAC;;AAGD,IAAaC,iBAAiB;CAC1BC,IAAI;CACJb,QAAQ,EAAEc,UAAU9B,mBAAmB;AAC3C"}
@@ -0,0 +1,4 @@
1
+ export { SessionsFieldEntry, sessionsPlugin } from './SessionsField.js';
2
+ export type { CompoundFieldEntry, CompoundSummary, CompoundSummaryContext, } from '../compound/compound.js';
3
+ export type { FieldEntry, FieldEntryProps } from '../shared/types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sessions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACrE,YAAY,EACR,kBAAkB,EAClB,eAAe,EACf,sBAAsB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ export { SessionsFieldEntry, sessionsPlugin } from "./SessionsField.js";
@@ -0,0 +1,21 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { FieldProps } from './types.js';
3
+ /** A choice of a code combo box: a code, its name, and a decorative prefix (a flag). */
4
+ export interface CodeChoice {
5
+ code: string;
6
+ name: string;
7
+ prefix?: ReactNode;
8
+ }
9
+ export interface CodeComboBoxProps extends Omit<FieldProps<string>, 'onChange'> {
10
+ choices: readonly CodeChoice[];
11
+ onChange?: ((value: string | null) => void) | undefined;
12
+ placeholder?: string | undefined;
13
+ emptyMessage: string;
14
+ controlClassName?: string | undefined;
15
+ }
16
+ /**
17
+ * A combo box of codes shown by their names (countries, regions): typing filters them by the start
18
+ * of a word of their name, or by their code. A value outside the choices shows as it is.
19
+ */
20
+ export declare function CodeComboBox({ choices, value, onChange, onBlur, label, description, errors, disabled, readOnly, required, placeholder, name, id, autoFocus, emptyMessage, className, labelClassName, descriptionClassName, errorsClassName, controlClassName, ...props }: CodeComboBoxProps): import("react").JSX.Element;
21
+ //# sourceMappingURL=CodeComboBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeComboBox.d.ts","sourceRoot":"","sources":["../../src/shared/CodeComboBox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAIjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,wFAAwF;AACxF,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC3E,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACxD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAwBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EACzB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAK,EACL,WAAW,EACX,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,EAAE,EACF,SAAS,EACT,YAAY,EACZ,SAAS,EACT,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,GAAG,KAAK,EACX,EAAE,iBAAiB,+BA0DnB"}
@@ -0,0 +1,238 @@
1
+ import { c } from "react/compiler-runtime";
2
+ import { ComboBox } from "@panneau/ui";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { useState } from "react";
5
+ //#region src/shared/CodeComboBox.tsx
6
+ /** Lower case, without accents: `Québec` matches `quebec`. */
7
+ function normalize(text) {
8
+ return text.normalize("NFD").replace(/\p{Diacritic}/gu, "").toLowerCase();
9
+ }
10
+ function matches(choice, query) {
11
+ const text = normalize(query.trim());
12
+ if (text === "") return true;
13
+ return normalize(choice.name).split(/[\s'’-]+/).some((word) => word.startsWith(text)) || normalize(choice.name).startsWith(text) || choice.code.toLowerCase() === text;
14
+ }
15
+ /**
16
+ * A combo box of codes shown by their names (countries, regions): typing filters them by the start
17
+ * of a word of their name, or by their code. A value outside the choices shows as it is.
18
+ */
19
+ function CodeComboBox(t0) {
20
+ const $ = c(71);
21
+ let autoFocus;
22
+ let choices;
23
+ let className;
24
+ let controlClassName;
25
+ let description;
26
+ let descriptionClassName;
27
+ let disabled;
28
+ let emptyMessage;
29
+ let errors;
30
+ let errorsClassName;
31
+ let id;
32
+ let label;
33
+ let labelClassName;
34
+ let name;
35
+ let onBlur;
36
+ let onChange;
37
+ let placeholder;
38
+ let props;
39
+ let readOnly;
40
+ let required;
41
+ let value;
42
+ if ($[0] !== t0) {
43
+ ({choices, value, onChange, onBlur, label, description, errors, disabled, readOnly, required, placeholder, name, id, autoFocus, emptyMessage, className, labelClassName, descriptionClassName, errorsClassName, controlClassName, ...props} = t0);
44
+ $[0] = t0;
45
+ $[1] = autoFocus;
46
+ $[2] = choices;
47
+ $[3] = className;
48
+ $[4] = controlClassName;
49
+ $[5] = description;
50
+ $[6] = descriptionClassName;
51
+ $[7] = disabled;
52
+ $[8] = emptyMessage;
53
+ $[9] = errors;
54
+ $[10] = errorsClassName;
55
+ $[11] = id;
56
+ $[12] = label;
57
+ $[13] = labelClassName;
58
+ $[14] = name;
59
+ $[15] = onBlur;
60
+ $[16] = onChange;
61
+ $[17] = placeholder;
62
+ $[18] = props;
63
+ $[19] = readOnly;
64
+ $[20] = required;
65
+ $[21] = value;
66
+ } else {
67
+ autoFocus = $[1];
68
+ choices = $[2];
69
+ className = $[3];
70
+ controlClassName = $[4];
71
+ description = $[5];
72
+ descriptionClassName = $[6];
73
+ disabled = $[7];
74
+ emptyMessage = $[8];
75
+ errors = $[9];
76
+ errorsClassName = $[10];
77
+ id = $[11];
78
+ label = $[12];
79
+ labelClassName = $[13];
80
+ name = $[14];
81
+ onBlur = $[15];
82
+ onChange = $[16];
83
+ placeholder = $[17];
84
+ props = $[18];
85
+ readOnly = $[19];
86
+ required = $[20];
87
+ value = $[21];
88
+ }
89
+ const [query, setQuery] = useState(null);
90
+ const current = value !== null && value !== void 0 && value !== "" ? value : null;
91
+ let t1;
92
+ if ($[22] !== choices || $[23] !== current) {
93
+ t1 = current !== null ? choices.find((choice) => choice.code === current) : null;
94
+ $[22] = choices;
95
+ $[23] = current;
96
+ $[24] = t1;
97
+ } else t1 = $[24];
98
+ const selected = t1;
99
+ let t2;
100
+ if ($[25] !== choices || $[26] !== current || $[27] !== query || $[28] !== selected) {
101
+ t2 = (query !== null ? choices.filter((choice_0) => matches(choice_0, query)) : choices).concat(current !== null && selected === void 0 && query === null ? [{
102
+ code: current,
103
+ name: current
104
+ }] : []).map(_temp);
105
+ $[25] = choices;
106
+ $[26] = current;
107
+ $[27] = query;
108
+ $[28] = selected;
109
+ $[29] = t2;
110
+ } else t2 = $[29];
111
+ const items = t2;
112
+ let t3;
113
+ if ($[30] !== errors) {
114
+ t3 = errors ?? [];
115
+ $[30] = errors;
116
+ $[31] = t3;
117
+ } else t3 = $[31];
118
+ let t4;
119
+ if ($[32] !== controlClassName) {
120
+ t4 = controlClassName !== void 0 ? { controlClassName } : {};
121
+ $[32] = controlClassName;
122
+ $[33] = t4;
123
+ } else t4 = $[33];
124
+ let t5;
125
+ if ($[34] !== props) {
126
+ t5 = props["aria-label"] !== void 0 ? { "aria-label": props["aria-label"] } : {};
127
+ $[34] = props;
128
+ $[35] = t5;
129
+ } else t5 = $[35];
130
+ let t6;
131
+ if ($[36] !== name) {
132
+ t6 = name !== void 0 ? { name } : {};
133
+ $[36] = name;
134
+ $[37] = t6;
135
+ } else t6 = $[37];
136
+ let t7;
137
+ if ($[38] !== id) {
138
+ t7 = id !== void 0 ? { id } : {};
139
+ $[38] = id;
140
+ $[39] = t7;
141
+ } else t7 = $[39];
142
+ const t8 = query === null ? selected?.prefix : void 0;
143
+ const t9 = query ?? selected?.name ?? current ?? "";
144
+ let t10;
145
+ let t11;
146
+ if ($[40] !== current || $[41] !== onChange) {
147
+ t10 = (text) => {
148
+ setQuery(text);
149
+ if (text === "" && current !== null) onChange?.(null);
150
+ };
151
+ t11 = (code) => {
152
+ setQuery(null);
153
+ if (code !== null && code !== current) onChange?.(code);
154
+ };
155
+ $[40] = current;
156
+ $[41] = onChange;
157
+ $[42] = t10;
158
+ $[43] = t11;
159
+ } else {
160
+ t10 = $[42];
161
+ t11 = $[43];
162
+ }
163
+ let t12;
164
+ if ($[44] !== onBlur) {
165
+ t12 = () => {
166
+ setQuery(null);
167
+ onBlur?.();
168
+ };
169
+ $[44] = onBlur;
170
+ $[45] = t12;
171
+ } else t12 = $[45];
172
+ let t13;
173
+ if ($[46] !== autoFocus || $[47] !== className || $[48] !== current || $[49] !== description || $[50] !== descriptionClassName || $[51] !== disabled || $[52] !== emptyMessage || $[53] !== errorsClassName || $[54] !== items || $[55] !== label || $[56] !== labelClassName || $[57] !== placeholder || $[58] !== readOnly || $[59] !== required || $[60] !== t10 || $[61] !== t11 || $[62] !== t12 || $[63] !== t3 || $[64] !== t4 || $[65] !== t5 || $[66] !== t6 || $[67] !== t7 || $[68] !== t8 || $[69] !== t9) {
174
+ t13 = /* @__PURE__ */ jsx(ComboBox, {
175
+ label,
176
+ description,
177
+ errors: t3,
178
+ isRequired: required,
179
+ isDisabled: disabled,
180
+ isReadOnly: readOnly,
181
+ autoFocus,
182
+ className,
183
+ labelClassName,
184
+ descriptionClassName,
185
+ errorsClassName,
186
+ ...t4,
187
+ ...t5,
188
+ ...t6,
189
+ ...t7,
190
+ items,
191
+ value: current,
192
+ prefix: t8,
193
+ inputValue: t9,
194
+ onInputChange: t10,
195
+ onChange: t11,
196
+ onBlur: t12,
197
+ placeholder,
198
+ emptyMessage
199
+ });
200
+ $[46] = autoFocus;
201
+ $[47] = className;
202
+ $[48] = current;
203
+ $[49] = description;
204
+ $[50] = descriptionClassName;
205
+ $[51] = disabled;
206
+ $[52] = emptyMessage;
207
+ $[53] = errorsClassName;
208
+ $[54] = items;
209
+ $[55] = label;
210
+ $[56] = labelClassName;
211
+ $[57] = placeholder;
212
+ $[58] = readOnly;
213
+ $[59] = required;
214
+ $[60] = t10;
215
+ $[61] = t11;
216
+ $[62] = t12;
217
+ $[63] = t3;
218
+ $[64] = t4;
219
+ $[65] = t5;
220
+ $[66] = t6;
221
+ $[67] = t7;
222
+ $[68] = t8;
223
+ $[69] = t9;
224
+ $[70] = t13;
225
+ } else t13 = $[70];
226
+ return t13;
227
+ }
228
+ function _temp(choice_1) {
229
+ return {
230
+ id: choice_1.code,
231
+ label: choice_1.name,
232
+ ...choice_1.prefix !== void 0 ? { prefix: choice_1.prefix } : {}
233
+ };
234
+ }
235
+ //#endregion
236
+ export { CodeComboBox };
237
+
238
+ //# sourceMappingURL=CodeComboBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeComboBox.js","names":["ReactNode","useState","ComboBox","FieldProps","CodeChoice","code","name","prefix","CodeComboBoxProps","Omit","choices","onChange","value","placeholder","emptyMessage","controlClassName","normalize","text","replace","toLowerCase","matches","choice","query","trim","split","some","word","startsWith","CodeComboBox","t0","$","_c","autoFocus","className","description","descriptionClassName","disabled","errors","errorsClassName","id","label","labelClassName","onBlur","props","readOnly","required","setQuery","current","undefined","t1","find","selected","t2","filter","choice_0","concat","map","_temp","items","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","choice_1","_c"],"sources":["../../src/shared/CodeComboBox.tsx"],"sourcesContent":["import { type ReactNode, useState } from 'react';\n\nimport { ComboBox } from '@panneau/ui';\n\nimport type { FieldProps } from './types';\n\n/** A choice of a code combo box: a code, its name, and a decorative prefix (a flag). */\nexport interface CodeChoice {\n code: string;\n name: string;\n prefix?: ReactNode;\n}\n\nexport interface CodeComboBoxProps extends Omit<FieldProps<string>, 'onChange'> {\n choices: readonly CodeChoice[];\n onChange?: ((value: string | null) => void) | undefined;\n placeholder?: string | undefined;\n emptyMessage: string;\n controlClassName?: string | undefined;\n}\n\n/** Lower case, without accents: `Québec` matches `quebec`. */\nfunction normalize(text: string): string {\n return text\n .normalize('NFD')\n .replace(/\\p{Diacritic}/gu, '')\n .toLowerCase();\n}\n\nfunction matches(choice: CodeChoice, query: string): boolean {\n const text = normalize(query.trim());\n if (text === '') {\n return true;\n }\n return (\n normalize(choice.name)\n .split(/[\\s'’-]+/)\n .some((word) => word.startsWith(text)) ||\n normalize(choice.name).startsWith(text) ||\n choice.code.toLowerCase() === text\n );\n}\n\n/**\n * A combo box of codes shown by their names (countries, regions): typing filters them by the start\n * of a word of their name, or by their code. A value outside the choices shows as it is.\n */\nexport function CodeComboBox({\n choices,\n value,\n onChange,\n onBlur,\n label,\n description,\n errors,\n disabled,\n readOnly,\n required,\n placeholder,\n name,\n id,\n autoFocus,\n emptyMessage,\n className,\n labelClassName,\n descriptionClassName,\n errorsClassName,\n controlClassName,\n ...props\n}: CodeComboBoxProps) {\n // The text being typed, while the user searches; the name of the value otherwise.\n const [query, setQuery] = useState<string | null>(null);\n const current = value !== null && value !== undefined && value !== '' ? value : null;\n const selected = current !== null ? choices.find((choice) => choice.code === current) : null;\n const items = (query !== null ? choices.filter((choice) => matches(choice, query)) : choices)\n .concat(\n // A value outside the choices, kept from before, stays selectable as it is.\n current !== null && selected === undefined && query === null\n ? [{ code: current, name: current }]\n : [],\n )\n .map((choice): { id: string; label: string; prefix?: ReactNode } => ({\n id: choice.code,\n label: choice.name,\n ...(choice.prefix !== undefined ? { prefix: choice.prefix } : {}),\n }));\n return (\n <ComboBox\n label={label}\n description={description}\n errors={errors ?? []}\n isRequired={required}\n isDisabled={disabled}\n isReadOnly={readOnly}\n autoFocus={autoFocus}\n className={className}\n labelClassName={labelClassName}\n descriptionClassName={descriptionClassName}\n errorsClassName={errorsClassName}\n {...(controlClassName !== undefined ? { controlClassName } : {})}\n {...(props['aria-label'] !== undefined ? { 'aria-label': props['aria-label'] } : {})}\n {...(name !== undefined ? { name } : {})}\n {...(id !== undefined ? { id } : {})}\n items={items}\n value={current}\n prefix={query === null ? selected?.prefix : undefined}\n inputValue={query ?? selected?.name ?? current ?? ''}\n onInputChange={(text) => {\n setQuery(text);\n if (text === '' && current !== null) {\n onChange?.(null);\n }\n }}\n onChange={(code) => {\n setQuery(null);\n if (code !== null && code !== current) {\n onChange?.(code);\n }\n }}\n onBlur={() => {\n setQuery(null);\n onBlur?.();\n }}\n placeholder={placeholder}\n emptyMessage={emptyMessage}\n />\n );\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Field } from '@panneau/protocol';
2
- import type { FieldEntryProps } from './types';
2
+ import type { FieldEntryProps } from './types.js';
3
3
  export interface NestedFieldProps {
4
4
  field: Field;
5
5
  /** Dot path of the field's value. */
@@ -12,6 +12,10 @@ export interface NestedFieldProps {
12
12
  errors?: readonly string[];
13
13
  /** The object the field belongs to, for conditions and generated values. */
14
14
  parentValue?: unknown;
15
+ /** The locale of the value, in a localized field. */
16
+ locale?: string;
17
+ /** Renders the field without a visible label, named by its label for assistive technologies. */
18
+ hideLabel?: boolean;
15
19
  disabled?: boolean;
16
20
  readOnly?: boolean;
17
21
  className?: string;
@@ -22,11 +26,12 @@ export interface NestedFieldProps {
22
26
  * one, it uses `value` and `onChange`, and hides itself when its `visibleWhen` condition on the
23
27
  * parent value is false.
24
28
  */
25
- export declare function NestedField({ field, path, value, onChange, onBlur, errors, parentValue, disabled, readOnly, className, }: NestedFieldProps): import("react").JSX.Element | null;
29
+ export declare function NestedField({ field, path, value, onChange, onBlur, errors, parentValue, locale, hideLabel, disabled, readOnly, className, }: NestedFieldProps): import("react").JSX.Element | null;
26
30
  /**
27
31
  * Renders a field of the definition with the entry of its type: from the fields context, or a
28
- * built-in one. A localized field renders an input per locale. A type without an entry renders a
29
- * placeholder that names the missing plugin.
32
+ * built-in one. A localized field renders an input per locale. A compound field without an entry
33
+ * (decision 0065) renders as a group, or as a repeater with `multiple`. Another type without an
34
+ * entry renders a placeholder that names the missing plugin.
30
35
  */
31
36
  export declare function DefinitionField(props: FieldEntryProps): import("react").JSX.Element;
32
37
  //# sourceMappingURL=DefinitionField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DefinitionField.d.ts","sourceRoot":"","sources":["../../src/shared/DefinitionField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAU/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,4EAA4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EACxB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,GACZ,EAAE,gBAAgB,sCAgClB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,+BAQrD"}
1
+ {"version":3,"file":"DefinitionField.d.ts","sourceRoot":"","sources":["../../src/shared/DefinitionField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAY/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,4EAA4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EACxB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAW,EACX,MAAM,EACN,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,GACZ,EAAE,gBAAgB,sCAkClB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,+BAgBrD"}