@carbon-labs/wc-date-picker 0.3.0 → 0.4.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 (101) hide show
  1. package/es/__stories__/{date-picker.stories.d.ts → date-picker-web-components.stories.d.ts} +5 -5
  2. package/{lib/state-machine → es}/adapters/web-component-adapter.d.ts +3 -3
  3. package/es/{state-machine/adapters → adapters}/web-component-adapter.js +1 -4
  4. package/es/adapters/web-component-adapter.js.map +1 -0
  5. package/es/components/{date-picker/calendar-renderer.js → calendar-renderer.js} +9 -9
  6. package/es/components/calendar-renderer.js.map +1 -0
  7. package/es/components/{date-picker/date-picker-input-skeleton.js → date-picker-input-skeleton.js} +2 -2
  8. package/es/components/date-picker-input-skeleton.js.map +1 -0
  9. package/es/components/{date-picker/date-picker-input.js → date-picker-input.js} +5 -5
  10. package/es/components/date-picker-input.js.map +1 -0
  11. package/es/components/{date-picker/date-picker.d.ts → date-picker.d.ts} +6 -3
  12. package/es/components/{date-picker/date-picker.js → date-picker.js} +69 -137
  13. package/es/components/date-picker.js.map +1 -0
  14. package/es/components/{date-picker/date-picker.scss.js → date-picker.scss.js} +1 -1
  15. package/{lib/components/date-picker → es/components}/defs.d.ts +1 -1
  16. package/es/components/{date-picker/defs.js → defs.js} +1 -1
  17. package/es/components/defs.js.map +1 -0
  18. package/es/index.d.ts +5 -4
  19. package/es/index.js +5 -4
  20. package/es/index.js.map +1 -1
  21. package/lib/__stories__/{date-picker.stories.d.ts → date-picker-web-components.stories.d.ts} +5 -5
  22. package/{es/state-machine → lib}/adapters/web-component-adapter.d.ts +3 -3
  23. package/lib/{state-machine/adapters → adapters}/web-component-adapter.js +24 -27
  24. package/lib/adapters/web-component-adapter.js.map +1 -0
  25. package/lib/components/{date-picker/calendar-renderer.js → calendar-renderer.js} +11 -11
  26. package/lib/components/calendar-renderer.js.map +1 -0
  27. package/lib/components/{date-picker/date-picker-input-skeleton.js → date-picker-input-skeleton.js} +2 -2
  28. package/lib/components/date-picker-input-skeleton.js.map +1 -0
  29. package/lib/components/{date-picker/date-picker-input.js → date-picker-input.js} +5 -5
  30. package/lib/components/date-picker-input.js.map +1 -0
  31. package/lib/components/{date-picker/date-picker.d.ts → date-picker.d.ts} +6 -3
  32. package/lib/components/{date-picker/date-picker.js → date-picker.js} +105 -173
  33. package/lib/components/date-picker.js.map +1 -0
  34. package/lib/components/{date-picker/date-picker.scss.js → date-picker.scss.js} +1 -1
  35. package/{es/components/date-picker → lib/components}/defs.d.ts +1 -1
  36. package/lib/components/{date-picker/defs.js → defs.js} +1 -1
  37. package/lib/components/defs.js.map +1 -0
  38. package/lib/index.d.ts +5 -4
  39. package/lib/index.js +13 -4
  40. package/lib/index.js.map +1 -1
  41. package/package.json +4 -3
  42. package/es/components/date-picker/calendar-renderer.js.map +0 -1
  43. package/es/components/date-picker/date-picker-input-skeleton.js.map +0 -1
  44. package/es/components/date-picker/date-picker-input.js.map +0 -1
  45. package/es/components/date-picker/date-picker.js.map +0 -1
  46. package/es/components/date-picker/defs.js.map +0 -1
  47. package/es/state-machine/actions.d.ts +0 -35
  48. package/es/state-machine/actions.js +0 -860
  49. package/es/state-machine/actions.js.map +0 -1
  50. package/es/state-machine/adapters/web-component-adapter.js.map +0 -1
  51. package/es/state-machine/effects.d.ts +0 -35
  52. package/es/state-machine/effects.js +0 -92
  53. package/es/state-machine/effects.js.map +0 -1
  54. package/es/state-machine/guards.d.ts +0 -41
  55. package/es/state-machine/guards.js +0 -143
  56. package/es/state-machine/guards.js.map +0 -1
  57. package/es/state-machine/index.d.ts +0 -12
  58. package/es/state-machine/machine.d.ts +0 -92
  59. package/es/state-machine/machine.js +0 -272
  60. package/es/state-machine/machine.js.map +0 -1
  61. package/es/state-machine/states.d.ts +0 -89
  62. package/es/state-machine/states.js +0 -105
  63. package/es/state-machine/states.js.map +0 -1
  64. package/es/state-machine/temporal-utils.d.ts +0 -203
  65. package/es/state-machine/temporal-utils.js +0 -128
  66. package/es/state-machine/temporal-utils.js.map +0 -1
  67. package/es/state-machine/types.d.ts +0 -163
  68. package/lib/components/date-picker/calendar-renderer.js.map +0 -1
  69. package/lib/components/date-picker/date-picker-input-skeleton.js.map +0 -1
  70. package/lib/components/date-picker/date-picker-input.js.map +0 -1
  71. package/lib/components/date-picker/date-picker.js.map +0 -1
  72. package/lib/components/date-picker/defs.js.map +0 -1
  73. package/lib/state-machine/actions.d.ts +0 -35
  74. package/lib/state-machine/actions.js +0 -864
  75. package/lib/state-machine/actions.js.map +0 -1
  76. package/lib/state-machine/adapters/web-component-adapter.js.map +0 -1
  77. package/lib/state-machine/effects.d.ts +0 -35
  78. package/lib/state-machine/effects.js +0 -96
  79. package/lib/state-machine/effects.js.map +0 -1
  80. package/lib/state-machine/guards.d.ts +0 -41
  81. package/lib/state-machine/guards.js +0 -147
  82. package/lib/state-machine/guards.js.map +0 -1
  83. package/lib/state-machine/index.d.ts +0 -12
  84. package/lib/state-machine/machine.d.ts +0 -92
  85. package/lib/state-machine/machine.js +0 -274
  86. package/lib/state-machine/machine.js.map +0 -1
  87. package/lib/state-machine/states.d.ts +0 -89
  88. package/lib/state-machine/states.js +0 -105
  89. package/lib/state-machine/states.js.map +0 -1
  90. package/lib/state-machine/temporal-utils.d.ts +0 -203
  91. package/lib/state-machine/temporal-utils.js +0 -136
  92. package/lib/state-machine/temporal-utils.js.map +0 -1
  93. package/lib/state-machine/types.d.ts +0 -163
  94. /package/es/components/{date-picker/calendar-renderer.d.ts → calendar-renderer.d.ts} +0 -0
  95. /package/es/components/{date-picker/date-picker-input-skeleton.d.ts → date-picker-input-skeleton.d.ts} +0 -0
  96. /package/es/components/{date-picker/date-picker-input.d.ts → date-picker-input.d.ts} +0 -0
  97. /package/es/components/{date-picker/date-picker.scss.js.map → date-picker.scss.js.map} +0 -0
  98. /package/lib/components/{date-picker/calendar-renderer.d.ts → calendar-renderer.d.ts} +0 -0
  99. /package/lib/components/{date-picker/date-picker-input-skeleton.d.ts → date-picker-input-skeleton.d.ts} +0 -0
  100. /package/lib/components/{date-picker/date-picker-input.d.ts → date-picker-input.d.ts} +0 -0
  101. /package/lib/components/{date-picker/date-picker.scss.js.map → date-picker.scss.js.map} +0 -0
