@fluixi-ui/date-picker 0.3.0-alpha.12 → 0.3.0-alpha.14

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.
@@ -1,3 +1,4 @@
1
+ import { type FxProp } from '@fluixi-ui/fx';
1
2
  import { type Accessor } from '@fluixi/reactive/signal';
2
3
  import { type Placement } from '@fluixi-ui/primitives';
3
4
  import type { DateValue, Granularity } from '@fluixi-ui/date-core';
@@ -56,19 +57,27 @@ export interface DatePickerProps {
56
57
  */
57
58
  export declare function DatePicker(props: DatePickerProps): ComponentChild;
58
59
  export interface DatePickerLabelProps extends HTMLAttributes<HTMLElement> {
60
+ /** Token-aware style object. See `@fluixi-ui/fx`. */
61
+ fx?: FxProp;
59
62
  }
60
63
  /** Field label; linked to the segmented input. */
61
64
  export declare function DatePickerLabel(props: DatePickerLabelProps): ComponentChild;
62
65
  export interface DatePickerFieldProps extends HTMLAttributes<HTMLDivElement> {
66
+ /** Token-aware style object. See `@fluixi-ui/fx`. */
67
+ fx?: FxProp;
63
68
  }
64
69
  /** The bordered control: the segmented date field plus the calendar trigger. */
65
70
  export declare function DatePickerField(props: DatePickerFieldProps): ComponentChild;
66
71
  export interface DatePickerTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
72
+ /** Token-aware style object. See `@fluixi-ui/fx`. */
73
+ fx?: FxProp;
67
74
  }
68
75
  /** Toggles the calendar popover. */
69
76
  export declare function DatePickerTrigger(props: DatePickerTriggerProps): ComponentChild;
70
77
  export interface DatePickerContentProps extends HTMLAttributes<HTMLDivElement> {
71
78
  children?: ComponentChild;
79
+ /** Token-aware style object. See `@fluixi-ui/fx`. */
80
+ fx?: FxProp;
72
81
  }
