@foldkit/ui 0.112.0

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 (201) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -0
  3. package/dist/anchor.d.ts +38 -0
  4. package/dist/anchor.d.ts.map +1 -0
  5. package/dist/anchor.js +142 -0
  6. package/dist/animation/index.d.ts +49 -0
  7. package/dist/animation/index.d.ts.map +1 -0
  8. package/dist/animation/index.js +75 -0
  9. package/dist/animation/public.d.ts +3 -0
  10. package/dist/animation/public.d.ts.map +1 -0
  11. package/dist/animation/public.js +1 -0
  12. package/dist/animation/schema.d.ts +43 -0
  13. package/dist/animation/schema.d.ts.map +1 -0
  14. package/dist/animation/schema.js +41 -0
  15. package/dist/animation/update.d.ts +24 -0
  16. package/dist/animation/update.d.ts.map +1 -0
  17. package/dist/animation/update.js +67 -0
  18. package/dist/button/index.d.ts +17 -0
  19. package/dist/button/index.d.ts.map +1 -0
  20. package/dist/button/index.js +22 -0
  21. package/dist/button/public.d.ts +3 -0
  22. package/dist/button/public.d.ts.map +1 -0
  23. package/dist/button/public.js +1 -0
  24. package/dist/calendar/index.d.ts +462 -0
  25. package/dist/calendar/index.d.ts.map +1 -0
  26. package/dist/calendar/index.js +825 -0
  27. package/dist/calendar/public.d.ts +3 -0
  28. package/dist/calendar/public.d.ts.map +1 -0
  29. package/dist/calendar/public.js +1 -0
  30. package/dist/checkbox/index.d.ts +119 -0
  31. package/dist/checkbox/index.d.ts.map +1 -0
  32. package/dist/checkbox/index.js +111 -0
  33. package/dist/checkbox/public.d.ts +3 -0
  34. package/dist/checkbox/public.d.ts.map +1 -0
  35. package/dist/checkbox/public.js +1 -0
  36. package/dist/combobox/multi.d.ts +183 -0
  37. package/dist/combobox/multi.d.ts.map +1 -0
  38. package/dist/combobox/multi.js +81 -0
  39. package/dist/combobox/multiPublic.d.ts +3 -0
  40. package/dist/combobox/multiPublic.d.ts.map +1 -0
  41. package/dist/combobox/multiPublic.js +1 -0
  42. package/dist/combobox/public.d.ts +7 -0
  43. package/dist/combobox/public.d.ts.map +1 -0
  44. package/dist/combobox/public.js +3 -0
  45. package/dist/combobox/shared.d.ts +423 -0
  46. package/dist/combobox/shared.d.ts.map +1 -0
  47. package/dist/combobox/shared.js +708 -0
  48. package/dist/combobox/single.d.ts +198 -0
  49. package/dist/combobox/single.d.ts.map +1 -0
  50. package/dist/combobox/single.js +106 -0
  51. package/dist/datePicker/index.d.ts +457 -0
  52. package/dist/datePicker/index.d.ts.map +1 -0
  53. package/dist/datePicker/index.js +318 -0
  54. package/dist/datePicker/public.d.ts +3 -0
  55. package/dist/datePicker/public.d.ts.map +1 -0
  56. package/dist/datePicker/public.js +1 -0
  57. package/dist/dialog/index.d.ts +160 -0
  58. package/dist/dialog/index.d.ts.map +1 -0
  59. package/dist/dialog/index.js +211 -0
  60. package/dist/dialog/public.d.ts +3 -0
  61. package/dist/dialog/public.d.ts.map +1 -0
  62. package/dist/dialog/public.js +1 -0
  63. package/dist/disclosure/index.d.ts +110 -0
  64. package/dist/disclosure/index.d.ts.map +1 -0
  65. package/dist/disclosure/index.js +111 -0
  66. package/dist/disclosure/public.d.ts +3 -0
  67. package/dist/disclosure/public.d.ts.map +1 -0
  68. package/dist/disclosure/public.js +1 -0
  69. package/dist/dragAndDrop/index.d.ts +540 -0
  70. package/dist/dragAndDrop/index.d.ts.map +1 -0
  71. package/dist/dragAndDrop/index.js +535 -0
  72. package/dist/dragAndDrop/public.d.ts +3 -0
  73. package/dist/dragAndDrop/public.d.ts.map +1 -0
  74. package/dist/dragAndDrop/public.js +1 -0
  75. package/dist/fieldset/index.d.ts +21 -0
  76. package/dist/fieldset/index.d.ts.map +1 -0
  77. package/dist/fieldset/index.js +25 -0
  78. package/dist/fieldset/public.d.ts +3 -0
  79. package/dist/fieldset/public.d.ts.map +1 -0
  80. package/dist/fieldset/public.js +1 -0
  81. package/dist/fileDrop/index.d.ts +109 -0
  82. package/dist/fileDrop/index.d.ts.map +1 -0
  83. package/dist/fileDrop/index.js +127 -0
  84. package/dist/fileDrop/public.d.ts +3 -0
  85. package/dist/fileDrop/public.d.ts.map +1 -0
  86. package/dist/fileDrop/public.js +1 -0
  87. package/dist/group.d.ts +8 -0
  88. package/dist/group.d.ts.map +1 -0
  89. package/dist/group.js +13 -0
  90. package/dist/index.d.ts +25 -0
  91. package/dist/index.d.ts.map +1 -0
  92. package/dist/index.js +24 -0
  93. package/dist/input/index.d.ts +26 -0
  94. package/dist/input/index.d.ts.map +1 -0
  95. package/dist/input/index.js +43 -0
  96. package/dist/input/public.d.ts +3 -0
  97. package/dist/input/public.d.ts.map +1 -0
  98. package/dist/input/public.js +1 -0
  99. package/dist/internal/optionExtensions.d.ts +6 -0
  100. package/dist/internal/optionExtensions.d.ts.map +1 -0
  101. package/dist/internal/optionExtensions.js +2 -0
  102. package/dist/keyboard.d.ts +6 -0
  103. package/dist/keyboard.d.ts.map +1 -0
  104. package/dist/keyboard.js +9 -0
  105. package/dist/listbox/multi.d.ts +189 -0
  106. package/dist/listbox/multi.d.ts.map +1 -0
  107. package/dist/listbox/multi.js +65 -0
  108. package/dist/listbox/multiPublic.d.ts +3 -0
  109. package/dist/listbox/multiPublic.d.ts.map +1 -0
  110. package/dist/listbox/multiPublic.js +1 -0
  111. package/dist/listbox/public.d.ts +7 -0
  112. package/dist/listbox/public.d.ts.map +1 -0
  113. package/dist/listbox/public.js +3 -0
  114. package/dist/listbox/shared.d.ts +432 -0
  115. package/dist/listbox/shared.d.ts.map +1 -0
  116. package/dist/listbox/shared.js +670 -0
  117. package/dist/listbox/single.d.ts +207 -0
  118. package/dist/listbox/single.d.ts.map +1 -0
  119. package/dist/listbox/single.js +73 -0
  120. package/dist/menu/index.d.ts +368 -0
  121. package/dist/menu/index.d.ts.map +1 -0
  122. package/dist/menu/index.js +682 -0
  123. package/dist/menu/public.d.ts +4 -0
  124. package/dist/menu/public.d.ts.map +1 -0
  125. package/dist/menu/public.js +1 -0
  126. package/dist/popover/index.d.ts +267 -0
  127. package/dist/popover/index.d.ts.map +1 -0
  128. package/dist/popover/index.js +346 -0
  129. package/dist/popover/public.d.ts +4 -0
  130. package/dist/popover/public.d.ts.map +1 -0
  131. package/dist/popover/public.js +1 -0
  132. package/dist/radioGroup/index.d.ts +169 -0
  133. package/dist/radioGroup/index.d.ts.map +1 -0
  134. package/dist/radioGroup/index.js +197 -0
  135. package/dist/radioGroup/public.d.ts +3 -0
  136. package/dist/radioGroup/public.d.ts.map +1 -0
  137. package/dist/radioGroup/public.js +1 -0
  138. package/dist/select/index.d.ts +24 -0
  139. package/dist/select/index.d.ts.map +1 -0
  140. package/dist/select/index.js +40 -0
  141. package/dist/select/public.d.ts +3 -0
  142. package/dist/select/public.d.ts.map +1 -0
  143. package/dist/select/public.js +1 -0
  144. package/dist/slider/index.d.ts +318 -0
  145. package/dist/slider/index.d.ts.map +1 -0
  146. package/dist/slider/index.js +337 -0
  147. package/dist/slider/public.d.ts +3 -0
  148. package/dist/slider/public.d.ts.map +1 -0
  149. package/dist/slider/public.js +1 -0
  150. package/dist/switch/index.d.ts +99 -0
  151. package/dist/switch/index.d.ts.map +1 -0
  152. package/dist/switch/index.js +107 -0
  153. package/dist/switch/public.d.ts +3 -0
  154. package/dist/switch/public.d.ts.map +1 -0
  155. package/dist/switch/public.js +1 -0
  156. package/dist/tabs/index.d.ts +155 -0
  157. package/dist/tabs/index.d.ts.map +1 -0
  158. package/dist/tabs/index.js +185 -0
  159. package/dist/tabs/public.d.ts +3 -0
  160. package/dist/tabs/public.d.ts.map +1 -0
  161. package/dist/tabs/public.js +1 -0
  162. package/dist/test/apps/disabledButton.d.ts +38 -0
  163. package/dist/test/apps/disabledButton.d.ts.map +1 -0
  164. package/dist/test/apps/disabledButton.js +71 -0
  165. package/dist/textarea/index.d.ts +26 -0
  166. package/dist/textarea/index.d.ts.map +1 -0
  167. package/dist/textarea/index.js +44 -0
  168. package/dist/textarea/public.d.ts +3 -0
  169. package/dist/textarea/public.d.ts.map +1 -0
  170. package/dist/textarea/public.js +1 -0
  171. package/dist/toast/index.d.ts +608 -0
  172. package/dist/toast/index.d.ts.map +1 -0
  173. package/dist/toast/index.js +146 -0
  174. package/dist/toast/public.d.ts +4 -0
  175. package/dist/toast/public.d.ts.map +1 -0
  176. package/dist/toast/public.js +1 -0
  177. package/dist/toast/schema.d.ts +154 -0
  178. package/dist/toast/schema.d.ts.map +1 -0
  179. package/dist/toast/schema.js +93 -0
  180. package/dist/toast/update.d.ts +510 -0
  181. package/dist/toast/update.d.ts.map +1 -0
  182. package/dist/toast/update.js +225 -0
  183. package/dist/tooltip/index.d.ts +170 -0
  184. package/dist/tooltip/index.d.ts.map +1 -0
  185. package/dist/tooltip/index.js +253 -0
  186. package/dist/tooltip/public.d.ts +4 -0
  187. package/dist/tooltip/public.d.ts.map +1 -0
  188. package/dist/tooltip/public.js +1 -0
  189. package/dist/typeahead.d.ts +4 -0
  190. package/dist/typeahead.d.ts.map +1 -0
  191. package/dist/typeahead.js +14 -0
  192. package/dist/virtualList/index.d.ts +203 -0
  193. package/dist/virtualList/index.d.ts.map +1 -0
  194. package/dist/virtualList/index.js +392 -0
  195. package/dist/virtualList/public.d.ts +3 -0
  196. package/dist/virtualList/public.d.ts.map +1 -0
  197. package/dist/virtualList/public.js +1 -0
  198. package/dist/vitest-setup.d.ts +2 -0
  199. package/dist/vitest-setup.d.ts.map +1 -0
  200. package/dist/vitest-setup.js +2 -0
  201. package/package.json +161 -0