@@ -1,272 +0,0 @@
1
- import { DatePickerState, DatePickerEvent } from './states.js';
2
- import { checkGuard } from './guards.js';
3
- import { executeAction } from './actions.js';
4
- import { executeEffect } from './effects.js';
5
-
6
- /**
7
- * Copyright IBM Corp. 2026
8
- *
9
- * This source code is licensed under the Apache-2.0 license found in the
10
- * LICENSE file in the root directory of this source tree.
11
- */
12
- /**
13
- * State transition configuration
14
- * Maps the current state + event type to the next state
15
- */
16
- const stateTransitions = {
17
- [DatePickerState.IDLE]: {
18
- [DatePickerEvent.INPUT_FOCUS]: DatePickerState.FOCUSED,
19
- [DatePickerEvent.CALENDAR_ICON_CLICK]: DatePickerState.CALENDAR_OPEN,
20
- [DatePickerEvent.DISABLE]: DatePickerState.DISABLED,
21
- [DatePickerEvent.SET_READONLY]: DatePickerState.READONLY,
22
- },
23
- [DatePickerState.FOCUSED]: {
24
- [DatePickerEvent.INPUT_BLUR]: DatePickerState.IDLE,
25
- [DatePickerEvent.CALENDAR_OPEN]: DatePickerState.CALENDAR_OPEN,
26
- [DatePickerEvent.DISABLE]: DatePickerState.DISABLED,
27
- },
28
- [DatePickerState.CALENDAR_OPEN]: {
29
- [DatePickerEvent.DATE_SELECT]: DatePickerState.DATE_SELECTED,
30
- [DatePickerEvent.RANGE_START_SELECT]: DatePickerState.SELECTING_END,
31
- [DatePickerEvent.OUTSIDE_CLICK]: DatePickerState.IDLE,
32
- [DatePickerEvent.ESCAPE_KEY]: DatePickerState.FOCUSED,
33
- [DatePickerEvent.TAB_KEY]: DatePickerState.IDLE,
34
- [DatePickerEvent.CALENDAR_CLOSE]: DatePickerState.FOCUSED,
35
- [DatePickerEvent.PREV_MONTH]: DatePickerState.CALENDAR_OPEN,
36
- [DatePickerEvent.NEXT_MONTH]: DatePickerState.CALENDAR_OPEN,
37
- [DatePickerEvent.PREV_YEAR]: DatePickerState.CALENDAR_OPEN,
38
- [DatePickerEvent.NEXT_YEAR]: DatePickerState.CALENDAR_OPEN,
39
- [DatePickerEvent.GO_TO_TODAY]: DatePickerState.CALENDAR_OPEN,
40
- // Keyboard navigation
41
- [DatePickerEvent.ARROW_UP]: DatePickerState.CALENDAR_OPEN,
42
- [DatePickerEvent.ARROW_DOWN]: DatePickerState.CALENDAR_OPEN,
43
- [DatePickerEvent.ARROW_LEFT]: DatePickerState.CALENDAR_OPEN,
44
- [DatePickerEvent.ARROW_RIGHT]: DatePickerState.CALENDAR_OPEN,
45
- [DatePickerEvent.PAGE_UP]: DatePickerState.CALENDAR_OPEN,
46
- [DatePickerEvent.PAGE_DOWN]: DatePickerState.CALENDAR_OPEN,
47
- [DatePickerEvent.HOME_KEY]: DatePickerState.CALENDAR_OPEN,
48
- [DatePickerEvent.END_KEY]: DatePickerState.CALENDAR_OPEN,
49
- // ENTER_KEY is handled by guards - will dispatch DATE_SELECT or RANGE_START_SELECT
50
- },
51
- [DatePickerState.SELECTING_START]: {
52
- [DatePickerEvent.RANGE_START_SELECT]: DatePickerState.SELECTING_END,
53
- [DatePickerEvent.OUTSIDE_CLICK]: DatePickerState.IDLE,
54
- [DatePickerEvent.ESCAPE_KEY]: DatePickerState.FOCUSED,
55
- },
56
- [DatePickerState.SELECTING_END]: {
57
- [DatePickerEvent.RANGE_END_SELECT]: DatePickerState.DATE_SELECTED,
58
- [DatePickerEvent.RANGE_START_SELECT]: DatePickerState.SELECTING_END,
59
- [DatePickerEvent.OUTSIDE_CLICK]: DatePickerState.IDLE,
60
- [DatePickerEvent.ESCAPE_KEY]: DatePickerState.FOCUSED,
61
- [DatePickerEvent.TAB_KEY]: DatePickerState.IDLE,
62
- // Keyboard navigation
63
- [DatePickerEvent.ARROW_UP]: DatePickerState.SELECTING_END,
64
- [DatePickerEvent.ARROW_DOWN]: DatePickerState.SELECTING_END,
65
- [DatePickerEvent.ARROW_LEFT]: DatePickerState.SELECTING_END,
66
- [DatePickerEvent.ARROW_RIGHT]: DatePickerState.SELECTING_END,
67
- [DatePickerEvent.PAGE_UP]: DatePickerState.SELECTING_END,
68
- [DatePickerEvent.PAGE_DOWN]: DatePickerState.SELECTING_END,
69
- [DatePickerEvent.HOME_KEY]: DatePickerState.SELECTING_END,
70
- [DatePickerEvent.END_KEY]: DatePickerState.SELECTING_END,
71
- [DatePickerEvent.ENTER_KEY]: DatePickerState.DATE_SELECTED,
72
- [DatePickerEvent.PREV_MONTH]: DatePickerState.SELECTING_END,
73
- [DatePickerEvent.NEXT_MONTH]: DatePickerState.SELECTING_END,
74
- },
75
- [DatePickerState.DATE_SELECTED]: {
76
- [DatePickerEvent.CALENDAR_CLOSE]: DatePickerState.IDLE,
77
- [DatePickerEvent.INPUT_FOCUS]: DatePickerState.FOCUSED,
78
- },
79
- [DatePickerState.DISABLED]: {
80
- [DatePickerEvent.ENABLE]: DatePickerState.IDLE,
81
- },
82
- [DatePickerState.READONLY]: {
83
- [DatePickerEvent.UNSET_READONLY]: DatePickerState.IDLE,
84
- },
85
- [DatePickerState.ERROR]: {
86
- [DatePickerEvent.VALUE_CHANGE]: DatePickerState.IDLE,
87
- [DatePickerEvent.CLEAR_ERROR]: DatePickerState.IDLE,
88
- },
89
- };
90
- /**
91
- * Date picker state machine
92
- * Manages state transitions and context updates for the date picker
93
- */
94
- class DatePickerStateMachine {
95
- /**
96
- * Create a new date picker state machine
97
- *
98
- * @param {Partial<DatePickerContext>} initialContext - Initial context values
99
- */
100
- constructor(initialContext = {}) {
101
- this.listeners = new Set();
102
- this.currentState = DatePickerState.IDLE;
103
- this.context = this.createInitialContext(initialContext);
104
- }
105
- /**
106
- * Create initial context with defaults
107
- *
108
- * @param {Partial<DatePickerContext>} partial - Partial context to merge with defaults
109
- * @returns Complete context object
110
- */
111
- createInitialContext(partial) {
112
- return {
113
- mode: 'single',
114
- value: '',
115
- startDate: null,
116
- endDate: null,
117
- isOpen: false,
118
- isFocused: false,
119
- isDisabled: false,
120
- isReadonly: false,
121
- isInvalid: false,
122
- lastFocusedInput: null,
123
- minDate: null,
124
- maxDate: null,
125
- dateFormat: 'm/d/Y',
126
- allowInput: true,
127
- closeOnSelect: true,
128
- viewDate: null,
129
- focusedDate: null,
130
- ...partial,
131
- };
132
- }
133
- /**
134
- * Send an event to the state machine
135
- * This is the primary method for triggering state transitions
136
- *
137
- * @param {string} eventType - The type of event to send
138
- * @param {any} payload - Optional event payload
139
- * @returns The updated context
140
- */
141
- send(eventType, payload) {
142
- const event = {
143
- type: eventType,
144
- payload,
145
- timestamp: Date.now(),
146
- };
147
- const nextState = this.getNextState(this.currentState, event);
148
- if (!nextState) {
149
- // No valid transition, return current context
150
- return this.context;
151
- }
152
- // Check guards
153
- if (!checkGuard(nextState, event.type, this.context, event)) {
154
- return this.context;
155
- }
156
- // Execute actions to update context
157
- // Actions are defined for the current state, not the next state
158
- const contextUpdates = executeAction(this.currentState, event.type, this.context, event);
159
- const newContext = {
160
- ...this.context,
161
- ...contextUpdates,
162
- };
163
- // Create a transition object
164
- const stateTransition = {
165
- from: this.currentState,
166
- to: nextState,
167
- event,
168
- context: newContext,
169
- };
170
- // Update state
171
- this.currentState;
172
- this.currentState = nextState;
173
- this.context = newContext;
174
- // Execute side effects
175
- executeEffect(nextState, event.type, this.context, event);
176
- // Notify listeners
177
- this.notifyListeners(stateTransition);
178
- return this.context;
179
- }
180
- /**
181
- * Get the current state
182
- *
183
- * @returns The current state
184
- */
185
- getState() {
186
- return this.currentState;
187
- }
188
- /**
189
- * Get the current context
190
- *
191
- * @returns A copy of the current context
192
- */
193
- getContext() {
194
- return { ...this.context };
195
- }
196
- /**
197
- * Update context directly (use sparingly)
198
- *
199
- * @param {Partial<DatePickerContext>} updates - Partial context updates
200
- * @returns The updated context
201
- */
202
- updateContext(updates) {
203
- this.context = {
204
- ...this.context,
205
- ...updates,
206
- };
207
- return this.context;
208
- }
209
- /**
210
- * Subscribe to state transitions
211
- *
212
- * @param {TransitionListener} listener - Function to call on each transition
213
- * @returns Unsubscribe function
214
- */
215
- subscribe(listener) {
216
- this.listeners.add(listener);
217
- return () => this.listeners.delete(listener);
218
- }
219
- /**
220
- * Check if a transition is valid from the current state
221
- *
222
- * @param {string} eventType - The event type to check
223
- * @returns True if the transition is valid
224
- */
225
- canTransition(eventType) {
226
- const event = { type: eventType, timestamp: Date.now() };
227
- const nextState = this.getNextState(this.currentState, event);
228
- if (!nextState) {
229
- return false;
230
- }
231
- return checkGuard(nextState, eventType, this.context, event);
232
- }
233
- /**
234
- * Get the next state for a given event
235
- *
236
- * @param {DatePickerState} from - Current state
237
- * @param {DatePickerEvent} event - The event
238
- * @returns Next state or null if no transition exists
239
- */
240
- getNextState(from, event) {
241
- const transitions = stateTransitions[from];
242
- if (!transitions) {
243
- return null;
244
- }
245
- const nextState = transitions[event.type];
246
- if (!nextState) {
247
- return null;
248
- }
249
- return nextState;
250
- }
251
- /**
252
- * Notify all listeners of a state transition
253
- *
254
- * @param {StateTransition} transition - The state transition
255
- */
256
- notifyListeners(transition) {
257
- this.listeners.forEach((listener) => listener(transition));
258
- }
259
- /**
260
- * Reset the state machine to initial state
261
- *
262
- * @param {Partial<DatePickerContext>} initialContext - Optional new initial context
263
- */
264
- reset(initialContext) {
265
- this.currentState = DatePickerState.IDLE;
266
- this.context = this.createInitialContext(initialContext || {});
267
- }
268
- }
269
- // Made with Bob
270
-
271
- export { DatePickerStateMachine };
272
- //# sourceMappingURL=machine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"machine.js","sources":["../../../state-machine/machine.ts"],"sourcesContent":[null],"names":["DatePickerEventEnum"],"mappings":";;;;;AAAA;;;;;AAKG;AAiBH;;;AAGG;AACH,MAAM,gBAAgB,GAAkB;AACtC,IAAA,CAAC,eAAe,CAAC,IAAI,GAAG;AACtB,QAAA,CAACA,eAAmB,CAAC,WAAW,GAAG,eAAe,CAAC,OAAO;AAC1D,QAAA,CAACA,eAAmB,CAAC,mBAAmB,GAAG,eAAe,CAAC,aAAa;AACxE,QAAA,CAACA,eAAmB,CAAC,OAAO,GAAG,eAAe,CAAC,QAAQ;AACvD,QAAA,CAACA,eAAmB,CAAC,YAAY,GAAG,eAAe,CAAC,QAAQ;AAC7D,KAAA;AACD,IAAA,CAAC,eAAe,CAAC,OAAO,GAAG;AACzB,QAAA,CAACA,eAAmB,CAAC,UAAU,GAAG,eAAe,CAAC,IAAI;AACtD,QAAA,CAACA,eAAmB,CAAC,aAAa,GAAG,eAAe,CAAC,aAAa;AAClE,QAAA,CAACA,eAAmB,CAAC,OAAO,GAAG,eAAe,CAAC,QAAQ;AACxD,KAAA;AACD,IAAA,CAAC,eAAe,CAAC,aAAa,GAAG;AAC/B,QAAA,CAACA,eAAmB,CAAC,WAAW,GAAG,eAAe,CAAC,aAAa;AAChE,QAAA,CAACA,eAAmB,CAAC,kBAAkB,GAAG,eAAe,CAAC,aAAa;AACvE,QAAA,CAACA,eAAmB,CAAC,aAAa,GAAG,eAAe,CAAC,IAAI;AACzD,QAAA,CAACA,eAAmB,CAAC,UAAU,GAAG,eAAe,CAAC,OAAO;AACzD,QAAA,CAACA,eAAmB,CAAC,OAAO,GAAG,eAAe,CAAC,IAAI;AACnD,QAAA,CAACA,eAAmB,CAAC,cAAc,GAAG,eAAe,CAAC,OAAO;AAC7D,QAAA,CAACA,eAAmB,CAAC,UAAU,GAAG,eAAe,CAAC,aAAa;AAC/D,QAAA,CAACA,eAAmB,CAAC,UAAU,GAAG,eAAe,CAAC,aAAa;AAC/D,QAAA,CAACA,eAAmB,CAAC,SAAS,GAAG,eAAe,CAAC,aAAa;AAC9D,QAAA,CAACA,eAAmB,CAAC,SAAS,GAAG,eAAe,CAAC,aAAa;AAC9D,QAAA,CAACA,eAAmB,CAAC,WAAW,GAAG,eAAe,CAAC,aAAa;;AAEhE,QAAA,CAACA,eAAmB,CAAC,QAAQ,GAAG,eAAe,CAAC,aAAa;AAC7D,QAAA,CAACA,eAAmB,CAAC,UAAU,GAAG,eAAe,CAAC,aAAa;AAC/D,QAAA,CAACA,eAAmB,CAAC,UAAU,GAAG,eAAe,CAAC,aAAa;AAC/D,QAAA,CAACA,eAAmB,CAAC,WAAW,GAAG,eAAe,CAAC,aAAa;AAChE,QAAA,CAACA,eAAmB,CAAC,OAAO,GAAG,eAAe,CAAC,aAAa;AAC5D,QAAA,CAACA,eAAmB,CAAC,SAAS,GAAG,eAAe,CAAC,aAAa;AAC9D,QAAA,CAACA,eAAmB,CAAC,QAAQ,GAAG,eAAe,CAAC,aAAa;AAC7D,QAAA,CAACA,eAAmB,CAAC,OAAO,GAAG,eAAe,CAAC,aAAa;;AAE7D,KAAA;AACD,IAAA,CAAC,eAAe,CAAC,eAAe,GAAG;AACjC,QAAA,CAACA,eAAmB,CAAC,kBAAkB,GAAG,eAAe,CAAC,aAAa;AACvE,QAAA,CAACA,eAAmB,CAAC,aAAa,GAAG,eAAe,CAAC,IAAI;AACzD,QAAA,CAACA,eAAmB,CAAC,UAAU,GAAG,eAAe,CAAC,OAAO;AAC1D,KAAA;AACD,IAAA,CAAC,eAAe,CAAC,aAAa,GAAG;AAC/B,QAAA,CAACA,eAAmB,CAAC,gBAAgB,GAAG,eAAe,CAAC,aAAa;AACrE,QAAA,CAACA,eAAmB,CAAC,kBAAkB,GAAG,eAAe,CAAC,aAAa;AACvE,QAAA,CAACA,eAAmB,CAAC,aAAa,GAAG,eAAe,CAAC,IAAI;AACzD,QAAA,CAACA,eAAmB,CAAC,UAAU,GAAG,eAAe,CAAC,OAAO;AACzD,QAAA,CAACA,eAAmB,CAAC,OAAO,GAAG,eAAe,CAAC,IAAI;;AAEnD,QAAA,CAACA,eAAmB,CAAC,QAAQ,GAAG,eAAe,CAAC,aAAa;AAC7D,QAAA,CAACA,eAAmB,CAAC,UAAU,GAAG,eAAe,CAAC,aAAa;AAC/D,QAAA,CAACA,eAAmB,CAAC,UAAU,GAAG,eAAe,CAAC,aAAa;AAC/D,QAAA,CAACA,eAAmB,CAAC,WAAW,GAAG,eAAe,CAAC,aAAa;AAChE,QAAA,CAACA,eAAmB,CAAC,OAAO,GAAG,eAAe,CAAC,aAAa;AAC5D,QAAA,CAACA,eAAmB,CAAC,SAAS,GAAG,eAAe,CAAC,aAAa;AAC9D,QAAA,CAACA,eAAmB,CAAC,QAAQ,GAAG,eAAe,CAAC,aAAa;AAC7D,QAAA,CAACA,eAAmB,CAAC,OAAO,GAAG,eAAe,CAAC,aAAa;AAC5D,QAAA,CAACA,eAAmB,CAAC,SAAS,GAAG,eAAe,CAAC,aAAa;AAC9D,QAAA,CAACA,eAAmB,CAAC,UAAU,GAAG,eAAe,CAAC,aAAa;AAC/D,QAAA,CAACA,eAAmB,CAAC,UAAU,GAAG,eAAe,CAAC,aAAa;AAChE,KAAA;AACD,IAAA,CAAC,eAAe,CAAC,aAAa,GAAG;AAC/B,QAAA,CAACA,eAAmB,CAAC,cAAc,GAAG,eAAe,CAAC,IAAI;AAC1D,QAAA,CAACA,eAAmB,CAAC,WAAW,GAAG,eAAe,CAAC,OAAO;AAC3D,KAAA;AACD,IAAA,CAAC,eAAe,CAAC,QAAQ,GAAG;AAC1B,QAAA,CAACA,eAAmB,CAAC,MAAM,GAAG,eAAe,CAAC,IAAI;AACnD,KAAA;AACD,IAAA,CAAC,eAAe,CAAC,QAAQ,GAAG;AAC1B,QAAA,CAACA,eAAmB,CAAC,cAAc,GAAG,eAAe,CAAC,IAAI;AAC3D,KAAA;AACD,IAAA,CAAC,eAAe,CAAC,KAAK,GAAG;AACvB,QAAA,CAACA,eAAmB,CAAC,YAAY,GAAG,eAAe,CAAC,IAAI;AACxD,QAAA,CAACA,eAAmB,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI;AACxD,KAAA;CACF;AAED;;;AAGG;MACU,sBAAsB,CAAA;AAKjC;;;;AAIG;AACH,IAAA,WAAA,CAAY,iBAA6C,EAAE,EAAA;AAPnD,QAAA,IAAA,CAAA,SAAS,GAA4B,IAAI,GAAG,EAAE;AAQpD,QAAA,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,IAAI;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;IAC1D;AAEA;;;;;AAKG;AACK,IAAA,oBAAoB,CAC1B,OAAmC,EAAA;QAEnC,OAAO;AACL,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,GAAG,OAAO;SACX;IACH;AAEA;;;;;;;AAOG;IACI,IAAI,CAAC,SAAiB,EAAE,OAAa,EAAA;AAC1C,QAAA,MAAM,KAAK,GAAoB;AAC7B,YAAA,IAAI,EAAE,SAAS;YACf,OAAO;AACP,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB;AAED,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;QAE7D,IAAI,CAAC,SAAS,EAAE;;YAEd,OAAO,IAAI,CAAC,OAAO;QACrB;;AAGA,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;YAC3D,OAAO,IAAI,CAAC,OAAO;QACrB;;;AAIA,QAAA,MAAM,cAAc,GAAG,aAAa,CAClC,IAAI,CAAC,YAAY,EACjB,KAAK,CAAC,IAAI,EACV,IAAI,CAAC,OAAO,EACZ,KAAK,CACN;AAED,QAAA,MAAM,UAAU,GAAG;YACjB,GAAG,IAAI,CAAC,OAAO;AACf,YAAA,GAAG,cAAc;SAClB;;AAGD,QAAA,MAAM,eAAe,GAAoB;YACvC,IAAI,EAAE,IAAI,CAAC,YAAY;AACvB,YAAA,EAAE,EAAE,SAAS;YACb,KAAK;AACL,YAAA,OAAO,EAAE,UAAU;SACpB;;AAGD,QAAuB,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS;AAC7B,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU;;AAGzB,QAAA,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;;AAGzD,QAAA,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC;QAErC,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA;;;;AAIG;IACI,QAAQ,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;IAC1B;AAEA;;;;AAIG;IACI,UAAU,GAAA;AACf,QAAA,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;IAC5B;AAEA;;;;;AAKG;AACI,IAAA,aAAa,CAAC,OAAmC,EAAA;QACtD,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,IAAI,CAAC,OAAO;AACf,YAAA,GAAG,OAAO;SACX;QACD,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA;;;;;AAKG;AACI,IAAA,SAAS,CAAC,QAA4B,EAAA;AAC3C,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC5B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9C;AAEA;;;;;AAKG;AACI,IAAA,aAAa,CAAC,SAAiB,EAAA;AACpC,QAAA,MAAM,KAAK,GAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;AACzE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;IAC9D;AAEA;;;;;;AAMG;IACK,YAAY,CAClB,IAAqB,EACrB,KAAsB,EAAA;AAEtB,QAAA,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,OAAO,IAAI;QACb;QAEA,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,SAAmC;IAC5C;AAEA;;;;AAIG;AACK,IAAA,eAAe,CAAC,UAA2B,EAAA;AACjD,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5D;AAEA;;;;AAIG;AACI,IAAA,KAAK,CAAC,cAA2C,EAAA;AACtD,QAAA,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,IAAI;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,IAAI,EAAE,CAAC;IAChE;AACD;AAED;;;;"}
@@ -1,89 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2026
3
- *
4
- * This source code is licensed under the Apache-2.0 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- /**
8
- * Date picker state machine states
9
- */
10
- export declare enum DatePickerState {
11
- /**
12
- * Initial state - calendar closed, no focus
13
- */
14
- IDLE = "idle",
15
- /**
16
- * Input has focus, calendar closed
17
- */
18
- FOCUSED = "focused",
19
- /**
20
- * Calendar dropdown is open
21
- */
22
- CALENDAR_OPEN = "calendar_open",
23
- /**
24
- * User is selecting the start date (range mode)
25
- */
26
- SELECTING_START = "selecting_start",
27
- /**
28
- * User is selecting the end date (range mode)
29
- */
30
- SELECTING_END = "selecting_end",
31
- /**
32
- * Date(s) have been selected
33
- */
34
- DATE_SELECTED = "date_selected",
35
- /**
36
- * Component is disabled
37
- */
38
- DISABLED = "disabled",
39
- /**
40
- * Component is read-only
41
- */
42
- READONLY = "readonly",
43
- /**
44
- * Component is in an error state
45
- */
46
- ERROR = "error"
47
- }
48
- /**
49
- * Date picker events
50
- */
51
- export declare enum DatePickerEvent {
52
- INPUT_FOCUS = "INPUT_FOCUS",
53
- INPUT_BLUR = "INPUT_BLUR",
54
- INPUT_CHANGE = "INPUT_CHANGE",
55
- CALENDAR_ICON_CLICK = "CALENDAR_ICON_CLICK",
56
- CALENDAR_OPEN = "CALENDAR_OPEN",
57
- CALENDAR_CLOSE = "CALENDAR_CLOSE",
58
- PREV_MONTH = "PREV_MONTH",
59
- NEXT_MONTH = "NEXT_MONTH",
60
- PREV_YEAR = "PREV_YEAR",
61
- NEXT_YEAR = "NEXT_YEAR",
62
- GO_TO_TODAY = "GO_TO_TODAY",
63
- DATE_SELECT = "DATE_SELECT",
64
- RANGE_START_SELECT = "RANGE_START_SELECT",
65
- RANGE_END_SELECT = "RANGE_END_SELECT",
66
- OUTSIDE_CLICK = "OUTSIDE_CLICK",
67
- ESCAPE_KEY = "ESCAPE_KEY",
68
- TAB_KEY = "TAB_KEY",
69
- SHIFT_TAB_KEY = "SHIFT_TAB_KEY",
70
- ENTER_KEY = "ENTER_KEY",
71
- ARROW_UP = "ARROW_UP",
72
- ARROW_DOWN = "ARROW_DOWN",
73
- ARROW_LEFT = "ARROW_LEFT",
74
- ARROW_RIGHT = "ARROW_RIGHT",
75
- PAGE_UP = "PAGE_UP",
76
- PAGE_DOWN = "PAGE_DOWN",
77
- HOME_KEY = "HOME_KEY",
78
- END_KEY = "END_KEY",
79
- DISABLE = "DISABLE",
80
- ENABLE = "ENABLE",
81
- SET_READONLY = "SET_READONLY",
82
- UNSET_READONLY = "UNSET_READONLY",
83
- VALUE_CHANGE = "VALUE_CHANGE",
84
- VALIDATION_ERROR = "VALIDATION_ERROR",
85
- CLEAR_ERROR = "CLEAR_ERROR",
86
- SET_MIN_DATE = "SET_MIN_DATE",
87
- SET_MAX_DATE = "SET_MAX_DATE",
88
- SET_DATE_FORMAT = "SET_DATE_FORMAT"
89
- }
@@ -1,105 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2026
3
- *
4
- * This source code is licensed under the Apache-2.0 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- /**
8
- * Date picker state machine states
9
- */
10
- var DatePickerState;
11
- (function (DatePickerState) {
12
- /**
13
- * Initial state - calendar closed, no focus
14
- */
15
- DatePickerState["IDLE"] = "idle";
16
- /**
17
- * Input has focus, calendar closed
18
- */
19
- DatePickerState["FOCUSED"] = "focused";
20
- /**
21
- * Calendar dropdown is open
22
- */
23
- DatePickerState["CALENDAR_OPEN"] = "calendar_open";
24
- /**
25
- * User is selecting the start date (range mode)
26
- */
27
- DatePickerState["SELECTING_START"] = "selecting_start";
28
- /**
29
- * User is selecting the end date (range mode)
30
- */
31
- DatePickerState["SELECTING_END"] = "selecting_end";
32
- /**
33
- * Date(s) have been selected
34
- */
35
- DatePickerState["DATE_SELECTED"] = "date_selected";
36
- /**
37
- * Component is disabled
38
- */
39
- DatePickerState["DISABLED"] = "disabled";
40
- /**
41
- * Component is read-only
42
- */
43
- DatePickerState["READONLY"] = "readonly";
44
- /**
45
- * Component is in an error state
46
- */
47
- DatePickerState["ERROR"] = "error";
48
- })(DatePickerState || (DatePickerState = {}));
49
- /**
50
- * Date picker events
51
- */
52
- var DatePickerEvent;
53
- (function (DatePickerEvent) {
54
- // Input events
55
- DatePickerEvent["INPUT_FOCUS"] = "INPUT_FOCUS";
56
- DatePickerEvent["INPUT_BLUR"] = "INPUT_BLUR";
57
- DatePickerEvent["INPUT_CHANGE"] = "INPUT_CHANGE";
58
- // Calendar events
59
- DatePickerEvent["CALENDAR_ICON_CLICK"] = "CALENDAR_ICON_CLICK";
60
- DatePickerEvent["CALENDAR_OPEN"] = "CALENDAR_OPEN";
61
- DatePickerEvent["CALENDAR_CLOSE"] = "CALENDAR_CLOSE";
62
- // Calendar navigation events
63
- DatePickerEvent["PREV_MONTH"] = "PREV_MONTH";
64
- DatePickerEvent["NEXT_MONTH"] = "NEXT_MONTH";
65
- DatePickerEvent["PREV_YEAR"] = "PREV_YEAR";
66
- DatePickerEvent["NEXT_YEAR"] = "NEXT_YEAR";
67
- DatePickerEvent["GO_TO_TODAY"] = "GO_TO_TODAY";
68
- // Date selection events
69
- DatePickerEvent["DATE_SELECT"] = "DATE_SELECT";
70
- DatePickerEvent["RANGE_START_SELECT"] = "RANGE_START_SELECT";
71
- DatePickerEvent["RANGE_END_SELECT"] = "RANGE_END_SELECT";
72
- // User interaction events
73
- DatePickerEvent["OUTSIDE_CLICK"] = "OUTSIDE_CLICK";
74
- DatePickerEvent["ESCAPE_KEY"] = "ESCAPE_KEY";
75
- DatePickerEvent["TAB_KEY"] = "TAB_KEY";
76
- DatePickerEvent["SHIFT_TAB_KEY"] = "SHIFT_TAB_KEY";
77
- DatePickerEvent["ENTER_KEY"] = "ENTER_KEY";
78
- // Arrow key navigation
79
- DatePickerEvent["ARROW_UP"] = "ARROW_UP";
80
- DatePickerEvent["ARROW_DOWN"] = "ARROW_DOWN";
81
- DatePickerEvent["ARROW_LEFT"] = "ARROW_LEFT";
82
- DatePickerEvent["ARROW_RIGHT"] = "ARROW_RIGHT";
83
- // Page navigation
84
- DatePickerEvent["PAGE_UP"] = "PAGE_UP";
85
- DatePickerEvent["PAGE_DOWN"] = "PAGE_DOWN";
86
- // Week navigation
87
- DatePickerEvent["HOME_KEY"] = "HOME_KEY";
88
- DatePickerEvent["END_KEY"] = "END_KEY";
89
- // State change events
90
- DatePickerEvent["DISABLE"] = "DISABLE";
91
- DatePickerEvent["ENABLE"] = "ENABLE";
92
- DatePickerEvent["SET_READONLY"] = "SET_READONLY";
93
- DatePickerEvent["UNSET_READONLY"] = "UNSET_READONLY";
94
- DatePickerEvent["VALUE_CHANGE"] = "VALUE_CHANGE";
95
- DatePickerEvent["VALIDATION_ERROR"] = "VALIDATION_ERROR";
96
- DatePickerEvent["CLEAR_ERROR"] = "CLEAR_ERROR";
97
- // Configuration events
98
- DatePickerEvent["SET_MIN_DATE"] = "SET_MIN_DATE";
99
- DatePickerEvent["SET_MAX_DATE"] = "SET_MAX_DATE";
100
- DatePickerEvent["SET_DATE_FORMAT"] = "SET_DATE_FORMAT";
101
- })(DatePickerEvent || (DatePickerEvent = {}));
102
- // Made with Bob
103
-
104
- export { DatePickerEvent, DatePickerState };
105
- //# sourceMappingURL=states.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"states.js","sources":["../../../state-machine/states.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,203 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2026
3
- *
4
- * This source code is licensed under the Apache-2.0 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- /**
8
- * Temporal API utilities for date picker
9
- * Uses the modern Temporal API for robust date handling
10
- */
11
- /**
12
- * Convert a Date object to Temporal.PlainDate
13
- *
14
- * @param {Date} date - JavaScript Date object
15
- * @returns Temporal.PlainDate
16
- */
17
- export declare function dateToPlainDate(date: Date): Temporal.PlainDate;
18
- /**
19
- * Convert Temporal.PlainDate to Date object
20
- *
21
- * @param {Temporal.PlainDate} plainDate - Temporal.PlainDate
22
- * @returns JavaScript Date object
23
- */
24
- export declare function plainDateToDate(plainDate: Temporal.PlainDate): Date;
25
- /**
26
- * Convert Temporal.PlainDate to ISO date string (YYYY-MM-DD)
27
- *
28
- * @param {Temporal.PlainDate} plainDate - Temporal.PlainDate
29
- * @returns ISO date string
30
- */
31
- export declare function plainDateToISOString(plainDate: Temporal.PlainDate): string;
32
- /**
33
- * Parse ISO date string to Temporal.PlainDate
34
- *
35
- * @param {string} isoString - ISO date string (YYYY-MM-DD)
36
- * @returns Temporal.PlainDate or null if invalid
37
- */
38
- export declare function parseISOToPlainDate(isoString: string): Temporal.PlainDate | null;
39
- /**
40
- * Parse a date string in various formats to Temporal.PlainDate
41
- * Supports: ISO (YYYY-MM-DD), US (MM/DD/YYYY), and JavaScript Date objects
42
- *
43
- * @param {string | Date} dateInput - Date string or Date object
44
- * @returns Temporal.PlainDate or null if invalid
45
- */
46
- export declare function parseDateToPlainDate(dateInput: string | Date | null | undefined): Temporal.PlainDate | null;
47
- /**
48
- * Compare two Temporal.PlainDate objects
49
- *
50
- * @param {Temporal.PlainDate} date1 - First date
51
- * @param {Temporal.PlainDate} date2 - Second date
52
- * @returns -1 if date1 < date2, 0 if equal, 1 if date1 > date2
53
- */
54
- export declare function comparePlainDates(date1: Temporal.PlainDate, date2: Temporal.PlainDate): number;
55
- /**
56
- * Check if a date is within a range
57
- *
58
- * @param {Temporal.PlainDate} date - Date to check
59
- * @param {Temporal.PlainDate | null} minDate - Minimum date (inclusive)
60
- * @param {Temporal.PlainDate | null} maxDate - Maximum date (inclusive)
61
- * @returns True if date is within range
62
- */
63
- export declare function isDateInRange(date: Temporal.PlainDate, minDate: Temporal.PlainDate | null, maxDate: Temporal.PlainDate | null): boolean;
64
- /**
65
- * Format a Temporal.PlainDate according to a format string
66
- * Supports common format tokens: Y, m, d
67
- *
68
- * @param {Temporal.PlainDate} date - Date to format
69
- * @param {string} format - Format string (e.g., 'm/d/Y', 'Y-m-d')
70
- * @returns Formatted date string
71
- */
72
- export declare function formatPlainDate(date: Temporal.PlainDate, format: string): string;
73
- /**
74
- * Get today's date as Temporal.PlainDate
75
- *
76
- * @returns Today's date
77
- */
78
- export declare function getToday(): Temporal.PlainDate;
79
- /**
80
- * Add days to a date
81
- *
82
- * @param {Temporal.PlainDate} date - Starting date
83
- * @param {number} days - Number of days to add (can be negative)
84
- * @returns New date
85
- */
86
- export declare function addDays(date: Temporal.PlainDate, days: number): Temporal.PlainDate;
87
- /**
88
- * Add months to a date
89
- *
90
- * @param {Temporal.PlainDate} date - Starting date
91
- * @param {number} months - Number of months to add (can be negative)
92
- * @returns New date
93
- */
94
- export declare function addMonths(date: Temporal.PlainDate, months: number): Temporal.PlainDate;
95
- /**
96
- * Get the number of days between two dates
97
- *
98
- * @param {Temporal.PlainDate} date1 - First date
99
- * @param {Temporal.PlainDate} date2 - Second date
100
- * @returns Number of days (positive if date2 is after date1)
101
- */
102
- export declare function daysBetween(date1: Temporal.PlainDate, date2: Temporal.PlainDate): number;
103
- /**
104
- * Check if two dates are equal
105
- *
106
- * @param {Temporal.PlainDate} date1 - First date
107
- * @param {Temporal.PlainDate} date2 - Second date
108
- * @returns True if dates are equal
109
- */
110
- export declare function areDatesEqual(date1: Temporal.PlainDate | null, date2: Temporal.PlainDate | null): boolean;
111
- /**
112
- * Get the start of the month for a given date
113
- *
114
- * @param {Temporal.PlainDate} date - Input date
115
- * @returns First day of the month
116
- */
117
- export declare function getMonthStart(date: Temporal.PlainDate): Temporal.PlainDate;
118
- /**
119
- * Get the end of the month for a given date
120
- *
121
- * @param {Temporal.PlainDate} date - Input date
122
- * @returns Last day of the month
123
- */
124
- export declare function getMonthEnd(date: Temporal.PlainDate): Temporal.PlainDate;
125
- /**
126
- * Check if a date is today
127
- *
128
- * @param {Temporal.PlainDate} date - Date to check
129
- * @returns True if date is today
130
- */
131
- export declare function isToday(date: Temporal.PlainDate): boolean;
132
- /**
133
- * Check if a date is in the past
134
- *
135
- * @param {Temporal.PlainDate} date - Date to check
136
- * @returns True if date is before today
137
- */
138
- export declare function isPast(date: Temporal.PlainDate): boolean;
139
- /**
140
- * Check if a date is in the future
141
- *
142
- * @param {Temporal.PlainDate} date - Date to check
143
- * @returns True if date is after today
144
- */
145
- export declare function isFuture(date: Temporal.PlainDate): boolean;
146
- /**
147
- * Parse a date string with a specific format
148
- * Supports common format tokens: Y, m, d
149
- *
150
- * @param {string} dateString - Date string to parse
151
- * @param {string} format - Format string (e.g., 'm/d/Y', 'Y-m-d')
152
- * @returns Temporal.PlainDate or null if invalid
153
- */
154
- export declare function parseDateString(dateString: string, format: string): Temporal.PlainDate | null;
155
- /**
156
- * Polyfill check for Temporal API
157
- *
158
- * @returns True if Temporal API is available
159
- */
160
- export declare function isTemporalAvailable(): boolean;
161
- /**
162
- * Get a fallback date handler if Temporal is not available
163
- * This provides a migration path for browsers without Temporal support
164
- */
165
- export declare function getDateHandler(): {
166
- type: "temporal";
167
- toISOString: typeof plainDateToISOString;
168
- fromISOString: typeof parseISOToPlainDate;
169
- compare: typeof comparePlainDates;
170
- format: typeof formatPlainDate;
171
- isInRange: typeof isDateInRange;
172
- } | {
173
- type: "date";
174
- /**
175
- *
176
- * @param {Temporal.PlainDate} date - The date to convert
177
- */
178
- toISOString: (date: Date) => string;
179
- /**
180
- *
181
- * @param {string} str - The ISO string to parse
182
- */
183
- fromISOString: (str: string) => Date | null;
184
- /**
185
- *
186
- * @param {Temporal.PlainDate} d1 - First date
187
- * @param {Temporal.PlainDate} d2 - Second date
188
- */
189
- compare: (d1: Date, d2: Date) => number;
190
- /**
191
- *
192
- * @param {Temporal.PlainDate} date - The date to format
193
- * @param {string} format - The format string
194
- */
195
- format: (date: Date, format: string) => string;
196
- /**
197
- *
198
- * @param {Temporal.PlainDate} date - The date to check
199
- * @param {Temporal.PlainDate | null} min - Minimum date
200
- * @param {Temporal.PlainDate | null} max - Maximum date
201
- */
202
- isInRange: (date: Date, min: Date | null, max: Date | null) => boolean;
203
- };