73
82
  /**
74
83
  * The floating calendar panel. Renders a default calendar bound to the shared
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../src/date-picker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../src/date-picker.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
- import { createSignal, createMemo, createEffect, createRenderEffect } from "@fluixi/reactive/signal";
2
1
  import { delegateEvents, createComponent, splitProps, createNativeElement, spread, mergeProps, insert, handleRef } from "@fluixi/dom";
2
+ import { createSignal, createMemo, createEffect, createRenderEffect } from "@fluixi/reactive/signal";
3
+ import { fxProps } from "@fluixi-ui/fx";
3
4
  import { useRef, Show } from "@fluixi/core";
4
5
  import { createSafeContext, createControllableSignal, createControllableBooleanSignal, createId, composeId, composeEventHandlers } from "@fluixi-ui/kit";
5
6
  import { Portal, createFloatingPosition, createDismissableLayer, createFocusScope } from "@fluixi-ui/primitives";
6
7
  import { DateField, DateInput } from "@fluixi-ui/date-field";
7
8
  import { Calendar, CalendarHeader, CalendarPrevButton, CalendarHeading, CalendarNextButton, CalendarGrid } from "@fluixi-ui/calendar";
8
- delegateEvents(["change", "click", "keydown"]);
9
+ delegateEvents(["change", "keydown", "click"]);
9
10
  const [DatePickerProvider, useDatePickerContext] = createSafeContext("DatePicker");
10
11
  function DatePicker(props) {
11
12
  const [value, setValue] = createControllableSignal({
@@ -25,10 +26,7 @@ function DatePicker(props) {
25
26
  setValue,
26
27
  isOpen,
27
28
  setOpen: (o) => setOpen(o),
28
- ids: {
29
- label: composeId(baseId, "label"),
30
- content: composeId(baseId, "content")
31
- },
29
+ ids: { label: composeId(baseId, "label"), content: composeId(baseId, "content") },
32
30
  triggerRef,
33
31
  setTriggerRef,
34
32
  placement: props.placement ?? "bottom-start",
@@ -43,160 +41,119 @@ function DatePicker(props) {
43
41
  isDateUnavailable: props.isDateUnavailable,
44
42
  name: props.name
45
43
  };
46
- return createMemo(() => createComponent(DatePickerProvider, {
47
- get value() {
48
- return ctx;
49
- },
50
- get children() {
51
- return props.children;
52
- }
53
- }));
44
+ return createMemo(() => createComponent(DatePickerProvider, { get value() {
45
+ return ctx;
46
+ }, get children() {
47
+ return props.children;
48
+ } }));
54
49
  }
55
50
  function DatePickerLabel(props) {
56
51
  const ctx = useDatePickerContext();
57
- const [local, others] = splitProps(props, ["children"]);
52
+ const [local, others] = splitProps(props, ["children", "fx", "style"]);
58
53
  return (() => {
59
54
  const _el$ = createNativeElement("span");
60
- spread({
61
- element: _el$,
62
- props: mergeProps(others, {
63
- id: () => ctx.ids.label,
64
- "data-date-picker-label": ""
65
- })
66
- });
55
+ spread({ element: _el$, props: mergeProps(fxProps(
56
+ () => local.fx,
57
+ () => local.style
58
+ ), others, { id: () => ctx.ids.label, "data-date-picker-label": "" }) });
67
59
  insert(_el$, local.children);
68
60
  return _el$;
69
61
  })();
70
62
  }
71
63
  function DatePickerField(props) {
72
64
  const ctx = useDatePickerContext();
73
- const [local, others] = splitProps(props, ["ref", "children"]);
65
+ const [local, others] = splitProps(props, ["ref", "children", "fx", "style"]);
74
66
  const setRef = (node) => {
75
67
  ctx.setTriggerRef(node);
76
68
  handleRef(local.ref, node);
77
69
  };
78
- return createMemo(() => createComponent(DateField, {
79
- get value() {
80
- return ctx.value;
81
- },
82
- get onChange() {
83
- return ctx.setValue;
84
- },
85
- get locale() {
86
- return ctx.locale;
87
- },
88
- get granularity() {
89
- return ctx.granularity;
90
- },
91
- get hourCycle() {
92
- return ctx.hourCycle;
93
- },
94
- get minValue() {
95
- return ctx.minValue;
96
- },
97
- get maxValue() {
98
- return ctx.maxValue;
99
- },
100
- get isDisabled() {
101
- return ctx.isDisabled;
102
- },
103
- get isReadOnly() {
104
- return ctx.isReadOnly;
105
- },
106
- get name() {
107
- return ctx.name;
108
- },
109
- get "data-date-picker"() {
110
- return "";
111
- },
112
- get children() {
113
- return (() => {
114
- const _el$ = createNativeElement("div");
115
- spread({
116
- element: _el$,
117
- props: mergeProps(others, {
118
- ref: setRef,
119
- "data-date-picker-control": ""
120
- })
121
- });
122
- insert(_el$, createMemo(() => createComponent(DateInput, {
123
- get "aria-labelledby"() {
124
- return ctx.ids.label;
125
- },
126
- get "data-date-picker-input"() {
127
- return "";
128
- }
129
- })), null);
130
- insert(_el$, local.children ?? createMemo(() => createComponent(DatePickerTrigger, {})));
131
- return _el$;
132
- })();
133
- }
134
- }));
70
+ return createMemo(() => createComponent(DateField, { get value() {
71
+ return ctx.value;
72
+ }, get onChange() {
73
+ return ctx.setValue;
74
+ }, get locale() {
75
+ return ctx.locale;
76
+ }, get granularity() {
77
+ return ctx.granularity;
78
+ }, get hourCycle() {
79
+ return ctx.hourCycle;
80
+ }, get minValue() {
81
+ return ctx.minValue;
82
+ }, get maxValue() {
83
+ return ctx.maxValue;
84
+ }, get isDisabled() {
85
+ return ctx.isDisabled;
86
+ }, get isReadOnly() {
87
+ return ctx.isReadOnly;
88
+ }, get name() {
89
+ return ctx.name;
90
+ }, get "data-date-picker"() {
91
+ return "";
92
+ }, get children() {
93
+ return (() => {
94
+ const _el$ = createNativeElement("div");
95
+ spread({ element: _el$, props: mergeProps(fxProps(
96
+ () => local.fx,
97
+ () => local.style
98
+ ), others, { ref: setRef, "data-date-picker-control": "" }) });
99
+ insert(_el$, createMemo(() => createComponent(DateInput, { get "aria-labelledby"() {
100
+ return ctx.ids.label;
101
+ }, get "data-date-picker-input"() {
102
+ return "";
103
+ } })), null);
104
+ insert(_el$, local.children ?? createMemo(() => createComponent(DatePickerTrigger, {})));
105
+ return _el$;
106
+ })();
107
+ } }));
135
108
  }
136
109
  function DatePickerTrigger(props) {
137
110
  const ctx = useDatePickerContext();
138
- const [local, others] = splitProps(props, ["onClick", "children"]);
111
+ const [local, others] = splitProps(props, ["onClick", "children", "fx", "style"]);
139
112
  return (() => {
140
113
  const _el$ = createNativeElement("button");
141
- spread({
142
- element: _el$,
143
- props: mergeProps(others, {
144
- type: "button",
145
- "aria-haspopup": "dialog",
146
- "aria-expanded": () => ctx.isOpen() ? "true" : "false",
147
- "aria-controls": () => ctx.ids.content,
148
- "aria-label": "Open calendar",
149
- disabled: () => ctx.isDisabled(),
150
- "data-date-picker-trigger": "",
151
- onClick: composeEventHandlers([local.onClick, () => {
152
- if (ctx.isDisabled() || ctx.isReadOnly()) return;
153
- ctx.setOpen(!ctx.isOpen());
154
- }])
155
- })
156
- });
114
+ spread({ element: _el$, props: mergeProps(fxProps(
115
+ () => local.fx,
116
+ () => local.style
117
+ ), others, { type: "button", "aria-haspopup": "dialog", "aria-expanded": (() => ctx.isOpen() ? "true" : "false"), "aria-controls": () => ctx.ids.content, "aria-label": "Open calendar", disabled: (() => ctx.isDisabled()), "data-date-picker-trigger": "", onClick: composeEventHandlers([
118
+ local.onClick,
119
+ () => {
120
+ if (ctx.isDisabled() || ctx.isReadOnly()) return;
121
+ ctx.setOpen(!ctx.isOpen());
122
+ }
123
+ ]) }) });
157
124
  insert(_el$, local.children ?? "📅");
158
125
  return _el$;
159
126
  })();
160
127
  }
161
128
  function DatePickerContent(props) {
162
129
  const ctx = useDatePickerContext();
163
- const [local, others] = splitProps(props, ["ref", "children", "style"]);
130
+ const [local, others] = splitProps(props, ["ref", "children", "style", "fx", "style"]);
164
131
  const [element, setElement] = createSignal(void 0);
165
132
  const portalRef = useRef(null);
166
133
  createEffect(() => {
167
134
  if (!ctx.isOpen() && portalRef.current) portalRef.current.remove();
168
135
  });
169
- return createMemo(() => createComponent(Show, {
170
- get when() {
171
- return ctx.isOpen();
172
- },
173
- get children() {
174
- return createMemo(() => createComponent(Portal, {
175
- get ref() {
176
- return portalRef;
177
- },
178
- get children() {
179
- return createMemo(() => createComponent(FloatingPanel, mergeProps(others, {
180
- get setElement() {
181
- return setElement;
182
- },
183
- get element() {
184
- return element;
185
- },
186
- get forwardRef() {
187
- return local.ref;
188
- },
189
- get style() {
190
- return local.style;
191
- },
192
- get children() {
193
- return local.children ?? createMemo(() => createComponent(DatePickerCalendar, {}));
194
- }
195
- })));
196
- }
197
- }));
198
- }
199
- }));
136
+ return createMemo(() => createComponent(Show, { get when() {
137
+ return ctx.isOpen();
138
+ }, get children() {
139
+ return createMemo(() => createComponent(Portal, { get ref() {
140
+ return portalRef;
141
+ }, get children() {
142
+ return createMemo(() => createComponent(FloatingPanel, mergeProps(others, { get setElement() {
143
+ return setElement;
144
+ }, get element() {
145
+ return element;
146
+ }, get forwardRef() {
147
+ return local.ref;
148
+ }, get fx() {
149
+ return local.fx;
150
+ }, get style() {
151
+ return local.style;
152
+ }, get children() {
153
+ return local.children ?? createMemo(() => createComponent(DatePickerCalendar, {}));
154
+ } })));
155
+ } }));
156
+ } }));
200
157
  }
201
158
  function FloatingPanel(props) {
202
159
  const ctx = useDatePickerContext();
@@ -211,11 +168,7 @@ function FloatingPanel(props) {
211
168
  },
212
169
  onDismiss: () => ctx.setOpen(false)
213
170
  });
214
- createFocusScope(props.element, {
215
- trap: false,
216
- autoFocus: true,
217
- restoreFocus: true
218
- });
171
+ createFocusScope(props.element, { trap: false, autoFocus: true, restoreFocus: true });
219
172
  createRenderEffect(() => {
220
173
  const el = props.element();
221
174
  if (!el) return;
@@ -229,73 +182,48 @@ function FloatingPanel(props) {
229
182
  };
230
183
  return (() => {
231
184
  const _el$ = createNativeElement("div");
232
- spread({
233
- element: _el$,
234
- props: {
235
- ref: setRef,
236
- role: "dialog",
237
- id: () => ctx.ids.content,
238
- "aria-label": "Calendar",
239
- "data-date-picker-content": "",
240
- "data-placement": () => position.placement(),
241
- style: () => props.style,
242
- tabindex: -1,
243
- onKeyDown: (e) => {
244
- if (e.key === "Escape") {
245
- e.stopPropagation();
246
- ctx.setOpen(false);
247
- ctx.triggerRef()?.querySelector("[data-date-picker-trigger]")?.focus();
248
- }
249
- }
185
+ spread({ element: _el$, props: mergeProps(fxProps(
186
+ () => props.fx,
187
+ () => props.style
188
+ ), { ref: setRef, role: "dialog", id: () => ctx.ids.content, "aria-label": "Calendar", "data-date-picker-content": "", "data-placement": (() => position.placement()), tabindex: -1, onKeyDown: ((e) => {
189
+ if (e.key === "Escape") {
190
+ e.stopPropagation();
191
+ ctx.setOpen(false);
192
+ ctx.triggerRef()?.querySelector("[data-date-picker-trigger]")?.focus();
250
193
  }
251
- });
194
+ }) }) });
252
195
  insert(_el$, props.children);
253
196
  return _el$;
254
197
  })();
255
198
  }
256
199
  function DatePickerCalendar() {
257
200
  const ctx = useDatePickerContext();
258
- return createMemo(() => createComponent(Calendar, {
259
- get value() {
260
- return ctx.value;
261
- },
262
- get onChange() {
263
- return (v) => {
264
- ctx.setValue(v);
265
- ctx.setOpen(false);
266
- };
267
- },
268
- get locale() {
269
- return ctx.locale;
270
- },
271
- get minValue() {
272
- return ctx.minValue;
273
- },
274
- get maxValue() {
275
- return ctx.maxValue;
276
- },
277
- get isDateUnavailable() {
278
- return ctx.isDateUnavailable;
279
- },
280
- get "data-date-picker-calendar"() {
281
- return "";
282
- },
283
- get children() {
284
- return [createMemo(() => createComponent(CalendarHeader, {
285
- get children() {
286
- return [createMemo(() => createComponent(CalendarPrevButton, {
287
- get children() {
288
- return "‹";
289
- }
290
- })), createMemo(() => createComponent(CalendarHeading, {})), createMemo(() => createComponent(CalendarNextButton, {
291
- get children() {
292
- return "›";
293
- }
294
- }))];
295
- }
296
- })), createMemo(() => createComponent(CalendarGrid, {}))];
297
- }
298
- }));
201
+ return createMemo(() => createComponent(Calendar, { get value() {
202
+ return ctx.value;
203
+ }, get onChange() {
204
+ return ((v) => {
205
+ ctx.setValue(v);
206
+ ctx.setOpen(false);
207
+ });
208
+ }, get locale() {
209
+ return ctx.locale;
210
+ }, get minValue() {
211
+ return ctx.minValue;
212
+ }, get maxValue() {
213
+ return ctx.maxValue;
214
+ }, get isDateUnavailable() {
215
+ return ctx.isDateUnavailable;
216
+ }, get "data-date-picker-calendar"() {
217
+ return "";
218
+ }, get children() {
219
+ return [createMemo(() => createComponent(CalendarHeader, { get children() {
220
+ return [createMemo(() => createComponent(CalendarPrevButton, { get children() {
221
+ return "‹";
222
+ } })), createMemo(() => createComponent(CalendarHeading, {})), createMemo(() => createComponent(CalendarNextButton, { get children() {
223
+ return "›";
224
+ } }))];
225
+ } })), createMemo(() => createComponent(CalendarGrid, {}))];
226
+ } }));
299
227
  }
300
228
  export {
301
229
  DatePicker,
@@ -1,3 +1,4 @@
1
+ import { type FxProp } from '@fluixi-ui/fx';
1
2
  import { type Accessor } from '@fluixi/reactive/signal';
2
3
  import { type Placement } from '@fluixi-ui/primitives';
3
4
  import type { DateRange, DateValue, Granularity } from '@fluixi-ui/date-core';
@@ -57,19 +58,27 @@ export interface DateRangePickerProps {
57
58
  */
