@astryxdesign/core 0.7.9-canary.53fa237 → 0.7.9-canary.5cb261b

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 (115) hide show
  1. package/dist/BottomSheet/useSheetGestures.js +2 -2
  2. package/dist/CheckboxInput/CheckboxInput.d.ts +2 -1
  3. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  4. package/dist/CheckboxInput/CheckboxInput.js +25 -7
  5. package/dist/CheckboxInput/CheckboxRowPressContext.d.ts +2 -0
  6. package/dist/CheckboxInput/CheckboxRowPressContext.d.ts.map +1 -0
  7. package/dist/CheckboxInput/CheckboxRowPressContext.js +20 -0
  8. package/dist/CheckboxList/CheckboxListItem.d.ts +2 -1
  9. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  10. package/dist/CheckboxList/CheckboxListItem.js +40 -14
  11. package/dist/DateInput/DateInput.d.ts +37 -6
  12. package/dist/DateInput/DateInput.d.ts.map +1 -1
  13. package/dist/DateInput/DateInput.js +96 -127
  14. package/dist/DateInput/MonthScroller.d.ts +5 -2
  15. package/dist/DateInput/MonthScroller.d.ts.map +1 -1
  16. package/dist/DateInput/MonthScroller.js +26 -29
  17. package/dist/DateInput/MonthYearWheels.d.ts +10 -1
  18. package/dist/DateInput/MonthYearWheels.d.ts.map +1 -1
  19. package/dist/DateInput/MonthYearWheels.js +54 -42
  20. package/dist/DateInput/TouchDateField.d.ts +1 -1
  21. package/dist/DateInput/TouchDateField.d.ts.map +1 -1
  22. package/dist/DateInput/TouchDateField.js +26 -21
  23. package/dist/DateInput/monthGeometry.d.ts +42 -8
  24. package/dist/DateInput/monthGeometry.d.ts.map +1 -1
  25. package/dist/DateInput/monthGeometry.js +81 -7
  26. package/dist/DateInput/useCalendarPresentation.d.ts +10 -0
  27. package/dist/DateInput/useCalendarPresentation.d.ts.map +1 -0
  28. package/dist/DateInput/useCalendarPresentation.js +32 -0
  29. package/dist/DateInput/useTypedDate.d.ts +92 -0
  30. package/dist/DateInput/useTypedDate.d.ts.map +1 -0
  31. package/dist/DateInput/useTypedDate.js +269 -0
  32. package/dist/DateRangeInput/DateRangeInput.d.ts +17 -1
  33. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  34. package/dist/DateRangeInput/DateRangeInput.js +15 -11
  35. package/dist/DateTimeInput/DateTimeInput.d.ts +26 -3
  36. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  37. package/dist/DateTimeInput/DateTimeInput.js +91 -91
  38. package/dist/DateTimeInput/TouchDateTimeField.d.ts +1 -1
  39. package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
  40. package/dist/DateTimeInput/TouchDateTimeField.js +26 -20
  41. package/dist/astryx.css +7 -0
  42. package/dist/hooks/computeOverflow.d.ts +2 -0
  43. package/dist/hooks/computeOverflow.d.ts.map +1 -1
  44. package/dist/hooks/computeOverflow.js +1 -1
  45. package/dist/hooks/useMediaQuery.d.ts +2 -1
  46. package/dist/hooks/useMediaQuery.d.ts.map +1 -1
  47. package/dist/hooks/useMediaQuery.js +37 -12
  48. package/dist/hooks/useOverflow.d.ts.map +1 -1
  49. package/dist/hooks/useOverflow.js +190 -21
  50. package/dist/i18n/InternationalizationProvider.d.ts +2 -1
  51. package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
  52. package/dist/i18n/generated-english/DateInput/DateInput.generated.d.ts.map +1 -1
  53. package/dist/i18n/generated-english/DateInput/DateInput.generated.js +0 -1
  54. package/dist/i18n/generated-english/DateInput/useTypedDate.generated.d.ts +8 -0
  55. package/dist/i18n/generated-english/DateInput/useTypedDate.generated.d.ts.map +1 -0
  56. package/dist/i18n/generated-english/DateInput/useTypedDate.generated.js +16 -0
  57. package/dist/i18n/generated-english/DateTimeInput/DateTimeInput.generated.d.ts.map +1 -1
  58. package/dist/i18n/generated-english/DateTimeInput/DateTimeInput.generated.js +0 -1
  59. package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
  60. package/dist/i18n/generated-locales/en.generated.js +4 -0
  61. package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
  62. package/dist/i18n/generated-locales/pseudo.generated.js +4 -0
  63. package/dist/privateAttributes/press.stylex.d.ts +14 -11
  64. package/dist/privateAttributes/press.stylex.d.ts.map +1 -1
  65. package/dist/privateAttributes/press.stylex.js +15 -11
  66. package/dist/utils/calendarDateParser.d.ts +1 -1
  67. package/dist/utils/calendarDateParser.js +1 -1
  68. package/dist/utils/calendarSystem.d.ts +49 -3
  69. package/dist/utils/calendarSystem.d.ts.map +1 -1
  70. package/dist/utils/calendarSystem.js +129 -5
  71. package/dist/utils/coarsePointer.d.ts +5 -0
  72. package/dist/utils/coarsePointer.d.ts.map +1 -1
  73. package/dist/utils/coarsePointer.js +22 -13
  74. package/dist/utils/inputPresentation.d.ts +9 -1
  75. package/dist/utils/inputPresentation.d.ts.map +1 -1
  76. package/dist/utils/inputPresentation.js +15 -1
  77. package/locales/en.json +17 -1
  78. package/locales/pseudo.json +12 -0
  79. package/package.json +4 -4
  80. package/src/BottomSheet/useSheetGestures.ts +2 -2
  81. package/src/CheckboxInput/CheckboxInput.doc.mjs +2 -2
  82. package/src/CheckboxInput/CheckboxInput.tsx +42 -11
  83. package/src/CheckboxInput/CheckboxRowPressContext.ts +22 -0
  84. package/src/CheckboxList/CheckboxList.doc.mjs +9 -0
  85. package/src/CheckboxList/CheckboxListItem.doc.mjs +3 -3
  86. package/src/CheckboxList/CheckboxListItem.tsx +35 -14
  87. package/src/DateInput/DateInput.doc.mjs +45 -12
  88. package/src/DateInput/DateInput.tsx +163 -181
  89. package/src/DateInput/MonthScroller.tsx +39 -37
  90. package/src/DateInput/MonthYearWheels.tsx +68 -47
  91. package/src/DateInput/TouchDateField.tsx +45 -17
  92. package/src/DateInput/monthGeometry.ts +110 -8
  93. package/src/DateInput/useCalendarPresentation.ts +64 -0
  94. package/src/DateInput/useTypedDate.ts +469 -0
  95. package/src/DateRangeInput/DateRangeInput.doc.mjs +9 -0
  96. package/src/DateRangeInput/DateRangeInput.tsx +42 -10
  97. package/src/DateTimeInput/DateTimeInput.doc.mjs +42 -9
  98. package/src/DateTimeInput/DateTimeInput.tsx +136 -150
  99. package/src/DateTimeInput/TouchDateTimeField.tsx +31 -16
  100. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  101. package/src/hooks/computeOverflow.ts +1 -1
  102. package/src/hooks/useMediaQuery.ts +41 -12
  103. package/src/hooks/useOverflow.ts +297 -73
  104. package/src/i18n/InternationalizationProvider.doc.mjs +3 -3
  105. package/src/i18n/InternationalizationProvider.tsx +2 -1
  106. package/src/i18n/generated-english/DateInput/DateInput.generated.ts +0 -1
  107. package/src/i18n/generated-english/DateInput/useTypedDate.generated.ts +17 -0
  108. package/src/i18n/generated-english/DateTimeInput/DateTimeInput.generated.ts +0 -1
  109. package/src/i18n/generated-locales/en.generated.ts +6 -0
  110. package/src/i18n/generated-locales/pseudo.generated.ts +6 -0
  111. package/src/privateAttributes/press.stylex.ts +27 -11
  112. package/src/utils/calendarDateParser.ts +1 -1
  113. package/src/utils/calendarSystem.ts +212 -3
  114. package/src/utils/coarsePointer.ts +27 -14
  115. package/src/utils/inputPresentation.ts +21 -1
