@sectile/core 0.4.0 → 0.6.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 (96) hide show
  1. package/README.md +1 -0
  2. package/dist/adapter-runtime.d.ts +26 -13
  3. package/dist/adapter-runtime.d.ts.map +1 -1
  4. package/dist/adapter-runtime.js +27 -0
  5. package/dist/adapter-runtime.js.map +1 -1
  6. package/dist/error-code.d.ts +1 -1
  7. package/dist/error-code.d.ts.map +1 -1
  8. package/dist/index.d.ts +2 -18
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/internal/kernel/foundation.d.ts +3 -3
  11. package/dist/internal/kernel/foundation.d.ts.map +1 -1
  12. package/dist/internal/kernel/foundation.js.map +1 -1
  13. package/dist/internal/kernel/machine.d.ts +2 -1
  14. package/dist/internal/kernel/machine.d.ts.map +1 -1
  15. package/dist/internal/kernel/machine.js.map +1 -1
  16. package/dist/internal/runtime/revision.d.ts +6 -5
  17. package/dist/internal/runtime/revision.d.ts.map +1 -1
  18. package/dist/internal/runtime/revision.js.map +1 -1
  19. package/dist/reorder.d.ts +2 -1
  20. package/dist/reorder.d.ts.map +1 -1
  21. package/dist/reorder.js +4 -1
  22. package/dist/reorder.js.map +1 -1
  23. package/dist/result.d.ts +4 -4
  24. package/dist/result.d.ts.map +1 -1
  25. package/dist/result.js.map +1 -1
  26. package/dist/shared.d.ts +3 -3
  27. package/dist/shared.d.ts.map +1 -1
  28. package/dist/structures/sequence.d.ts +13 -0
  29. package/dist/structures/sequence.d.ts.map +1 -1
  30. package/dist/structures/sequence.js +39 -0
  31. package/dist/structures/sequence.js.map +1 -1
  32. package/package.json +5 -79
  33. package/dist/calendar.d.ts +0 -3
  34. package/dist/calendar.d.ts.map +0 -1
  35. package/dist/calendar.js +0 -3
  36. package/dist/calendar.js.map +0 -1
  37. package/dist/date-field.d.ts +0 -62
  38. package/dist/date-field.d.ts.map +0 -1
  39. package/dist/date-field.js +0 -245
  40. package/dist/date-field.js.map +0 -1
  41. package/dist/date-picker.d.ts +0 -76
  42. package/dist/date-picker.d.ts.map +0 -1
  43. package/dist/date-picker.js +0 -261
  44. package/dist/date-picker.js.map +0 -1
  45. package/dist/date-range-field.d.ts +0 -47
  46. package/dist/date-range-field.d.ts.map +0 -1
  47. package/dist/date-range-field.js +0 -66
  48. package/dist/date-range-field.js.map +0 -1
  49. package/dist/date-range-picker.d.ts +0 -29
  50. package/dist/date-range-picker.d.ts.map +0 -1
  51. package/dist/date-range-picker.js +0 -89
  52. package/dist/date-range-picker.js.map +0 -1
  53. package/dist/date-time-field.d.ts +0 -57
  54. package/dist/date-time-field.d.ts.map +0 -1
  55. package/dist/date-time-field.js +0 -267
  56. package/dist/date-time-field.js.map +0 -1
  57. package/dist/date-time-picker.d.ts +0 -71
  58. package/dist/date-time-picker.d.ts.map +0 -1
  59. package/dist/date-time-picker.js +0 -156
  60. package/dist/date-time-picker.js.map +0 -1
  61. package/dist/date-time-range-picker.d.ts +0 -87
  62. package/dist/date-time-range-picker.d.ts.map +0 -1
  63. package/dist/date-time-range-picker.js +0 -252
  64. package/dist/date-time-range-picker.js.map +0 -1
  65. package/dist/internal/composites/calendar.d.ts +0 -36
  66. package/dist/internal/composites/calendar.d.ts.map +0 -1
  67. package/dist/internal/composites/calendar.js +0 -143
  68. package/dist/internal/composites/calendar.js.map +0 -1
  69. package/dist/month-picker.d.ts +0 -5
  70. package/dist/month-picker.d.ts.map +0 -1
  71. package/dist/month-picker.js +0 -4
  72. package/dist/month-picker.js.map +0 -1
  73. package/dist/month-range-picker.d.ts +0 -6
  74. package/dist/month-range-picker.d.ts.map +0 -1
  75. package/dist/month-range-picker.js +0 -5
  76. package/dist/month-range-picker.js.map +0 -1
  77. package/dist/range-calendar.d.ts +0 -6
  78. package/dist/range-calendar.d.ts.map +0 -1
  79. package/dist/range-calendar.js +0 -5
  80. package/dist/range-calendar.js.map +0 -1
  81. package/dist/time-field.d.ts +0 -48
  82. package/dist/time-field.d.ts.map +0 -1
  83. package/dist/time-field.js +0 -157
  84. package/dist/time-field.js.map +0 -1
  85. package/dist/time-range-field.d.ts +0 -53
  86. package/dist/time-range-field.d.ts.map +0 -1
  87. package/dist/time-range-field.js +0 -75
  88. package/dist/time-range-field.js.map +0 -1
  89. package/dist/year-picker.d.ts +0 -10
  90. package/dist/year-picker.d.ts.map +0 -1
  91. package/dist/year-picker.js +0 -27
  92. package/dist/year-picker.js.map +0 -1
  93. package/dist/year-range-picker.d.ts +0 -6
  94. package/dist/year-range-picker.d.ts.map +0 -1
  95. package/dist/year-range-picker.js +0 -5
  96. package/dist/year-range-picker.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,qBAAa,kBAAkB,CAAC,IAAI,SAAS,gBAAgB,GAAG,gBAAgB,CAC9E,SAAQ,KAAM,YAAW,YAAY,CAAC,IAAI,CAAC;IAC3C,SAAgB,KAAK,EAAE,UAAU,CAAC;IAClC,SAAgB,IAAI,EAAE,IAAI,CAAC;IAC3B,SAAgB,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAE5D,YAAmB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,EAM3C;CACF;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAGnF;AAED,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,qBAAa,kBAAkB,CAAC,IAAI,SAAS,MAAM,GAAG,aAAa,CACjE,SAAQ,KAAM,YAAW,YAAY,CAAC,IAAI,CAAC;IAC3C,SAAgB,KAAK,EAAE,UAAU,CAAC;IAClC,SAAgB,IAAI,EAAE,IAAI,CAAC;IAC3B,SAAgB,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAE5D,YAAmB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,EAM3C;CACF;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAGzE;AAED,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,kBACX,SAAQ,KAAK;IACG,KAAK,CAAa;IAClB,IAAI,CAAO;IACX,OAAO,CAAqC;IAE5D,YAAmB,KAAyB;QAC1C,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAChE,CAAC;CACF;AAED,MAAM,UAAU,MAAM,CAAmC,MAAuB;IAC9E,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IACnC,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,kBACX,SAAQ,KAAK;IACG,KAAK,CAAa;IAClB,IAAI,CAAO;IACX,OAAO,CAAqC;IAE5D,YAAmB,KAAyB;QAC1C,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAChE,CAAC;CACF;AAED,MAAM,UAAU,MAAM,CAAyB,MAAuB;IACpE,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IACnC,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC"}
