@sectile/core 0.1.0 → 0.2.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 (298) hide show
  1. package/README.md +3 -2
  2. package/package.json +100 -2
  3. package/dist/accordion.d.ts +0 -43
  4. package/dist/accordion.d.ts.map +0 -1
  5. package/dist/accordion.js +0 -83
  6. package/dist/accordion.js.map +0 -1
  7. package/dist/alert-dialog.d.ts +0 -18
  8. package/dist/alert-dialog.d.ts.map +0 -1
  9. package/dist/alert-dialog.js +0 -9
  10. package/dist/alert-dialog.js.map +0 -1
  11. package/dist/calendar.d.ts +0 -2
  12. package/dist/calendar.d.ts.map +0 -1
  13. package/dist/calendar.js +0 -2
  14. package/dist/calendar.js.map +0 -1
  15. package/dist/carousel.d.ts +0 -40
  16. package/dist/carousel.d.ts.map +0 -1
  17. package/dist/carousel.js +0 -51
  18. package/dist/carousel.js.map +0 -1
  19. package/dist/checkbox-group.d.ts +0 -12
  20. package/dist/checkbox-group.d.ts.map +0 -1
  21. package/dist/checkbox-group.js +0 -12
  22. package/dist/checkbox-group.js.map +0 -1
  23. package/dist/checkbox.d.ts +0 -2
  24. package/dist/checkbox.d.ts.map +0 -1
  25. package/dist/checkbox.js +0 -2
  26. package/dist/checkbox.js.map +0 -1
  27. package/dist/combobox.d.ts +0 -16
  28. package/dist/combobox.d.ts.map +0 -1
  29. package/dist/combobox.js +0 -42
  30. package/dist/combobox.js.map +0 -1
  31. package/dist/date-field.d.ts +0 -58
  32. package/dist/date-field.d.ts.map +0 -1
  33. package/dist/date-field.js +0 -233
  34. package/dist/date-field.js.map +0 -1
  35. package/dist/date-picker.d.ts +0 -53
  36. package/dist/date-picker.d.ts.map +0 -1
  37. package/dist/date-picker.js +0 -157
  38. package/dist/date-picker.js.map +0 -1
  39. package/dist/date-range-picker.d.ts +0 -28
  40. package/dist/date-range-picker.d.ts.map +0 -1
  41. package/dist/date-range-picker.js +0 -85
  42. package/dist/date-range-picker.js.map +0 -1
  43. package/dist/date-time-field.d.ts +0 -53
  44. package/dist/date-time-field.d.ts.map +0 -1
  45. package/dist/date-time-field.js +0 -253
  46. package/dist/date-time-field.js.map +0 -1
  47. package/dist/date-time-picker.d.ts +0 -54
  48. package/dist/date-time-picker.d.ts.map +0 -1
  49. package/dist/date-time-picker.js +0 -151
  50. package/dist/date-time-picker.js.map +0 -1
  51. package/dist/date-time-range-picker.d.ts +0 -67
  52. package/dist/date-time-range-picker.d.ts.map +0 -1
  53. package/dist/date-time-range-picker.js +0 -226
  54. package/dist/date-time-range-picker.js.map +0 -1
  55. package/dist/dialog.d.ts +0 -16
  56. package/dist/dialog.d.ts.map +0 -1
  57. package/dist/dialog.js +0 -5
  58. package/dist/dialog.js.map +0 -1
  59. package/dist/disclosure.d.ts +0 -2
  60. package/dist/disclosure.d.ts.map +0 -1
  61. package/dist/disclosure.js +0 -2
  62. package/dist/disclosure.js.map +0 -1
  63. package/dist/feed.d.ts +0 -29
  64. package/dist/feed.d.ts.map +0 -1
  65. package/dist/feed.js +0 -26
  66. package/dist/feed.js.map +0 -1
  67. package/dist/index.d.ts +0 -17
  68. package/dist/index.d.ts.map +0 -1
  69. package/dist/index.js +0 -2
  70. package/dist/index.js.map +0 -1
  71. package/dist/interaction.d.ts +0 -14
  72. package/dist/interaction.d.ts.map +0 -1
  73. package/dist/interaction.js +0 -38
  74. package/dist/interaction.js.map +0 -1
  75. package/dist/internal/composites/calendar.d.ts +0 -35
  76. package/dist/internal/composites/calendar.d.ts.map +0 -1
  77. package/dist/internal/composites/calendar.js +0 -139
  78. package/dist/internal/composites/calendar.js.map +0 -1
  79. package/dist/internal/composites/combobox.d.ts +0 -41
  80. package/dist/internal/composites/combobox.d.ts.map +0 -1
  81. package/dist/internal/composites/combobox.js +0 -184
  82. package/dist/internal/composites/combobox.js.map +0 -1
  83. package/dist/internal/composites/grid-control.d.ts +0 -36
  84. package/dist/internal/composites/grid-control.d.ts.map +0 -1
  85. package/dist/internal/composites/grid-control.js +0 -86
  86. package/dist/internal/composites/grid-control.js.map +0 -1
  87. package/dist/internal/composites/linear-action.d.ts +0 -35
  88. package/dist/internal/composites/linear-action.d.ts.map +0 -1
  89. package/dist/internal/composites/linear-action.js +0 -92
  90. package/dist/internal/composites/linear-action.js.map +0 -1
  91. package/dist/internal/composites/linear-choice.d.ts +0 -41
  92. package/dist/internal/composites/linear-choice.d.ts.map +0 -1
  93. package/dist/internal/composites/linear-choice.js +0 -139
  94. package/dist/internal/composites/linear-choice.js.map +0 -1
  95. package/dist/internal/composites/listbox.d.ts +0 -50
  96. package/dist/internal/composites/listbox.d.ts.map +0 -1
  97. package/dist/internal/composites/listbox.js +0 -243
  98. package/dist/internal/composites/listbox.js.map +0 -1
  99. package/dist/internal/composites/menu.d.ts +0 -28
  100. package/dist/internal/composites/menu.d.ts.map +0 -1
  101. package/dist/internal/composites/menu.js +0 -72
  102. package/dist/internal/composites/menu.js.map +0 -1
  103. package/dist/internal/composites/popup.d.ts +0 -20
  104. package/dist/internal/composites/popup.d.ts.map +0 -1
  105. package/dist/internal/composites/popup.js +0 -8
  106. package/dist/internal/composites/popup.js.map +0 -1
  107. package/dist/internal/composites/slider.d.ts +0 -20
  108. package/dist/internal/composites/slider.d.ts.map +0 -1
  109. package/dist/internal/composites/slider.js +0 -69
  110. package/dist/internal/composites/slider.js.map +0 -1
  111. package/dist/internal/composites/tree-grid.d.ts +0 -65
  112. package/dist/internal/composites/tree-grid.d.ts.map +0 -1
  113. package/dist/internal/composites/tree-grid.js +0 -274
  114. package/dist/internal/composites/tree-grid.js.map +0 -1
  115. package/dist/internal/composites/tree-view.d.ts +0 -39
  116. package/dist/internal/composites/tree-view.d.ts.map +0 -1
  117. package/dist/internal/composites/tree-view.js +0 -175
  118. package/dist/internal/composites/tree-view.js.map +0 -1
  119. package/dist/internal/editing/text.d.ts +0 -64
  120. package/dist/internal/editing/text.d.ts.map +0 -1
  121. package/dist/internal/editing/text.js +0 -238
  122. package/dist/internal/editing/text.js.map +0 -1
  123. package/dist/internal/kernel/decimal.d.ts +0 -22
  124. package/dist/internal/kernel/decimal.d.ts.map +0 -1
  125. package/dist/internal/kernel/decimal.js +0 -137
  126. package/dist/internal/kernel/decimal.js.map +0 -1
  127. package/dist/internal/kernel/foundation.d.ts +0 -12
  128. package/dist/internal/kernel/foundation.d.ts.map +0 -1
  129. package/dist/internal/kernel/foundation.js +0 -132
  130. package/dist/internal/kernel/foundation.js.map +0 -1
  131. package/dist/internal/kernel/indexed-sequence.d.ts +0 -26
  132. package/dist/internal/kernel/indexed-sequence.d.ts.map +0 -1
  133. package/dist/internal/kernel/indexed-sequence.js +0 -117
  134. package/dist/internal/kernel/indexed-sequence.js.map +0 -1
  135. package/dist/internal/kernel/machine.d.ts +0 -8
  136. package/dist/internal/kernel/machine.d.ts.map +0 -1
  137. package/dist/internal/kernel/machine.js +0 -6
  138. package/dist/internal/kernel/machine.js.map +0 -1
  139. package/dist/internal/runtime/revision.d.ts +0 -22
  140. package/dist/internal/runtime/revision.d.ts.map +0 -1
  141. package/dist/internal/runtime/revision.js +0 -72
  142. package/dist/internal/runtime/revision.js.map +0 -1
  143. package/dist/internal/state/checked.d.ts +0 -21
  144. package/dist/internal/state/checked.d.ts.map +0 -1
  145. package/dist/internal/state/checked.js +0 -29
  146. package/dist/internal/state/checked.js.map +0 -1
  147. package/dist/internal/state/cursor.d.ts +0 -13
  148. package/dist/internal/state/cursor.d.ts.map +0 -1
  149. package/dist/internal/state/cursor.js +0 -24
  150. package/dist/internal/state/cursor.js.map +0 -1
  151. package/dist/internal/state/expansion.d.ts +0 -8
  152. package/dist/internal/state/expansion.d.ts.map +0 -1
  153. package/dist/internal/state/expansion.js +0 -23
  154. package/dist/internal/state/expansion.js.map +0 -1
  155. package/dist/internal/state/open-state.d.ts +0 -16
  156. package/dist/internal/state/open-state.d.ts.map +0 -1
  157. package/dist/internal/state/open-state.js +0 -25
  158. package/dist/internal/state/open-state.js.map +0 -1
  159. package/dist/internal/state/selection.d.ts +0 -23
  160. package/dist/internal/state/selection.d.ts.map +0 -1
  161. package/dist/internal/state/selection.js +0 -110
  162. package/dist/internal/state/selection.js.map +0 -1
  163. package/dist/listbox.d.ts +0 -2
  164. package/dist/listbox.d.ts.map +0 -1
  165. package/dist/listbox.js +0 -2
  166. package/dist/listbox.js.map +0 -1
  167. package/dist/menu-button.d.ts +0 -3
  168. package/dist/menu-button.d.ts.map +0 -1
  169. package/dist/menu-button.js +0 -3
  170. package/dist/menu-button.js.map +0 -1
  171. package/dist/menu.d.ts +0 -8
  172. package/dist/menu.d.ts.map +0 -1
  173. package/dist/menu.js +0 -4
  174. package/dist/menu.js.map +0 -1
  175. package/dist/menubar.d.ts +0 -3
  176. package/dist/menubar.d.ts.map +0 -1
  177. package/dist/menubar.js +0 -3
  178. package/dist/menubar.js.map +0 -1
  179. package/dist/multi-thumb-slider.d.ts +0 -35
  180. package/dist/multi-thumb-slider.d.ts.map +0 -1
  181. package/dist/multi-thumb-slider.js +0 -68
  182. package/dist/multi-thumb-slider.js.map +0 -1
  183. package/dist/number-field.d.ts +0 -49
  184. package/dist/number-field.d.ts.map +0 -1
  185. package/dist/number-field.js +0 -454
  186. package/dist/number-field.js.map +0 -1
  187. package/dist/pagination.d.ts +0 -63
  188. package/dist/pagination.d.ts.map +0 -1
  189. package/dist/pagination.js +0 -190
  190. package/dist/pagination.js.map +0 -1
  191. package/dist/pin-input.d.ts +0 -29
  192. package/dist/pin-input.d.ts.map +0 -1
  193. package/dist/pin-input.js +0 -49
  194. package/dist/pin-input.js.map +0 -1
  195. package/dist/quantity-field.d.ts +0 -58
  196. package/dist/quantity-field.d.ts.map +0 -1
  197. package/dist/quantity-field.js +0 -250
  198. package/dist/quantity-field.js.map +0 -1
  199. package/dist/radio-group.d.ts +0 -22
  200. package/dist/radio-group.d.ts.map +0 -1
  201. package/dist/radio-group.js +0 -16
  202. package/dist/radio-group.js.map +0 -1
  203. package/dist/rating.d.ts +0 -17
  204. package/dist/rating.d.ts.map +0 -1
  205. package/dist/rating.js +0 -15
  206. package/dist/rating.js.map +0 -1
  207. package/dist/result.d.ts +0 -10
  208. package/dist/result.d.ts.map +0 -1
  209. package/dist/result.js +0 -19
  210. package/dist/result.js.map +0 -1
  211. package/dist/revision.d.ts +0 -2
  212. package/dist/revision.d.ts.map +0 -1
  213. package/dist/revision.js +0 -2
  214. package/dist/revision.js.map +0 -1
  215. package/dist/select.d.ts +0 -30
  216. package/dist/select.d.ts.map +0 -1
  217. package/dist/select.js +0 -28
  218. package/dist/select.js.map +0 -1
  219. package/dist/shared.d.ts +0 -42
  220. package/dist/shared.d.ts.map +0 -1
  221. package/dist/shared.js +0 -3
  222. package/dist/shared.js.map +0 -1
  223. package/dist/slider.d.ts +0 -2
  224. package/dist/slider.d.ts.map +0 -1
  225. package/dist/slider.js +0 -2
  226. package/dist/slider.js.map +0 -1
  227. package/dist/spin-button.d.ts +0 -29
  228. package/dist/spin-button.d.ts.map +0 -1
  229. package/dist/spin-button.js +0 -61
  230. package/dist/spin-button.js.map +0 -1
  231. package/dist/stepper.d.ts +0 -17
  232. package/dist/stepper.d.ts.map +0 -1
  233. package/dist/stepper.js +0 -12
  234. package/dist/stepper.js.map +0 -1
  235. package/dist/structures/grid.d.ts +0 -27
  236. package/dist/structures/grid.d.ts.map +0 -1
  237. package/dist/structures/grid.js +0 -197
  238. package/dist/structures/grid.js.map +0 -1
  239. package/dist/structures/range.d.ts +0 -39
  240. package/dist/structures/range.d.ts.map +0 -1
  241. package/dist/structures/range.js +0 -242
  242. package/dist/structures/range.js.map +0 -1
  243. package/dist/structures/sequence.d.ts +0 -17
  244. package/dist/structures/sequence.d.ts.map +0 -1
  245. package/dist/structures/sequence.js +0 -24
  246. package/dist/structures/sequence.js.map +0 -1
  247. package/dist/structures/tree.d.ts +0 -32
  248. package/dist/structures/tree.d.ts.map +0 -1
  249. package/dist/structures/tree.js +0 -234
  250. package/dist/structures/tree.js.map +0 -1
  251. package/dist/switch.d.ts +0 -20
  252. package/dist/switch.d.ts.map +0 -1
  253. package/dist/switch.js +0 -4
  254. package/dist/switch.js.map +0 -1
  255. package/dist/tabs.d.ts +0 -15
  256. package/dist/tabs.d.ts.map +0 -1
  257. package/dist/tabs.js +0 -23
  258. package/dist/tabs.js.map +0 -1
  259. package/dist/tags-input.d.ts +0 -41
  260. package/dist/tags-input.d.ts.map +0 -1
  261. package/dist/tags-input.js +0 -44
  262. package/dist/tags-input.js.map +0 -1
  263. package/dist/text.d.ts +0 -2
  264. package/dist/text.d.ts.map +0 -1
  265. package/dist/text.js +0 -2
  266. package/dist/text.js.map +0 -1
  267. package/dist/time-field.d.ts +0 -46
  268. package/dist/time-field.d.ts.map +0 -1
  269. package/dist/time-field.js +0 -148
  270. package/dist/time-field.js.map +0 -1
  271. package/dist/toggle-button.d.ts +0 -19
  272. package/dist/toggle-button.d.ts.map +0 -1
  273. package/dist/toggle-button.js +0 -16
  274. package/dist/toggle-button.js.map +0 -1
  275. package/dist/toolbar.d.ts +0 -2
  276. package/dist/toolbar.d.ts.map +0 -1
  277. package/dist/toolbar.js +0 -2
  278. package/dist/toolbar.js.map +0 -1
  279. package/dist/tooltip.d.ts +0 -2
  280. package/dist/tooltip.d.ts.map +0 -1
  281. package/dist/tooltip.js +0 -2
  282. package/dist/tooltip.js.map +0 -1
  283. package/dist/tree-grid.d.ts +0 -10
  284. package/dist/tree-grid.d.ts.map +0 -1
  285. package/dist/tree-grid.js +0 -14
  286. package/dist/tree-grid.js.map +0 -1
  287. package/dist/tree-view.d.ts +0 -2
  288. package/dist/tree-view.d.ts.map +0 -1
  289. package/dist/tree-view.js +0 -2
  290. package/dist/tree-view.js.map +0 -1
  291. package/dist/units.d.ts +0 -72
  292. package/dist/units.d.ts.map +0 -1
  293. package/dist/units.js +0 -496
  294. package/dist/units.js.map +0 -1
  295. package/dist/window-splitter.d.ts +0 -2
  296. package/dist/window-splitter.d.ts.map +0 -1
  297. package/dist/window-splitter.js +0 -2
  298. package/dist/window-splitter.js.map +0 -1
