@panneau/fields 5.0.0-alpha.1 → 5.0.0-alpha.10

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 (243) hide show
  1. package/README.md +101 -20
  2. package/dist/boolean/BooleanField.d.ts +1 -1
  3. package/dist/boolean/BooleanField.js +78 -17
  4. package/dist/boolean/BooleanField.js.map +1 -1
  5. package/dist/boolean/index.d.ts +1 -1
  6. package/dist/color/ColorField.css +5 -5
  7. package/dist/color/ColorField.d.ts +2 -2
  8. package/dist/color/ColorField.js.map +1 -1
  9. package/dist/color/ColorField.module.js +3 -3
  10. package/dist/color/index.d.ts +1 -1
  11. package/dist/date/DateField.d.ts +1 -1
  12. package/dist/date/DateField.js.map +1 -1
  13. package/dist/date/index.d.ts +1 -1
  14. package/dist/datetime/DateTimeField.d.ts +1 -1
  15. package/dist/datetime/DateTimeField.js +107 -20
  16. package/dist/datetime/DateTimeField.js.map +1 -1
  17. package/dist/datetime/index.d.ts +1 -1
  18. package/dist/duration/DurationField.css +11 -0
  19. package/dist/duration/DurationField.d.ts +26 -0
  20. package/dist/duration/DurationField.d.ts.map +1 -0
  21. package/dist/duration/DurationField.js +214 -0
  22. package/dist/duration/DurationField.js.map +1 -0
  23. package/dist/duration/DurationField.module.js +12 -0
  24. package/dist/duration/DurationField.module.js.map +1 -0
  25. package/dist/duration/index.d.ts +2 -0
  26. package/dist/duration/index.d.ts.map +1 -0
  27. package/dist/duration/index.js +1 -0
  28. package/dist/email/EmailField.d.ts +2 -2
  29. package/dist/email/EmailField.js.map +1 -1
  30. package/dist/email/index.d.ts +1 -1
  31. package/dist/embed/EmbedField.css +60 -0
  32. package/dist/embed/EmbedField.d.ts +20 -0
  33. package/dist/embed/EmbedField.d.ts.map +1 -0
  34. package/dist/embed/EmbedField.js +246 -0
  35. package/dist/embed/EmbedField.js.map +1 -0
  36. package/dist/embed/EmbedField.module.js +22 -0
  37. package/dist/embed/EmbedField.module.js.map +1 -0
  38. package/dist/embed/index.d.ts +3 -0
  39. package/dist/embed/index.d.ts.map +1 -0
  40. package/dist/embed/index.js +3 -0
  41. package/dist/file/FileField.css +54 -0
  42. package/dist/file/FileField.d.ts +50 -0
  43. package/dist/file/FileField.d.ts.map +1 -0
  44. package/dist/file/FileField.js +288 -0
  45. package/dist/file/FileField.js.map +1 -0
  46. package/dist/file/FileField.module.js +22 -0
  47. package/dist/file/FileField.module.js.map +1 -0
  48. package/dist/file/index.d.ts +3 -0
  49. package/dist/file/index.d.ts.map +1 -0
  50. package/dist/file/index.js +1 -0
  51. package/dist/group/GroupField.css +2 -2
  52. package/dist/group/GroupField.d.ts +1 -1
  53. package/dist/group/GroupField.js.map +1 -1
  54. package/dist/group/GroupField.module.js +1 -1
  55. package/dist/group/index.d.ts +1 -1
  56. package/dist/index.d.ts +18 -7
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +11 -2
  59. package/dist/json/JsonField.css +7 -0
  60. package/dist/json/JsonField.d.ts +22 -0
  61. package/dist/json/JsonField.d.ts.map +1 -0
  62. package/dist/json/JsonField.js +207 -0
  63. package/dist/json/JsonField.js.map +1 -0
  64. package/dist/json/JsonField.module.js +8 -0
  65. package/dist/json/JsonField.module.js.map +1 -0
  66. package/dist/json/index.d.ts +2 -0
  67. package/dist/json/index.d.ts.map +1 -0
  68. package/dist/json/index.js +1 -0
  69. package/dist/locales/index.js.map +1 -1
  70. package/dist/localized/LocalizedField.css +2 -2
  71. package/dist/localized/LocalizedField.d.ts +1 -1
  72. package/dist/localized/LocalizedField.d.ts.map +1 -1
  73. package/dist/localized/LocalizedField.js +1 -0
  74. package/dist/localized/LocalizedField.js.map +1 -1
  75. package/dist/localized/LocalizedField.module.js +2 -2
  76. package/dist/localized/index.d.ts +1 -1
  77. package/dist/location/LocationField.css +54 -0
  78. package/dist/location/LocationField.d.ts +31 -0
  79. package/dist/location/LocationField.d.ts.map +1 -0
  80. package/dist/location/LocationField.js +563 -0
  81. package/dist/location/LocationField.js.map +1 -0
  82. package/dist/location/LocationField.module.js +22 -0
  83. package/dist/location/LocationField.module.js.map +1 -0
  84. package/dist/location/LocationMap.d.ts +25 -0
  85. package/dist/location/LocationMap.d.ts.map +1 -0
  86. package/dist/location/LocationMap.js +205 -0
  87. package/dist/location/LocationMap.js.map +1 -0
  88. package/dist/location/index.d.ts +5 -0
  89. package/dist/location/index.d.ts.map +1 -0
  90. package/dist/location/index.js +4 -0
  91. package/dist/location/leafletCss.d.ts +2 -0
  92. package/dist/location/leafletCss.d.ts.map +1 -0
  93. package/dist/location/leafletCss.js +6 -0
  94. package/dist/location/leafletCss.js.map +1 -0
  95. package/dist/location/nominatim.d.ts +17 -0
  96. package/dist/location/nominatim.d.ts.map +1 -0
  97. package/dist/location/nominatim.js +50 -0
  98. package/dist/location/nominatim.js.map +1 -0
  99. package/dist/location/types.d.ts +40 -0
  100. package/dist/location/types.d.ts.map +1 -0
  101. package/dist/missing/MissingField.css +4 -3
  102. package/dist/missing/MissingField.d.ts +4 -3
  103. package/dist/missing/MissingField.d.ts.map +1 -1
  104. package/dist/missing/MissingField.js +3 -2
  105. package/dist/missing/MissingField.js.map +1 -1
  106. package/dist/missing/MissingField.module.js +3 -3
  107. package/dist/missing/MissingField.module.js.map +1 -1
  108. package/dist/number/NumberField.d.ts +1 -1
  109. package/dist/number/NumberField.js.map +1 -1
  110. package/dist/number/index.d.ts +1 -1
  111. package/dist/range/RangeField.d.ts +22 -0
  112. package/dist/range/RangeField.d.ts.map +1 -0
  113. package/dist/range/RangeField.js +203 -0
  114. package/dist/range/RangeField.js.map +1 -0
  115. package/dist/range/index.d.ts +2 -0
  116. package/dist/range/index.d.ts.map +1 -0
  117. package/dist/range/index.js +1 -0
  118. package/dist/relation/RelationField.css +7 -7
  119. package/dist/relation/RelationField.d.ts +2 -2
  120. package/dist/relation/RelationField.d.ts.map +1 -1
  121. package/dist/relation/RelationField.js +509 -169
  122. package/dist/relation/RelationField.js.map +1 -1
  123. package/dist/relation/RelationField.module.js +6 -6
  124. package/dist/relation/index.d.ts +2 -2
  125. package/dist/repeater/RepeaterField.css +12 -11
  126. package/dist/repeater/RepeaterField.d.ts +1 -1
  127. package/dist/repeater/RepeaterField.js +118 -34
  128. package/dist/repeater/RepeaterField.js.map +1 -1
  129. package/dist/repeater/RepeaterField.module.js +9 -9
  130. package/dist/repeater/RepeaterField.module.js.map +1 -1
  131. package/dist/repeater/index.d.ts +1 -1
  132. package/dist/select/SelectField.css +1 -1
  133. package/dist/select/SelectField.d.ts +1 -1
  134. package/dist/select/SelectField.js.map +1 -1
  135. package/dist/select/SelectField.module.js +1 -1
  136. package/dist/select/index.d.ts +1 -1
  137. package/dist/shared/DefinitionField.d.ts +4 -2
  138. package/dist/shared/DefinitionField.d.ts.map +1 -1
  139. package/dist/shared/DefinitionField.js +80 -72
  140. package/dist/shared/DefinitionField.js.map +1 -1
  141. package/dist/shared/builtIn.d.ts +5 -3
  142. package/dist/shared/builtIn.d.ts.map +1 -1
  143. package/dist/shared/builtIn.js +21 -3
  144. package/dist/shared/builtIn.js.map +1 -1
  145. package/dist/shared/check.d.ts +27 -0
  146. package/dist/shared/check.d.ts.map +1 -0
  147. package/dist/shared/check.js +18 -0
  148. package/dist/shared/check.js.map +1 -0
  149. package/dist/shared/context.d.ts +28 -5
  150. package/dist/shared/context.d.ts.map +1 -1
  151. package/dist/shared/context.js +35 -19
  152. package/dist/shared/context.js.map +1 -1
  153. package/dist/shared/cx.js.map +1 -1
  154. package/dist/shared/dates.js.map +1 -1
  155. package/dist/shared/embed.d.ts +19 -0
  156. package/dist/shared/embed.d.ts.map +1 -0
  157. package/dist/shared/embed.js +14 -0
  158. package/dist/shared/embed.js.map +1 -0
  159. package/dist/shared/entry.d.ts +11 -2
  160. package/dist/shared/entry.d.ts.map +1 -1
  161. package/dist/shared/entry.js +19 -3
  162. package/dist/shared/entry.js.map +1 -1
  163. package/dist/shared/relation.js.map +1 -1
  164. package/dist/shared/types.d.ts +2 -0
  165. package/dist/shared/types.d.ts.map +1 -1
  166. package/dist/slug/SlugField.css +18 -0
  167. package/dist/slug/SlugField.d.ts +33 -5
  168. package/dist/slug/SlugField.d.ts.map +1 -1
  169. package/dist/slug/SlugField.js +346 -126
  170. package/dist/slug/SlugField.js.map +1 -1
  171. package/dist/slug/SlugField.module.js +14 -0
  172. package/dist/slug/SlugField.module.js.map +1 -0
  173. package/dist/slug/index.d.ts +1 -1
  174. package/dist/slug/index.d.ts.map +1 -1
  175. package/dist/slug/index.js +1 -1
  176. package/dist/tags/TagsField.d.ts +17 -0
  177. package/dist/tags/TagsField.d.ts.map +1 -0
  178. package/dist/tags/TagsField.js +120 -0
  179. package/dist/tags/TagsField.js.map +1 -0
  180. package/dist/tags/index.d.ts +2 -0
  181. package/dist/tags/index.d.ts.map +1 -0
  182. package/dist/tags/index.js +1 -0
  183. package/dist/tel/TelField.d.ts +11 -0
  184. package/dist/tel/TelField.d.ts.map +1 -0
  185. package/dist/tel/TelField.js +87 -0
  186. package/dist/tel/TelField.js.map +1 -0
  187. package/dist/tel/index.d.ts +2 -0
  188. package/dist/tel/index.d.ts.map +1 -0
  189. package/dist/tel/index.js +1 -0
  190. package/dist/text/TextField.d.ts +12 -4
  191. package/dist/text/TextField.d.ts.map +1 -1
  192. package/dist/text/TextField.js +104 -60
  193. package/dist/text/TextField.js.map +1 -1
  194. package/dist/text/index.d.ts +1 -1
  195. package/dist/textarea/TextAreaField.d.ts +1 -1
  196. package/dist/textarea/TextAreaField.js.map +1 -1
  197. package/dist/textarea/index.d.ts +1 -1
  198. package/dist/time/TimeField.d.ts +1 -1
  199. package/dist/time/TimeField.js +64 -10
  200. package/dist/time/TimeField.js.map +1 -1
  201. package/dist/time/index.d.ts +1 -1
  202. package/dist/upload/FilePicker.css +24 -0
  203. package/dist/upload/FilePicker.d.ts +14 -0
  204. package/dist/upload/FilePicker.d.ts.map +1 -0
  205. package/dist/upload/FilePicker.js +130 -0
  206. package/dist/upload/FilePicker.js.map +1 -0
  207. package/dist/upload/FilePicker.module.js +12 -0
  208. package/dist/upload/FilePicker.module.js.map +1 -0
  209. package/dist/upload/UploadList.css +93 -0
  210. package/dist/upload/UploadList.d.ts +18 -0
  211. package/dist/upload/UploadList.d.ts.map +1 -0
  212. package/dist/upload/UploadList.js +144 -0
  213. package/dist/upload/UploadList.js.map +1 -0
  214. package/dist/upload/UploadList.module.js +32 -0
  215. package/dist/upload/UploadList.module.js.map +1 -0
  216. package/dist/upload/files.d.ts +5 -0
  217. package/dist/upload/files.d.ts.map +1 -0
  218. package/dist/upload/files.js +26 -0
  219. package/dist/upload/files.js.map +1 -0
  220. package/dist/upload/types.d.ts +58 -0
  221. package/dist/upload/types.d.ts.map +1 -0
  222. package/dist/upload/useRejectionMessage.d.ts +4 -0
  223. package/dist/upload/useRejectionMessage.d.ts.map +1 -0
  224. package/dist/upload/useRejectionMessage.js +25 -0
  225. package/dist/upload/useRejectionMessage.js.map +1 -0
  226. package/dist/upload/useUploads.d.ts +30 -0
  227. package/dist/upload/useUploads.d.ts.map +1 -0
  228. package/dist/upload/useUploads.js +115 -0
  229. package/dist/upload/useUploads.js.map +1 -0
  230. package/dist/uppy/index.d.ts +3 -0
  231. package/dist/uppy/index.d.ts.map +1 -0
  232. package/dist/uppy/index.js +1 -0
  233. package/dist/uppy/uploader.d.ts +44 -0
  234. package/dist/uppy/uploader.d.ts.map +1 -0
  235. package/dist/uppy/uploader.js +139 -0
  236. package/dist/uppy/uploader.js.map +1 -0
  237. package/dist/url/UrlField.css +2 -2
  238. package/dist/url/UrlField.d.ts +2 -2
  239. package/dist/url/UrlField.js +69 -14
  240. package/dist/url/UrlField.js.map +1 -1
  241. package/dist/url/UrlField.module.js +1 -1
  242. package/dist/url/index.d.ts +1 -1
  243. package/package.json +69 -7