@@ -94,8 +94,8 @@ function touchPointerType(touch) {
94
94
  return touch.touchType === 'stylus' ? 'pen' : 'touch';
95
95
  }
96
96
 
97
- // A mouse's stretch past fully open: a resisted fraction of the drag, capped
98
- // at OVERSCROLL_MAX.
97
+ // A mouse's or a pen's stretch past fully open: a resisted fraction of the
98
+ // drag, capped at OVERSCROLL_MAX.
99
99
  const OVERSCROLL_RESISTANCE = 0.35;
100
100
  // SYNC: must not exceed MIN_RESERVE in BottomSheetPanel.tsx, the smallest
101
101
  // reserve the sheet keeps below the screen.
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @file CheckboxInput.tsx
3
- * @input Uses React, useId, ChangeEvent, FieldLabel, FieldStatus, IconType, InputStatus, useTooltip
3
+ * @input Uses React, useId, ChangeEvent, FieldLabel, FieldStatus, IconType, InputStatus, useTooltip,
4
+ * CheckboxRowPressContext (a row around the checkbox that owns its press)
4
5
  * @output Exports CheckboxInput component, CheckboxInputProps
5
6
  * @position Core implementation; consumed by index.ts, tested by CheckboxInput.test.tsx
6
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,UAAU,EAGf,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAS3C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AA2JhD,QAAA,MAAM,iBAAiB;;;;;;;;;EASrB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE/D,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACrE,wDAAwD;IACxD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,YAAY,CAAC,EAAE,CACb,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAC7B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,EAAE,OAAO,GAAG,eAAe,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACpD;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACnD;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAOD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,EAAE,EAAE,MAAM,EACV,KAAK,EACL,aAAqB,EACrB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,SAAiB,EACjB,KAAK,EACL,UAAkB,EAClB,QAAQ,EACR,eAAe,EACf,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,IAAW,EACX,OAAO,EACP,MAAM,EACN,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,kBAAkB,EAAE,mBAAmB,EACvC,GAAG,IAAI,EACR,EAAE,kBAAkB,+BA0QpB;yBArSe,aAAa"}
1
+ {"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"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"}
@@ -4,7 +4,8 @@
4
4
 
5
5
  /**
6
6
  * @file CheckboxInput.tsx
7
- * @input Uses React, useId, ChangeEvent, FieldLabel, FieldStatus, IconType, InputStatus, useTooltip
7
+ * @input Uses React, useId, ChangeEvent, FieldLabel, FieldStatus, IconType, InputStatus, useTooltip,
8
+ * CheckboxRowPressContext (a row around the checkbox that owns its press)
8
9
  * @output Exports CheckboxInput component, CheckboxInputProps
9
10
  * @position Core implementation; consumed by index.ts, tested by CheckboxInput.test.tsx
10
11
  *
@@ -15,7 +16,7 @@
15
16
  * - /apps/storybook/stories/CheckboxInput.stories.tsx (storybook stories)
16
17
  * - /packages/cli/assets/templates/blocks/components/CheckboxInput/ (showcase blocks)
17
18
  */
18
- import { useId, useCallback, useOptimistic, useRef, useTransition } from 'react';
19
+ import { use, useId, useCallback, useOptimistic, useRef, useTransition } from 'react';
19
20
  import * as stylex from '@stylexjs/stylex';
20
21
  import "../theme/tokens.stylex.js";
21
22
  import { colorVars, spacingVars, radiusVars, typographyVars, typeScaleVars, fontWeightVars } from "../theme/tokens.stylex.js";
@@ -40,6 +41,7 @@ import { useTouchHitArea } from "../utils/touchHitArea.js";
40
41
  import { touchHitAreaStyles } from "../utils/touchHitArea.stylex.js";
41
42
  import { registerEnglishFallback, useComponentTranslator } from "../i18n/useComponentTranslator.js";
42
43
  import english from "../i18n/generated-english/CheckboxInput/CheckboxInput.generated.js";
44
+ import { CheckboxRowPressContext } from "./CheckboxRowPressContext.js";
43
45
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
44
46
  registerEnglishFallback(english);
45
47
 
@@ -72,6 +74,10 @@ const styles = {
72
74
  "--_indicator-press-image": "x1dueop1 x189o2zt",
73
75
  $$css: true
74
76
  },
77
+ indicatorRowPressImage: {
78
+ "--_indicator-press-image": "x1y1g3jp",
79
+ $$css: true
80
+ },
75
81
  checkboxWrapper: {
76
82
  kVAEAm: "x1n2onr6",
77
83
  k1xSpc: "x78zum5",
@@ -91,6 +97,10 @@ const styles = {
91
97
  kNctxI: "x1ikgzpo xsozn46",
92
98
  $$css: true
93
99
  },
100
+ indicatorRowPressOverlay: {
101
+ kNctxI: "xlvbopx",
102
+ $$css: true
103
+ },
94
104
  input: {
95
105
  kVAEAm: "x10l6tqk",
96
106
  k87sOh: "xwa60dl",
@@ -182,6 +192,13 @@ export function CheckboxInput({
182
192
  // The row is the pressable: the overlay's pressed arm reads the row's
183
193
  // scope marker, the way the indicator's hover tint does.
184
194
  const pressable = usePressFeedback();
195
+ // A row around the checkbox that answers a press anywhere on it (a
196
+ // CheckboxListItem) owns the touch press instead. The checkbox then carries
197
+ // no press marker of its own. So the controller's innermost-wins rule finds
198
+ // the row for a finger on the label, the description or the box. The
199
+ // overlay below paints that row's press.
200
+ const isRowPressSurface = use(CheckboxRowPressContext);
201
+ const ownsPress = !isDisabled && !isRowPressSurface;
185
202
  const generatedId = useId();
186
203
  const id = idProp || generatedId;
187
204
  const descriptionID = useId();
@@ -296,17 +313,18 @@ export function CheckboxInput({
296
313
  ref: rowRef,
297
314
  onPointerDown: hasHitArea ? handleRowPointerDown : undefined,
298
315
  onClick: hasHitArea ? handleRowClick : undefined,
299
- ...(isDisabled ? undefined : pressable),
316
+ ...(ownsPress ? pressable : undefined),
300
317
  ...stylex.props(styles.container, isLabelHidden && styles.containerLabelHidden, hasHitArea && styles.hitAreaHost, hasHitArea && touchHitAreaStyles.layer,
301
318
  // Hover and focus reach the checkbox visual through this ancestor
302
319
  // marker rather than props, so the whole row drives it.
303
- !isDisabled && indicatorScope, !isDisabled && styles.indicatorPressImage,
320
+ !isDisabled && indicatorScope, !isDisabled && (isRowPressSurface ? styles.indicatorRowPressImage : styles.indicatorPressImage),
304
321
  // The touch press's strength and release live on the row the
305
322
  // controller writes to; the layer over the checkbox box inherits
306
- // and paints it.
307
- !isDisabled && interactionOverlayStyles.pressedAlpha),
323
+ // and paints it. Under a row that owns the press, the box inherits
324
+ // that row's strength instead.
325
+ ownsPress && interactionOverlayStyles.pressedAlpha),
308
326
  children: [/*#__PURE__*/_jsxs("div", {
309
- ...stylex.props(styles.checkboxWrapper, wrapperSizeStyles[size], !isDisabled && styles.indicatorPressOverlay),
327
+ ...stylex.props(styles.checkboxWrapper, wrapperSizeStyles[size], !isDisabled && styles.indicatorPressOverlay, !isDisabled && isRowPressSurface && styles.indicatorRowPressOverlay),
310
328
  ...focusProps,
311
329
  children: [/*#__PURE__*/_jsx("input", {
312
330
  ...rest,
@@ -0,0 +1,2 @@
1
+ export declare const CheckboxRowPressContext: import("react").Context<boolean>;
2
+ //# sourceMappingURL=CheckboxRowPressContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxRowPressContext.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxRowPressContext.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,uBAAuB,kCAAkC,CAAC"}
@@ -0,0 +1,20 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ 'use client';
4
+
5
+ /**
6
+ * @file CheckboxRowPressContext.ts
7
+ * @input Uses the private layer-scoped context factory
8
+ * @output CheckboxRowPressContext: whether the row is its checkbox's press surface
9
+ * @position Internal; CheckboxListItem provides it, CheckboxInput reads it
10
+ *
11
+ * Such a row carries the shared press marker (utils/pressFeedback.ts). Its
12
+ * checkbox carries none, so a finger anywhere on the row presses the row.
13
+ * It is layer-scoped and wraps only the row's own checkbox.
14
+ *
15
+ * SYNC: When modified, update CheckboxInput.tsx and
16
+ * ../CheckboxList/CheckboxListItem.tsx.
17
+ */
18
+ import { createLayerScopedContext } from "../Layer/layerScopedContext.js";
19
+ export const CheckboxRowPressContext = createLayerScopedContext(false);
20
+ CheckboxRowPressContext.displayName = 'CheckboxRowPressContext';
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @file CheckboxListItem.tsx
3
- * @input Uses React, CheckboxInput, ListItem, CheckboxListContext
3
+ * @input Uses React, CheckboxInput, ListItem, CheckboxListContext,
4
+ * CheckboxRowPressContext, the touch presentation and the row press paint
4
5
  * @output Exports CheckboxListItem component, CheckboxListItemProps
5
6
  * @position Core implementation; consumed by index.ts, tested by CheckboxList.test.tsx
6
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxListItem.d.ts","sourceRoot":"","sources":["../../src/CheckboxList/CheckboxListItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAkC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAItE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAU5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAuBvC,MAAM,WAAW,qBAAsB,SAAQ,SAAS,CAAC,aAAa,CAAC;IACrE;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IACtC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;CAChC;AAyCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,KAAK,EACL,WAAW,EACX,UAAU,EACV,UAAU,EAAE,cAAsB,EAClC,SAAS,EAAE,aAAqB,EAChC,SAAS,EACT,OAAO,EACP,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,KAAK,EACL,GAAG,SAAS,EACb,EAAE,qBAAqB,+BAiKvB;yBAlLe,gBAAgB"}
1
+ {"version":3,"file":"CheckboxListItem.d.ts","sourceRoot":"","sources":["../../src/CheckboxList/CheckboxListItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAkC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAItE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAc5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAuBvC,MAAM,WAAW,qBAAsB,SAAQ,SAAS,CAAC,aAAa,CAAC;IACrE;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IACtC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;CAChC;AAyCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,KAAK,EACL,WAAW,EACX,UAAU,EACV,UAAU,EAAE,cAAsB,EAClC,SAAS,EAAE,aAAqB,EAChC,SAAS,EACT,OAAO,EACP,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,KAAK,EACL,GAAG,SAAS,EACb,EAAE,qBAAqB,+BAiLvB;yBAlMe,gBAAgB"}
@@ -4,7 +4,8 @@
4
4
 
5
5
  /**
6
6
  * @file CheckboxListItem.tsx
7
- * @input Uses React, CheckboxInput, ListItem, CheckboxListContext
7
+ * @input Uses React, CheckboxInput, ListItem, CheckboxListContext,
8
+ * CheckboxRowPressContext, the touch presentation and the row press paint
8
9
  * @output Exports CheckboxListItem component, CheckboxListItemProps
9
10
  * @position Core implementation; consumed by index.ts, tested by CheckboxList.test.tsx
10
11
  *
@@ -21,6 +22,10 @@ import * as stylex from '@stylexjs/stylex';
21
22
  import "../theme/tokens.stylex.js";
22
23
  import { colorVars } from "../theme/tokens.stylex.js";
23
24
  import { CheckboxInput } from "../CheckboxInput/CheckboxInput.js";
25
+ import { CheckboxRowPressContext } from "../CheckboxInput/CheckboxRowPressContext.js";
26
+ import { rowPressPaintStyles } from "../privateAttributes/press.stylex.js";
27
+ import { interactionOverlayStyles } from "../utils/interactionOverlay.stylex.js";
28
+ import { useTouchPresentation } from "../utils/touchPresentation.js";
24
29
  import { ListItem } from "../List/ListItem.js";
25
30
  import { ListContext } from "../List/ListContext.js";
26
31
  import { CheckboxListContext } from "./CheckboxListContext.js";
@@ -184,6 +189,14 @@ export function CheckboxListItem({
184
189
  }) : undefined, [requiredGroup, isBoxChecked, isBoxEnabled]);
185
190
  const checkboxInputRef = useMergedRefs(checkboxRef, registerWithRequiredGroup);
186
191
 
192
+ // Under a finger, a delegating row is the option's only press surface. A
193
+ // touch anywhere on it presses the row. A fine pointer keeps the box's own
194
+ // press.
195
+ const {
196
+ isTouch
197
+ } = useTouchPresentation();
198
+ const rowOwnsPress = isTouch && hasRowInteraction && !effectiveDisabled;
199
+
187
200
  // A read-only checkbox carries aria-readonly, which the row's clickable
188
201
  // container treats as a non-interactive target, so a click on it would be
189
202
  // delegated straight back to the checkbox without end. Stop that click at
@@ -230,21 +243,34 @@ export function CheckboxListItem({
230
243
  ,
231
244
  interactiveRef: hasRowInteraction ? checkboxRef : undefined,
232
245
  "aria-busy": isBusy || undefined,
233
- xstyle: [resolvedChecked === true && !effectiveDisabled && !effectiveReadOnly && styles.selected, xstyle],
246
+ xstyle: [
247
+ // The row's own press paint, which the layer over its box reads.
248
+ rowOwnsPress && rowPressPaintStyles.checkboxRow,
249
+ // Item's row layer drops the strength's release, and the box paints
250
+ // at that strength. So the row brings the release back, and the box
251
+ // fades with the row.
252
+ rowOwnsPress && interactionOverlayStyles.pressedAlpha, resolvedChecked === true && !effectiveDisabled && !effectiveReadOnly && styles.selected, xstyle],
234
253
  className: className,
235
254
  style: style,
236
- startContent: /*#__PURE__*/_jsx(DescribedCheckboxInput, {
237
- ref: checkboxInputRef,
238
- label: checkboxLabel,
239
- "aria-labelledby": namesFromVisibleLabel ? labelID : undefined,
240
- isLabelHidden: true,
241
- value: resolvedChecked,
242
- onChange: () => handleToggle(),
243
- onClick: handleCheckboxClick,
244
- isDisabled: effectiveDisabled,
245
- isReadOnly: effectiveReadOnly,
246
- isLoading: isBusy,
247
- size: checkboxSize
255
+ startContent:
256
+ /*#__PURE__*/
257
+ // Only the row's own checkbox: a checkbox placed in the row's content
258
+ // keeps its own press.
259
+ _jsx(CheckboxRowPressContext, {
260
+ value: rowOwnsPress,
261
+ children: /*#__PURE__*/_jsx(DescribedCheckboxInput, {
262
+ ref: checkboxInputRef,
263
+ label: checkboxLabel,
264
+ "aria-labelledby": namesFromVisibleLabel ? labelID : undefined,
265
+ isLabelHidden: true,
266
+ value: resolvedChecked,
267
+ onChange: () => handleToggle(),
268
+ onClick: handleCheckboxClick,
269
+ isDisabled: effectiveDisabled,
270
+ isReadOnly: effectiveReadOnly,
271
+ isLoading: isBusy,
272
+ size: checkboxSize
273
+ })
248
274
  })
249
275
  });
250
276
  }
@@ -1,6 +1,7 @@
1
1
  import * as stylex from '@stylexjs/stylex';
2
2
  import { type InputStatus } from '../Field/index.js';
3
3
  import { type ISODateString, type DayOfWeek, type DayOfWeekName } from '../Calendar/index.js';
4
+ import type { CalendarSystem } from '../utils/calendarSystem.js';
4
5
  import type { TimestampFormat } from '../Timestamp/index.js';
5
6
  import { type PickerPresentation } from '../utils/inputPresentation.js';
6
7
  declare const sizeStyles: Readonly<{
@@ -136,7 +137,8 @@ export interface DateInputProps extends Omit<FieldInputBaseProps<HTMLInputElemen
136
137
  */
137
138
  dateConstraints?: ReadonlyArray<(date: Date) => boolean>;
138
139
  /**
139
- * Placeholder text shown when no date is selected.
140
+ * Placeholder text shown when no date is selected. A caller placeholder
141
+ * replaces the calendar format hint.
140
142
  * @default "Select a date"
141
143
  */
142
144
  placeholder?: string;
@@ -202,9 +204,10 @@ export interface DateInputProps extends Omit<FieldInputBaseProps<HTMLInputElemen
202
204
  * - `(value: ISODateString) => string`: fully custom display string
203
205
  *
204
206
  * Formatting applies only to the committed value — never to text the user is
205
- * actively typing. A custom function's output that `parseDateInput` cannot
206
- * read back can't be re-committed after an edit; external `value` changes
207
- * always recompute the display from the ISO value.
207
+ * actively typing. Named formats write the date in the field's `calendar`;
208
+ * `'system_date'` stays the Gregorian ISO date. A custom function's output
209
+ * that the field cannot read back can't be re-committed after an edit;
210
+ * external `value` changes always recompute the display from the ISO value.
208
211
  *
209
212
  * @default 'date_long'
210
213
  * @example
@@ -219,6 +222,28 @@ export interface DateInputProps extends Omit<FieldInputBaseProps<HTMLInputElemen
219
222
  * ```
220
223
  */
221
224
  format?: DateInputFormat | ((value: ISODateString) => string);
225
+ /**
226
+ * The calendar the field shows dates in, such as `'persian'`, `'hebrew'`, or
227
+ * `'buddhist'`: the text field, its calendar popover, and the bottom sheet's
228
+ * months and wheels. `value`, `onChange`, `min`, and `max` stay Gregorian
229
+ * ISO dates in every calendar. People type a date the way the locale writes
230
+ * it in this calendar, and the committed text uses it.
231
+ * Years are years of this calendar, so a Buddhist field reads `2026` as
232
+ * Buddhist year 2026; set `min` and `max` to catch a year typed in the
233
+ * wrong calendar. Calendars other than `gregory`, `iso8601`, `buddhist`,
234
+ * `roc`, and `japanese` need `Temporal`, native or a polyfill the
235
+ * application loads; without it the field uses the Gregorian calendar.
236
+ * The native date control is Gregorian, so with a calendar other than
237
+ * `gregory` or `iso8601` every presentation that would show it uses the
238
+ * popover on a fine pointer and the bottom sheet on a coarse pointer.
239
+ *
240
+ * @default the InternationalizationProvider's calendar, else `'gregory'`
241
+ * @example
242
+ * ```
243
+ * <DateInput label="Start date" calendar="persian" value={date} onChange={setDate} />
244
+ * ```
245
+ */
246
+ calendar?: CalendarSystem;
222
247
  /**
223
248
  * When date picking is handed to the browser/OS instead of Astryx's own
224
249
  * surfaces: the field becomes an `<input type="date">` and the platform
@@ -244,6 +269,9 @@ export interface DateInputProps extends Omit<FieldInputBaseProps<HTMLInputElemen
244
269
  * picker. `dateConstraints` is enforced the same way, on commit, and is
245
270
  * reason enough to prefer `'never'` on a field that uses it.
246
271
  *
272
+ * In a calendar other than `gregory` or `iso8601`, `'touch'` and `'always'`
273
+ * use the calendar popover on a mouse and the touch picker on a finger.
274
+ *
247
275
  * @default 'touch'
248
276
  * @deprecated Use `presentation` (`spec:AST-043` FR3):
249
277
  * `'touch'` → `'adaptive-native'`, `'always'` → `'native'`,
@@ -258,12 +286,15 @@ export interface DateInputProps extends Omit<FieldInputBaseProps<HTMLInputElemen
258
286
  * - `'popover'`: Astryx's typed field + calendar popover on every pointer
259
287
  * - `'bottom-sheet'`: Astryx's bottom-sheet calendar on every pointer
260
288
  * - `'native'`: the browser/OS picker on every pointer, with no Astryx
261
- * fallback (FR2)
289
+ * fallback (FR2), except in a calendar other than `gregory` or
290
+ * `iso8601`, where it is `'adaptive-bottom-sheet'` and warns in
291
+ * development
262
292
  * - `'adaptive-bottom-sheet'`: popover on a fine pointer, bottom sheet on
263
293
  * a coarse pointer
264
294
  * - `'adaptive-native'` (default): popover on a fine pointer, browser/OS
265
295
  * picker on a coarse pointer, keeping the released Astryx fallbacks
266
- * where a native control cannot express the value (FR2)
296
+ * where a native control cannot express the value (FR2), and the bottom
297
+ * sheet in a calendar other than `gregory` or `iso8601`
267
298
  *
268
299
  * @default 'adaptive-native'
269
300
  */
@@ -1 +1 @@
1
- {"version":3,"file":"DateInput.d.ts","sourceRoot":"","sources":["../../src/DateInput/DateInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DateInput.d.ts","sourceRoot":"","sources":["../../src/DateInput/DateInput.tsx"],"names":[],"mappings":"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"}