@@ -0,0 +1,457 @@
1
+ import { Option, Schema as S } from 'effect';
2
+ import * as Calendar from 'foldkit/calendar';
3
+ import type { CalendarDate } from 'foldkit/calendar';
4
+ import * as Command from 'foldkit/command';
5
+ import { type ChildAttribute, type Html } from 'foldkit/html';
6
+ import { type Reflect } from 'foldkit/submodel';
7
+ import type { AnchorConfig } from '../anchor.js';
8
+ import * as UiCalendar from '../calendar/index.js';
9
+ /** Schema for the date picker component's state. Holds the selected date,
10
+ * the embedded Calendar submodel (the visible grid), and the embedded Popover
11
+ * submodel (the open/close + transition layer). */
12
+ export declare const Model: S.Struct<{
13
+ readonly id: S.String;
14
+ readonly maybeSelectedDate: S.Option<S.Struct<{
15
+ readonly year: S.Int;
16
+ readonly month: S.Int;
17
+ readonly day: S.Int;
18
+ }>>;
19
+ readonly calendar: S.Struct<{
20
+ readonly id: S.String;
21
+ readonly today: S.Struct<{
22
+ readonly year: S.Int;
23
+ readonly month: S.Int;
24
+ readonly day: S.Int;
25
+ }>;
26
+ readonly viewYear: S.Int;
27
+ readonly viewMonth: S.Int;
28
+ readonly viewMode: S.Literals<readonly ["Days", "Months", "Years"]>;
29
+ readonly maybeFocusedDate: S.Option<S.Struct<{
30
+ readonly year: S.Int;
31
+ readonly month: S.Int;
32
+ readonly day: S.Int;
33
+ }>>;
34
+ readonly maybeSelectedDate: S.Option<S.Struct<{
35
+ readonly year: S.Int;
36
+ readonly month: S.Int;
37
+ readonly day: S.Int;
38
+ }>>;
39
+ readonly isGridFocused: S.Boolean;
40
+ readonly locale: S.Struct<{
41
+ readonly firstDayOfWeek: S.Literals<readonly ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]>;
42
+ readonly monthNames: S.Tuple<readonly [S.String, S.String, S.String, S.String, S.String, S.String, S.String, S.String, S.String, S.String, S.String, S.String]>;
43
+ readonly shortMonthNames: S.Tuple<readonly [S.String, S.String, S.String, S.String, S.String, S.String, S.String, S.String, S.String, S.String, S.String, S.String]>;
44
+ readonly dayNames: S.Tuple<readonly [S.String, S.String, S.String, S.String, S.String, S.String, S.String]>;
45
+ readonly shortDayNames: S.Tuple<readonly [S.String, S.String, S.String, S.String, S.String, S.String, S.String]>;
46
+ }>;
47
+ readonly maybeMinDate: S.Option<S.Struct<{
48
+ readonly year: S.Int;
49
+ readonly month: S.Int;
50
+ readonly day: S.Int;
51
+ }>>;
52
+ readonly maybeMaxDate: S.Option<S.Struct<{
53
+ readonly year: S.Int;
54
+ readonly month: S.Int;
55
+ readonly day: S.Int;
56
+ }>>;
57
+ readonly disabledDaysOfWeek: S.$Array<S.Literals<readonly ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]>>;
58
+ readonly disabledDates: S.$Array<S.Struct<{
59
+ readonly year: S.Int;
60
+ readonly month: S.Int;
61
+ readonly day: S.Int;
62
+ }>>;
63
+ }>;
64
+ readonly popover: S.Struct<{
65
+ readonly id: S.String;
66
+ readonly isOpen: S.Boolean;
67
+ readonly isAnimated: S.Boolean;
68
+ readonly isModal: S.Boolean;
69
+ readonly contentFocus: S.Boolean;
70
+ readonly animation: S.Struct<{
71
+ readonly id: S.String;
72
+ readonly isShowing: S.Boolean;
73
+ readonly transitionState: S.Literals<readonly ["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
74
+ }>;
75
+ readonly maybeLastButtonPointerType: S.Option<S.String>;
76
+ }>;
77
+ }>;
78
+ export type Model = typeof Model.Type;
79
+ /** Wraps a Calendar submodel message for delegation. */
80
+ export declare const GotCalendarMessage: import("foldkit/schema").CallableTaggedStruct<"GotCalendarMessage", {
81
+ message: S.Union<readonly [import("foldkit/schema").CallableTaggedStruct<"ClickedDay", {
82
+ date: S.Struct<{
83
+ readonly year: S.Int;
84
+ readonly month: S.Int;
85
+ readonly day: S.Int;
86
+ }>;
87
+ }>, import("foldkit/schema").CallableTaggedStruct<"PressedKeyOnGrid", {
88
+ key: S.String;
89
+ isShift: S.Boolean;
90
+ }>, import("foldkit/schema").CallableTaggedStruct<"ClickedPreviousMonthButton", {}>, import("foldkit/schema").CallableTaggedStruct<"ClickedNextMonthButton", {}>, import("foldkit/schema").CallableTaggedStruct<"ClickedHeading", {}>, import("foldkit/schema").CallableTaggedStruct<"SelectedMonth", {
91
+ month: S.Int;
92
+ }>, import("foldkit/schema").CallableTaggedStruct<"SelectedYear", {
93
+ year: S.Int;
94
+ }>, import("foldkit/schema").CallableTaggedStruct<"PagedYears", {
95
+ direction: S.Literals<readonly [1, -1]>;
96
+ }>, import("foldkit/schema").CallableTaggedStruct<"FocusedGrid", {}>, import("foldkit/schema").CallableTaggedStruct<"BlurredGrid", {}>, import("foldkit/schema").CallableTaggedStruct<"RefreshedToday", {
97
+ today: S.Struct<{
98
+ readonly year: S.Int;
99
+ readonly month: S.Int;
100
+ readonly day: S.Int;
101
+ }>;
102
+ }>, import("foldkit/schema").CallableTaggedStruct<"CompletedFocusGrid", {}>]>;
103
+ }>;
104
+ /** Wraps a Popover submodel message for delegation. */
105
+ export declare const GotPopoverMessage: import("foldkit/schema").CallableTaggedStruct<"GotPopoverMessage", {
106
+ message: S.Union<[import("foldkit/schema").CallableTaggedStruct<"RequestedOpen", {}>, import("foldkit/schema").CallableTaggedStruct<"RequestedClose", {}>, import("foldkit/schema").CallableTaggedStruct<"BlurredPanel", {}>, import("foldkit/schema").CallableTaggedStruct<"PressedPointerOnButton", {
107
+ pointerType: S.String;
108
+ button: S.Number;
109
+ }>, import("foldkit/schema").CallableTaggedStruct<"CompletedFocusPanel", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedFocusButton", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedLockScroll", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedUnlockScroll", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedInertOthers", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedRestoreInert", {}>, import("foldkit/schema").CallableTaggedStruct<"IgnoredMouseClick", {}>, import("foldkit/schema").CallableTaggedStruct<"SuppressedSpaceScroll", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedAnchorPopover", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedPortalPopoverBackdrop", {}>, import("foldkit/schema").CallableTaggedStruct<"GotAnimationMessage", {
110
+ message: S.Union<[import("foldkit/schema").CallableTaggedStruct<"Showed", {}>, import("foldkit/schema").CallableTaggedStruct<"Hid", {}>, import("foldkit/schema").CallableTaggedStruct<"AdvancedAnimationFrame", {}>, import("foldkit/schema").CallableTaggedStruct<"EndedAnimation", {}>]>;
111
+ }>]>;
112
+ }>;
113
+ /** Sent when the user commits a date via click or keyboard. Updates the
114
+ * selected date, syncs the calendar, and closes the popover. */
115
+ export declare const RequestedSelectDate: import("foldkit/schema").CallableTaggedStruct<"RequestedSelectDate", {
116
+ date: S.Struct<{
117
+ readonly year: S.Int;
118
+ readonly month: S.Int;
119
+ readonly day: S.Int;
120
+ }>;
121
+ }>;
122
+ /** Sent when the user clears the selected date. Does not close the popover. */
123
+ export declare const Cleared: import("foldkit/schema").CallableTaggedStruct<"Cleared", {}>;
124
+ /** Sent when the popover should open. Triggers focus-grid on the embedded
125
+ * Calendar so keyboard focus lands inside the grid instead of the panel. */
126
+ export declare const Opened: import("foldkit/schema").CallableTaggedStruct<"Opened", {}>;
127
+ /** Sent when the popover should close. Delegates to Popover which returns
128
+ * focus to the trigger button. */
129
+ export declare const Closed: import("foldkit/schema").CallableTaggedStruct<"Closed", {}>;
130
+ /** Union of all messages the date picker component can produce. */
131
+ export declare const Message: S.Union<[
132
+ typeof GotCalendarMessage,
133
+ typeof GotPopoverMessage,
134
+ typeof RequestedSelectDate,
135
+ typeof Cleared,
136
+ typeof Opened,
137
+ typeof Closed
138
+ ]>;
139
+ export type Message = typeof Message.Type;
140
+ /** Emitted when the visible month changes (propagated from the embedded
141
+ * Calendar). Useful for month-scoped data loading. */
142
+ export declare const ChangedViewMonth: import("foldkit/schema").CallableTaggedStruct<"ChangedViewMonth", {
143
+ year: S.Int;
144
+ month: S.Int;
145
+ }>;
146
+ /** Emitted when the user commits a date selection (propagated from the
147
+ * embedded Calendar). The popover has already closed; the parent reads the
148
+ * committed date and lifts it into domain state. */
149
+ export declare const SelectedDate: import("foldkit/schema").CallableTaggedStruct<"SelectedDate", {
150
+ date: S.Struct<{
151
+ readonly year: S.Int;
152
+ readonly month: S.Int;
153
+ readonly day: S.Int;
154
+ }>;
155
+ }>;
156
+ /** Union of out-messages the date picker can produce. */
157
+ export declare const OutMessage: S.Union<readonly [import("foldkit/schema").CallableTaggedStruct<"ChangedViewMonth", {
158
+ year: S.Int;
159
+ month: S.Int;
160
+ }>, import("foldkit/schema").CallableTaggedStruct<"SelectedDate", {
161
+ date: S.Struct<{
162
+ readonly year: S.Int;
163
+ readonly month: S.Int;
164
+ readonly day: S.Int;
165
+ }>;
166
+ }>]>;
167
+ export type OutMessage = typeof OutMessage.Type;
168
+ export type ChangedViewMonth = typeof ChangedViewMonth.Type;
169
+ export type SelectedDate = typeof SelectedDate.Type;
170
+ /** Configuration for creating a date picker model with `init`. */
171
+ export type InitConfig = Readonly<{
172
+ id: string;
173
+ today: CalendarDate;
174
+ initialSelectedDate?: CalendarDate;
175
+ isAnimated?: boolean;
176
+ locale?: Calendar.LocaleConfig;
177
+ minDate?: CalendarDate;
178
+ maxDate?: CalendarDate;
179
+ disabledDaysOfWeek?: ReadonlyArray<Calendar.DayOfWeek>;
180
+ disabledDates?: ReadonlyArray<CalendarDate>;
181
+ }>;
182
+ /** Creates an initial date picker model from a config. The calendar and
183
+ * popover submodels are created with derived ids so their DOM elements stay
184
+ * addressable. The popover is opened in `contentFocus` mode so focus lands on
185
+ * the calendar grid instead of the panel. */
186
+ export declare const init: (config: InitConfig) => Model;
187
+ type UpdateReturn = readonly [
188
+ Model,
189
+ ReadonlyArray<Command.Command<Message>>,
190
+ Option.Option<OutMessage>
191
+ ];
192
+ /** Processes a date picker message and returns the next model, commands, and
193
+ * optional OutMessage. */
194
+ export declare const update: (model: Model, message: Message) => UpdateReturn;
195
+ /** Programmatically opens the date picker, updating the model and returning
196
+ * focus and popover commands. Use this in domain-event handlers. */
197
+ export declare const open: (model: Model) => UpdateReturn;
198
+ /** Programmatically closes the date picker. Use this in domain-event handlers. */
199
+ export declare const close: (model: Model) => UpdateReturn;
200
+ /** Programmatically selects a date, committing it and closing the popover. Emits a `SelectedDate` OutMessage just like a user-initiated selection. */
201
+ export declare const selectDate: (model: Model, date: CalendarDate) => UpdateReturn;
202
+ /** Programmatically clears the selected date. */
203
+ export declare const clear: (model: Model) => UpdateReturn;
204
+ /** Reflects an externally-sourced selected date onto the date picker
205
+ * without emitting an OutMessage or touching the popover. Sets the
206
+ * picker's selection and reflects it onto the embedded calendar (moving
207
+ * the calendar's view to the date), mirroring `selectDate`'s state change
208
+ * minus the `SelectedDate` announcement and the popover close. Pass
209
+ * `Option.none()` to clear. Use this to mirror external truth (a URL
210
+ * parameter, a saved draft) onto the picker. Contrast with `selectDate`,
211
+ * a user or programmatic *choice* that emits `SelectedDate`. Returns the
212
+ * model directly because it produces no commands and no OutMessage. */
213
+ export declare const reflectSelectedDate: Reflect<Model, Option.Option<CalendarDate>>;
214
+ /** Reflects the minimum selectable date onto the embedded calendar. Pass
215
+ * `Option.none()` to remove the minimum. Use this when the minimum derives
216
+ * from other Model state (e.g. a start date field whose current selection
217
+ * constrains an end date picker).
218
+ *
219
+ * Does NOT reconcile the current selection. If a previously-selected date
220
+ * is now below the new minimum, it remains selected. Callers should `clear`
221
+ * or reassign the selection explicitly if their domain requires it. */
222
+ export declare const reflectMinDate: Reflect<Model, Option.Option<CalendarDate>>;
223
+ /** Reflects the maximum selectable date onto the embedded calendar. Pass
224
+ * `Option.none()` to remove the maximum. Does NOT reconcile the current
225
+ * selection. */
226
+ export declare const reflectMaxDate: Reflect<Model, Option.Option<CalendarDate>>;
227
+ /** Reflects the list of individually-disabled dates onto the embedded
228
+ * calendar. Pass an empty array to clear. Does NOT reconcile the current
229
+ * selection. */
230
+ export declare const reflectDisabledDates: Reflect<Model, ReadonlyArray<CalendarDate>>;
231
+ /** Reflects the days of the week that are disabled onto the embedded calendar
232
+ * (e.g. weekends). Pass an empty array to clear. Does NOT reconcile the
233
+ * current selection. */
234
+ export declare const reflectDisabledDaysOfWeek: Reflect<Model, ReadonlyArray<Calendar.DayOfWeek>>;
235
+ /** Per-render view inputs passed to `view` via `h.submodel`'s `viewInputs` field.
236
+ *
237
+ * The DatePicker emits a `SelectedDate({ date })` OutMessage when the
238
+ * user commits a date. Consumers pattern-match this in their
239
+ * `GotDatePickerMessage` handler (third tuple element of
240
+ * `DatePicker.update`'s return) to lift the date into domain state. */
241
+ export type ViewInputs = Readonly<{
242
+ anchor: AnchorConfig;
243
+ /** Renders the trigger button's content (typically the formatted selected
244
+ * date or a placeholder). Receives the current selection. */
245
+ triggerContent: (maybeDate: Option.Option<CalendarDate>) => Html;
246
+ /** Renders the calendar grid layout inside the popover panel. The
247
+ * consumer lays out the attribute bundles exactly as they would for
248
+ * an inline calendar. */
249
+ toCalendarView: (attributes: UiCalendar.CalendarAttributes) => Html;
250
+ isDisabled?: boolean;
251
+ /** Name for the hidden form input. When provided, a hidden `<input>` is
252
+ * rendered alongside the trigger so native form submission captures the
253
+ * selected date as an ISO string (`YYYY-MM-DD`). */
254
+ name?: string;
255
+ className?: string;
256
+ attributes?: ReadonlyArray<ChildAttribute>;
257
+ triggerClassName?: string;
258
+ triggerAttributes?: ReadonlyArray<ChildAttribute>;
259
+ panelClassName?: string;
260
+ panelAttributes?: ReadonlyArray<ChildAttribute>;
261
+ backdropClassName?: string;
262
+ backdropAttributes?: ReadonlyArray<ChildAttribute>;
263
+ }>;
264
+ /** Renders an accessible date picker: a trigger button that opens a popover
265
+ * containing an accessible calendar grid. The date picker assembles the
266
+ * embedded Calendar and Popover components into one flat API. Consumers
267
+ * provide the trigger face and the calendar grid layout, DatePicker handles
268
+ * focus choreography, open/close state, and form submission. */
269
+ export declare const view: import("foldkit/submodel").View<{
270
+ readonly id: string;
271
+ readonly maybeSelectedDate: Option.Option<{
272
+ readonly year: number;
273
+ readonly month: number;
274
+ readonly day: number;
275
+ }>;
276
+ readonly calendar: {
277
+ readonly id: string;
278
+ readonly today: {
279
+ readonly year: number;
280
+ readonly month: number;
281
+ readonly day: number;
282
+ };
283
+ readonly viewYear: number;
284
+ readonly viewMonth: number;
285
+ readonly viewMode: "Days" | "Months" | "Years";
286
+ readonly maybeFocusedDate: Option.Option<{
287
+ readonly year: number;
288
+ readonly month: number;
289
+ readonly day: number;
290
+ }>;
291
+ readonly maybeSelectedDate: Option.Option<{
292
+ readonly year: number;
293
+ readonly month: number;
294
+ readonly day: number;
295
+ }>;
296
+ readonly isGridFocused: boolean;
297
+ readonly locale: {
298
+ readonly firstDayOfWeek: "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday";
299
+ readonly monthNames: readonly [string, string, string, string, string, string, string, string, string, string, string, string];
300
+ readonly shortMonthNames: readonly [string, string, string, string, string, string, string, string, string, string, string, string];
301
+ readonly dayNames: readonly [string, string, string, string, string, string, string];
302
+ readonly shortDayNames: readonly [string, string, string, string, string, string, string];
303
+ };
304
+ readonly maybeMinDate: Option.Option<{
305
+ readonly year: number;
306
+ readonly month: number;
307
+ readonly day: number;
308
+ }>;
309
+ readonly maybeMaxDate: Option.Option<{
310
+ readonly year: number;
311
+ readonly month: number;
312
+ readonly day: number;
313
+ }>;
314
+ readonly disabledDaysOfWeek: readonly ("Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday")[];
315
+ readonly disabledDates: readonly {
316
+ readonly year: number;
317
+ readonly month: number;
318
+ readonly day: number;
319
+ }[];
320
+ };
321
+ readonly popover: {
322
+ readonly id: string;
323
+ readonly isOpen: boolean;
324
+ readonly isAnimated: boolean;
325
+ readonly isModal: boolean;
326
+ readonly contentFocus: boolean;
327
+ readonly animation: {
328
+ readonly id: string;
329
+ readonly isShowing: boolean;
330
+ readonly transitionState: "Idle" | "EnterStart" | "EnterAnimating" | "LeaveStart" | "LeaveAnimating";
331
+ };
332
+ readonly maybeLastButtonPointerType: Option.Option<string>;
333
+ };
334
+ }, {
335
+ readonly _tag: "Opened";
336
+ } | {
337
+ readonly _tag: "Closed";
338
+ } | {
339
+ readonly _tag: "GotCalendarMessage";
340
+ readonly message: {
341
+ readonly _tag: "ClickedDay";
342
+ readonly date: {
343
+ readonly year: number;
344
+ readonly month: number;
345
+ readonly day: number;
346
+ };
347
+ } | {
348
+ readonly _tag: "PressedKeyOnGrid";
349
+ readonly key: string;
350
+ readonly isShift: boolean;
351
+ } | {
352
+ readonly _tag: "ClickedPreviousMonthButton";
353
+ } | {
354
+ readonly _tag: "ClickedNextMonthButton";
355
+ } | {
356
+ readonly _tag: "ClickedHeading";
357
+ } | {
358
+ readonly _tag: "SelectedMonth";
359
+ readonly month: number;
360
+ } | {
361
+ readonly _tag: "SelectedYear";
362
+ readonly year: number;
363
+ } | {
364
+ readonly _tag: "PagedYears";
365
+ readonly direction: 1 | -1;
366
+ } | {
367
+ readonly _tag: "FocusedGrid";
368
+ } | {
369
+ readonly _tag: "BlurredGrid";
370
+ } | {
371
+ readonly _tag: "RefreshedToday";
372
+ readonly today: {
373
+ readonly year: number;
374
+ readonly month: number;
375
+ readonly day: number;
376
+ };
377
+ } | {
378
+ readonly _tag: "CompletedFocusGrid";
379
+ };
380
+ } | {
381
+ readonly _tag: "GotPopoverMessage";
382
+ readonly message: {
383
+ readonly _tag: "RequestedOpen";
384
+ } | {
385
+ readonly _tag: "RequestedClose";
386
+ } | {
387
+ readonly _tag: "BlurredPanel";
388
+ } | {
389
+ readonly _tag: "PressedPointerOnButton";
390
+ readonly pointerType: string;
391
+ readonly button: number;
392
+ } | {
393
+ readonly _tag: "CompletedFocusPanel";
394
+ } | {
395
+ readonly _tag: "CompletedFocusButton";
396
+ } | {
397
+ readonly _tag: "CompletedLockScroll";
398
+ } | {
399
+ readonly _tag: "CompletedUnlockScroll";
400
+ } | {
401
+ readonly _tag: "CompletedInertOthers";
402
+ } | {
403
+ readonly _tag: "CompletedRestoreInert";
404
+ } | {
405
+ readonly _tag: "IgnoredMouseClick";
406
+ } | {
407
+ readonly _tag: "SuppressedSpaceScroll";
408
+ } | {
409
+ readonly _tag: "CompletedAnchorPopover";
410
+ } | {
411
+ readonly _tag: "CompletedPortalPopoverBackdrop";
412
+ } | {
413
+ readonly _tag: "GotAnimationMessage";
414
+ readonly message: {
415
+ readonly _tag: "Showed";
416
+ } | {
417
+ readonly _tag: "Hid";
418
+ } | {
419
+ readonly _tag: "AdvancedAnimationFrame";
420
+ } | {
421
+ readonly _tag: "EndedAnimation";
422
+ };
423
+ };
424
+ } | {
425
+ readonly _tag: "RequestedSelectDate";
426
+ readonly date: {
427
+ readonly year: number;
428
+ readonly month: number;
429
+ readonly day: number;
430
+ };
431
+ } | {
432
+ readonly _tag: "Cleared";
433
+ }, Readonly<{
434
+ anchor: AnchorConfig;
435
+ /** Renders the trigger button's content (typically the formatted selected
436
+ * date or a placeholder). Receives the current selection. */
437
+ triggerContent: (maybeDate: Option.Option<CalendarDate>) => Html;
438
+ /** Renders the calendar grid layout inside the popover panel. The
439
+ * consumer lays out the attribute bundles exactly as they would for
440
+ * an inline calendar. */
441
+ toCalendarView: (attributes: UiCalendar.CalendarAttributes) => Html;
442
+ isDisabled?: boolean;
443
+ /** Name for the hidden form input. When provided, a hidden `<input>` is
444
+ * rendered alongside the trigger so native form submission captures the
445
+ * selected date as an ISO string (`YYYY-MM-DD`). */
446
+ name?: string;
447
+ className?: string;
448
+ attributes?: ReadonlyArray<ChildAttribute>;
449
+ triggerClassName?: string;
450
+ triggerAttributes?: ReadonlyArray<ChildAttribute>;
451
+ panelClassName?: string;
452
+ panelAttributes?: ReadonlyArray<ChildAttribute>;
453
+ backdropClassName?: string;
454
+ backdropAttributes?: ReadonlyArray<ChildAttribute>;
455
+ }>>;
456
+ export {};
457
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/datePicker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAClE,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,IAAI,EAAQ,MAAM,cAAc,CAAA;AAGnE,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,kBAAkB,CAAA;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA;AAKlD;;mDAEmD;AACnD,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,wDAAwD;AACxD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;EAE7B,CAAA;AACF,uDAAuD;AACvD,eAAO,MAAM,iBAAiB;;;;;;;EAE5B,CAAA;AACF;gEACgE;AAChE,eAAO,MAAM,mBAAmB;;;;;;EAE9B,CAAA;AACF,+EAA+E;AAC/E,eAAO,MAAM,OAAO,8DAAe,CAAA;AACnC;4EAC4E;AAC5E,eAAO,MAAM,MAAM,6DAAc,CAAA;AACjC;kCACkC;AAClC,eAAO,MAAM,MAAM,6DAAc,CAAA;AAEjC,mEAAmE;AACnE,eAAO,MAAM,OAAO,EAAE,CAAC,CAAC,KAAK,CAC3B;IACE,OAAO,kBAAkB;IACzB,OAAO,iBAAiB;IACxB,OAAO,mBAAmB;IAC1B,OAAO,OAAO;IACd,OAAO,MAAM;IACb,OAAO,MAAM;CACd,CAQD,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC;sDACsD;AACtD,eAAO,MAAM,gBAAgB;;;EAG3B,CAAA;AAEF;;oDAEoD;AACpD,eAAO,MAAM,YAAY;;;;;;EAEvB,CAAA;AAEF,yDAAyD;AACzD,eAAO,MAAM,UAAU;;;;;;;;;IAA4C,CAAA;AACnE,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AAC3D,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAInD,kEAAkE;AAClE,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,YAAY,CAAA;IACnB,mBAAmB,CAAC,EAAE,YAAY,CAAA;IAClC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAA;IAC9B,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,kBAAkB,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACtD,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAC5C,CAAC,CAAA;AAEF;;;6CAG6C;AAC7C,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAwBxC,CAAA;AAIF,KAAK,YAAY,GAAG,SAAS;IAC3B,KAAK;IACL,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;CAC1B,CAAA;AAiFD;0BAC0B;AAC1B,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO,KAAG,YA+DrD,CAAA;AAEH;oEACoE;AACpE,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,YAAuC,CAAA;AAE3E,kFAAkF;AAClF,eAAO,MAAM,KAAK,GAAI,OAAO,KAAK,KAAG,YAAuC,CAAA;AAE5E,sJAAsJ;AACtJ,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,EAAE,MAAM,YAAY,KAAG,YAChB,CAAA;AAE9C,iDAAiD;AACjD,eAAO,MAAM,KAAK,GAAI,OAAO,KAAK,KAAG,YAAwC,CAAA;AAE7E;;;;;;;;wEAQwE;AACxE,eAAO,MAAM,mBAAmB,EAAE,OAAO,CACvC,KAAK,EACL,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAQ5B,CAAA;AAED;;;;;;;uEAOuE;AACvE,eAAO,MAAM,cAAc,EAAE,OAAO,CAClC,KAAK,EACL,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAO5B,CAAA;AAED;;gBAEgB;AAChB,eAAO,MAAM,cAAc,EAAE,OAAO,CAClC,KAAK,EACL,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAO5B,CAAA;AAED;;gBAEgB;AAChB,eAAO,MAAM,oBAAoB,EAAE,OAAO,CACxC,KAAK,EACL,aAAa,CAAC,YAAY,CAAC,CAQ5B,CAAA;AAED;;wBAEwB;AACxB,eAAO,MAAM,yBAAyB,EAAE,OAAO,CAC7C,KAAK,EACL,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAclC,CAAA;AAMD;;;;;wEAKwE;AACxE,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,MAAM,EAAE,YAAY,CAAA;IACpB;iEAC6D;IAC7D,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,CAAA;IAChE;;6BAEyB;IACzB,cAAc,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,kBAAkB,KAAK,IAAI,CAAA;IACnE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;wDAEoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IACjD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;CACnD,CAAC,CAAA;AAEF;;;;gEAIgE;AAChE,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA5BP,YAAY;IACpB;iEAC6D;oBAC7C,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI;IAChE;;6BAEyB;oBACT,CAAC,UAAU,EAAE,UAAU,CAAC,kBAAkB,KAAK,IAAI;iBACtD,OAAO;IACpB;;wDAEoD;WAC7C,MAAM;gBACD,MAAM;iBACL,aAAa,CAAC,cAAc,CAAC;uBACvB,MAAM;wBACL,aAAa,CAAC,cAAc,CAAC;qBAChC,MAAM;sBACL,aAAa,CAAC,cAAc,CAAC;wBAC3B,MAAM;yBACL,aAAa,CAAC,cAAc,CAAC;GAyGnD,CAAA"}