@@ -1,58 +0,0 @@
1
- import type { Result } from './shared.js';
2
- import { type TextEditingState, type TextEvent } from './text.js';
3
- export interface DateValue {
4
- readonly year: number;
5
- readonly month: number;
6
- readonly day: number;
7
- }
8
- export interface DateRange {
9
- readonly start: DateValue;
10
- readonly end: DateValue;
11
- }
12
- export type DateSegment = 'year' | 'month' | 'day';
13
- export interface DateFieldState {
14
- readonly value: DateValue | null;
15
- readonly inputState: TextEditingState;
16
- }
17
- export type DateFieldEvent = {
18
- readonly type: 'text';
19
- readonly event: TextEvent;
20
- } | {
21
- readonly type: 'set-value';
22
- readonly value: DateValue | null;
23
- } | 'increment-segment' | 'decrement-segment' | 'commit' | 'cancel';
24
- export type DateFieldCommand = {
25
- readonly type: 'input-state-changed';
26
- readonly value: TextEditingState;
27
- } | {
28
- readonly type: 'value-committed';
29
- readonly value: DateValue | null;
30
- };
31
- export interface DateFieldPolicies {
32
- readonly min?: DateValue;
33
- readonly max?: DateValue;
34
- readonly required?: boolean;
35
- readonly unavailable?: (value: DateValue) => boolean;
36
- }
37
- export interface DateFieldUpdate {
38
- readonly state: DateFieldState;
39
- readonly commands: readonly DateFieldCommand[];
40
- }
41
- export declare function createDateValue(year: number, month: number, day: number): Result<DateValue>;
42
- export declare function parseDateValue(text: string): Result<DateValue>;
43
- export declare function formatDateValue(value: DateValue): string;
44
- export declare function compareDateValues(left: DateValue, right: DateValue): -1 | 0 | 1;
45
- export declare function differenceInDateDays(left: DateValue, right: DateValue): number;
46
- /** ISO weekday: Monday is 1 and Sunday is 7. */
47
- export declare function dateDayOfWeek(value: DateValue): 1 | 2 | 3 | 4 | 5 | 6 | 7;
48
- export declare function addDateDays(value: DateValue, amount: number): Result<DateValue>;
49
- export declare function addDateMonths(value: DateValue, amount: number): Result<DateValue>;
50
- export declare function addDateYears(value: DateValue, amount: number): Result<DateValue>;
51
- export declare function createDateRange(start: DateValue, end: DateValue): Result<DateRange>;
52
- export declare function dateRangeContains(range: DateRange, value: DateValue): boolean;
53
- export declare function createDateFieldState(value?: DateValue | null, inputState?: TextEditingState): Result<DateFieldState>;
54
- export declare function applyDateFieldEvent(state: DateFieldState, event: DateFieldEvent, policies?: DateFieldPolicies): Result<DateFieldUpdate>;
55
- export declare function dateSegmentAt(offset: number): DateSegment;
56
- export declare function daysInMonth(year: number, month: number): number;
57
- export declare function isLeapYear(year: number): boolean;
58
- //# sourceMappingURL=date-field.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-field.d.ts","sourceRoot":"","sources":["../src/date-field.ts"],"names":[],"mappings":"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"}
@@ -1,233 +0,0 @@
1
- import { fail, ok } from './internal/kernel/foundation.js';
2
- import { createMachineUpdate } from './internal/kernel/machine.js';
3
- import { applyTextEvent, createTextEditingState, normalizeTextEditingState, } from './text.js';
4
- const DATE_FIELD_MAX_CODE_UNITS = 10;
5
- export function createDateValue(year, month, day) {
6
- if (!Number.isSafeInteger(year) || year < 1 || year > 9_999) {
7
- return fail('construction', 'invalid-date-year', 'Date year must be an integer from 1 through 9999.', { year });
8
- }
9
- if (!Number.isSafeInteger(month) || month < 1 || month > 12) {
10
- return fail('construction', 'invalid-date-month', 'Date month must be an integer from 1 through 12.', { month });
11
- }
12
- const maximum = daysInMonth(year, month);
13
- if (!Number.isSafeInteger(day) || day < 1 || day > maximum) {
14
- return fail('construction', 'invalid-date-day', 'Date day must exist in its Gregorian month.', { year, month, day });
15
- }
16
- return ok(Object.freeze({ year, month, day }));
17
- }
18
- export function parseDateValue(text) {
19
- if (typeof text !== 'string')
20
- return fail('construction', 'invalid-date-text', 'Date text must be a string.');
21
- const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(text);
22
- return match === null
23
- ? fail('transition-rejection', 'invalid-date-format', 'Date text must use YYYY-MM-DD.', { text })
24
- : createDateValue(Number(match[1]), Number(match[2]), Number(match[3]));
25
- }
26
- export function formatDateValue(value) {
27
- return `${String(value.year).padStart(4, '0')}-${String(value.month).padStart(2, '0')}-${String(value.day).padStart(2, '0')}`;
28
- }
29
- export function compareDateValues(left, right) {
30
- const leftDay = dateToOrdinal(left);
31
- const rightDay = dateToOrdinal(right);
32
- return leftDay < rightDay ? -1 : leftDay > rightDay ? 1 : 0;
33
- }
34
- export function differenceInDateDays(left, right) {
35
- return dateToOrdinal(left) - dateToOrdinal(right);
36
- }
37
- /** ISO weekday: Monday is 1 and Sunday is 7. */
38
- export function dateDayOfWeek(value) {
39
- const thursday = dateToOrdinal(Object.freeze({ year: 1970, month: 1, day: 1 }));
40
- return (((dateToOrdinal(value) - thursday + 3) % 7 + 7) % 7 + 1);
41
- }
42
- export function addDateDays(value, amount) {
43
- if (!Number.isSafeInteger(amount))
44
- return fail('transition-rejection', 'invalid-date-day-delta', 'Date day delta must be a safe integer.');
45
- const result = ordinalToDate(dateToOrdinal(value) + amount);
46
- return result.year < 1 || result.year > 9_999
47
- ? fail('transition-rejection', 'date-outside-supported-range', 'Date arithmetic must remain between years 1 and 9999.')
48
- : ok(result);
49
- }
50
- export function addDateMonths(value, amount) {
51
- if (!Number.isSafeInteger(amount))
52
- return fail('transition-rejection', 'invalid-date-month-delta', 'Date month delta must be a safe integer.');
53
- const absolute = value.year * 12 + value.month - 1 + amount;
54
- const year = Math.floor(absolute / 12);
55
- const month = absolute - year * 12 + 1;
56
- if (year < 1 || year > 9_999)
57
- return fail('transition-rejection', 'date-outside-supported-range', 'Date arithmetic must remain between years 1 and 9999.');
58
- return createDateValue(year, month, Math.min(value.day, daysInMonth(year, month)));
59
- }
60
- export function addDateYears(value, amount) {
61
- if (!Number.isSafeInteger(amount))
62
- return fail('transition-rejection', 'invalid-date-year-delta', 'Date year delta must be a safe integer.');
63
- const year = value.year + amount;
64
- if (year < 1 || year > 9_999)
65
- return fail('transition-rejection', 'date-outside-supported-range', 'Date arithmetic must remain between years 1 and 9999.');
66
- return createDateValue(year, value.month, Math.min(value.day, daysInMonth(year, value.month)));
67
- }
68
- export function createDateRange(start, end) {
69
- const validStart = createDateValue(start.year, start.month, start.day);
70
- if (!validStart.ok)
71
- return validStart;
72
- const validEnd = createDateValue(end.year, end.month, end.day);
73
- if (!validEnd.ok)
74
- return validEnd;
75
- if (compareDateValues(validStart.value, validEnd.value) > 0) {
76
- return fail('construction', 'inverted-date-range', 'Date range start must not follow its end.');
77
- }
78
- return ok(Object.freeze({ start: validStart.value, end: validEnd.value }));
79
- }
80
- export function dateRangeContains(range, value) {
81
- return compareDateValues(range.start, value) <= 0 && compareDateValues(value, range.end) <= 0;
82
- }
83
- export function createDateFieldState(value = null, inputState) {
84
- const valid = value === null ? ok(null) : createDateValue(value.year, value.month, value.day);
85
- if (!valid.ok)
86
- return valid;
87
- const input = inputState === undefined
88
- ? committedInput(valid.value)
89
- : normalizeTextEditingState(inputState);
90
- if (!input.ok)
91
- return input;
92
- if (input.value.snapshot.text.length > DATE_FIELD_MAX_CODE_UNITS) {
93
- return fail('construction', 'date-field-draft-too-long', 'Date field drafts must fit YYYY-MM-DD.');
94
- }
95
- return ok(Object.freeze({ value: valid.value, inputState: input.value }));
96
- }
97
- export function applyDateFieldEvent(state, event, policies = {}) {
98
- const valid = createDateFieldState(state.value, state.inputState);
99
- if (!valid.ok)
100
- return transitionFailure(valid);
101
- const bounds = validatePolicies(policies);
102
- if (!bounds.ok)
103
- return bounds;
104
- if (typeof event === 'object' && event.type === 'text') {
105
- const edited = applyTextEvent(valid.value.inputState, event.event);
106
- if (!edited.ok)
107
- return edited;
108
- if (edited.value.state.snapshot.text.length > DATE_FIELD_MAX_CODE_UNITS) {
109
- return fail('transition-rejection', 'date-field-draft-too-long', 'Date field drafts must fit YYYY-MM-DD.');
110
- }
111
- return createMachineUpdate(Object.freeze({ value: valid.value.value, inputState: edited.value.state }), [
112
- { type: 'input-state-changed', value: edited.value.state },
113
- ]);
114
- }
115
- if (typeof event === 'object' && event.type === 'set-value') {
116
- return commitValue(event.value, policies);
117
- }
118
- if (event === 'cancel') {
119
- const input = committedInput(valid.value.value);
120
- if (!input.ok)
121
- return input;
122
- return createMachineUpdate(Object.freeze({ value: valid.value.value, inputState: input.value }), [
123
- { type: 'input-state-changed', value: input.value },
124
- ]);
125
- }
126
- if (event === 'increment-segment' || event === 'decrement-segment') {
127
- const draft = parseDateValue(valid.value.inputState.snapshot.text);
128
- if (!draft.ok)
129
- return draft;
130
- const base = draft.value;
131
- const amount = event === 'increment-segment' ? 1 : -1;
132
- const segment = dateSegmentAt(valid.value.inputState.snapshot.selection.focusCodeUnitOffset);
133
- const adjusted = segment === 'year' ? addDateYears(base, amount)
134
- : segment === 'month' ? addDateMonths(base, amount)
135
- : addDateDays(base, amount);
136
- return adjusted.ok ? commitValue(adjusted.value, policies, segment) : adjusted;
137
- }
138
- if (event !== 'commit')
139
- return fail('transition-rejection', 'unsupported-date-field-event', 'Date field event is unsupported.');
140
- if (valid.value.inputState.composition !== null)
141
- return fail('transition-rejection', 'date-field-composition-active', 'Date field cannot commit while text composition is active.');
142
- const text = valid.value.inputState.snapshot.text.trim();
143
- if (text.length === 0)
144
- return commitValue(null, policies);
145
- const parsed = parseDateValue(text);
146
- return parsed.ok ? commitValue(parsed.value, policies) : parsed;
147
- }
148
- export function dateSegmentAt(offset) {
149
- return offset <= 4 ? 'year' : offset <= 7 ? 'month' : 'day';
150
- }
151
- export function daysInMonth(year, month) {
152
- return month === 2 ? (isLeapYear(year) ? 29 : 28) : (month === 4 || month === 6 || month === 9 || month === 11 ? 30 : 31);
153
- }
154
- export function isLeapYear(year) {
155
- return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
156
- }
157
- function commitValue(value, policies, segment) {
158
- if (value === null) {
159
- if (policies.required === true)
160
- return fail('transition-rejection', 'date-field-value-required', 'Date field requires a value.');
161
- }
162
- else {
163
- const valid = createDateValue(value.year, value.month, value.day);
164
- if (!valid.ok)
165
- return transitionFailure(valid);
166
- value = valid.value;
167
- if (policies.min !== undefined && compareDateValues(value, policies.min) < 0)
168
- return fail('transition-rejection', 'date-field-value-below-minimum', 'Date field value is below its minimum.');
169
- if (policies.max !== undefined && compareDateValues(value, policies.max) > 0)
170
- return fail('transition-rejection', 'date-field-value-above-maximum', 'Date field value is above its maximum.');
171
- if (policies.unavailable?.(value) === true)
172
- return fail('transition-rejection', 'date-field-value-unavailable', 'Date field value is unavailable.');
173
- }
174
- const input = committedInput(value, segment);
175
- if (!input.ok)
176
- return input;
177
- return createMachineUpdate(Object.freeze({ value, inputState: input.value }), [
178
- { type: 'input-state-changed', value: input.value },
179
- { type: 'value-committed', value },
180
- ]);
181
- }
182
- function committedInput(value, segment) {
183
- const text = value === null ? '' : formatDateValue(value);
184
- const selection = segment === undefined ? { anchorCodeUnitOffset: text.length, focusCodeUnitOffset: text.length }
185
- : segment === 'year' ? { anchorCodeUnitOffset: 0, focusCodeUnitOffset: 4 }
186
- : segment === 'month' ? { anchorCodeUnitOffset: 5, focusCodeUnitOffset: 7 }
187
- : { anchorCodeUnitOffset: 8, focusCodeUnitOffset: 10 };
188
- return createTextEditingState(text, selection);
189
- }
190
- function validatePolicies(policies) {
191
- if (policies.unavailable !== undefined && typeof policies.unavailable !== 'function')
192
- return fail('construction', 'invalid-date-unavailable-policy', 'Date unavailable policy must be a function.');
193
- if (policies.min !== undefined) {
194
- const min = createDateValue(policies.min.year, policies.min.month, policies.min.day);
195
- if (!min.ok)
196
- return min;
197
- }
198
- if (policies.max !== undefined) {
199
- const max = createDateValue(policies.max.year, policies.max.month, policies.max.day);
200
- if (!max.ok)
201
- return max;
202
- }
203
- if (policies.min !== undefined && policies.max !== undefined && compareDateValues(policies.min, policies.max) > 0)
204
- return fail('construction', 'inverted-date-field-bounds', 'Date field minimum must not follow its maximum.');
205
- return ok(true);
206
- }
207
- function transitionFailure(result) {
208
- return result.ok ? fail('internal-invariant', 'unexpected-valid-result', 'Expected an invalid result.') : { ok: false, error: { ...result.error, class: 'transition-rejection' } };
209
- }
210
- function dateToOrdinal(value) {
211
- let year = value.year;
212
- const month = value.month;
213
- year -= month <= 2 ? 1 : 0;
214
- const era = Math.floor(year / 400);
215
- const yearOfEra = year - era * 400;
216
- const monthPrime = month + (month > 2 ? -3 : 9);
217
- const dayOfYear = Math.floor((153 * monthPrime + 2) / 5) + value.day - 1;
218
- const dayOfEra = yearOfEra * 365 + Math.floor(yearOfEra / 4) - Math.floor(yearOfEra / 100) + dayOfYear;
219
- return era * 146097 + dayOfEra;
220
- }
221
- function ordinalToDate(ordinal) {
222
- const era = Math.floor(ordinal / 146097);
223
- const dayOfEra = ordinal - era * 146097;
224
- const yearOfEra = Math.floor((dayOfEra - Math.floor(dayOfEra / 1460) + Math.floor(dayOfEra / 36524) - Math.floor(dayOfEra / 146096)) / 365);
225
- let year = yearOfEra + era * 400;
226
- const dayOfYear = dayOfEra - (365 * yearOfEra + Math.floor(yearOfEra / 4) - Math.floor(yearOfEra / 100));
227
- const monthPrime = Math.floor((5 * dayOfYear + 2) / 153);
228
- const day = dayOfYear - Math.floor((153 * monthPrime + 2) / 5) + 1;
229
- const month = monthPrime + (monthPrime < 10 ? 3 : -9);
230
- year += month <= 2 ? 1 : 0;
231
- return Object.freeze({ year, month, day });
232
- }
233
- //# sourceMappingURL=date-field.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-field.js","sourceRoot":"","sources":["../src/date-field.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- import type { Result } from './shared.js';
2
- import { type DateValue } from './date-field.js';
3
- export interface DatePickerView {
4
- readonly year: number;
5
- readonly month: number;
6
- }
7
- export interface DatePickerState {
8
- readonly value: DateValue | null;
9
- readonly highlighted: DateValue;
10
- readonly view: DatePickerView;
11
- readonly open: boolean;
12
- }
13
- export type DatePickerEvent = 'open' | 'close' | 'toggle' | 'previous-month' | 'next-month' | 'previous-year' | 'next-year' | 'previous-day' | 'next-day' | 'previous-week' | 'next-week' | 'start-of-week' | 'end-of-week' | 'select-highlighted' | {
14
- readonly type: 'select';
15
- readonly value: DateValue;
16
- } | {
17
- readonly type: 'set-value';
18
- readonly value: DateValue | null;
19
- };
20
- export type DatePickerCommand = {
21
- readonly type: 'value-committed';
22
- readonly value: DateValue | null;
23
- } | {
24
- readonly type: 'highlight-changed';
25
- readonly value: DateValue;
26
- } | {
27
- readonly type: 'open-changed';
28
- readonly open: boolean;
29
- };
30
- export interface DatePickerPolicies {
31
- readonly min?: DateValue;
32
- readonly max?: DateValue;
33
- readonly required?: boolean;
34
- readonly unavailable?: (value: DateValue) => boolean;
35
- readonly weekStartsOn?: 1 | 2 | 3 | 4 | 5 | 6 | 7;
36
- readonly maxScan?: number;
37
- }
38
- export interface DatePickerUpdate {
39
- readonly state: DatePickerState;
40
- readonly commands: readonly DatePickerCommand[];
41
- }
42
- export interface DatePickerStateInput {
43
- readonly value?: DateValue | null;
44
- readonly highlighted?: DateValue;
45
- readonly view?: DatePickerView;
46
- readonly open?: boolean;
47
- }
48
- export declare function createDatePickerState(input?: DatePickerStateInput): Result<DatePickerState>;
49
- export declare function applyDatePickerEvent(state: DatePickerState, event: DatePickerEvent, policies?: DatePickerPolicies): Result<DatePickerUpdate>;
50
- export declare function createDatePickerMonth(view: DatePickerView, weekStartsOn?: 1 | 2 | 3 | 4 | 5 | 6 | 7): Result<readonly (readonly DateValue[])[]>;
51
- export declare function isDatePickerValueAvailable(value: DateValue, policies?: DatePickerPolicies): boolean;
52
- export declare function datePickerID(value: DateValue): string;
53
- //# sourceMappingURL=date-picker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../src/date-picker.ts"],"names":[],"mappings":"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"}
@@ -1,157 +0,0 @@
1
- import { fail, freezeArray, ok } from './internal/kernel/foundation.js';
2
- import { createMachineUpdate } from './internal/kernel/machine.js';
3
- import { addDateDays, addDateMonths, addDateYears, compareDateValues, createDateValue, dateDayOfWeek, formatDateValue, } from './date-field.js';
4
- export function createDatePickerState(input = {}) {
5
- const value = input.value ?? null;
6
- if (value !== null) {
7
- const valid = createDateValue(value.year, value.month, value.day);
8
- if (!valid.ok)
9
- return valid;
10
- }
11
- const fallback = value ?? Object.freeze({ year: 1970, month: 1, day: 1 });
12
- const highlighted = input.highlighted ?? fallback;
13
- const validHighlight = createDateValue(highlighted.year, highlighted.month, highlighted.day);
14
- if (!validHighlight.ok)
15
- return validHighlight;
16
- const view = input.view ?? Object.freeze({ year: validHighlight.value.year, month: validHighlight.value.month });
17
- const validView = createDateValue(view.year, view.month, 1);
18
- if (!validView.ok)
19
- return validView;
20
- if (typeof input.open !== 'undefined' && typeof input.open !== 'boolean')
21
- return fail('construction', 'invalid-date-picker-open', 'Date picker open state must be boolean.');
22
- return ok(pickerState(value, validHighlight.value, Object.freeze({ year: view.year, month: view.month }), input.open ?? false));
23
- }
24
- export function applyDatePickerEvent(state, event, policies = {}) {
25
- const valid = createDatePickerState(state);
26
- if (!valid.ok)
27
- return invalidTransition(valid);
28
- const policy = validatePolicies(policies);
29
- if (!policy.ok)
30
- return policy;
31
- if (event === 'open' || event === 'close' || event === 'toggle') {
32
- const open = event === 'toggle' ? !state.open : event === 'open';
33
- if (open === state.open)
34
- return createMachineUpdate(state);
35
- return createMachineUpdate(pickerState(state.value, state.highlighted, state.view, open), [{ type: 'open-changed', open }]);
36
- }
37
- if (typeof event === 'object' && event.type === 'set-value')
38
- return commit(event.value, state, policies, false);
39
- if (typeof event === 'object' && event.type === 'select')
40
- return commit(event.value, state, policies, true);
41
- if (event === 'select-highlighted')
42
- return commit(state.highlighted, state, policies, true);
43
- let moved;
44
- if (event === 'previous-month' || event === 'next-month')
45
- moved = addDateMonths(state.highlighted, event === 'previous-month' ? -1 : 1);
46
- else if (event === 'previous-year' || event === 'next-year')
47
- moved = addDateYears(state.highlighted, event === 'previous-year' ? -1 : 1);
48
- else if (event === 'previous-day' || event === 'next-day')
49
- moved = addDateDays(state.highlighted, event === 'previous-day' ? -1 : 1);
50
- else if (event === 'previous-week' || event === 'next-week')
51
- moved = addDateDays(state.highlighted, event === 'previous-week' ? -7 : 7);
52
- else if (event === 'start-of-week' || event === 'end-of-week') {
53
- const start = policies.weekStartsOn ?? 1;
54
- const relative = (dateDayOfWeek(state.highlighted) - start + 7) % 7;
55
- moved = addDateDays(state.highlighted, event === 'start-of-week' ? -relative : 6 - relative);
56
- }
57
- else
58
- return fail('transition-rejection', 'unsupported-date-picker-event', 'Date picker event is unsupported.');
59
- if (!moved.ok)
60
- return moved;
61
- const direction = compareDateValues(moved.value, state.highlighted) < 0 ? -1 : 1;
62
- const eligible = findEligible(moved.value, direction, policies);
63
- if (!eligible.ok)
64
- return eligible;
65
- if (eligible.value === null || compareDateValues(eligible.value, state.highlighted) === 0)
66
- return createMachineUpdate(state);
67
- const view = Object.freeze({ year: eligible.value.year, month: eligible.value.month });
68
- return createMachineUpdate(pickerState(state.value, eligible.value, view, state.open), [{ type: 'highlight-changed', value: eligible.value }]);
69
- }
70
- export function createDatePickerMonth(view, weekStartsOn = 1) {
71
- const first = createDateValue(view.year, view.month, 1);
72
- if (!first.ok)
73
- return first;
74
- if (!Number.isSafeInteger(weekStartsOn) || weekStartsOn < 1 || weekStartsOn > 7)
75
- return fail('construction', 'invalid-week-start', 'Week start must be an ISO weekday from 1 through 7.');
76
- const offset = (dateDayOfWeek(first.value) - weekStartsOn + 7) % 7;
77
- const start = addDateDays(first.value, -offset);
78
- if (!start.ok)
79
- return start;
80
- const rows = [];
81
- for (let row = 0; row < 6; row += 1) {
82
- const cells = [];
83
- for (let column = 0; column < 7; column += 1) {
84
- const value = addDateDays(start.value, row * 7 + column);
85
- if (!value.ok)
86
- return value;
87
- cells.push(value.value);
88
- }
89
- rows.push(cells);
90
- }
91
- return ok(freezeArray(rows.map((row) => freezeArray(row))));
92
- }
93
- export function isDatePickerValueAvailable(value, policies = {}) {
94
- return !(policies.min !== undefined && compareDateValues(value, policies.min) < 0)
95
- && !(policies.max !== undefined && compareDateValues(value, policies.max) > 0)
96
- && policies.unavailable?.(value) !== true;
97
- }
98
- export function datePickerID(value) { return formatDateValue(value); }
99
- function commit(value, state, policies, close) {
100
- if (value === null) {
101
- if (policies.required === true)
102
- return fail('transition-rejection', 'date-picker-value-required', 'Date picker requires a value.');
103
- const open = close ? false : state.open;
104
- return createMachineUpdate(pickerState(null, state.highlighted, state.view, open), [
105
- { type: 'value-committed', value: null },
106
- ...openChanged(state.open, open),
107
- ]);
108
- }
109
- const valid = createDateValue(value.year, value.month, value.day);
110
- if (!valid.ok)
111
- return invalidTransition(valid);
112
- if (!isDatePickerValueAvailable(valid.value, policies))
113
- return fail('transition-rejection', 'date-picker-value-unavailable', 'Date picker value is outside its selectable domain.');
114
- const open = close ? false : state.open;
115
- const view = Object.freeze({ year: valid.value.year, month: valid.value.month });
116
- return createMachineUpdate(pickerState(valid.value, valid.value, view, open), [
117
- { type: 'value-committed', value: valid.value },
118
- { type: 'highlight-changed', value: valid.value },
119
- ...openChanged(state.open, open),
120
- ]);
121
- }
122
- function findEligible(start, direction, policies) {
123
- const limit = policies.maxScan ?? 366;
124
- if (!Number.isSafeInteger(limit) || limit < 1)
125
- return fail('construction', 'invalid-date-picker-max-scan', 'Date picker max scan must be a positive safe integer.');
126
- let candidate = start;
127
- for (let scanned = 0; scanned < limit; scanned += 1) {
128
- if (isDatePickerValueAvailable(candidate, policies))
129
- return ok(candidate);
130
- const next = addDateDays(candidate, direction);
131
- if (!next.ok)
132
- return ok(null);
133
- candidate = next.value;
134
- }
135
- return fail('resource-rejection', 'date-picker-scan-exhausted', 'Date picker did not find an available date within maxScan.', { maxScan: limit });
136
- }
137
- function validatePolicies(policies) {
138
- if (policies.unavailable !== undefined && typeof policies.unavailable !== 'function')
139
- return fail('construction', 'invalid-date-picker-unavailable-policy', 'Date picker unavailable policy must be a function.');
140
- if (policies.min !== undefined) {
141
- const min = createDateValue(policies.min.year, policies.min.month, policies.min.day);
142
- if (!min.ok)
143
- return min;
144
- }
145
- if (policies.max !== undefined) {
146
- const max = createDateValue(policies.max.year, policies.max.month, policies.max.day);
147
- if (!max.ok)
148
- return max;
149
- }
150
- if (policies.min !== undefined && policies.max !== undefined && compareDateValues(policies.min, policies.max) > 0)
151
- return fail('construction', 'inverted-date-picker-bounds', 'Date picker minimum must not follow its maximum.');
152
- return ok(true);
153
- }
154
- function pickerState(value, highlighted, view, open) { return Object.freeze({ value, highlighted, view, open }); }
155
- function openChanged(previous, next) { return previous === next ? [] : [{ type: 'open-changed', open: next }]; }
156
- function invalidTransition(result) { return result.ok ? fail('internal-invariant', 'unexpected-valid-result', 'Expected an invalid result.') : { ok: false, error: { ...result.error, class: 'transition-rejection' } }; }
157
- //# sourceMappingURL=date-picker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../src/date-picker.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import type { Result } from './shared.js';
2
- import { type DateRange, type DateValue } from './date-field.js';
3
- import { type DatePickerCommand, type DatePickerEvent, type DatePickerPolicies, type DatePickerState } from './date-picker.js';
4
- export interface DateRangePickerState {
5
- readonly value: DateRange | null;
6
- readonly anchor: DateValue | null;
7
- readonly calendar: DatePickerState;
8
- }
9
- export type DateRangePickerEvent = DatePickerEvent | 'clear';
10
- export type DateRangePickerCommand = DatePickerCommand | {
11
- readonly type: 'range-committed';
12
- readonly value: DateRange | null;
13
- } | {
14
- readonly type: 'range-anchor-changed';
15
- readonly value: DateValue | null;
16
- };
17
- export interface DateRangePickerUpdate {
18
- readonly state: DateRangePickerState;
19
- readonly commands: readonly DateRangePickerCommand[];
20
- }
21
- export interface DateRangePickerStateInput {
22
- readonly value?: DateRange | null;
23
- readonly anchor?: DateValue | null;
24
- readonly calendar?: Partial<DatePickerState>;
25
- }
26
- export declare function createDateRangePickerState(input?: DateRangePickerStateInput): Result<DateRangePickerState>;
27
- export declare function applyDateRangePickerEvent(state: DateRangePickerState, event: DateRangePickerEvent, policies?: DatePickerPolicies): Result<DateRangePickerUpdate>;
28
- //# sourceMappingURL=date-range-picker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-range-picker.d.ts","sourceRoot":"","sources":["../src/date-range-picker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAuD,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtH,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;CACpC;AAED,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,OAAO,CAAC;AAE7D,MAAM,MAAM,sBAAsB,GAC9B,iBAAiB,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,GACtE;IAAE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,CAAC;AAEhF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CAC9C;AAED,wBAAgB,0BAA0B,CAAC,KAAK,GAAE,yBAA8B,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAqB9G;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,GAAE,kBAAuB,GAChC,MAAM,CAAC,qBAAqB,CAAC,CAoB/B"}