@panneau/fields 5.0.0-alpha.6 → 5.0.0-alpha.8
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.
- package/dist/boolean/BooleanField.d.ts +1 -1
- package/dist/boolean/BooleanField.js +78 -17
- package/dist/boolean/BooleanField.js.map +1 -1
- package/dist/boolean/index.d.ts +1 -1
- package/dist/color/ColorField.d.ts +2 -2
- package/dist/color/ColorField.js.map +1 -1
- package/dist/color/index.d.ts +1 -1
- package/dist/date/DateField.d.ts +1 -1
- package/dist/date/DateField.js.map +1 -1
- package/dist/date/index.d.ts +1 -1
- package/dist/datetime/DateTimeField.d.ts +1 -1
- package/dist/datetime/DateTimeField.js +107 -20
- package/dist/datetime/DateTimeField.js.map +1 -1
- package/dist/datetime/index.d.ts +1 -1
- package/dist/duration/DurationField.d.ts +1 -1
- package/dist/duration/DurationField.js +126 -41
- package/dist/duration/DurationField.js.map +1 -1
- package/dist/duration/index.d.ts +1 -1
- package/dist/email/EmailField.d.ts +2 -2
- package/dist/email/EmailField.js.map +1 -1
- package/dist/email/index.d.ts +1 -1
- package/dist/embed/EmbedField.d.ts +2 -2
- package/dist/embed/EmbedField.js +185 -69
- package/dist/embed/EmbedField.js.map +1 -1
- package/dist/embed/index.d.ts +2 -2
- package/dist/file/FileField.d.ts +2 -2
- package/dist/file/FileField.d.ts.map +1 -1
- package/dist/file/FileField.js +167 -77
- package/dist/file/FileField.js.map +1 -1
- package/dist/file/index.d.ts +2 -2
- package/dist/group/GroupField.d.ts +1 -1
- package/dist/group/GroupField.js.map +1 -1
- package/dist/group/index.d.ts +1 -1
- package/dist/index.d.ts +18 -18
- package/dist/json/JsonField.d.ts +1 -1
- package/dist/json/JsonField.js +104 -22
- package/dist/json/JsonField.js.map +1 -1
- package/dist/json/index.d.ts +1 -1
- package/dist/locales/index.js.map +1 -1
- package/dist/localized/LocalizedField.d.ts +1 -1
- package/dist/localized/LocalizedField.js.map +1 -1
- package/dist/localized/index.d.ts +1 -1
- package/dist/location/LocationField.d.ts +3 -3
- package/dist/location/LocationField.d.ts.map +1 -1
- package/dist/location/LocationField.js +351 -138
- package/dist/location/LocationField.js.map +1 -1
- package/dist/location/LocationMap.d.ts +1 -1
- package/dist/location/LocationMap.d.ts.map +1 -1
- package/dist/location/LocationMap.js +155 -65
- package/dist/location/LocationMap.js.map +1 -1
- package/dist/location/index.d.ts +4 -4
- package/dist/location/leafletCss.js.map +1 -1
- package/dist/location/nominatim.d.ts +1 -1
- package/dist/location/nominatim.js.map +1 -1
- package/dist/missing/MissingField.d.ts +4 -3
- package/dist/missing/MissingField.d.ts.map +1 -1
- package/dist/missing/MissingField.js +3 -2
- package/dist/missing/MissingField.js.map +1 -1
- package/dist/number/NumberField.d.ts +1 -1
- package/dist/number/NumberField.js.map +1 -1
- package/dist/number/index.d.ts +1 -1
- package/dist/range/RangeField.d.ts +1 -1
- package/dist/range/RangeField.js +82 -11
- package/dist/range/RangeField.js.map +1 -1
- package/dist/range/index.d.ts +1 -1
- package/dist/relation/RelationField.d.ts +2 -2
- package/dist/relation/RelationField.js +485 -145
- package/dist/relation/RelationField.js.map +1 -1
- package/dist/relation/index.d.ts +2 -2
- package/dist/repeater/RepeaterField.d.ts +1 -1
- package/dist/repeater/RepeaterField.js +118 -34
- package/dist/repeater/RepeaterField.js.map +1 -1
- package/dist/repeater/index.d.ts +1 -1
- package/dist/select/SelectField.d.ts +1 -1
- package/dist/select/SelectField.js.map +1 -1
- package/dist/select/index.d.ts +1 -1
- package/dist/shared/DefinitionField.d.ts +1 -1
- package/dist/shared/DefinitionField.js.map +1 -1
- package/dist/shared/builtIn.d.ts +1 -1
- package/dist/shared/builtIn.js.map +1 -1
- package/dist/shared/check.js.map +1 -1
- package/dist/shared/context.d.ts +6 -6
- package/dist/shared/context.js.map +1 -1
- package/dist/shared/cx.js.map +1 -1
- package/dist/shared/dates.js.map +1 -1
- package/dist/shared/embed.js.map +1 -1
- package/dist/shared/entry.d.ts +1 -1
- package/dist/shared/entry.js.map +1 -1
- package/dist/shared/relation.js.map +1 -1
- package/dist/slug/SlugField.d.ts +2 -2
- package/dist/slug/SlugField.d.ts.map +1 -1
- package/dist/slug/SlugField.js +184 -36
- package/dist/slug/SlugField.js.map +1 -1
- package/dist/slug/index.d.ts +1 -1
- package/dist/tags/TagsField.d.ts +1 -1
- package/dist/tags/TagsField.js.map +1 -1
- package/dist/tags/index.d.ts +1 -1
- package/dist/tel/TelField.d.ts +2 -2
- package/dist/tel/TelField.js.map +1 -1
- package/dist/tel/index.d.ts +1 -1
- package/dist/text/TextField.d.ts +1 -1
- package/dist/text/TextField.js.map +1 -1
- package/dist/text/index.d.ts +1 -1
- package/dist/textarea/TextAreaField.d.ts +1 -1
- package/dist/textarea/TextAreaField.js.map +1 -1
- package/dist/textarea/index.d.ts +1 -1
- package/dist/time/TimeField.d.ts +1 -1
- package/dist/time/TimeField.js +64 -10
- package/dist/time/TimeField.js.map +1 -1
- package/dist/time/index.d.ts +1 -1
- package/dist/upload/FilePicker.js +107 -24
- package/dist/upload/FilePicker.js.map +1 -1
- package/dist/upload/UploadList.d.ts +1 -1
- package/dist/upload/UploadList.js.map +1 -1
- package/dist/upload/files.js.map +1 -1
- package/dist/upload/useRejectionMessage.d.ts +1 -1
- package/dist/upload/useRejectionMessage.js.map +1 -1
- package/dist/upload/useUploads.d.ts +1 -1
- package/dist/upload/useUploads.js.map +1 -1
- package/dist/uppy/index.d.ts +2 -2
- package/dist/uppy/uploader.d.ts +1 -1
- package/dist/uppy/uploader.js.map +1 -1
- package/dist/url/UrlField.d.ts +2 -2
- package/dist/url/UrlField.js +69 -14
- package/dist/url/UrlField.js.map +1 -1
- package/dist/url/index.d.ts +1 -1
- package/package.json +6 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FieldEntryProps, FieldProps } from '../shared/types';
|
|
1
|
+
import type { FieldEntryProps, FieldProps } from '../shared/types.js';
|
|
2
2
|
export interface BooleanFieldProps extends Omit<FieldProps<boolean>, 'labelClassName'> {
|
|
3
3
|
/** `checkbox` (default) for a choice saved with the form, `switch` for an on and off setting. */
|
|
4
4
|
widget?: 'checkbox' | 'switch';
|
|
@@ -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(
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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,
|
|
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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"}
|
package/dist/boolean/index.d.ts
CHANGED
|
@@ -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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { FieldEntryProps } from '../shared/types';
|
|
2
|
-
import { type TextFieldProps } from '../text/TextField';
|
|
1
|
+
import type { FieldEntryProps } from '../shared/types.js';
|
|
2
|
+
import { type TextFieldProps } from '../text/TextField.js';
|
|
3
3
|
export type ColorFieldProps = Omit<TextFieldProps, 'type' | 'prefix' | 'maxLength'>;
|
|
4
4
|
/**
|
|
5
5
|
* Normalizes a hexadecimal color: `#` prefix, lowercase, and 3 digits expanded to 6. Returns the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorField.js","names":["value","
|
|
1
|
+
{"version":3,"file":"ColorField.js","names":["usePanneauIntl","cx","getFieldProps","isString","messages","FieldEntryProps","TextField","TextFieldProps","styles","ColorFieldProps","Omit","normalizeColor","value","trimmed","trim","toLowerCase","digits","replace","test","map","digit","join","ColorField","t0","$","_c","disabled","inputClassName","onBlur","onChange","props","readOnly","intl","t1","undefined","valid","t2","input","t3","next","t4","t5","backgroundColor","t6","t7","event","target","t8","t9","formatMessage","pickColor","t10","picker","t11","swatch","t12","ColorFieldEntry","_c","styles"],"sources":["../../src/color/ColorField.tsx"],"sourcesContent":["import { usePanneauIntl } from '@panneau/ui';\n\nimport { cx } from '../shared/cx';\nimport { getFieldProps, 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 './ColorField.module.css';\n\nexport type ColorFieldProps = Omit<TextFieldProps, 'type' | 'prefix' | 'maxLength'>;\n\n/**\n * Normalizes a hexadecimal color: `#` prefix, lowercase, and 3 digits expanded to 6. Returns the\n * text as is when it isn't a hexadecimal color.\n */\nexport function normalizeColor(value: string): string {\n const trimmed = value.trim().toLowerCase();\n const digits = trimmed.replace(/^#/, '');\n if (/^[0-9a-f]{3}$/.test(digits)) {\n return `#${[...digits].map((digit) => digit + digit).join('')}`;\n }\n if (/^[0-9a-f]{6}$/.test(digits) || /^[0-9a-f]{8}$/.test(digits)) {\n return `#${digits}`;\n }\n return trimmed;\n}\n\n/**\n * A color as a hexadecimal value (`#1d4ed8`): typed, or picked with the browser's color picker.\n * The value is normalized on blur.\n */\nexport function ColorField({\n value,\n onChange,\n onBlur,\n disabled,\n readOnly,\n inputClassName,\n ...props\n}: ColorFieldProps) {\n const intl = usePanneauIntl();\n const valid = value !== null && value !== undefined && /^#[0-9a-f]{6}$/i.test(value);\n return (\n <TextField\n autoComplete=\"off\"\n {...props}\n value={value}\n onChange={onChange}\n disabled={disabled}\n readOnly={readOnly}\n inputClassName={cx(styles.input, inputClassName)}\n onBlur={() => {\n if (value !== null && value !== undefined) {\n const next = normalizeColor(value);\n if (next !== value) {\n onChange?.(next === '' ? null : next);\n }\n }\n onBlur?.();\n }}\n prefix={\n <span\n className={styles.swatch}\n style={{ backgroundColor: valid ? value : 'transparent' }}\n >\n <input\n type=\"color\"\n className={styles.picker}\n value={valid ? value.toLowerCase() : '#000000'}\n onChange={(event) => onChange?.(event.target.value)}\n disabled={disabled === true || readOnly === true}\n aria-label={intl.formatMessage(messages.pickColor)}\n />\n </span>\n }\n />\n );\n}\n\n/** The `color` type. */\nexport function ColorFieldEntry(props: FieldEntryProps) {\n return (\n <ColorField\n {...getFieldProps(props)}\n value={isString(props.value) ? props.value : null}\n onChange={props.onChange}\n />\n );\n}\n"],"mappings":"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"}
|
package/dist/color/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ColorField, ColorFieldEntry, type ColorFieldProps, normalizeColor } from './ColorField';
|
|
1
|
+
export { ColorField, ColorFieldEntry, type ColorFieldProps, normalizeColor } from './ColorField.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/date/DateField.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateField.js","names":["disabled","readOnly","required","_c"],"sources":["../../src/date/DateField.tsx"],"sourcesContent":["import { DatePicker } from '@panneau/ui';\n\nimport { toCalendarDate } from '../shared/dates';\nimport { getFieldProps, isString } from '../shared/entry';\nimport type { FieldEntryProps, FieldProps } from '../shared/types';\n\nexport interface DateFieldProps extends FieldProps<string> {\n /** Earliest date (`2026-01-01`). */\n min?: string;\n /** Latest date. */\n max?: string;\n controlClassName?: string;\n}\n\n/**\n * A date as an ISO string (`2026-10-15`), typed in the order of the locale or picked in a\n * calendar.\n */\nexport function DateField({\n value,\n onChange,\n min,\n max,\n disabled,\n readOnly,\n required,\n ...props\n}: DateFieldProps) {\n const minValue = toCalendarDate(min);\n const maxValue = toCalendarDate(max);\n return (\n <DatePicker\n {...props}\n granularity=\"day\"\n value={toCalendarDate(value)}\n onChange={(date) => onChange?.(date === null ? null : date.toString().slice(0, 10))}\n {...(minValue !== null ? { minValue } : {})}\n {...(maxValue !== null ? { maxValue } : {})}\n isDisabled={disabled}\n isReadOnly={readOnly}\n isRequired={required}\n />\n );\n}\n\n/** The `date` type. */\nexport function DateFieldEntry(props: FieldEntryProps) {\n return (\n <DateField\n {...getFieldProps(props)}\n value={isString(props.value) ? props.value : null}\n onChange={props.onChange}\n />\n );\n}\n"],"mappings":";;;;;;;;;;AAkBA,
|
|
1
|
+
{"version":3,"file":"DateField.js","names":["DatePicker","toCalendarDate","getFieldProps","isString","FieldEntryProps","FieldProps","DateFieldProps","min","max","controlClassName","DateField","t0","$","_c","disabled","onChange","props","readOnly","required","value","t1","minValue","t2","maxValue","t3","t4","date","toString","slice","t5","t6","t7","DateFieldEntry","_c"],"sources":["../../src/date/DateField.tsx"],"sourcesContent":["import { DatePicker } from '@panneau/ui';\n\nimport { toCalendarDate } from '../shared/dates';\nimport { getFieldProps, isString } from '../shared/entry';\nimport type { FieldEntryProps, FieldProps } from '../shared/types';\n\nexport interface DateFieldProps extends FieldProps<string> {\n /** Earliest date (`2026-01-01`). */\n min?: string;\n /** Latest date. */\n max?: string;\n controlClassName?: string;\n}\n\n/**\n * A date as an ISO string (`2026-10-15`), typed in the order of the locale or picked in a\n * calendar.\n */\nexport function DateField({\n value,\n onChange,\n min,\n max,\n disabled,\n readOnly,\n required,\n ...props\n}: DateFieldProps) {\n const minValue = toCalendarDate(min);\n const maxValue = toCalendarDate(max);\n return (\n <DatePicker\n {...props}\n granularity=\"day\"\n value={toCalendarDate(value)}\n onChange={(date) => onChange?.(date === null ? null : date.toString().slice(0, 10))}\n {...(minValue !== null ? { minValue } : {})}\n {...(maxValue !== null ? { maxValue } : {})}\n isDisabled={disabled}\n isReadOnly={readOnly}\n isRequired={required}\n />\n );\n}\n\n/** The `date` type. */\nexport function DateFieldEntry(props: FieldEntryProps) {\n return (\n <DateField\n {...getFieldProps(props)}\n value={isString(props.value) ? props.value : null}\n onChange={props.onChange}\n />\n );\n}\n"],"mappings":"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"}
|
package/dist/date/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { DateField, DateFieldEntry, type DateFieldProps } from './DateField';
|
|
1
|
+
export { DateField, DateFieldEntry, type DateFieldProps } from './DateField.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FieldEntryProps, FieldProps } from '../shared/types';
|
|
1
|
+
import type { FieldEntryProps, FieldProps } from '../shared/types.js';
|
|
2
2
|
export interface DateTimeFieldProps extends FieldProps<string> {
|
|
3
3
|
/**
|
|
4
4
|
* Time zone the date and time are shown and typed in, for values with an offset. Defaults to
|
|
@@ -10,28 +10,115 @@ import { getLocalTimeZone, now } from "@internationalized/date";
|
|
|
10
10
|
* the time zone of the browser and written back in UTC. Values without one
|
|
11
11
|
* (`2026-10-15T09:30:00`) are kept without one.
|
|
12
12
|
*/
|
|
13
|
-
function DateTimeField(
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
13
|
+
function DateTimeField(t0) {
|
|
14
|
+
const $ = c(34);
|
|
15
|
+
let disabled;
|
|
16
|
+
let onChange;
|
|
17
|
+
let props;
|
|
18
|
+
let readOnly;
|
|
19
|
+
let required;
|
|
20
|
+
let t1;
|
|
21
|
+
let t2;
|
|
22
|
+
let value;
|
|
23
|
+
if ($[0] !== t0) {
|
|
24
|
+
({value, onChange, timeZone: t1, withSeconds: t2, disabled, readOnly, required, ...props} = t0);
|
|
25
|
+
$[0] = t0;
|
|
26
|
+
$[1] = disabled;
|
|
27
|
+
$[2] = onChange;
|
|
28
|
+
$[3] = props;
|
|
29
|
+
$[4] = readOnly;
|
|
30
|
+
$[5] = required;
|
|
31
|
+
$[6] = t1;
|
|
32
|
+
$[7] = t2;
|
|
33
|
+
$[8] = value;
|
|
34
|
+
} else {
|
|
35
|
+
disabled = $[1];
|
|
36
|
+
onChange = $[2];
|
|
37
|
+
props = $[3];
|
|
38
|
+
readOnly = $[4];
|
|
39
|
+
required = $[5];
|
|
40
|
+
t1 = $[6];
|
|
41
|
+
t2 = $[7];
|
|
42
|
+
value = $[8];
|
|
43
|
+
}
|
|
44
|
+
let T0;
|
|
45
|
+
let t3;
|
|
46
|
+
let t4;
|
|
47
|
+
let t5;
|
|
48
|
+
let t6;
|
|
49
|
+
let t7;
|
|
50
|
+
let t8;
|
|
51
|
+
if ($[9] !== onChange || $[10] !== props || $[11] !== t1 || $[12] !== t2 || $[13] !== value) {
|
|
52
|
+
const timeZone = t1 === void 0 ? getLocalTimeZone() : t1;
|
|
53
|
+
const withSeconds = t2 === void 0 ? false : t2;
|
|
54
|
+
const current = toDateTime(value, timeZone);
|
|
55
|
+
T0 = DatePicker;
|
|
56
|
+
t3 = props;
|
|
57
|
+
t4 = withSeconds ? "second" : "minute";
|
|
58
|
+
t5 = true;
|
|
59
|
+
t6 = current;
|
|
60
|
+
if ($[21] !== onChange) {
|
|
61
|
+
t7 = (next) => {
|
|
62
|
+
if (next === null) {
|
|
63
|
+
onChange?.(null);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if ("hour" in next) onChange?.(fromDateTime(next));
|
|
67
|
+
};
|
|
68
|
+
$[21] = onChange;
|
|
69
|
+
$[22] = t7;
|
|
70
|
+
} else t7 = $[22];
|
|
71
|
+
t8 = current ?? now(timeZone).set({
|
|
28
72
|
second: 0,
|
|
29
73
|
millisecond: 0
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
74
|
+
});
|
|
75
|
+
$[9] = onChange;
|
|
76
|
+
$[10] = props;
|
|
77
|
+
$[11] = t1;
|
|
78
|
+
$[12] = t2;
|
|
79
|
+
$[13] = value;
|
|
80
|
+
$[14] = T0;
|
|
81
|
+
$[15] = t3;
|
|
82
|
+
$[16] = t4;
|
|
83
|
+
$[17] = t5;
|
|
84
|
+
$[18] = t6;
|
|
85
|
+
$[19] = t7;
|
|
86
|
+
$[20] = t8;
|
|
87
|
+
} else {
|
|
88
|
+
T0 = $[14];
|
|
89
|
+
t3 = $[15];
|
|
90
|
+
t4 = $[16];
|
|
91
|
+
t5 = $[17];
|
|
92
|
+
t6 = $[18];
|
|
93
|
+
t7 = $[19];
|
|
94
|
+
t8 = $[20];
|
|
95
|
+
}
|
|
96
|
+
let t9;
|
|
97
|
+
if ($[23] !== T0 || $[24] !== disabled || $[25] !== readOnly || $[26] !== required || $[27] !== t3 || $[28] !== t4 || $[29] !== t5 || $[30] !== t6 || $[31] !== t7 || $[32] !== t8) {
|
|
98
|
+
t9 = /* @__PURE__ */ jsx(T0, {
|
|
99
|
+
...t3,
|
|
100
|
+
granularity: t4,
|
|
101
|
+
hideTimeZone: t5,
|
|
102
|
+
value: t6,
|
|
103
|
+
onChange: t7,
|
|
104
|
+
placeholderValue: t8,
|
|
105
|
+
isDisabled: disabled,
|
|
106
|
+
isReadOnly: readOnly,
|
|
107
|
+
isRequired: required
|
|
108
|
+
});
|
|
109
|
+
$[23] = T0;
|
|
110
|
+
$[24] = disabled;
|
|
111
|
+
$[25] = readOnly;
|
|
112
|
+
$[26] = required;
|
|
113
|
+
$[27] = t3;
|
|
114
|
+
$[28] = t4;
|
|
115
|
+
$[29] = t5;
|
|
116
|
+
$[30] = t6;
|
|
117
|
+
$[31] = t7;
|
|
118
|
+
$[32] = t8;
|
|
119
|
+
$[33] = t9;
|
|
120
|
+
} else t9 = $[33];
|
|
121
|
+
return t9;
|
|
35
122
|
}
|
|
36
123
|
/** The `datetime` type: setting `timeZone`. */
|
|
37
124
|
function DateTimeFieldEntry(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeField.js","names":["_c"],"sources":["../../src/datetime/DateTimeField.tsx"],"sourcesContent":["import { getLocalTimeZone, now } from '@internationalized/date';\n\nimport { DatePicker } from '@panneau/ui';\n\nimport { fromDateTime, toDateTime } from '../shared/dates';\nimport { getFieldProps, getSetting, isString } from '../shared/entry';\nimport type { FieldEntryProps, FieldProps } from '../shared/types';\n\nexport interface DateTimeFieldProps extends FieldProps<string> {\n /**\n * Time zone the date and time are shown and typed in, for values with an offset. Defaults to\n * the browser's.\n */\n timeZone?: string;\n /** Shows seconds. */\n withSeconds?: boolean;\n /** Defaults to the locale's. */\n hourCycle?: 12 | 24;\n controlClassName?: string;\n}\n\n/**\n * A date and a time as an ISO string. Values with an offset (`2026-10-15T13:30:00Z`) are shown in\n * the time zone of the browser and written back in UTC. Values without one\n * (`2026-10-15T09:30:00`) are kept without one.\n */\nexport function DateTimeField({\n value,\n onChange,\n timeZone = getLocalTimeZone(),\n withSeconds = false,\n disabled,\n readOnly,\n required,\n ...props\n}: DateTimeFieldProps) {\n const current = toDateTime(value, timeZone);\n return (\n <DatePicker\n {...props}\n granularity={withSeconds ? 'second' : 'minute'}\n hideTimeZone\n value={current}\n onChange={(next) => {\n if (next === null) {\n onChange?.(null);\n return;\n }\n if ('hour' in next) {\n onChange?.(fromDateTime(next));\n }\n }}\n // Typed from empty, a value is in the field's time zone, and written in UTC.\n placeholderValue={current ?? now(timeZone).set({ second: 0, millisecond: 0 })}\n isDisabled={disabled}\n isReadOnly={readOnly}\n isRequired={required}\n />\n );\n}\n\n/** The `datetime` type: setting `timeZone`. */\nexport function DateTimeFieldEntry(props: FieldEntryProps) {\n const timeZone = getSetting(props.field, 'timeZone', isString);\n return (\n <DateTimeField\n {...getFieldProps(props)}\n value={isString(props.value) ? props.value : null}\n onChange={props.onChange}\n {...(timeZone !== undefined ? { timeZone } : {})}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;AA0BA,
|
|
1
|
+
{"version":3,"file":"DateTimeField.js","names":["getLocalTimeZone","now","DatePicker","fromDateTime","toDateTime","getFieldProps","getSetting","isString","FieldEntryProps","FieldProps","DateTimeFieldProps","timeZone","withSeconds","hourCycle","controlClassName","DateTimeField","t0","$","_c","disabled","onChange","props","readOnly","required","t1","t2","value","T0","t3","t4","t5","t6","t7","t8","undefined","current","next","set","second","millisecond","t9","DateTimeFieldEntry","field","_c"],"sources":["../../src/datetime/DateTimeField.tsx"],"sourcesContent":["import { getLocalTimeZone, now } from '@internationalized/date';\n\nimport { DatePicker } from '@panneau/ui';\n\nimport { fromDateTime, toDateTime } from '../shared/dates';\nimport { getFieldProps, getSetting, isString } from '../shared/entry';\nimport type { FieldEntryProps, FieldProps } from '../shared/types';\n\nexport interface DateTimeFieldProps extends FieldProps<string> {\n /**\n * Time zone the date and time are shown and typed in, for values with an offset. Defaults to\n * the browser's.\n */\n timeZone?: string;\n /** Shows seconds. */\n withSeconds?: boolean;\n /** Defaults to the locale's. */\n hourCycle?: 12 | 24;\n controlClassName?: string;\n}\n\n/**\n * A date and a time as an ISO string. Values with an offset (`2026-10-15T13:30:00Z`) are shown in\n * the time zone of the browser and written back in UTC. Values without one\n * (`2026-10-15T09:30:00`) are kept without one.\n */\nexport function DateTimeField({\n value,\n onChange,\n timeZone = getLocalTimeZone(),\n withSeconds = false,\n disabled,\n readOnly,\n required,\n ...props\n}: DateTimeFieldProps) {\n const current = toDateTime(value, timeZone);\n return (\n <DatePicker\n {...props}\n granularity={withSeconds ? 'second' : 'minute'}\n hideTimeZone\n value={current}\n onChange={(next) => {\n if (next === null) {\n onChange?.(null);\n return;\n }\n if ('hour' in next) {\n onChange?.(fromDateTime(next));\n }\n }}\n // Typed from empty, a value is in the field's time zone, and written in UTC.\n placeholderValue={current ?? now(timeZone).set({ second: 0, millisecond: 0 })}\n isDisabled={disabled}\n isReadOnly={readOnly}\n isRequired={required}\n />\n );\n}\n\n/** The `datetime` type: setting `timeZone`. */\nexport function DateTimeFieldEntry(props: FieldEntryProps) {\n const timeZone = getSetting(props.field, 'timeZone', isString);\n return (\n <DateTimeField\n {...getFieldProps(props)}\n value={isString(props.value) ? props.value : null}\n onChange={props.onChange}\n {...(timeZone !== undefined ? { timeZone } : {})}\n />\n );\n}\n"],"mappings":"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"}
|
package/dist/datetime/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { DateTimeField, DateTimeFieldEntry, type DateTimeFieldProps } from './DateTimeField';
|
|
1
|
+
export { DateTimeField, DateTimeFieldEntry, type DateTimeFieldProps } from './DateTimeField.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FieldEntryProps, FieldProps } from '../shared/types';
|
|
1
|
+
import type { FieldEntryProps, FieldProps } from '../shared/types.js';
|
|
2
2
|
export interface DurationFieldProps extends FieldProps<number> {
|
|
3
3
|
/** `seconds` (the default) shows hours, minutes and seconds; `minutes` hides the seconds. */
|
|
4
4
|
precision?: 'seconds' | 'minutes';
|
|
@@ -31,51 +31,136 @@ function formatDuration(seconds, { precision = "seconds" } = {}) {
|
|
|
31
31
|
* A duration, in seconds, typed in hours, minutes and seconds. It is `null` while every part is
|
|
32
32
|
* empty.
|
|
33
33
|
*/
|
|
34
|
-
function DurationField(
|
|
34
|
+
function DurationField(t0) {
|
|
35
|
+
const $ = c(38);
|
|
36
|
+
const { value, onChange, onBlur, precision: t1, label, description, errors, disabled, readOnly, required, name, className } = t0;
|
|
37
|
+
const precision = t1 === void 0 ? "seconds" : t1;
|
|
35
38
|
const intl = usePanneauIntl();
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
let T0;
|
|
40
|
+
let t10;
|
|
41
|
+
let t11;
|
|
42
|
+
let t2;
|
|
43
|
+
let t3;
|
|
44
|
+
let t4;
|
|
45
|
+
let t5;
|
|
46
|
+
let t6;
|
|
47
|
+
let t7;
|
|
48
|
+
let t8;
|
|
49
|
+
let t9;
|
|
50
|
+
if ($[0] !== className || $[1] !== description || $[2] !== disabled || $[3] !== errors || $[4] !== intl || $[5] !== label || $[6] !== name || $[7] !== onBlur || $[8] !== onChange || $[9] !== precision || $[10] !== readOnly || $[11] !== required || $[12] !== value) {
|
|
51
|
+
const parts = value !== null && value !== void 0 ? splitDuration(value) : null;
|
|
52
|
+
const change = (part, next) => {
|
|
53
|
+
const updated = {
|
|
54
|
+
...parts ?? {
|
|
55
|
+
hours: 0,
|
|
56
|
+
minutes: 0,
|
|
57
|
+
seconds: 0
|
|
58
|
+
},
|
|
59
|
+
[part]: next ?? 0
|
|
60
|
+
};
|
|
61
|
+
const total = updated.hours * 3600 + updated.minutes * 60 + updated.seconds;
|
|
62
|
+
onChange?.(total === 0 && next === null ? null : total);
|
|
45
63
|
};
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
64
|
+
const input = (part_0) => /* @__PURE__ */ jsx(NumberInput, {
|
|
65
|
+
"aria-label": intl.formatMessage(messages[part_0]),
|
|
66
|
+
value: parts?.[part_0] ?? null,
|
|
67
|
+
onChange: (next_0) => change(part_0, next_0),
|
|
68
|
+
onBlur: () => onBlur?.(),
|
|
69
|
+
minValue: 0,
|
|
70
|
+
...part_0 !== "hours" ? { maxValue: 59 } : {},
|
|
71
|
+
formatOptions: { maximumFractionDigits: 0 },
|
|
72
|
+
suffix: intl.formatMessage(messages[`${part_0}Unit`]),
|
|
73
|
+
isDisabled: disabled,
|
|
74
|
+
isReadOnly: readOnly,
|
|
75
|
+
...name !== void 0 ? { name: `${name}[${part_0}]` } : {},
|
|
76
|
+
className: DurationField_module_default.part
|
|
77
|
+
});
|
|
78
|
+
T0 = Fieldset;
|
|
79
|
+
t6 = label;
|
|
80
|
+
t7 = description;
|
|
81
|
+
t8 = errors;
|
|
82
|
+
t9 = required;
|
|
83
|
+
t10 = disabled;
|
|
84
|
+
t11 = className;
|
|
85
|
+
t2 = DurationField_module_default.parts;
|
|
86
|
+
t3 = input("hours");
|
|
87
|
+
t4 = input("minutes");
|
|
88
|
+
t5 = precision === "seconds" ? input("seconds") : null;
|
|
89
|
+
$[0] = className;
|
|
90
|
+
$[1] = description;
|
|
91
|
+
$[2] = disabled;
|
|
92
|
+
$[3] = errors;
|
|
93
|
+
$[4] = intl;
|
|
94
|
+
$[5] = label;
|
|
95
|
+
$[6] = name;
|
|
96
|
+
$[7] = onBlur;
|
|
97
|
+
$[8] = onChange;
|
|
98
|
+
$[9] = precision;
|
|
99
|
+
$[10] = readOnly;
|
|
100
|
+
$[11] = required;
|
|
101
|
+
$[12] = value;
|
|
102
|
+
$[13] = T0;
|
|
103
|
+
$[14] = t10;
|
|
104
|
+
$[15] = t11;
|
|
105
|
+
$[16] = t2;
|
|
106
|
+
$[17] = t3;
|
|
107
|
+
$[18] = t4;
|
|
108
|
+
$[19] = t5;
|
|
109
|
+
$[20] = t6;
|
|
110
|
+
$[21] = t7;
|
|
111
|
+
$[22] = t8;
|
|
112
|
+
$[23] = t9;
|
|
113
|
+
} else {
|
|
114
|
+
T0 = $[13];
|
|
115
|
+
t10 = $[14];
|
|
116
|
+
t11 = $[15];
|
|
117
|
+
t2 = $[16];
|
|
118
|
+
t3 = $[17];
|
|
119
|
+
t4 = $[18];
|
|
120
|
+
t5 = $[19];
|
|
121
|
+
t6 = $[20];
|
|
122
|
+
t7 = $[21];
|
|
123
|
+
t8 = $[22];
|
|
124
|
+
t9 = $[23];
|
|
125
|
+
}
|
|
126
|
+
let t12;
|
|
127
|
+
if ($[24] !== t2 || $[25] !== t3 || $[26] !== t4 || $[27] !== t5) {
|
|
128
|
+
t12 = /* @__PURE__ */ jsxs("div", {
|
|
129
|
+
className: t2,
|
|
72
130
|
children: [
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
131
|
+
t3,
|
|
132
|
+
t4,
|
|
133
|
+
t5
|
|
76
134
|
]
|
|
77
|
-
})
|
|
78
|
-
|
|
135
|
+
});
|
|
136
|
+
$[24] = t2;
|
|
137
|
+
$[25] = t3;
|
|
138
|
+
$[26] = t4;
|
|
139
|
+
$[27] = t5;
|
|
140
|
+
$[28] = t12;
|
|
141
|
+
} else t12 = $[28];
|
|
142
|
+
let t13;
|
|
143
|
+
if ($[29] !== T0 || $[30] !== t10 || $[31] !== t11 || $[32] !== t12 || $[33] !== t6 || $[34] !== t7 || $[35] !== t8 || $[36] !== t9) {
|
|
144
|
+
t13 = /* @__PURE__ */ jsx(T0, {
|
|
145
|
+
legend: t6,
|
|
146
|
+
description: t7,
|
|
147
|
+
errors: t8,
|
|
148
|
+
isRequired: t9,
|
|
149
|
+
isDisabled: t10,
|
|
150
|
+
className: t11,
|
|
151
|
+
children: t12
|
|
152
|
+
});
|
|
153
|
+
$[29] = T0;
|
|
154
|
+
$[30] = t10;
|
|
155
|
+
$[31] = t11;
|
|
156
|
+
$[32] = t12;
|
|
157
|
+
$[33] = t6;
|
|
158
|
+
$[34] = t7;
|
|
159
|
+
$[35] = t8;
|
|
160
|
+
$[36] = t9;
|
|
161
|
+
$[37] = t13;
|
|
162
|
+
} else t13 = $[37];
|
|
163
|
+
return t13;
|
|
79
164
|
}
|
|
80
165
|
/** The `duration` type: a number of seconds, with setting `precision` (`seconds` or `minutes`). */
|
|
81
166
|
function DurationFieldEntry(props) {
|