@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
@@ -4,23 +4,84 @@ import { Checkbox, Switch } from "@panneau/ui";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region src/boolean/BooleanField.tsx
6
6
  /** A yes or no value, as a checkbox or a switch with its label. An empty value is `false`. */
7
- function BooleanField({ value, onChange, label, widget = "checkbox", disabled, readOnly, required, controlClassName, ...props }) {
8
- const shared = {
9
- ...props,
10
- isSelected: value === true,
11
- onChange: (next) => onChange?.(next),
12
- isDisabled: disabled,
13
- isReadOnly: readOnly,
14
- isRequired: required,
15
- children: label
16
- };
17
- return widget === "switch" ? /* @__PURE__ */ jsx(Switch, {
18
- ...shared,
19
- switchClassName: controlClassName
20
- }) : /* @__PURE__ */ jsx(Checkbox, {
21
- ...shared,
22
- checkboxClassName: controlClassName
23
- });
7
+ function BooleanField(t0) {
8
+ const $ = c(24);
9
+ let controlClassName;
10
+ let disabled;
11
+ let label;
12
+ let onChange;
13
+ let props;
14
+ let readOnly;
15
+ let required;
16
+ let t1;
17
+ let value;
18
+ if ($[0] !== t0) {
19
+ ({value, onChange, label, widget: t1, disabled, readOnly, required, controlClassName, ...props} = t0);
20
+ $[0] = t0;
21
+ $[1] = controlClassName;
22
+ $[2] = disabled;
23
+ $[3] = label;
24
+ $[4] = onChange;
25
+ $[5] = props;
26
+ $[6] = readOnly;
27
+ $[7] = required;
28
+ $[8] = t1;
29
+ $[9] = value;
30
+ } else {
31
+ controlClassName = $[1];
32
+ disabled = $[2];
33
+ label = $[3];
34
+ onChange = $[4];
35
+ props = $[5];
36
+ readOnly = $[6];
37
+ required = $[7];
38
+ t1 = $[8];
39
+ value = $[9];
40
+ }
41
+ const widget = t1 === void 0 ? "checkbox" : t1;
42
+ const t2 = value === true;
43
+ let t3;
44
+ if ($[10] !== onChange) {
45
+ t3 = (next) => onChange?.(next);
46
+ $[10] = onChange;
47
+ $[11] = t3;
48
+ } else t3 = $[11];
49
+ let t4;
50
+ if ($[12] !== disabled || $[13] !== label || $[14] !== props || $[15] !== readOnly || $[16] !== required || $[17] !== t2 || $[18] !== t3) {
51
+ t4 = {
52
+ ...props,
53
+ isSelected: t2,
54
+ onChange: t3,
55
+ isDisabled: disabled,
56
+ isReadOnly: readOnly,
57
+ isRequired: required,
58
+ children: label
59
+ };
60
+ $[12] = disabled;
61
+ $[13] = label;
62
+ $[14] = props;
63
+ $[15] = readOnly;
64
+ $[16] = required;
65
+ $[17] = t2;
66
+ $[18] = t3;
67
+ $[19] = t4;
68
+ } else t4 = $[19];
69
+ const shared = t4;
70
+ let t5;
71
+ if ($[20] !== controlClassName || $[21] !== shared || $[22] !== widget) {
72
+ t5 = widget === "switch" ? /* @__PURE__ */ jsx(Switch, {
73
+ ...shared,
74
+ switchClassName: controlClassName
75
+ }) : /* @__PURE__ */ jsx(Checkbox, {
76
+ ...shared,
77
+ checkboxClassName: controlClassName
78
+ });
79
+ $[20] = controlClassName;
80
+ $[21] = shared;
81
+ $[22] = widget;
82
+ $[23] = t5;
83
+ } else t5 = $[23];
84
+ return t5;
24
85
  }
25
86
  /** The `boolean` type: setting `widget` (`checkbox` or `switch`). */
26
87
  function BooleanFieldEntry(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanField.js","names":["_c"],"sources":["../../src/boolean/BooleanField.tsx"],"sourcesContent":["import { Checkbox, Switch } from '@panneau/ui';\n\nimport { getFieldProps, getSetting, isString } from '../shared/entry';\nimport type { FieldEntryProps, FieldProps } from '../shared/types';\n\nexport interface BooleanFieldProps extends Omit<FieldProps<boolean>, 'labelClassName'> {\n /** `checkbox` (default) for a choice saved with the form, `switch` for an on and off setting. */\n widget?: 'checkbox' | 'switch';\n controlClassName?: string;\n}\n\n/** A yes or no value, as a checkbox or a switch with its label. An empty value is `false`. */\nexport function BooleanField({\n value,\n onChange,\n label,\n widget = 'checkbox',\n disabled,\n readOnly,\n required,\n controlClassName,\n ...props\n}: BooleanFieldProps) {\n const shared = {\n ...props,\n isSelected: value === true,\n onChange: (next: boolean) => onChange?.(next),\n isDisabled: disabled,\n isReadOnly: readOnly,\n isRequired: required,\n children: label,\n };\n return widget === 'switch' ? (\n <Switch {...shared} switchClassName={controlClassName} />\n ) : (\n <Checkbox {...shared} checkboxClassName={controlClassName} />\n );\n}\n\n/** The `boolean` type: setting `widget` (`checkbox` or `switch`). */\nexport function BooleanFieldEntry(props: FieldEntryProps) {\n const widget = getSetting(props.field, 'widget', isString);\n return (\n <BooleanField\n {...getFieldProps(props)}\n value={props.value === true}\n onChange={props.onChange}\n {...(widget === 'switch' || widget === 'checkbox' ? { widget } : {})}\n />\n );\n}\n"],"mappings":";;;;;;AAYA,SAAgB,aAAa,EACzB,OACA,UACA,OACA,SAAS,YACT,UACA,UACA,UACA,kBACA,GAAG,SACe;CAClB,MAAM,SAAS;EACX,GAAG;EACH,YAAY,UAAU;EACtB,WAAW,SAAkB,WAAW,IAAI;EAC5C,YAAY;EACZ,YAAY;EACZ,YAAY;EACZ,UAAU;CACd;CACA,OAAO,WAAW,WACd,oBAAC,QAAD;EAAQ,GAAI;EAAQ,iBAAiB;CAAiB,CAAA,IAEtD,oBAAC,UAAD;EAAU,GAAI;EAAQ,mBAAmB;CAAiB,CAAA;AAElE;;AAGA,SAAO,kBAAA,OAAA;CAAA,MAAA,IAAAA,EAAA,EAAA;CAAA,IAAA;CAAA,IAAA,EAAA,OAAA,MAAA,OAAA;EACY,KAAA,WAAW,MAAK,OAAQ,UAAU,QAAQ;EAAC,EAAA,KAAA,MAAA;EAAA,EAAA,KAAA;CAAA,OAAA,KAAA,EAAA;CAA1D,MAAA,SAAe;CAA4C,IAAA;CAAA,IAAA,EAAA,OAAA,OAAA;EAG/C,KAAA,cAAc,KAAK;EAAC,EAAA,KAAA;EAAA,EAAA,KAAA;CAAA,OAAA,KAAA,EAAA;CACjB,MAAA,KAAA,MAAK,UAAW;CAAI,IAAA;CAAA,IAAA,EAAA,OAAA,QAAA;EAEtB,KAAA,WAAW,YAAY,WAAW,aAAlC,EAAA,OAA6D,IAA7D,CAA6D;EAAC,EAAA,KAAA;EAAA,EAAA,KAAA;CAAA,OAAA,KAAA,EAAA;CAAA,IAAA;CAAA,IAAA,EAAA,OAAA,MAAA,YAAA,EAAA,OAAA,MAAA,EAAA,OAAA,MAAA,EAAA,OAAA,IAAA;EAJvE,KAAA,oBAAC,cAAD;GAAa,GACL;GACG,OAAA;GACG,UAAA,MAAK;GAAS,GACnB;EAA8D,CAAA;EACrE,EAAA,KAAA,MAAA;EAAA,EAAA,KAAA;EAAA,EAAA,KAAA;EAAA,EAAA,KAAA;EAAA,EAAA,MAAA;CAAA,OAAA,KAAA,EAAA;CAAA,OALF;AAKE"}
1
+ {"version":3,"file":"BooleanField.js","names":["Checkbox","Switch","getFieldProps","getSetting","isString","FieldEntryProps","FieldProps","BooleanFieldProps","Omit","widget","controlClassName","BooleanField","t0","$","_c","disabled","label","onChange","props","readOnly","required","t1","value","undefined","t2","t3","next","t4","isSelected","isDisabled","isReadOnly","isRequired","children","shared","t5","BooleanFieldEntry","field","_c"],"sources":["../../src/boolean/BooleanField.tsx"],"sourcesContent":["import { Checkbox, Switch } from '@panneau/ui';\n\nimport { getFieldProps, getSetting, isString } from '../shared/entry';\nimport type { FieldEntryProps, FieldProps } from '../shared/types';\n\nexport interface BooleanFieldProps extends Omit<FieldProps<boolean>, 'labelClassName'> {\n /** `checkbox` (default) for a choice saved with the form, `switch` for an on and off setting. */\n widget?: 'checkbox' | 'switch';\n controlClassName?: string;\n}\n\n/** A yes or no value, as a checkbox or a switch with its label. An empty value is `false`. */\nexport function BooleanField({\n value,\n onChange,\n label,\n widget = 'checkbox',\n disabled,\n readOnly,\n required,\n controlClassName,\n ...props\n}: BooleanFieldProps) {\n const shared = {\n ...props,\n isSelected: value === true,\n onChange: (next: boolean) => onChange?.(next),\n isDisabled: disabled,\n isReadOnly: readOnly,\n isRequired: required,\n children: label,\n };\n return widget === 'switch' ? (\n <Switch {...shared} switchClassName={controlClassName} />\n ) : (\n <Checkbox {...shared} checkboxClassName={controlClassName} />\n );\n}\n\n/** The `boolean` type: setting `widget` (`checkbox` or `switch`). */\nexport function BooleanFieldEntry(props: FieldEntryProps) {\n const widget = getSetting(props.field, 'widget', isString);\n return (\n <BooleanField\n {...getFieldProps(props)}\n value={props.value === true}\n onChange={props.onChange}\n {...(widget === 'switch' || widget === 'checkbox' ? { widget } : {})}\n />\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { BooleanField, BooleanFieldEntry, type BooleanFieldProps } from './BooleanField';
1
+ export { BooleanField, BooleanFieldEntry, type BooleanFieldProps } from './BooleanField.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -31,3 +31,12 @@
31
31
  .panneau-color-field-input {
32
32
  font-family: var(--panneau-font-family-mono);
33
33
  }
34
+
35
+ .panneau-color-field-palette-swatch {
36
+ display: inline-block;
37
+ width: 1rem;
38
+ height: 1rem;
39
+ vertical-align: middle;
40
+ border: var(--panneau-border-width) solid var(--panneau-color-border-control);
41
+ border-radius: var(--panneau-radius-sm);
42
+ }
@@ -1,6 +1,13 @@
1
- import type { FieldEntryProps } from '../shared/types';
2
- import { type TextFieldProps } from '../text/TextField';
3
- export type ColorFieldProps = Omit<TextFieldProps, 'type' | 'prefix' | 'maxLength'>;
1
+ import type { FieldEntryProps } from '../shared/types.js';
2
+ import { type TextFieldProps } from '../text/TextField.js';
3
+ import { type ColorPaletteEntry } from './palette.js';
4
+ export interface ColorFieldProps extends Omit<TextFieldProps, 'type' | 'prefix' | 'maxLength'> {
5
+ /**
6
+ * The colors to pick from (decision 0058). With a palette, the field only offers its colors,
7
+ * and the value is the `value` of one of them.
8
+ */
9
+ palette?: readonly ColorPaletteEntry[] | null;
10
+ }
4
11
  /**
5
12
  * Normalizes a hexadecimal color: `#` prefix, lowercase, and 3 digits expanded to 6. Returns the
6
13
  * text as is when it isn't a hexadecimal color.
@@ -10,7 +17,7 @@ export declare function normalizeColor(value: string): string;
10
17
  * A color as a hexadecimal value (`#1d4ed8`): typed, or picked with the browser's color picker.
11
18
  * The value is normalized on blur.
12
19
  */
13
- export declare function ColorField({ value, onChange, onBlur, disabled, readOnly, inputClassName, ...props }: ColorFieldProps): import("react").JSX.Element;
14
- /** The `color` type. */
20
+ export declare function ColorField({ value, onChange, onBlur, disabled, readOnly, inputClassName, palette, ...props }: ColorFieldProps): import("react").JSX.Element;
21
+ /** The `color` type: `settings.palette`, the colors to pick from. */
15
22
  export declare function ColorFieldEntry(props: FieldEntryProps): import("react").JSX.Element;
16
23
  //# sourceMappingURL=ColorField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColorField.d.ts","sourceRoot":"","sources":["../../src/color/ColorField.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnE,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC,CAAC;AAEpF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUpD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,GAAG,KAAK,EACX,EAAE,eAAe,+BAsCjB;AAED,wBAAwB;AACxB,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,+BAQrD"}
1
+ {"version":3,"file":"ColorField.d.ts","sourceRoot":"","sources":["../../src/color/ColorField.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,KAAK,iBAAiB,EAAmC,MAAM,WAAW,CAAC;AAEpF,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC1F;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI,CAAC;CACjD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUpD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,OAAO,EACP,GAAG,KAAK,EACX,EAAE,eAAe,+BAmDjB;AA4ED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,+BAUrD"}
@@ -3,8 +3,9 @@ import { getFieldProps, isString } from "../shared/entry.js";
3
3
  import { messages } from "../shared/messages.js";
4
4
  import { TextField } from "../text/TextField.js";
5
5
  import ColorField_module_default from "./ColorField.module.js";
6
+ import { getColorPalette, getSwatchColor } from "./palette.js";
6
7
  import { c } from "react/compiler-runtime";
7
- import { usePanneauIntl } from "@panneau/ui";
8
+ import { Select, usePanneauIntl } from "@panneau/ui";
8
9
  import { jsx } from "react/jsx-runtime";
9
10
  //#region src/color/ColorField.tsx
10
11
  /**
@@ -23,49 +24,75 @@ function normalizeColor(value) {
23
24
  * The value is normalized on blur.
24
25
  */
25
26
  function ColorField(t0) {
26
- const $ = c(42);
27
+ const $ = c(51);
27
28
  let disabled;
28
29
  let inputClassName;
29
30
  let onBlur;
30
31
  let onChange;
32
+ let palette;
31
33
  let props;
32
34
  let readOnly;
33
35
  let value;
34
36
  if ($[0] !== t0) {
35
- ({value, onChange, onBlur, disabled, readOnly, inputClassName, ...props} = t0);
37
+ ({value, onChange, onBlur, disabled, readOnly, inputClassName, palette, ...props} = t0);
36
38
  $[0] = t0;
37
39
  $[1] = disabled;
38
40
  $[2] = inputClassName;
39
41
  $[3] = onBlur;
40
42
  $[4] = onChange;
41
- $[5] = props;
42
- $[6] = readOnly;
43
- $[7] = value;
43
+ $[5] = palette;
44
+ $[6] = props;
45
+ $[7] = readOnly;
46
+ $[8] = value;
44
47
  } else {
45
48
  disabled = $[1];
46
49
  inputClassName = $[2];
47
50
  onBlur = $[3];
48
51
  onChange = $[4];
49
- props = $[5];
50
- readOnly = $[6];
51
- value = $[7];
52
+ palette = $[5];
53
+ props = $[6];
54
+ readOnly = $[7];
55
+ value = $[8];
52
56
  }
53
57
  const intl = usePanneauIntl();
58
+ if (palette !== void 0 && palette !== null && palette.length > 0) {
59
+ let t1;
60
+ if ($[9] !== disabled || $[10] !== onBlur || $[11] !== onChange || $[12] !== palette || $[13] !== props || $[14] !== readOnly || $[15] !== value) {
61
+ t1 = /* @__PURE__ */ jsx(PaletteSelect, {
62
+ ...props,
63
+ palette,
64
+ value,
65
+ onChange,
66
+ onBlur,
67
+ disabled,
68
+ readOnly
69
+ });
70
+ $[9] = disabled;
71
+ $[10] = onBlur;
72
+ $[11] = onChange;
73
+ $[12] = palette;
74
+ $[13] = props;
75
+ $[14] = readOnly;
76
+ $[15] = value;
77
+ $[16] = t1;
78
+ } else t1 = $[16];
79
+ return t1;
80
+ }
54
81
  let t1;
55
- if ($[8] !== value) {
82
+ if ($[17] !== value) {
56
83
  t1 = value !== null && value !== void 0 && /^#[0-9a-f]{6}$/i.test(value);
57
- $[8] = value;
58
- $[9] = t1;
59
- } else t1 = $[9];
84
+ $[17] = value;
85
+ $[18] = t1;
86
+ } else t1 = $[18];
60
87
  const valid = t1;
61
88
  let t2;
62
- if ($[10] !== inputClassName) {
89
+ if ($[19] !== inputClassName) {
63
90
  t2 = cx(ColorField_module_default.input, inputClassName);
64
- $[10] = inputClassName;
65
- $[11] = t2;
66
- } else t2 = $[11];
91
+ $[19] = inputClassName;
92
+ $[20] = t2;
93
+ } else t2 = $[20];
67
94
  let t3;
68
- if ($[12] !== onBlur || $[13] !== onChange || $[14] !== value) {
95
+ if ($[21] !== onBlur || $[22] !== onChange || $[23] !== value) {
69
96
  t3 = () => {
70
97
  if (value !== null && value !== void 0) {
71
98
  const next = normalizeColor(value);
@@ -73,40 +100,40 @@ function ColorField(t0) {
73
100
  }
74
101
  onBlur?.();
75
102
  };
76
- $[12] = onBlur;
77
- $[13] = onChange;
78
- $[14] = value;
79
- $[15] = t3;
80
- } else t3 = $[15];
103
+ $[21] = onBlur;
104
+ $[22] = onChange;
105
+ $[23] = value;
106
+ $[24] = t3;
107
+ } else t3 = $[24];
81
108
  const t4 = valid ? value : "transparent";
82
109
  let t5;
83
- if ($[16] !== t4) {
110
+ if ($[25] !== t4) {
84
111
  t5 = { backgroundColor: t4 };
85
- $[16] = t4;
86
- $[17] = t5;
87
- } else t5 = $[17];
112
+ $[25] = t4;
113
+ $[26] = t5;
114
+ } else t5 = $[26];
88
115
  let t6;
89
- if ($[18] !== valid || $[19] !== value) {
116
+ if ($[27] !== valid || $[28] !== value) {
90
117
  t6 = valid ? value.toLowerCase() : "#000000";
91
- $[18] = valid;
92
- $[19] = value;
93
- $[20] = t6;
94
- } else t6 = $[20];
118
+ $[27] = valid;
119
+ $[28] = value;
120
+ $[29] = t6;
121
+ } else t6 = $[29];
95
122
  let t7;
96
- if ($[21] !== onChange) {
123
+ if ($[30] !== onChange) {
97
124
  t7 = (event) => onChange?.(event.target.value);
98
- $[21] = onChange;
99
- $[22] = t7;
100
- } else t7 = $[22];
125
+ $[30] = onChange;
126
+ $[31] = t7;
127
+ } else t7 = $[31];
101
128
  const t8 = disabled === true || readOnly === true;
102
129
  let t9;
103
- if ($[23] !== intl) {
130
+ if ($[32] !== intl) {
104
131
  t9 = intl.formatMessage(messages.pickColor);
105
- $[23] = intl;
106
- $[24] = t9;
107
- } else t9 = $[24];
132
+ $[32] = intl;
133
+ $[33] = t9;
134
+ } else t9 = $[33];
108
135
  let t10;
109
- if ($[25] !== t6 || $[26] !== t7 || $[27] !== t8 || $[28] !== t9) {
136
+ if ($[34] !== t6 || $[35] !== t7 || $[36] !== t8 || $[37] !== t9) {
110
137
  t10 = /* @__PURE__ */ jsx("input", {
111
138
  type: "color",
112
139
  className: ColorField_module_default.picker,
@@ -115,25 +142,25 @@ function ColorField(t0) {
115
142
  disabled: t8,
116
143
  "aria-label": t9
117
144
  });
118
- $[25] = t6;
119
- $[26] = t7;
120
- $[27] = t8;
121
- $[28] = t9;
122
- $[29] = t10;
123
- } else t10 = $[29];
145
+ $[34] = t6;
146
+ $[35] = t7;
147
+ $[36] = t8;
148
+ $[37] = t9;
149
+ $[38] = t10;
150
+ } else t10 = $[38];
124
151
  let t11;
125
- if ($[30] !== t10 || $[31] !== t5) {
152
+ if ($[39] !== t10 || $[40] !== t5) {
126
153
  t11 = /* @__PURE__ */ jsx("span", {
127
154
  className: ColorField_module_default.swatch,
128
155
  style: t5,
129
156
  children: t10
130
157
  });
131
- $[30] = t10;
132
- $[31] = t5;
133
- $[32] = t11;
134
- } else t11 = $[32];
158
+ $[39] = t10;
159
+ $[40] = t5;
160
+ $[41] = t11;
161
+ } else t11 = $[41];
135
162
  let t12;
136
- if ($[33] !== disabled || $[34] !== onChange || $[35] !== props || $[36] !== readOnly || $[37] !== t11 || $[38] !== t2 || $[39] !== t3 || $[40] !== value) {
163
+ if ($[42] !== disabled || $[43] !== onChange || $[44] !== props || $[45] !== readOnly || $[46] !== t11 || $[47] !== t2 || $[48] !== t3 || $[49] !== value) {
137
164
  t12 = /* @__PURE__ */ jsx(TextField, {
138
165
  autoComplete: "off",
139
166
  ...props,
@@ -145,41 +172,274 @@ function ColorField(t0) {
145
172
  onBlur: t3,
146
173
  prefix: t11
147
174
  });
148
- $[33] = disabled;
149
- $[34] = onChange;
150
- $[35] = props;
151
- $[36] = readOnly;
152
- $[37] = t11;
153
- $[38] = t2;
154
- $[39] = t3;
155
- $[40] = value;
156
- $[41] = t12;
157
- } else t12 = $[41];
175
+ $[42] = disabled;
176
+ $[43] = onChange;
177
+ $[44] = props;
178
+ $[45] = readOnly;
179
+ $[46] = t11;
180
+ $[47] = t2;
181
+ $[48] = t3;
182
+ $[49] = value;
183
+ $[50] = t12;
184
+ } else t12 = $[50];
158
185
  return t12;
159
186
  }
160
- /** The `color` type. */
187
+ /** The swatch of a color, decorative: an empty box when it has no color to draw. */
188
+ function Swatch(t0) {
189
+ const $ = c(4);
190
+ const { color } = t0;
191
+ let t1;
192
+ if ($[0] !== color) {
193
+ t1 = color !== null ? { backgroundColor: color } : void 0;
194
+ $[0] = color;
195
+ $[1] = t1;
196
+ } else t1 = $[1];
197
+ let t2;
198
+ if ($[2] !== t1) {
199
+ t2 = /* @__PURE__ */ jsx("span", {
200
+ className: ColorField_module_default.paletteSwatch,
201
+ style: t1
202
+ });
203
+ $[2] = t1;
204
+ $[3] = t2;
205
+ } else t2 = $[3];
206
+ return t2;
207
+ }
208
+ /**
209
+ * The colors of a palette, as a select whose options show their swatches. It can be emptied
210
+ * unless the field is required. A value outside the palette, kept from before, shows as it is.
211
+ */
212
+ function PaletteSelect(t0) {
213
+ const $ = c(65);
214
+ let autoFocus;
215
+ let className;
216
+ let controlClassName;
217
+ let description;
218
+ let descriptionClassName;
219
+ let disabled;
220
+ let errors;
221
+ let errorsClassName;
222
+ let id;
223
+ let label;
224
+ let labelClassName;
225
+ let name;
226
+ let onBlur;
227
+ let onChange;
228
+ let palette;
229
+ let placeholder;
230
+ let props;
231
+ let readOnly;
232
+ let required;
233
+ let value;
234
+ if ($[0] !== t0) {
235
+ ({palette, value, onChange, onBlur, disabled, readOnly, required, label, description, errors, name, id, autoFocus, placeholder, className, labelClassName, descriptionClassName, errorsClassName, controlClassName, ...props} = t0);
236
+ $[0] = t0;
237
+ $[1] = autoFocus;
238
+ $[2] = className;
239
+ $[3] = controlClassName;
240
+ $[4] = description;
241
+ $[5] = descriptionClassName;
242
+ $[6] = disabled;
243
+ $[7] = errors;
244
+ $[8] = errorsClassName;
245
+ $[9] = id;
246
+ $[10] = label;
247
+ $[11] = labelClassName;
248
+ $[12] = name;
249
+ $[13] = onBlur;
250
+ $[14] = onChange;
251
+ $[15] = palette;
252
+ $[16] = placeholder;
253
+ $[17] = props;
254
+ $[18] = readOnly;
255
+ $[19] = required;
256
+ $[20] = value;
257
+ } else {
258
+ autoFocus = $[1];
259
+ className = $[2];
260
+ controlClassName = $[3];
261
+ description = $[4];
262
+ descriptionClassName = $[5];
263
+ disabled = $[6];
264
+ errors = $[7];
265
+ errorsClassName = $[8];
266
+ id = $[9];
267
+ label = $[10];
268
+ labelClassName = $[11];
269
+ name = $[12];
270
+ onBlur = $[13];
271
+ onChange = $[14];
272
+ palette = $[15];
273
+ placeholder = $[16];
274
+ props = $[17];
275
+ readOnly = $[18];
276
+ required = $[19];
277
+ value = $[20];
278
+ }
279
+ const intl = usePanneauIntl();
280
+ const current = value !== null && value !== void 0 && value !== "" ? value : null;
281
+ let t1;
282
+ if ($[21] !== current || $[22] !== palette) {
283
+ t1 = current !== null && !palette.some((entry) => entry.value === current) ? [...palette, { value: current }] : palette;
284
+ $[21] = current;
285
+ $[22] = palette;
286
+ $[23] = t1;
287
+ } else t1 = $[23];
288
+ const entries = t1;
289
+ let t2;
290
+ if ($[24] !== entries) {
291
+ t2 = entries.map(_temp);
292
+ $[24] = entries;
293
+ $[25] = t2;
294
+ } else t2 = $[25];
295
+ const options = t2;
296
+ let t3;
297
+ if ($[26] !== onChange) {
298
+ t3 = (next) => onChange?.(typeof next === "string" ? next : null);
299
+ $[26] = onChange;
300
+ $[27] = t3;
301
+ } else t3 = $[27];
302
+ let t4;
303
+ if ($[28] !== errors) {
304
+ t4 = errors ?? [];
305
+ $[28] = errors;
306
+ $[29] = t4;
307
+ } else t4 = $[29];
308
+ const t5 = disabled === true || readOnly === true;
309
+ let t6;
310
+ if ($[30] !== intl || $[31] !== placeholder) {
311
+ t6 = placeholder ?? intl.formatMessage(messages.pickColor);
312
+ $[30] = intl;
313
+ $[31] = placeholder;
314
+ $[32] = t6;
315
+ } else t6 = $[32];
316
+ let t7;
317
+ if ($[33] !== props) {
318
+ t7 = props["aria-label"] !== void 0 ? { "aria-label": props["aria-label"] } : {};
319
+ $[33] = props;
320
+ $[34] = t7;
321
+ } else t7 = $[34];
322
+ let t8;
323
+ if ($[35] !== name) {
324
+ t8 = name !== void 0 ? { name } : {};
325
+ $[35] = name;
326
+ $[36] = t8;
327
+ } else t8 = $[36];
328
+ let t9;
329
+ if ($[37] !== id) {
330
+ t9 = id !== void 0 ? { id } : {};
331
+ $[37] = id;
332
+ $[38] = t9;
333
+ } else t9 = $[38];
334
+ let t10;
335
+ if ($[39] !== autoFocus) {
336
+ t10 = autoFocus !== void 0 ? { autoFocus } : {};
337
+ $[39] = autoFocus;
338
+ $[40] = t10;
339
+ } else t10 = $[40];
340
+ let t11;
341
+ if ($[41] !== onBlur) {
342
+ t11 = onBlur !== void 0 ? { onBlur } : {};
343
+ $[41] = onBlur;
344
+ $[42] = t11;
345
+ } else t11 = $[42];
346
+ let t12;
347
+ if ($[43] !== controlClassName) {
348
+ t12 = controlClassName !== void 0 ? { triggerClassName: controlClassName } : {};
349
+ $[43] = controlClassName;
350
+ $[44] = t12;
351
+ } else t12 = $[44];
352
+ let t13;
353
+ if ($[45] !== className || $[46] !== current || $[47] !== description || $[48] !== descriptionClassName || $[49] !== errorsClassName || $[50] !== label || $[51] !== labelClassName || $[52] !== options || $[53] !== required || $[54] !== t10 || $[55] !== t11 || $[56] !== t12 || $[57] !== t3 || $[58] !== t4 || $[59] !== t5 || $[60] !== t6 || $[61] !== t7 || $[62] !== t8 || $[63] !== t9) {
354
+ t13 = /* @__PURE__ */ jsx(Select, {
355
+ options,
356
+ value: current,
357
+ onChange: t3,
358
+ label,
359
+ description,
360
+ errors: t4,
361
+ isRequired: required,
362
+ isDisabled: t5,
363
+ placeholder: t6,
364
+ className,
365
+ labelClassName,
366
+ descriptionClassName,
367
+ errorsClassName,
368
+ ...t7,
369
+ ...t8,
370
+ ...t9,
371
+ ...t10,
372
+ ...t11,
373
+ ...t12
374
+ });
375
+ $[45] = className;
376
+ $[46] = current;
377
+ $[47] = description;
378
+ $[48] = descriptionClassName;
379
+ $[49] = errorsClassName;
380
+ $[50] = label;
381
+ $[51] = labelClassName;
382
+ $[52] = options;
383
+ $[53] = required;
384
+ $[54] = t10;
385
+ $[55] = t11;
386
+ $[56] = t12;
387
+ $[57] = t3;
388
+ $[58] = t4;
389
+ $[59] = t5;
390
+ $[60] = t6;
391
+ $[61] = t7;
392
+ $[62] = t8;
393
+ $[63] = t9;
394
+ $[64] = t13;
395
+ } else t13 = $[64];
396
+ return t13;
397
+ }
398
+ /** The `color` type: `settings.palette`, the colors to pick from. */
399
+ function _temp(entry_0) {
400
+ return {
401
+ value: entry_0.value,
402
+ label: entry_0.label ?? entry_0.value,
403
+ prefix: /* @__PURE__ */ jsx(Swatch, { color: getSwatchColor(entry_0) })
404
+ };
405
+ }
161
406
  function ColorFieldEntry(props) {
162
- const $ = c(6);
407
+ const $ = c(11);
163
408
  let t0;
164
- if ($[0] !== props) {
165
- t0 = getFieldProps(props);
166
- $[0] = props;
409
+ if ($[0] !== props.field) {
410
+ t0 = getColorPalette(props.field);
411
+ $[0] = props.field;
167
412
  $[1] = t0;
168
413
  } else t0 = $[1];
169
- const t1 = isString(props.value) ? props.value : null;
170
- let t2;
171
- if ($[2] !== props.onChange || $[3] !== t0 || $[4] !== t1) {
172
- t2 = /* @__PURE__ */ jsx(ColorField, {
173
- ...t0,
174
- value: t1,
175
- onChange: props.onChange
414
+ const palette = t0;
415
+ let t1;
416
+ if ($[2] !== props) {
417
+ t1 = getFieldProps(props);
418
+ $[2] = props;
419
+ $[3] = t1;
420
+ } else t1 = $[3];
421
+ const t2 = isString(props.value) ? props.value : null;
422
+ let t3;
423
+ if ($[4] !== palette) {
424
+ t3 = palette !== null ? { palette } : {};
425
+ $[4] = palette;
426
+ $[5] = t3;
427
+ } else t3 = $[5];
428
+ let t4;
429
+ if ($[6] !== props.onChange || $[7] !== t1 || $[8] !== t2 || $[9] !== t3) {
430
+ t4 = /* @__PURE__ */ jsx(ColorField, {
431
+ ...t1,
432
+ value: t2,
433
+ onChange: props.onChange,
434
+ ...t3
176
435
  });
177
- $[2] = props.onChange;
178
- $[3] = t0;
179
- $[4] = t1;
180
- $[5] = t2;
181
- } else t2 = $[5];
182
- return t2;
436
+ $[6] = props.onChange;
437
+ $[7] = t1;
438
+ $[8] = t2;
439
+ $[9] = t3;
440
+ $[10] = t4;
441
+ } else t4 = $[10];
442
+ return t4;
183
443
  }
184
444
  //#endregion
185
445
  export { ColorField, ColorFieldEntry, normalizeColor };