package/dist/shared.d.ts CHANGED
@@ -1,14 +1,14 @@
1
1
  /** Shared public contracts for the canonical Sectile structures. */
2
- import type { SectileErrorCode } from './error-code.js';
2
+ import type { CoreErrorCode } from './error-code.js';
3
3
  export type StableID = string;
4
4
  export type ErrorClass = 'construction' | 'transition-rejection' | 'resource-rejection' | 'internal-invariant';
5
- export interface SectileError<Code extends SectileErrorCode = SectileErrorCode> {
5
+ export interface SectileError<Code extends string = CoreErrorCode> {
6
6
  readonly class: ErrorClass;
7
7
  readonly code: Code;
8
8
  readonly message: string;
9
9
  readonly details?: Readonly<Record<string, unknown>>;
10
10
  }
11
- export type Result<T, Code extends SectileErrorCode = SectileErrorCode> = {
11
+ export type Result<T, Code extends string = CoreErrorCode> = {
12
12
  readonly ok: true;
13
13
  readonly value: T;
14
14
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,MAAM,UAAU,GAClB,cAAc,GACd,sBAAsB,GACtB,oBAAoB,GACpB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,YAAY,CAAC,IAAI,SAAS,gBAAgB,GAAG,gBAAgB;IAC5E,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,gBAAgB,GAAG,gBAAgB,IAClE;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACxC;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAC7C,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,WAAW,CAAC;AACtD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/B,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,CAAC;AAExD,MAAM,WAAW,WAAW,CAAC,EAAE,SAAS,QAAQ;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,qBAAqB,CAAC,EAAE,SAAS,QAAQ,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAElG,MAAM,MAAM,UAAU,CAAC,EAAE,SAAS,QAAQ,IACtC;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnD;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B,CAAC;AAEN,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,eAAO,MAAM,yBAAyB,OAAQ,CAAC"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,MAAM,UAAU,GAClB,cAAc,GACd,sBAAsB,GACtB,oBAAoB,GACpB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,YAAY,CAAC,IAAI,SAAS,MAAM,GAAG,aAAa;IAC/D,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,MAAM,GAAG,aAAa,IACrD;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACxC;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAC7C,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,WAAW,CAAC;AACtD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/B,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,CAAC;AAExD,MAAM,WAAW,WAAW,CAAC,EAAE,SAAS,QAAQ;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,qBAAqB,CAAC,EAAE,SAAS,QAAQ,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAElG,MAAM,MAAM,UAAU,CAAC,EAAE,SAAS,QAAQ,IACtC;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnD;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B,CAAC;AAEN,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,eAAO,MAAM,yBAAyB,OAAQ,CAAC"}
@@ -2,6 +2,17 @@ import { type BoundaryPolicy, type Direction, type MoveResult, type ResourceCeil
2
2
  export interface SequenceOptions extends ResourceCeilings {
3
3
  readonly maxItems?: number;
4
4
  }
5
+ export type SequencePatch<ID extends StableID = StableID> = {
6
+ readonly type: 'splice';
7
+ readonly index: number;
8
+ readonly deleteCount: number;
9
+ readonly inserted: readonly ID[];
10
+ } | {
11
+ readonly type: 'move';
12
+ readonly from: number;
13
+ readonly to: number;
14
+ readonly count: number;
15
+ };
5
16
  export type SequenceProjectionPredicate<ID extends StableID = StableID> = (id: ID, index: number) => boolean;
6
17
  export interface Sequence<ID extends StableID = StableID> {
7
18
  readonly size: number;
@@ -15,5 +26,7 @@ export interface Sequence<ID extends StableID = StableID> {
15
26
  }
16
27
  export declare function createSequence<ID extends StableID>(ids: readonly ID[], options?: SequenceOptions): Sequence<ID>;
17
28
  export declare function tryCreateSequence<ID extends StableID>(ids: readonly ID[], options?: SequenceOptions): Result<Sequence<ID>>;
29
+ export declare function applySequencePatch<ID extends StableID>(sequence: Sequence<ID>, patch: SequencePatch<ID>, options?: SequenceOptions): Sequence<ID>;
30
+ export declare function tryApplySequencePatch<ID extends StableID>(sequence: Sequence<ID>, patch: SequencePatch<ID>, options?: SequenceOptions): Result<Sequence<ID>>;
18
31
  export type { BoundaryPolicy, Direction, MoveResult, Result, ScanOptions, SectileError, StableID, } from '../shared.js';
19
32
  //# sourceMappingURL=sequence.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../src/structures/sequence.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,QAAQ,EACd,MAAM,cAAc,CAAC;AAItB,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,2BAA2B,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAE7G,MAAM,WAAW,QAAQ,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC;IAC5B,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAC1B,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAChD,OAAO,CAAC,SAAS,EAAE,2BAA2B,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClE,IAAI,CACF,OAAO,EAAE,EAAE,EACX,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,cAAc,EACzB,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,GACxB,UAAU,CAAC,EAAE,CAAC,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,QAAQ,EAChD,GAAG,EAAE,SAAS,EAAE,EAAE,EAClB,OAAO,GAAE,eAAoB,GAC5B,QAAQ,CAAC,EAAE,CAAC,CAEd;AAED,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,QAAQ,EACnD,GAAG,EAAE,SAAS,EAAE,EAAE,EAClB,OAAO,GAAE,eAAoB,GAC5B,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAgBtB;AAED,YAAY,EACV,cAAc,EACd,SAAS,EACT,UAAU,EACV,MAAM,EACN,WAAW,EACX,YAAY,EACZ,QAAQ,GACT,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../src/structures/sequence.ts"],"names":[],"mappings":"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"}
@@ -25,4 +25,43 @@ export function tryCreateSequence(ids, options = {}) {
25
25
  return validated;
26
26
  return ok(new IndexedSequence(validated.value));
27
27
  }
28
+ export function applySequencePatch(sequence, patch, options = {}) {
29
+ return unwrap(tryApplySequencePatch(sequence, patch, options));
30
+ }
31
+ export function tryApplySequencePatch(sequence, patch, options = {}) {
32
+ const ids = [...sequence.ids];
33
+ if (patch.type === 'splice') {
34
+ if (!Number.isSafeInteger(patch.index)
35
+ || !Number.isSafeInteger(patch.deleteCount)
36
+ || patch.index < 0
37
+ || patch.deleteCount < 0
38
+ || patch.index > ids.length
39
+ || patch.deleteCount > ids.length - patch.index)
40
+ return invalidPatch(patch, ids.length);
41
+ ids.splice(patch.index, patch.deleteCount, ...patch.inserted);
42
+ }
43
+ else {
44
+ if (!Number.isSafeInteger(patch.from)
45
+ || !Number.isSafeInteger(patch.to)
46
+ || !Number.isSafeInteger(patch.count)
47
+ || patch.from < 0
48
+ || patch.count < 0
49
+ || patch.from > ids.length
50
+ || patch.count > ids.length - patch.from
51
+ || patch.to < 0
52
+ || patch.to > ids.length - patch.count)
53
+ return invalidPatch(patch, ids.length);
54
+ if (patch.count === 0 || patch.from === patch.to)
55
+ return ok(sequence);
56
+ const moved = ids.splice(patch.from, patch.count);
57
+ ids.splice(patch.to, 0, ...moved);
58
+ }
59
+ const result = tryCreateSequence(ids, options);
60
+ if (result.ok)
61
+ return result;
62
+ return fail('transition-rejection', result.error.code, result.error.message, result.error.details);
63
+ }
64
+ function invalidPatch(patch, size) {
65
+ return fail('transition-rejection', 'sequence-patch-invalid', 'Sequence patch must identify a valid post-removal destination and source range.', { patch, size });
66
+ }
28
67
  //# sourceMappingURL=sequence.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/structures/sequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,yBAAyB,GAQ1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACpG,OAAO,EAAE,eAAe,EAAqB,MAAM,wCAAwC,CAAC;AAwB5F,MAAM,UAAU,cAAc,CAC5B,GAAkB,EAClB,OAAO,GAAoB,EAAE;IAE7B,OAAO,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,GAAkB,EAClB,OAAO,GAAoB,EAAE;IAE7B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC;IAC7C,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/D,IAAI,YAAY,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACrE,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,yBAAyB,CAAC;IAC3E,MAAM,cAAc,GAAG,mBAAmB,CAAC,cAAc,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAChF,IAAI,cAAc,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IACzE,IAAI,GAAG,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,oBAAoB,EAAE,uBAAuB,EAAE,4BAA4B,EAAE;YACvF,IAAI,EAAE,GAAG,CAAC,MAAM;YAChB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IACD,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACzD,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IACpC,OAAO,EAAE,CAAC,IAAI,eAAe,CAAC,SAAS,CAAC,KAAK,CAAqB,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/structures/sequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,yBAAyB,GAQ1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACpG,OAAO,EAAE,eAAe,EAAqB,MAAM,wCAAwC,CAAC;AAsC5F,MAAM,UAAU,cAAc,CAC5B,GAAkB,EAClB,OAAO,GAAoB,EAAE;IAE7B,OAAO,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,GAAkB,EAClB,OAAO,GAAoB,EAAE;IAE7B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC;IAC7C,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/D,IAAI,YAAY,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACrE,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,yBAAyB,CAAC;IAC3E,MAAM,cAAc,GAAG,mBAAmB,CAAC,cAAc,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAChF,IAAI,cAAc,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IACzE,IAAI,GAAG,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,oBAAoB,EAAE,uBAAuB,EAAE,4BAA4B,EAAE;YACvF,IAAI,EAAE,GAAG,CAAC,MAAM;YAChB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IACD,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACzD,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IACpC,OAAO,EAAE,CAAC,IAAI,eAAe,CAAC,SAAS,CAAC,KAAK,CAAqB,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAsB,EACtB,KAAwB,EACxB,OAAO,GAAoB,EAAE;IAE7B,OAAO,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,QAAsB,EACtB,KAAwB,EACxB,OAAO,GAAoB,EAAE;IAE7B,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;eAC/B,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC;eACxC,KAAK,CAAC,KAAK,GAAG,CAAC;eACf,KAAK,CAAC,WAAW,GAAG,CAAC;eACrB,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM;eACxB,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK;YAC/C,OAAO,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;eAC9B,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;eAC/B,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;eAClC,KAAK,CAAC,IAAI,GAAG,CAAC;eACd,KAAK,CAAC,KAAK,GAAG,CAAC;eACf,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM;eACvB,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI;eACrC,KAAK,CAAC,EAAE,GAAG,CAAC;eACZ,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK;YACtC,OAAO,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAClD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC7B,OAAO,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACrG,CAAC;AAED,SAAS,YAAY,CACnB,KAAwB,EACxB,IAAY;IAEZ,OAAO,IAAI,CACT,sBAAsB,EACtB,wBAAwB,EACxB,iFAAiF,EACjF,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sectile/core",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "Renderer-neutral interaction semantics with explicit laws, failures, and costs.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -181,76 +181,6 @@
181
181
  "import": "./dist/number-field.js",
182
182
  "default": "./dist/number-field.js"
183
183
  },
184
- "./date-field": {
185
- "types": "./dist/date-field.d.ts",
186
- "import": "./dist/date-field.js",
187
- "default": "./dist/date-field.js"
188
- },
189
- "./date-range-field": {
190
- "types": "./dist/date-range-field.d.ts",
191
- "import": "./dist/date-range-field.js",
192
- "default": "./dist/date-range-field.js"
193
- },
194
- "./date-time-field": {
195
- "types": "./dist/date-time-field.d.ts",
196
- "import": "./dist/date-time-field.js",
197
- "default": "./dist/date-time-field.js"
198
- },
199
- "./time-field": {
200
- "types": "./dist/time-field.d.ts",
201
- "import": "./dist/time-field.js",
202
- "default": "./dist/time-field.js"
203
- },
204
- "./time-range-field": {
205
- "types": "./dist/time-range-field.d.ts",
206
- "import": "./dist/time-range-field.js",
207
- "default": "./dist/time-range-field.js"
208
- },
209
- "./date-picker": {
210
- "types": "./dist/date-picker.d.ts",
211
- "import": "./dist/date-picker.js",
212
- "default": "./dist/date-picker.js"
213
- },
214
- "./date-range-picker": {
215
- "types": "./dist/date-range-picker.d.ts",
216
- "import": "./dist/date-range-picker.js",
217
- "default": "./dist/date-range-picker.js"
218
- },
219
- "./range-calendar": {
220
- "types": "./dist/range-calendar.d.ts",
221
- "import": "./dist/range-calendar.js",
222
- "default": "./dist/range-calendar.js"
223
- },
224
- "./month-picker": {
225
- "types": "./dist/month-picker.d.ts",
226
- "import": "./dist/month-picker.js",
227
- "default": "./dist/month-picker.js"
228
- },
229
- "./month-range-picker": {
230
- "types": "./dist/month-range-picker.d.ts",
231
- "import": "./dist/month-range-picker.js",
232
- "default": "./dist/month-range-picker.js"
233
- },
234
- "./year-picker": {
235
- "types": "./dist/year-picker.d.ts",
236
- "import": "./dist/year-picker.js",
237
- "default": "./dist/year-picker.js"
238
- },
239
- "./year-range-picker": {
240
- "types": "./dist/year-range-picker.d.ts",
241
- "import": "./dist/year-range-picker.js",
242
- "default": "./dist/year-range-picker.js"
243
- },
244
- "./date-time-picker": {
245
- "types": "./dist/date-time-picker.d.ts",
246
- "import": "./dist/date-time-picker.js",
247
- "default": "./dist/date-time-picker.js"
248
- },
249
- "./date-time-range-picker": {
250
- "types": "./dist/date-time-range-picker.d.ts",
251
- "import": "./dist/date-time-range-picker.js",
252
- "default": "./dist/date-time-range-picker.js"
253
- },
254
184
  "./units": {
255
185
  "types": "./dist/units.d.ts",
256
186
  "import": "./dist/units.js",
@@ -341,11 +271,6 @@
341
271
  "import": "./dist/feed.js",
342
272
  "default": "./dist/feed.js"
343
273
  },
344
- "./calendar": {
345
- "types": "./dist/calendar.d.ts",
346
- "import": "./dist/calendar.js",
347
- "default": "./dist/calendar.js"
348
- },
349
274
  "./combobox": {
350
275
  "types": "./dist/combobox.d.ts",
351
276
  "import": "./dist/combobox.js",
@@ -400,16 +325,17 @@
400
325
  "check:contracts": "node scripts/check-contracts.mjs",
401
326
  "check:public-api": "node scripts/check-public-api.mjs",
402
327
  "check:api-stability": "node scripts/check-api-stability.mjs",
403
- "check:signatures": "node scripts/check-public-signatures.mjs",
328
+ "check:semantic-api": "node scripts/check-semantic-api.mjs",
404
329
  "check:laws": "node scripts/check-law-coverage.mjs",
405
330
  "check:naming": "node scripts/check-acronym-casing.mjs",
406
331
  "check:layout": "node scripts/check-layout.mjs",
332
+ "check:import-boundaries": "node scripts/check-import-boundaries.mjs",
407
333
  "check:dist-boundary": "node scripts/check-dist-platform-boundary.mjs",
408
334
  "check:subpaths": "node scripts/check-subpath-imports.mjs",
409
335
  "check:package": "node scripts/check-package-footprint.mjs",
410
336
  "check:verification": "node scripts/check-verification.mjs",
411
337
  "update:api-stability": "node scripts/update-api-stability.mjs",
412
- "update:signatures": "node scripts/update-public-signatures.mjs",
413
- "verify": "pnpm run typecheck && pnpm run test && pnpm run build && pnpm run check:contracts && pnpm run check:public-api && pnpm run check:api-stability && pnpm run check:signatures && pnpm run check:laws && pnpm run check:naming && pnpm run check:layout && pnpm run check:dist-boundary && pnpm run check:subpaths && pnpm run check:package && pnpm run check:verification"
338
+ "update:semantic-api": "node scripts/update-semantic-api.mjs",
339
+ "verify": "pnpm run typecheck && pnpm run test && pnpm run build && pnpm run check:contracts && pnpm run check:public-api && pnpm run check:api-stability && pnpm run check:semantic-api && pnpm run check:laws && pnpm run check:naming && pnpm run check:layout && pnpm run check:import-boundaries && pnpm run check:dist-boundary && pnpm run check:subpaths && pnpm run check:package && pnpm run check:verification"
414
340
  }
415
341
  }
@@ -1,3 +0,0 @@
1
- export { applyCalendarEvent, createCalendarState, type CalendarCommand, type CalendarEvent, type CalendarPolicies, type CalendarState, type CalendarStateInput, type CalendarUpdate, } from './internal/composites/calendar.js';
2
- export { tryCreateCalendarState } from './internal/composites/calendar.js';
3
- //# sourceMappingURL=calendar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../src/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC"}
package/dist/calendar.js DELETED
@@ -1,3 +0,0 @@
1
- export { applyCalendarEvent, createCalendarState, } from './internal/composites/calendar.js';
2
- export { tryCreateCalendarState } from './internal/composites/calendar.js';
3
- //# sourceMappingURL=calendar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../src/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GAOpB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC"}
@@ -1,62 +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 type DateFieldUnavailablePredicate = NonNullable<DateFieldPolicies['unavailable']>;
38
- export interface DateFieldUpdate {
39
- readonly state: DateFieldState;
40
- readonly commands: readonly DateFieldCommand[];
41
- }
42
- export declare function createDateValue(year: number, month: number, day: number): DateValue;
43
- export declare function tryCreateDateValue(year: number, month: number, day: number): Result<DateValue>;
44
- export declare function parseDateValue(text: string): Result<DateValue>;
45
- export declare function formatDateValue(value: DateValue): string;
46
- export declare function compareDateValues(left: DateValue, right: DateValue): -1 | 0 | 1;
47
- export declare function differenceInDateDays(left: DateValue, right: DateValue): number;
48
- /** ISO weekday: Monday is 1 and Sunday is 7. */
49
- export declare function dateDayOfWeek(value: DateValue): 1 | 2 | 3 | 4 | 5 | 6 | 7;
50
- export declare function addDateDays(value: DateValue, amount: number): Result<DateValue>;
51
- export declare function addDateMonths(value: DateValue, amount: number): Result<DateValue>;
52
- export declare function addDateYears(value: DateValue, amount: number): Result<DateValue>;
53
- export declare function createDateRange(start: DateValue, end: DateValue): DateRange;
54
- export declare function tryCreateDateRange(start: DateValue, end: DateValue): Result<DateRange>;
55
- export declare function dateRangeContains(range: DateRange, value: DateValue): boolean;
56
- export declare function createDateFieldState(value?: DateValue | null, inputState?: TextEditingState): DateFieldState;
57
- export declare function tryCreateDateFieldState(value?: DateValue | null, inputState?: TextEditingState): Result<DateFieldState>;
58
- export declare function applyDateFieldEvent(state: DateFieldState, event: DateFieldEvent, policies?: DateFieldPolicies): Result<DateFieldUpdate>;
59
- export declare function dateSegmentAt(offset: number): DateSegment;
60
- export declare function daysInMonth(year: number, month: number): number;
61
- export declare function isLeapYear(year: number): boolean;
62
- //# 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,245 +0,0 @@
1
- import { unwrap } from './result.js';
2
- import { fail, ok } from './internal/kernel/foundation.js';
3
- import { createMachineUpdate } from './internal/kernel/machine.js';
4
- import { applyTextEvent, createTextEditingState, normalizeTextEditingState, tryCreateTextEditingState, } from './text.js';
5
- const DATE_FIELD_MAX_CODE_UNITS = 10;
6
- export function createDateValue(year, month, day) {
7
- return unwrap(tryCreateDateValue(year, month, day));
8
- }
9
- export function tryCreateDateValue(year, month, day) {
10
- if (!Number.isSafeInteger(year) || year < 1 || year > 9_999) {
11
- return fail('construction', 'invalid-date-year', 'Date year must be an integer from 1 through 9999.', { year });
12
- }
13
- if (!Number.isSafeInteger(month) || month < 1 || month > 12) {
14
- return fail('construction', 'invalid-date-month', 'Date month must be an integer from 1 through 12.', { month });
15
- }
16
- const maximum = daysInMonth(year, month);
17
- if (!Number.isSafeInteger(day) || day < 1 || day > maximum) {
18
- return fail('construction', 'invalid-date-day', 'Date day must exist in its Gregorian month.', { year, month, day });
19
- }
20
- return ok(Object.freeze({ year, month, day }));
21
- }
22
- export function parseDateValue(text) {
23
- if (typeof text !== 'string')
24
- return fail('construction', 'invalid-date-text', 'Date text must be a string.');
25
- const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(text);
26
- return match === null
27
- ? fail('transition-rejection', 'invalid-date-format', 'Date text must use YYYY-MM-DD.', { text })
28
- : tryCreateDateValue(Number(match[1]), Number(match[2]), Number(match[3]));
29
- }
30
- export function formatDateValue(value) {
31
- return `${String(value.year).padStart(4, '0')}-${String(value.month).padStart(2, '0')}-${String(value.day).padStart(2, '0')}`;
32
- }
33
- export function compareDateValues(left, right) {
34
- const leftDay = dateToOrdinal(left);
35
- const rightDay = dateToOrdinal(right);
36
- return leftDay < rightDay ? -1 : leftDay > rightDay ? 1 : 0;
37
- }
38
- export function differenceInDateDays(left, right) {
39
- return dateToOrdinal(left) - dateToOrdinal(right);
40
- }
41
- /** ISO weekday: Monday is 1 and Sunday is 7. */
42
- export function dateDayOfWeek(value) {
43
- const thursday = dateToOrdinal(Object.freeze({ year: 1970, month: 1, day: 1 }));
44
- return (((dateToOrdinal(value) - thursday + 3) % 7 + 7) % 7 + 1);
45
- }
46
- export function addDateDays(value, amount) {
47
- if (!Number.isSafeInteger(amount))
48
- return fail('transition-rejection', 'invalid-date-day-delta', 'Date day delta must be a safe integer.');
49
- const result = ordinalToDate(dateToOrdinal(value) + amount);
50
- return result.year < 1 || result.year > 9_999
51
- ? fail('transition-rejection', 'date-outside-supported-range', 'Date arithmetic must remain between years 1 and 9999.')
52
- : ok(result);
53
- }
54
- export function addDateMonths(value, amount) {
55
- if (!Number.isSafeInteger(amount))
56
- return fail('transition-rejection', 'invalid-date-month-delta', 'Date month delta must be a safe integer.');
57
- const absolute = value.year * 12 + value.month - 1 + amount;
58
- const year = Math.floor(absolute / 12);
59
- const month = absolute - year * 12 + 1;
60
- if (year < 1 || year > 9_999)
61
- return fail('transition-rejection', 'date-outside-supported-range', 'Date arithmetic must remain between years 1 and 9999.');
62
- return tryCreateDateValue(year, month, Math.min(value.day, daysInMonth(year, month)));
63
- }
64
- export function addDateYears(value, amount) {
65
- if (!Number.isSafeInteger(amount))
66
- return fail('transition-rejection', 'invalid-date-year-delta', 'Date year delta must be a safe integer.');
67
- const year = value.year + amount;
68
- if (year < 1 || year > 9_999)
69
- return fail('transition-rejection', 'date-outside-supported-range', 'Date arithmetic must remain between years 1 and 9999.');
70
- return tryCreateDateValue(year, value.month, Math.min(value.day, daysInMonth(year, value.month)));
71
- }
72
- export function createDateRange(start, end) {
73
- return unwrap(tryCreateDateRange(start, end));
74
- }
75
- export function tryCreateDateRange(start, end) {
76
- const validStart = tryCreateDateValue(start.year, start.month, start.day);
77
- if (!validStart.ok)
78
- return validStart;
79
- const validEnd = tryCreateDateValue(end.year, end.month, end.day);
80
- if (!validEnd.ok)
81
- return validEnd;
82
- if (compareDateValues(validStart.value, validEnd.value) > 0) {
83
- return fail('construction', 'inverted-date-range', 'Date range start must not follow its end.');
84
- }
85
- return ok(Object.freeze({ start: validStart.value, end: validEnd.value }));
86
- }
87
- export function dateRangeContains(range, value) {
88
- return compareDateValues(range.start, value) <= 0 && compareDateValues(value, range.end) <= 0;
89
- }
90
- export function createDateFieldState(value = null, inputState) {
91
- return unwrap(tryCreateDateFieldState(value, inputState));
92
- }
93
- export function tryCreateDateFieldState(value = null, inputState) {
94
- const valid = value === null ? ok(null) : tryCreateDateValue(value.year, value.month, value.day);
95
- if (!valid.ok)
96
- return valid;
97
- const input = inputState === undefined
98
- ? committedInput(valid.value)
99
- : normalizeTextEditingState(inputState);
100
- if (!input.ok)
101
- return input;
102
- if (input.value.snapshot.text.length > DATE_FIELD_MAX_CODE_UNITS) {
103
- return fail('construction', 'date-field-draft-too-long', 'Date field drafts must fit YYYY-MM-DD.');
104
- }
105
- return ok(Object.freeze({ value: valid.value, inputState: input.value }));
106
- }
107
- export function applyDateFieldEvent(state, event, policies = {}) {
108
- const valid = tryCreateDateFieldState(state.value, state.inputState);
109
- if (!valid.ok)
110
- return transitionFailure(valid);
111
- const bounds = validatePolicies(policies);
112
- if (!bounds.ok)
113
- return bounds;
114
- if (typeof event === 'object' && event.type === 'text') {
115
- const edited = applyTextEvent(valid.value.inputState, event.event);
116
- if (!edited.ok)
117
- return edited;
118
- if (edited.value.state.snapshot.text.length > DATE_FIELD_MAX_CODE_UNITS) {
119
- return fail('transition-rejection', 'date-field-draft-too-long', 'Date field drafts must fit YYYY-MM-DD.');
120
- }
121
- return createMachineUpdate(Object.freeze({ value: valid.value.value, inputState: edited.value.state }), [
122
- { type: 'input-state-changed', value: edited.value.state },
123
- ]);
124
- }
125
- if (typeof event === 'object' && event.type === 'set-value') {
126
- return commitValue(event.value, policies);
127
- }
128
- if (event === 'cancel') {
129
- const input = committedInput(valid.value.value);
130
- if (!input.ok)
131
- return input;
132
- return createMachineUpdate(Object.freeze({ value: valid.value.value, inputState: input.value }), [
133
- { type: 'input-state-changed', value: input.value },
134
- ]);
135
- }
136
- if (event === 'increment-segment' || event === 'decrement-segment') {
137
- const draft = parseDateValue(valid.value.inputState.snapshot.text);
138
- if (!draft.ok && valid.value.value === null)
139
- return draft;
140
- const base = draft.ok ? draft.value : valid.value.value;
141
- if (base === null)
142
- return fail('transition-rejection', 'date-field-value-missing', 'Date field has no value to adjust.');
143
- const amount = event === 'increment-segment' ? 1 : -1;
144
- const segment = dateSegmentAt(valid.value.inputState.snapshot.selection.focusCodeUnitOffset);
145
- const adjusted = segment === 'year' ? addDateYears(base, amount)
146
- : segment === 'month' ? addDateMonths(base, amount)
147
- : addDateDays(base, amount);
148
- return adjusted.ok ? commitValue(adjusted.value, policies, segment) : adjusted;
149
- }
150
- if (event !== 'commit')
151
- return fail('transition-rejection', 'unsupported-date-field-event', 'Date field event is unsupported.');
152
- if (valid.value.inputState.composition !== null)
153
- return fail('transition-rejection', 'date-field-composition-active', 'Date field cannot commit while text composition is active.');
154
- const text = valid.value.inputState.snapshot.text.trim();
155
- if (text.length === 0)
156
- return commitValue(null, policies);
157
- const parsed = parseDateValue(text);
158
- return parsed.ok ? commitValue(parsed.value, policies) : parsed;
159
- }
160
- export function dateSegmentAt(offset) {
161
- return offset <= 4 ? 'year' : offset <= 7 ? 'month' : 'day';
162
- }
163
- export function daysInMonth(year, month) {
164
- return month === 2 ? (isLeapYear(year) ? 29 : 28) : (month === 4 || month === 6 || month === 9 || month === 11 ? 30 : 31);
165
- }
166
- export function isLeapYear(year) {
167
- return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
168
- }
169
- function commitValue(value, policies, segment) {
170
- if (value === null) {
171
- if (policies.required === true)
172
- return fail('transition-rejection', 'date-field-value-required', 'Date field requires a value.');
173
- }
174
- else {
175
- const valid = tryCreateDateValue(value.year, value.month, value.day);
176
- if (!valid.ok)
177
- return transitionFailure(valid);
178
- value = valid.value;
179
- if (policies.min !== undefined && compareDateValues(value, policies.min) < 0)
180
- return fail('transition-rejection', 'date-field-value-below-minimum', 'Date field value is below its minimum.');
181
- if (policies.max !== undefined && compareDateValues(value, policies.max) > 0)
182
- return fail('transition-rejection', 'date-field-value-above-maximum', 'Date field value is above its maximum.');
183
- if (policies.unavailable?.(value) === true)
184
- return fail('transition-rejection', 'date-field-value-unavailable', 'Date field value is unavailable.');
185
- }
186
- const input = committedInput(value, segment);
187
- if (!input.ok)
188
- return input;
189
- return createMachineUpdate(Object.freeze({ value, inputState: input.value }), [
190
- { type: 'input-state-changed', value: input.value },
191
- { type: 'value-committed', value },
192
- ]);
193
- }
194
- function committedInput(value, segment) {
195
- const text = value === null ? '' : formatDateValue(value);
196
- const selection = segment === undefined ? { anchorCodeUnitOffset: text.length, focusCodeUnitOffset: text.length }
197
- : segment === 'year' ? { anchorCodeUnitOffset: 0, focusCodeUnitOffset: 4 }
198
- : segment === 'month' ? { anchorCodeUnitOffset: 5, focusCodeUnitOffset: 7 }
199
- : { anchorCodeUnitOffset: 8, focusCodeUnitOffset: 10 };
200
- return tryCreateTextEditingState(text, selection);
201
- }
202
- function validatePolicies(policies) {
203
- if (policies.unavailable !== undefined && typeof policies.unavailable !== 'function')
204
- return fail('construction', 'invalid-date-unavailable-policy', 'Date unavailable policy must be a function.');
205
- if (policies.min !== undefined) {
206
- const min = tryCreateDateValue(policies.min.year, policies.min.month, policies.min.day);
207
- if (!min.ok)
208
- return min;
209
- }
210
- if (policies.max !== undefined) {
211
- const max = tryCreateDateValue(policies.max.year, policies.max.month, policies.max.day);
212
- if (!max.ok)
213
- return max;
214
- }
215
- if (policies.min !== undefined && policies.max !== undefined && compareDateValues(policies.min, policies.max) > 0)
216
- return fail('construction', 'inverted-date-field-bounds', 'Date field minimum must not follow its maximum.');
217
- return ok(true);
218
- }
219
- function transitionFailure(result) {
220
- return result.ok ? fail('internal-invariant', 'unexpected-valid-result', 'Expected an invalid result.') : { ok: false, error: { ...result.error, class: 'transition-rejection' } };
221
- }
222
- function dateToOrdinal(value) {
223
- let year = value.year;
224
- const month = value.month;
225
- year -= month <= 2 ? 1 : 0;
226
- const era = Math.floor(year / 400);
227
- const yearOfEra = year - era * 400;
228
- const monthPrime = month + (month > 2 ? -3 : 9);
229
- const dayOfYear = Math.floor((153 * monthPrime + 2) / 5) + value.day - 1;
230
- const dayOfEra = yearOfEra * 365 + Math.floor(yearOfEra / 4) - Math.floor(yearOfEra / 100) + dayOfYear;
231
- return era * 146097 + dayOfEra;
232
- }
233
- function ordinalToDate(ordinal) {
234
- const era = Math.floor(ordinal / 146097);
235
- const dayOfEra = ordinal - era * 146097;
236
- const yearOfEra = Math.floor((dayOfEra - Math.floor(dayOfEra / 1460) + Math.floor(dayOfEra / 36524) - Math.floor(dayOfEra / 146096)) / 365);
237
- let year = yearOfEra + era * 400;
238
- const dayOfYear = dayOfEra - (365 * yearOfEra + Math.floor(yearOfEra / 4) - Math.floor(yearOfEra / 100));
239
- const monthPrime = Math.floor((5 * dayOfYear + 2) / 153);
240
- const day = dayOfYear - Math.floor((153 * monthPrime + 2) / 5) + 1;
241
- const month = monthPrime + (monthPrime < 10 ? 3 : -9);
242
- year += month <= 2 ? 1 : 0;
243
- return Object.freeze({ year, month, day });
244
- }
245
- //# 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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"}