@@ -19,24 +19,55 @@ function withScheme(url, scheme = "https://") {
19
19
  * A URL, with the URL keyboard on phones and a link to open it. A URL typed without a scheme
20
20
  * gets `https://` on blur, as v4 did.
21
21
  */
22
- function UrlField({ value, onChange, onBlur, defaultScheme = "https://", ...props }) {
22
+ function UrlField(t0) {
23
+ const $ = c(23);
24
+ let onBlur;
25
+ let onChange;
26
+ let props;
27
+ let t1;
28
+ let value;
29
+ if ($[0] !== t0) {
30
+ ({value, onChange, onBlur, defaultScheme: t1, ...props} = t0);
31
+ $[0] = t0;
32
+ $[1] = onBlur;
33
+ $[2] = onChange;
34
+ $[3] = props;
35
+ $[4] = t1;
36
+ $[5] = value;
37
+ } else {
38
+ onBlur = $[1];
39
+ onChange = $[2];
40
+ props = $[3];
41
+ t1 = $[4];
42
+ value = $[5];
43
+ }
44
+ const defaultScheme = t1 === void 0 ? "https://" : t1;
23
45
  const intl = usePanneauIntl();
24
- const openable = value !== null && value !== void 0 && /^https?:\/\//i.test(value);
25
- return /* @__PURE__ */ jsx(TextField, {
26
- autoComplete: "off",
27
- ...props,
28
- type: "url",
29
- inputMode: "url",
30
- value,
31
- onChange,
32
- onBlur: () => {
46
+ let t2;
47
+ if ($[6] !== value) {
48
+ t2 = value !== null && value !== void 0 && /^https?:\/\//i.test(value);
49
+ $[6] = value;
50
+ $[7] = t2;
51
+ } else t2 = $[7];
52
+ const openable = t2;
53
+ let t3;
54
+ if ($[8] !== defaultScheme || $[9] !== onBlur || $[10] !== onChange || $[11] !== value) {
55
+ t3 = () => {
33
56
  if (value !== null && value !== void 0) {
34
57
  const next = withScheme(value, defaultScheme);
35
58
  if (next !== value) onChange?.(next === "" ? null : next);
36
59
  }
37
60
  onBlur?.();
38
- },
39
- suffix: openable ? /* @__PURE__ */ jsx("a", {
61
+ };
62
+ $[8] = defaultScheme;
63
+ $[9] = onBlur;
64
+ $[10] = onChange;
65
+ $[11] = value;
66
+ $[12] = t3;
67
+ } else t3 = $[12];
68
+ let t4;
69
+ if ($[13] !== intl || $[14] !== openable || $[15] !== value) {
70
+ t4 = openable ? /* @__PURE__ */ jsx("a", {
40
71
  href: value,
41
72
  target: "_blank",
42
73
  rel: "noopener noreferrer",
@@ -46,8 +77,32 @@ function UrlField({ value, onChange, onBlur, defaultScheme = "https://", ...prop
46
77
  icon: ExternalLink,
47
78
  label: intl.formatMessage(messages.openLink)
48
79
  })
49
- }) : void 0
50
- });
80
+ }) : void 0;
81
+ $[13] = intl;
82
+ $[14] = openable;
83
+ $[15] = value;
84
+ $[16] = t4;
85
+ } else t4 = $[16];
86
+ let t5;
87
+ if ($[17] !== onChange || $[18] !== props || $[19] !== t3 || $[20] !== t4 || $[21] !== value) {
88
+ t5 = /* @__PURE__ */ jsx(TextField, {
89
+ autoComplete: "off",
90
+ ...props,
91
+ type: "url",
92
+ inputMode: "url",
93
+ value,
94
+ onChange,
95
+ onBlur: t3,
96
+ suffix: t4
97
+ });
98
+ $[17] = onChange;
99
+ $[18] = props;
100
+ $[19] = t3;
101
+ $[20] = t4;
102
+ $[21] = value;
103
+ $[22] = t5;
104
+ } else t5 = $[22];
105
+ return t5;
51
106
  }
52
107
  /** The `url` type: setting `defaultScheme`. */
53
108
  function UrlFieldEntry(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"UrlField.js","names":["styles","_c"],"sources":["../../src/url/UrlField.tsx"],"sourcesContent":["import { ExternalLink } from 'lucide-react';\n\nimport { Icon, usePanneauIntl } from '@panneau/ui';\n\nimport { getFieldProps, getSetting, isString } from '../shared/entry';\nimport { messages } from '../shared/messages';\nimport type { FieldEntryProps } from '../shared/types';\nimport { TextField, type TextFieldProps } from '../text/TextField';\nimport styles from './UrlField.module.css';\n\nexport interface UrlFieldProps extends Omit<TextFieldProps, 'type' | 'inputMode' | 'suffix'> {\n /** Scheme added on blur to a URL without one (`example.com`). Defaults to `https://`. */\n defaultScheme?: string;\n}\n\nconst SCHEME = /^[a-z][a-z0-9+.-]*:/i;\n\n/** Adds a scheme to a URL that has none, and isn't a path or an anchor. */\nexport function withScheme(url: string, scheme = 'https://'): string {\n const trimmed = url.trim();\n if (trimmed.startsWith('//')) {\n return `${scheme}${trimmed.slice(2)}`;\n }\n if (trimmed === '' || SCHEME.test(trimmed) || /^[/#?]/.test(trimmed)) {\n return trimmed;\n }\n return `${scheme}${trimmed}`;\n}\n\n/**\n * A URL, with the URL keyboard on phones and a link to open it. A URL typed without a scheme\n * gets `https://` on blur, as v4 did.\n */\nexport function UrlField({\n value,\n onChange,\n onBlur,\n defaultScheme = 'https://',\n ...props\n}: UrlFieldProps) {\n const intl = usePanneauIntl();\n const openable = value !== null && value !== undefined && /^https?:\\/\\//i.test(value);\n return (\n <TextField\n autoComplete=\"off\"\n {...props}\n type=\"url\"\n inputMode=\"url\"\n value={value}\n onChange={onChange}\n onBlur={() => {\n if (value !== null && value !== undefined) {\n const next = withScheme(value, defaultScheme);\n if (next !== value) {\n onChange?.(next === '' ? null : next);\n }\n }\n onBlur?.();\n }}\n suffix={\n openable ? (\n <a\n href={value}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={styles.open}\n title={intl.formatMessage(messages.openLink)}\n >\n <Icon icon={ExternalLink} label={intl.formatMessage(messages.openLink)} />\n </a>\n ) : undefined\n }\n />\n );\n}\n\n/** The `url` type: setting `defaultScheme`. */\nexport function UrlFieldEntry(props: FieldEntryProps) {\n const defaultScheme = getSetting(props.field, 'defaultScheme', isString);\n return (\n <UrlField\n {...getFieldProps(props)}\n value={isString(props.value) ? props.value : null}\n onChange={props.onChange}\n {...(defaultScheme !== undefined ? { defaultScheme } : {})}\n />\n );\n}\n"],"mappings":";;;;;;;;;AAeA,IAAM,SAAS;;AAGf,SAAgB,WAAW,KAAa,SAAS,YAAoB;CACjE,MAAM,UAAU,IAAI,KAAK;CACzB,IAAI,QAAQ,WAAW,IAAI,GACvB,OAAO,GAAG,SAAS,QAAQ,MAAM,CAAC;CAEtC,IAAI,YAAY,MAAM,OAAO,KAAK,OAAO,KAAK,SAAS,KAAK,OAAO,GAC/D,OAAO;CAEX,OAAO,GAAG,SAAS;AACvB;;;;;AAMA,SAAgB,SAAS,EACrB,OACA,UACA,QACA,gBAAgB,YAChB,GAAG,SACW;CACd,MAAM,OAAO,eAAe;CAC5B,MAAM,WAAW,UAAU,QAAQ,UAAU,KAAA,KAAa,gBAAgB,KAAK,KAAK;CACpF,OACI,oBAAC,WAAD;EACI,cAAa;EACb,GAAI;EACJ,MAAK;EACL,WAAU;EACH;EACG;EACV,cAAc;GACV,IAAI,UAAU,QAAQ,UAAU,KAAA,GAAW;IACvC,MAAM,OAAO,WAAW,OAAO,aAAa;IAC5C,IAAI,SAAS,OACT,WAAW,SAAS,KAAK,OAAO,IAAI;GAE5C;GACA,SAAS;EACb;EACA,QACI,WACI,oBAAC,KAAD;GACI,MAAM;GACN,QAAO;GACP,KAAI;GACJ,WAAWA,wBAAO;GAClB,OAAO,KAAK,cAAc,SAAS,QAAQ;GAE3C,UAAA,oBAAC,MAAD;IAAM,MAAM;IAAc,OAAO,KAAK,cAAc,SAAS,QAAQ;GAAE,CAAA;EACxE,CAAA,IACH,KAAA;CACP,CAAA;AAGb;;AAGA,SAAO,cAAA,OAAA;CAAA,MAAA,IAAAC,EAAA,EAAA;CAAA,IAAA;CAAA,IAAA,EAAA,OAAA,MAAA,OAAA;EACmB,KAAA,WAAW,MAAK,OAAQ,iBAAiB,QAAQ;EAAC,EAAA,KAAA,MAAA;EAAA,EAAA,KAAA;CAAA,OAAA,KAAA,EAAA;CAAxE,MAAA,gBAAsB;CAAmD,IAAA;CAAA,IAAA,EAAA,OAAA,OAAA;EAG7D,KAAA,cAAc,KAAK;EAAC,EAAA,KAAA;EAAA,EAAA,KAAA;CAAA,OAAA,KAAA,EAAA;CACjB,MAAA,KAAA,SAAS,MAAK,KAA2B,IAAjB,MAAK,QAA7B;CAA0C,IAAA;CAAA,IAAA,EAAA,OAAA,eAAA;EAE5C,KAAA,kBAAkB,KAAA,IAAlB,EAAA,cAAmD,IAAnD,CAAmD;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;EAJ7D,KAAA,oBAAC,UAAD;GAAS,GACD;GACG,OAAA;GACG,UAAA,MAAK;GAAS,GACnB;EAAoD,CAAA;EAC3D,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":"UrlField.js","names":["ExternalLink","Icon","usePanneauIntl","getFieldProps","getSetting","isString","messages","FieldEntryProps","TextField","TextFieldProps","styles","UrlFieldProps","Omit","defaultScheme","SCHEME","withScheme","url","scheme","trimmed","trim","startsWith","slice","test","UrlField","t0","$","_c","onBlur","onChange","props","t1","value","undefined","intl","t2","openable","t3","next","t4","open","formatMessage","openLink","t5","UrlFieldEntry","field","_c","styles"],"sources":["../../src/url/UrlField.tsx"],"sourcesContent":["import { ExternalLink } from 'lucide-react';\n\nimport { Icon, usePanneauIntl } from '@panneau/ui';\n\nimport { getFieldProps, getSetting, isString } from '../shared/entry';\nimport { messages } from '../shared/messages';\nimport type { FieldEntryProps } from '../shared/types';\nimport { TextField, type TextFieldProps } from '../text/TextField';\nimport styles from './UrlField.module.css';\n\nexport interface UrlFieldProps extends Omit<TextFieldProps, 'type' | 'inputMode' | 'suffix'> {\n /** Scheme added on blur to a URL without one (`example.com`). Defaults to `https://`. */\n defaultScheme?: string;\n}\n\nconst SCHEME = /^[a-z][a-z0-9+.-]*:/i;\n\n/** Adds a scheme to a URL that has none, and isn't a path or an anchor. */\nexport function withScheme(url: string, scheme = 'https://'): string {\n const trimmed = url.trim();\n if (trimmed.startsWith('//')) {\n return `${scheme}${trimmed.slice(2)}`;\n }\n if (trimmed === '' || SCHEME.test(trimmed) || /^[/#?]/.test(trimmed)) {\n return trimmed;\n }\n return `${scheme}${trimmed}`;\n}\n\n/**\n * A URL, with the URL keyboard on phones and a link to open it. A URL typed without a scheme\n * gets `https://` on blur, as v4 did.\n */\nexport function UrlField({\n value,\n onChange,\n onBlur,\n defaultScheme = 'https://',\n ...props\n}: UrlFieldProps) {\n const intl = usePanneauIntl();\n const openable = value !== null && value !== undefined && /^https?:\\/\\//i.test(value);\n return (\n <TextField\n autoComplete=\"off\"\n {...props}\n type=\"url\"\n inputMode=\"url\"\n value={value}\n onChange={onChange}\n onBlur={() => {\n if (value !== null && value !== undefined) {\n const next = withScheme(value, defaultScheme);\n if (next !== value) {\n onChange?.(next === '' ? null : next);\n }\n }\n onBlur?.();\n }}\n suffix={\n openable ? (\n <a\n href={value}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={styles.open}\n title={intl.formatMessage(messages.openLink)}\n >\n <Icon icon={ExternalLink} label={intl.formatMessage(messages.openLink)} />\n </a>\n ) : undefined\n }\n />\n );\n}\n\n/** The `url` type: setting `defaultScheme`. */\nexport function UrlFieldEntry(props: FieldEntryProps) {\n const defaultScheme = getSetting(props.field, 'defaultScheme', isString);\n return (\n <UrlField\n {...getFieldProps(props)}\n value={isString(props.value) ? props.value : null}\n onChange={props.onChange}\n {...(defaultScheme !== undefined ? { defaultScheme } : {})}\n />\n );\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import "./UrlField.css";
2
2
  //#region src/url/UrlField.module.css
3
- var open = "panneau-open-bOtJNo";
3
+ var open = "panneau-url-field-open";
4
4
  var UrlField_module_default = { open };
5
5
  //#endregion
6
6
  export { UrlField_module_default as default, open };
@@ -1,2 +1,2 @@
1
- export { UrlField, UrlFieldEntry, type UrlFieldProps, withScheme } from './UrlField';
1
+ export { UrlField, UrlFieldEntry, type UrlFieldProps, withScheme } from './UrlField.js';
2
2
  //# sourceMappingURL=index.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@panneau/fields",
3
- "version": "5.0.0-alpha.1",
4
- "description": "Controlled field components of Panneau for the protocol's built-in field types, one subpath per field.",
3
+ "version": "5.0.0-alpha.10",
4
+ "description": "Controlled field components of Panneau for the protocol's built-in field types, one subpath per field, and uploads to storage (Uppy 6 in its own entry point).",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -78,6 +78,41 @@
78
78
  "types": "./dist/slug/index.d.ts",
79
79
  "default": "./dist/slug/index.js"
80
80
  },
81
+ "./tel": {
82
+ "@panneau/source": "./src/tel/index.ts",
83
+ "types": "./dist/tel/index.d.ts",
84
+ "default": "./dist/tel/index.js"
85
+ },
86
+ "./range": {
87
+ "@panneau/source": "./src/range/index.ts",
88
+ "types": "./dist/range/index.d.ts",
89
+ "default": "./dist/range/index.js"
90
+ },
91
+ "./duration": {
92
+ "@panneau/source": "./src/duration/index.ts",
93
+ "types": "./dist/duration/index.d.ts",
94
+ "default": "./dist/duration/index.js"
95
+ },
96
+ "./json": {
97
+ "@panneau/source": "./src/json/index.ts",
98
+ "types": "./dist/json/index.d.ts",
99
+ "default": "./dist/json/index.js"
100
+ },
101
+ "./tags": {
102
+ "@panneau/source": "./src/tags/index.ts",
103
+ "types": "./dist/tags/index.d.ts",
104
+ "default": "./dist/tags/index.js"
105
+ },
106
+ "./embed": {
107
+ "@panneau/source": "./src/embed/index.ts",
108
+ "types": "./dist/embed/index.d.ts",
109
+ "default": "./dist/embed/index.js"
110
+ },
111
+ "./location": {
112
+ "@panneau/source": "./src/location/index.ts",
113
+ "types": "./dist/location/index.d.ts",
114
+ "default": "./dist/location/index.js"
115
+ },
81
116
  "./localized": {
82
117
  "@panneau/source": "./src/localized/index.ts",
83
118
  "types": "./dist/localized/index.d.ts",
@@ -98,33 +133,60 @@
98
133
  "types": "./dist/relation/index.d.ts",
99
134
  "default": "./dist/relation/index.js"
100
135
  },
136
+ "./file": {
137
+ "@panneau/source": "./src/file/index.ts",
138
+ "types": "./dist/file/index.d.ts",
139
+ "default": "./dist/file/index.js"
140
+ },
101
141
  "./locales": {
102
142
  "@panneau/source": "./src/locales/index.ts",
103
143
  "types": "./dist/locales/index.d.ts",
104
144
  "default": "./dist/locales/index.js"
105
145
  },
146
+ "./uppy": {
147
+ "@panneau/source": "./src/uppy/index.ts",
148
+ "types": "./dist/uppy/index.d.ts",
149
+ "default": "./dist/uppy/index.js"
150
+ },
106
151
  "./package.json": "./package.json"
107
152
  },
108
153
  "files": [
109
154
  "dist"
110
155
  ],
111
156
  "scripts": {
112
- "build": "vite build && tsc -p tsconfig.build.json",
157
+ "build": "vite build && node ../../scripts/declarations.js",
113
158
  "typecheck": "tsc --noEmit",
114
- "api": "tsc -p tsconfig.build.json && node ../../scripts/api-report.js"
159
+ "api": "node ../../scripts/declarations.js && node ../../scripts/api-report.js"
115
160
  },
116
161
  "publishConfig": {
117
162
  "access": "public"
118
163
  },
119
164
  "peerDependencies": {
165
+ "@uppy/aws-s3": "^6.3.0",
166
+ "@uppy/core": "^6.3.0",
120
167
  "react": "^19.2.0",
168
+ "react-aria-components": "^1.22.0",
121
169
  "react-intl": "^12.0.0"
122
170
  },
171
+ "peerDependenciesMeta": {
172
+ "@uppy/aws-s3": {
173
+ "optional": true
174
+ },
175
+ "@uppy/core": {
176
+ "optional": true
177
+ }
178
+ },
123
179
  "dependencies": {
124
180
  "@internationalized/date": "^3.12.4",
125
- "@panneau/intl": "5.0.0-alpha.1",
126
- "@panneau/protocol": "5.0.0-alpha.1",
127
- "@panneau/ui": "5.0.0-alpha.1",
181
+ "@panneau/intl": "5.0.0-alpha.10",
182
+ "@panneau/protocol": "5.0.0-alpha.10",
183
+ "@panneau/ui": "5.0.0-alpha.10",
184
+ "leaflet": "^1.9.4",
128
185
  "lucide-react": "^1.57.0"
186
+ },
187
+ "devDependencies": {
188
+ "@types/leaflet": "^1.9.20",
189
+ "@uppy/aws-s3": "^6.3.0",
190
+ "@uppy/core": "^6.3.0"
129
191
  }
130
192
  }