58
59
  export declare function DateRangePicker(props: DateRangePickerProps): ComponentChild;
59
60
  export interface DateRangePickerLabelProps extends HTMLAttributes<HTMLElement> {
61
+ /** Token-aware style object. See `@fluixi-ui/fx`. */
62
+ fx?: FxProp;
60
63
  }
61
64
  /** Field label; linked to the range field group. */
62
65
  export declare function DateRangePickerLabel(props: DateRangePickerLabelProps): ComponentChild;
63
66
  export interface DateRangePickerFieldProps extends HTMLAttributes<HTMLDivElement> {
67
+ /** Token-aware style object. See `@fluixi-ui/fx`. */
68
+ fx?: FxProp;
64
69
  }
65
70
  /** The bordered control: start field — end field, plus the calendar trigger. */
66
71
  export declare function DateRangePickerField(props: DateRangePickerFieldProps): ComponentChild;
67
72
  export interface DateRangePickerTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
73
+ /** Token-aware style object. See `@fluixi-ui/fx`. */
74
+ fx?: FxProp;
68
75
  }
69
76
  /** Toggles the range-calendar popover. */
70
77
  export declare function DateRangePickerTrigger(props: DateRangePickerTriggerProps): ComponentChild;
71
78
  export interface DateRangePickerContentProps extends HTMLAttributes<HTMLDivElement> {
72
79
  children?: ComponentChild;
80
+ /** Token-aware style object. See `@fluixi-ui/fx`. */
81
+ fx?: FxProp;
73
82
  }
74
83
  /** The floating range-calendar panel; selecting a full range closes it. */
75
84
  export declare function DateRangePickerContent(props: DateRangePickerContentProps): ComponentChild;
@@ -1 +1 @@
1
- {"version":3,"file":"date-range-picker.d.ts","sourceRoot":"","sources":["../src/date-range-picker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date-range-picker.d.ts","sourceRoot":"","sources":["../src/date-range-picker.tsx"],"names":[],"mappings":"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"}