@primer/components 0.0.0-2021929153151 → 0.0.0-202192923313

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 (186) hide show
  1. package/CHANGELOG.md +1 -25
  2. package/dist/browser.esm.js +49 -53
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +46 -50
  5. package/dist/browser.umd.js.map +1 -1
  6. package/lib/ActionList/Item.d.ts +0 -6
  7. package/lib/ActionList/Item.js +1 -5
  8. package/lib/AnchoredOverlay/AnchoredOverlay.d.ts +4 -2
  9. package/lib/Autocomplete/Autocomplete.d.ts +32 -30
  10. package/lib/Autocomplete/AutocompleteInput.d.ts +32 -30
  11. package/lib/Button/Button.d.ts +27 -27
  12. package/lib/Button/ButtonBase.d.ts +1 -1
  13. package/lib/Button/ButtonClose.d.ts +45 -45
  14. package/lib/Button/ButtonDanger.d.ts +27 -27
  15. package/lib/Button/ButtonInvisible.d.ts +27 -27
  16. package/lib/Button/ButtonOutline.d.ts +27 -27
  17. package/lib/Button/ButtonPrimary.d.ts +27 -27
  18. package/lib/CircleBadge.d.ts +2 -2
  19. package/lib/CircleOcticon.d.ts +43 -43
  20. package/lib/DatePicker/DatePicker.d.ts +48 -0
  21. package/lib/DatePicker/DatePicker.js +106 -0
  22. package/lib/DatePicker/DatePickerAnchor.d.ts +5 -0
  23. package/lib/DatePicker/DatePickerAnchor.js +223 -0
  24. package/lib/DatePicker/DatePickerOverlay.d.ts +3 -0
  25. package/lib/DatePicker/DatePickerOverlay.js +48 -0
  26. package/lib/DatePicker/DatePickerPanel.d.ts +2 -0
  27. package/lib/DatePicker/DatePickerPanel.js +126 -0
  28. package/lib/DatePicker/Day.d.ts +14 -0
  29. package/lib/DatePicker/Day.js +192 -0
  30. package/lib/DatePicker/Month.d.ts +9 -0
  31. package/lib/DatePicker/Month.js +122 -0
  32. package/lib/DatePicker/dateParser.d.ts +11 -0
  33. package/lib/DatePicker/dateParser.js +192 -0
  34. package/lib/DatePicker/index.d.ts +2 -0
  35. package/lib/DatePicker/index.js +13 -0
  36. package/lib/DatePicker/useDatePicker.d.ts +89 -0
  37. package/lib/DatePicker/useDatePicker.js +439 -0
  38. package/lib/Dialog.d.ts +46 -46
  39. package/lib/Dropdown.d.ts +178 -178
  40. package/lib/DropdownMenu/DropdownButton.d.ts +47 -47
  41. package/lib/FilterList.d.ts +42 -42
  42. package/lib/Flash.d.ts +1 -1
  43. package/lib/Label.d.ts +1 -1
  44. package/lib/Position.d.ts +4 -4
  45. package/lib/ProgressBar.d.ts +1 -1
  46. package/lib/SelectMenu/SelectMenu.d.ts +248 -246
  47. package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
  48. package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
  49. package/lib/TextInputWithTokens.d.ts +32 -34
  50. package/lib/TextInputWithTokens.js +29 -102
  51. package/lib/Timeline.d.ts +44 -44
  52. package/lib/Token/AvatarToken.d.ts +1 -1
  53. package/lib/Token/IssueLabelToken.d.ts +1 -1
  54. package/lib/Token/Token.d.ts +1 -1
  55. package/lib/Token/Token.js +2 -13
  56. package/lib/Token/TokenBase.js +4 -0
  57. package/lib/Token/_RemoveTokenButton.js +2 -15
  58. package/lib/_TextInputWrapper.d.ts +1 -1
  59. package/lib/_TextInputWrapper.js +1 -1
  60. package/lib/hooks/useDebounce.d.ts +2 -0
  61. package/lib/hooks/useDebounce.js +24 -0
  62. package/lib/sx.d.ts +2 -10
  63. package/lib/sx.js +0 -8
  64. package/lib/theme-preval.js +2 -2
  65. package/lib/theme.d.ts +0 -78
  66. package/lib/theme.js +1 -3
  67. package/lib/utils/testing.d.ts +1 -1
  68. package/lib-esm/ActionList/Item.d.ts +0 -6
  69. package/lib-esm/ActionList/Item.js +1 -5
  70. package/lib-esm/AnchoredOverlay/AnchoredOverlay.d.ts +4 -2
  71. package/lib-esm/Autocomplete/Autocomplete.d.ts +32 -30
  72. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +32 -30
  73. package/lib-esm/Button/Button.d.ts +27 -27
  74. package/lib-esm/Button/ButtonBase.d.ts +1 -1
  75. package/lib-esm/Button/ButtonClose.d.ts +45 -45
  76. package/lib-esm/Button/ButtonDanger.d.ts +27 -27
  77. package/lib-esm/Button/ButtonInvisible.d.ts +27 -27
  78. package/lib-esm/Button/ButtonOutline.d.ts +27 -27
  79. package/lib-esm/Button/ButtonPrimary.d.ts +27 -27
  80. package/lib-esm/CircleBadge.d.ts +2 -2
  81. package/lib-esm/CircleOcticon.d.ts +43 -43
  82. package/lib-esm/DatePicker/DatePicker.d.ts +48 -0
  83. package/lib-esm/DatePicker/DatePicker.js +89 -0
  84. package/lib-esm/DatePicker/DatePickerAnchor.d.ts +5 -0
  85. package/lib-esm/DatePicker/DatePickerAnchor.js +196 -0
  86. package/lib-esm/DatePicker/DatePickerOverlay.d.ts +3 -0
  87. package/lib-esm/DatePicker/DatePickerOverlay.js +29 -0
  88. package/lib-esm/DatePicker/DatePickerPanel.d.ts +2 -0
  89. package/lib-esm/DatePicker/DatePickerPanel.js +100 -0
  90. package/lib-esm/DatePicker/Day.d.ts +14 -0
  91. package/lib-esm/DatePicker/Day.js +169 -0
  92. package/lib-esm/DatePicker/Month.d.ts +9 -0
  93. package/lib-esm/DatePicker/Month.js +98 -0
  94. package/lib-esm/DatePicker/dateParser.d.ts +11 -0
  95. package/lib-esm/DatePicker/dateParser.js +178 -0
  96. package/lib-esm/DatePicker/index.d.ts +2 -0
  97. package/lib-esm/DatePicker/index.js +1 -0
  98. package/lib-esm/DatePicker/useDatePicker.d.ts +89 -0
  99. package/lib-esm/DatePicker/useDatePicker.js +408 -0
  100. package/lib-esm/Dialog.d.ts +46 -46
  101. package/lib-esm/Dropdown.d.ts +178 -178
  102. package/lib-esm/DropdownMenu/DropdownButton.d.ts +47 -47
  103. package/lib-esm/FilterList.d.ts +42 -42
  104. package/lib-esm/Flash.d.ts +1 -1
  105. package/lib-esm/Label.d.ts +1 -1
  106. package/lib-esm/Position.d.ts +4 -4
  107. package/lib-esm/ProgressBar.d.ts +1 -1
  108. package/lib-esm/SelectMenu/SelectMenu.d.ts +248 -246
  109. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
  110. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
  111. package/lib-esm/TextInputWithTokens.d.ts +32 -34
  112. package/lib-esm/TextInputWithTokens.js +30 -101
  113. package/lib-esm/Timeline.d.ts +44 -44
  114. package/lib-esm/Token/AvatarToken.d.ts +1 -1
  115. package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
  116. package/lib-esm/Token/Token.d.ts +1 -1
  117. package/lib-esm/Token/Token.js +2 -13
  118. package/lib-esm/Token/TokenBase.js +4 -0
  119. package/lib-esm/Token/_RemoveTokenButton.js +2 -11
  120. package/lib-esm/_TextInputWrapper.d.ts +1 -1
  121. package/lib-esm/_TextInputWrapper.js +1 -1
  122. package/lib-esm/hooks/useDebounce.d.ts +2 -0
  123. package/lib-esm/hooks/useDebounce.js +16 -0
  124. package/lib-esm/sx.d.ts +2 -10
  125. package/lib-esm/sx.js +1 -3
  126. package/lib-esm/theme-preval.js +2 -2
  127. package/lib-esm/theme.d.ts +0 -78
  128. package/lib-esm/theme.js +1 -2
  129. package/lib-esm/utils/testing.d.ts +1 -1
  130. package/package.json +14 -16
  131. package/lib/ActionList2/Description.d.ts +0 -6
  132. package/lib/ActionList2/Description.js +0 -53
  133. package/lib/ActionList2/Divider.d.ts +0 -5
  134. package/lib/ActionList2/Divider.js +0 -33
  135. package/lib/ActionList2/Group.d.ts +0 -11
  136. package/lib/ActionList2/Group.js +0 -55
  137. package/lib/ActionList2/Header.d.ts +0 -26
  138. package/lib/ActionList2/Header.js +0 -55
  139. package/lib/ActionList2/Item.d.ts +0 -48
  140. package/lib/ActionList2/Item.js +0 -204
  141. package/lib/ActionList2/List.d.ts +0 -26
  142. package/lib/ActionList2/List.js +0 -56
  143. package/lib/ActionList2/Selection.d.ts +0 -5
  144. package/lib/ActionList2/Selection.js +0 -73
  145. package/lib/ActionList2/Visuals.d.ts +0 -11
  146. package/lib/ActionList2/Visuals.js +0 -90
  147. package/lib/ActionList2/hacks.d.ts +0 -30
  148. package/lib/ActionList2/hacks.js +0 -38
  149. package/lib/ActionList2/index.d.ts +0 -28
  150. package/lib/ActionList2/index.js +0 -42
  151. package/lib/experiments.d.ts +0 -1
  152. package/lib/experiments.js +0 -18
  153. package/lib/utils/create-slots.d.ts +0 -17
  154. package/lib/utils/create-slots.js +0 -105
  155. package/lib/utils/types/KeyPaths.d.ts +0 -3
  156. package/lib/utils/types/KeyPaths.js +0 -1
  157. package/lib/utils/use-force-update.d.ts +0 -1
  158. package/lib/utils/use-force-update.js +0 -19
  159. package/lib-esm/ActionList2/Description.d.ts +0 -6
  160. package/lib-esm/ActionList2/Description.js +0 -37
  161. package/lib-esm/ActionList2/Divider.d.ts +0 -5
  162. package/lib-esm/ActionList2/Divider.js +0 -21
  163. package/lib-esm/ActionList2/Group.d.ts +0 -11
  164. package/lib-esm/ActionList2/Group.js +0 -38
  165. package/lib-esm/ActionList2/Header.d.ts +0 -26
  166. package/lib-esm/ActionList2/Header.js +0 -45
  167. package/lib-esm/ActionList2/Item.d.ts +0 -48
  168. package/lib-esm/ActionList2/Item.js +0 -176
  169. package/lib-esm/ActionList2/List.d.ts +0 -26
  170. package/lib-esm/ActionList2/List.js +0 -38
  171. package/lib-esm/ActionList2/Selection.d.ts +0 -5
  172. package/lib-esm/ActionList2/Selection.js +0 -55
  173. package/lib-esm/ActionList2/Visuals.d.ts +0 -11
  174. package/lib-esm/ActionList2/Visuals.js +0 -68
  175. package/lib-esm/ActionList2/hacks.d.ts +0 -30
  176. package/lib-esm/ActionList2/hacks.js +0 -30
  177. package/lib-esm/ActionList2/index.d.ts +0 -28
  178. package/lib-esm/ActionList2/index.js +0 -29
  179. package/lib-esm/experiments.d.ts +0 -1
  180. package/lib-esm/experiments.js +0 -2
  181. package/lib-esm/utils/create-slots.d.ts +0 -17
  182. package/lib-esm/utils/create-slots.js +0 -84
  183. package/lib-esm/utils/types/KeyPaths.d.ts +0 -3
  184. package/lib-esm/utils/types/KeyPaths.js +0 -1
  185. package/lib-esm/utils/use-force-update.d.ts +0 -1
  186. package/lib-esm/utils/use-force-update.js +0 -6
@@ -3,7 +3,7 @@ import { SxProp } from '../sx';
3
3
  import { ComponentProps } from '../utils/types';
4
4
  export declare const ButtonPrimary: import("styled-components").StyledComponent<"button", any, {
5
5
  as?: string | import("react").ComponentClass<any, any> | import("react").FunctionComponent<any> | undefined;
6
- variant?: "small" | "medium" | "large" | undefined;
6
+ variant?: "large" | "medium" | "small" | undefined;
7
7
  } & import("styled-system").FontSizeProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol> & {
8
8
  color?: string | undefined;
9
9
  fontSize?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
@@ -25,14 +25,14 @@ export declare const ButtonPrimary: import("styled-components").StyledComponent<
25
25
  suppressHydrationWarning?: boolean | undefined;
26
26
  accessKey?: string | undefined;
27
27
  className?: string | undefined;
28
- contentEditable?: "inherit" | (boolean | "false" | "true") | undefined;
28
+ contentEditable?: "inherit" | (boolean | "true" | "false") | undefined;
29
29
  contextMenu?: string | undefined;
30
30
  dir?: string | undefined;
31
- draggable?: (boolean | "false" | "true") | undefined;
31
+ draggable?: (boolean | "true" | "false") | undefined;
32
32
  id?: string | undefined;
33
33
  lang?: string | undefined;
34
34
  placeholder?: string | undefined;
35
- spellCheck?: (boolean | "false" | "true") | undefined;
35
+ spellCheck?: (boolean | "true" | "false") | undefined;
36
36
  tabIndex?: number | undefined;
37
37
  radioGroup?: string | undefined;
38
38
  role?: import("react").AriaRole | undefined;
@@ -55,50 +55,50 @@ export declare const ButtonPrimary: import("styled-components").StyledComponent<
55
55
  results?: number | undefined;
56
56
  security?: string | undefined;
57
57
  unselectable?: "on" | "off" | undefined;
58
- inputMode?: "search" | "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | undefined;
58
+ inputMode?: "none" | "text" | "search" | "tel" | "url" | "email" | "numeric" | "decimal" | undefined;
59
59
  is?: string | undefined;
60
60
  'aria-activedescendant'?: string | undefined;
61
- 'aria-atomic'?: boolean | "false" | "true" | undefined;
62
- 'aria-autocomplete'?: "none" | "both" | "inline" | "list" | undefined;
63
- 'aria-busy'?: boolean | "false" | "true" | undefined;
64
- 'aria-checked'?: boolean | "mixed" | "false" | "true" | undefined;
61
+ 'aria-atomic'?: boolean | "true" | "false" | undefined;
62
+ 'aria-autocomplete'?: "none" | "list" | "inline" | "both" | undefined;
63
+ 'aria-busy'?: boolean | "true" | "false" | undefined;
64
+ 'aria-checked'?: boolean | "true" | "false" | "mixed" | undefined;
65
65
  'aria-colcount'?: number | undefined;
66
66
  'aria-colindex'?: number | undefined;
67
67
  'aria-colspan'?: number | undefined;
68
68
  'aria-controls'?: string | undefined;
69
- 'aria-current'?: boolean | "time" | "page" | "false" | "true" | "step" | "location" | "date" | undefined;
69
+ 'aria-current'?: boolean | "time" | "true" | "false" | "page" | "step" | "location" | "date" | undefined;
70
70
  'aria-describedby'?: string | undefined;
71
71
  'aria-details'?: string | undefined;
72
- 'aria-disabled'?: boolean | "false" | "true" | undefined;
73
- 'aria-dropeffect'?: "link" | "none" | "copy" | "move" | "execute" | "popup" | undefined;
72
+ 'aria-disabled'?: boolean | "true" | "false" | undefined;
73
+ 'aria-dropeffect'?: "none" | "link" | "copy" | "execute" | "move" | "popup" | undefined;
74
74
  'aria-errormessage'?: string | undefined;
75
- 'aria-expanded'?: boolean | "false" | "true" | undefined;
75
+ 'aria-expanded'?: boolean | "true" | "false" | undefined;
76
76
  'aria-flowto'?: string | undefined;
77
- 'aria-grabbed'?: boolean | "false" | "true" | undefined;
78
- 'aria-haspopup'?: boolean | "grid" | "dialog" | "menu" | "listbox" | "false" | "true" | "tree" | undefined;
79
- 'aria-hidden'?: boolean | "false" | "true" | undefined;
80
- 'aria-invalid'?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
77
+ 'aria-grabbed'?: boolean | "true" | "false" | undefined;
78
+ 'aria-haspopup'?: boolean | "grid" | "dialog" | "menu" | "listbox" | "tree" | "true" | "false" | undefined;
79
+ 'aria-hidden'?: boolean | "true" | "false" | undefined;
80
+ 'aria-invalid'?: boolean | "true" | "false" | "grammar" | "spelling" | undefined;
81
81
  'aria-keyshortcuts'?: string | undefined;
82
82
  'aria-label'?: string | undefined;
83
83
  'aria-labelledby'?: string | undefined;
84
84
  'aria-level'?: number | undefined;
85
85
  'aria-live'?: "off" | "assertive" | "polite" | undefined;
86
- 'aria-modal'?: boolean | "false" | "true" | undefined;
87
- 'aria-multiline'?: boolean | "false" | "true" | undefined;
88
- 'aria-multiselectable'?: boolean | "false" | "true" | undefined;
86
+ 'aria-modal'?: boolean | "true" | "false" | undefined;
87
+ 'aria-multiline'?: boolean | "true" | "false" | undefined;
88
+ 'aria-multiselectable'?: boolean | "true" | "false" | undefined;
89
89
  'aria-orientation'?: "horizontal" | "vertical" | undefined;
90
90
  'aria-owns'?: string | undefined;
91
91
  'aria-placeholder'?: string | undefined;
92
92
  'aria-posinset'?: number | undefined;
93
- 'aria-pressed'?: boolean | "mixed" | "false" | "true" | undefined;
94
- 'aria-readonly'?: boolean | "false" | "true" | undefined;
93
+ 'aria-pressed'?: boolean | "true" | "false" | "mixed" | undefined;
94
+ 'aria-readonly'?: boolean | "true" | "false" | undefined;
95
95
  'aria-relevant'?: "all" | "text" | "additions" | "additions removals" | "additions text" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
96
- 'aria-required'?: boolean | "false" | "true" | undefined;
96
+ 'aria-required'?: boolean | "true" | "false" | undefined;
97
97
  'aria-roledescription'?: string | undefined;
98
98
  'aria-rowcount'?: number | undefined;
99
99
  'aria-rowindex'?: number | undefined;
100
100
  'aria-rowspan'?: number | undefined;
101
- 'aria-selected'?: boolean | "false" | "true" | undefined;
101
+ 'aria-selected'?: boolean | "true" | "false" | undefined;
102
102
  'aria-setsize'?: number | undefined;
103
103
  'aria-sort'?: "none" | "ascending" | "descending" | "other" | undefined;
104
104
  'aria-valuemax'?: number | undefined;
@@ -268,15 +268,15 @@ export declare const ButtonPrimary: import("styled-components").StyledComponent<
268
268
  onAnimationIterationCapture?: import("react").AnimationEventHandler<HTMLButtonElement> | undefined;
269
269
  onTransitionEnd?: import("react").TransitionEventHandler<HTMLButtonElement> | undefined;
270
270
  onTransitionEndCapture?: import("react").TransitionEventHandler<HTMLButtonElement> | undefined;
271
- variant?: "small" | "medium" | "large" | undefined;
272
- as?: string | import("react").ComponentClass<any, any> | import("react").FunctionComponent<any> | undefined;
273
- disabled?: boolean | undefined;
274
271
  autoFocus?: boolean | undefined;
272
+ disabled?: boolean | undefined;
275
273
  formAction?: string | undefined;
276
274
  formEncType?: string | undefined;
277
275
  formMethod?: string | undefined;
278
276
  formNoValidate?: boolean | undefined;
279
277
  formTarget?: string | undefined;
278
+ as?: string | import("react").ComponentClass<any, any> | import("react").FunctionComponent<any> | undefined;
279
+ variant?: "large" | "medium" | "small" | undefined;
280
280
  } & {
281
281
  theme?: any;
282
282
  } & import("styled-system").FontSizeProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol> & import("../constants").SystemCommonProps & import("../constants").SystemLayoutProps & SxProp, never>;
@@ -5,7 +5,7 @@ import { SxProp } from './sx';
5
5
  import { ComponentProps } from './utils/types';
6
6
  declare const CircleBadge: import("styled-components").StyledComponent<"div", any, {
7
7
  inline?: boolean | undefined;
8
- variant?: "small" | "medium" | "large" | undefined;
8
+ variant?: "large" | "medium" | "small" | undefined;
9
9
  size?: number | undefined;
10
10
  } & SystemCommonProps & SxProp, never>;
11
11
  declare const CircleBadgeIcon: import("styled-components").StyledComponent<({ icon: IconComponent, ...rest }: {
@@ -15,7 +15,7 @@ export declare type CircleBadgeProps = ComponentProps<typeof CircleBadge>;
15
15
  export declare type CircleBadgeIconProps = ComponentProps<typeof CircleBadgeIcon>;
16
16
  declare const _default: string & import("styled-components").StyledComponentBase<"div", any, {
17
17
  inline?: boolean | undefined;
18
- variant?: "small" | "medium" | "large" | undefined;
18
+ variant?: "large" | "medium" | "small" | undefined;
19
19
  size?: number | undefined;
20
20
  } & SystemCommonProps & SxProp, never> & import("hoist-non-react-statics").NonReactStatics<never, {}> & {
21
21
  Icon: import("styled-components").StyledComponent<({ icon: IconComponent, ...rest }: {
@@ -13,7 +13,6 @@ declare namespace CircleOcticon {
13
13
  var defaultProps: {
14
14
  size: number;
15
15
  lineHeight?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
16
- border?: import("styled-system").ResponsiveValue<import("csstype").Property.Border<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
17
16
  alignContent?: import("styled-system").ResponsiveValue<import("csstype").Property.AlignContent, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
18
17
  alignItems?: import("styled-system").ResponsiveValue<import("csstype").Property.AlignItems, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
19
18
  alignSelf?: import("styled-system").ResponsiveValue<import("csstype").Property.AlignSelf, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
@@ -89,6 +88,7 @@ declare namespace CircleOcticon {
89
88
  zIndex?: import("styled-system").ResponsiveValue<import("csstype").Property.ZIndex, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
90
89
  background?: import("styled-system").ResponsiveValue<import("csstype").Property.Background<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
91
90
  backgroundPosition?: import("styled-system").ResponsiveValue<import("csstype").Property.BackgroundPosition<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
91
+ border?: import("styled-system").ResponsiveValue<import("csstype").Property.Border<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
92
92
  borderBottom?: import("styled-system").ResponsiveValue<import("csstype").Property.BorderBottom<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
93
93
  borderColor?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
94
94
  borderLeft?: import("styled-system").ResponsiveValue<import("csstype").Property.BorderLeft<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
@@ -114,24 +114,6 @@ declare namespace CircleOcticon {
114
114
  slot?: string | undefined;
115
115
  style?: React.CSSProperties | undefined;
116
116
  title?: string | undefined;
117
- bg?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
118
- m?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
119
- mt?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
120
- mr?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
121
- mb?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
122
- ml?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
123
- mx?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
124
- marginX?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
125
- my?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
126
- marginY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
127
- pt?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
128
- pr?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
129
- pb?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
130
- pl?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
131
- px?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
132
- paddingX?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
133
- py?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
134
- paddingY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
135
117
  key?: React.Key | null | undefined;
136
118
  defaultChecked?: boolean | undefined;
137
119
  defaultValue?: string | number | readonly string[] | undefined;
@@ -139,14 +121,14 @@ declare namespace CircleOcticon {
139
121
  suppressHydrationWarning?: boolean | undefined;
140
122
  accessKey?: string | undefined;
141
123
  className?: string | undefined;
142
- contentEditable?: "inherit" | (boolean | "false" | "true") | undefined;
124
+ contentEditable?: "inherit" | (boolean | "true" | "false") | undefined;
143
125
  contextMenu?: string | undefined;
144
126
  dir?: string | undefined;
145
- draggable?: (boolean | "false" | "true") | undefined;
127
+ draggable?: (boolean | "true" | "false") | undefined;
146
128
  id?: string | undefined;
147
129
  lang?: string | undefined;
148
130
  placeholder?: string | undefined;
149
- spellCheck?: (boolean | "false" | "true") | undefined;
131
+ spellCheck?: (boolean | "true" | "false") | undefined;
150
132
  tabIndex?: number | undefined;
151
133
  radioGroup?: string | undefined;
152
134
  role?: React.AriaRole | undefined;
@@ -169,50 +151,50 @@ declare namespace CircleOcticon {
169
151
  results?: number | undefined;
170
152
  security?: string | undefined;
171
153
  unselectable?: "on" | "off" | undefined;
172
- inputMode?: "search" | "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | undefined;
154
+ inputMode?: "none" | "text" | "search" | "tel" | "url" | "email" | "numeric" | "decimal" | undefined;
173
155
  is?: string | undefined;
174
156
  'aria-activedescendant'?: string | undefined;
175
- 'aria-atomic'?: boolean | "false" | "true" | undefined;
176
- 'aria-autocomplete'?: "none" | "both" | "inline" | "list" | undefined;
177
- 'aria-busy'?: boolean | "false" | "true" | undefined;
178
- 'aria-checked'?: boolean | "mixed" | "false" | "true" | undefined;
157
+ 'aria-atomic'?: boolean | "true" | "false" | undefined;
158
+ 'aria-autocomplete'?: "none" | "list" | "inline" | "both" | undefined;
159
+ 'aria-busy'?: boolean | "true" | "false" | undefined;
160
+ 'aria-checked'?: boolean | "true" | "false" | "mixed" | undefined;
179
161
  'aria-colcount'?: number | undefined;
180
162
  'aria-colindex'?: number | undefined;
181
163
  'aria-colspan'?: number | undefined;
182
164
  'aria-controls'?: string | undefined;
183
- 'aria-current'?: boolean | "time" | "page" | "false" | "true" | "step" | "location" | "date" | undefined;
165
+ 'aria-current'?: boolean | "time" | "true" | "false" | "page" | "step" | "location" | "date" | undefined;
184
166
  'aria-describedby'?: string | undefined;
185
167
  'aria-details'?: string | undefined;
186
- 'aria-disabled'?: boolean | "false" | "true" | undefined;
187
- 'aria-dropeffect'?: "link" | "none" | "copy" | "move" | "execute" | "popup" | undefined;
168
+ 'aria-disabled'?: boolean | "true" | "false" | undefined;
169
+ 'aria-dropeffect'?: "none" | "link" | "copy" | "execute" | "move" | "popup" | undefined;
188
170
  'aria-errormessage'?: string | undefined;
189
- 'aria-expanded'?: boolean | "false" | "true" | undefined;
171
+ 'aria-expanded'?: boolean | "true" | "false" | undefined;
190
172
  'aria-flowto'?: string | undefined;
191
- 'aria-grabbed'?: boolean | "false" | "true" | undefined;
192
- 'aria-haspopup'?: boolean | "grid" | "dialog" | "menu" | "listbox" | "false" | "true" | "tree" | undefined;
193
- 'aria-hidden'?: boolean | "false" | "true" | undefined;
194
- 'aria-invalid'?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
173
+ 'aria-grabbed'?: boolean | "true" | "false" | undefined;
174
+ 'aria-haspopup'?: boolean | "grid" | "dialog" | "menu" | "listbox" | "tree" | "true" | "false" | undefined;
175
+ 'aria-hidden'?: boolean | "true" | "false" | undefined;
176
+ 'aria-invalid'?: boolean | "true" | "false" | "grammar" | "spelling" | undefined;
195
177
  'aria-keyshortcuts'?: string | undefined;
196
178
  'aria-label'?: string | undefined;
197
179
  'aria-labelledby'?: string | undefined;
198
180
  'aria-level'?: number | undefined;
199
181
  'aria-live'?: "off" | "assertive" | "polite" | undefined;
200
- 'aria-modal'?: boolean | "false" | "true" | undefined;
201
- 'aria-multiline'?: boolean | "false" | "true" | undefined;
202
- 'aria-multiselectable'?: boolean | "false" | "true" | undefined;
182
+ 'aria-modal'?: boolean | "true" | "false" | undefined;
183
+ 'aria-multiline'?: boolean | "true" | "false" | undefined;
184
+ 'aria-multiselectable'?: boolean | "true" | "false" | undefined;
203
185
  'aria-orientation'?: "horizontal" | "vertical" | undefined;
204
186
  'aria-owns'?: string | undefined;
205
187
  'aria-placeholder'?: string | undefined;
206
188
  'aria-posinset'?: number | undefined;
207
- 'aria-pressed'?: boolean | "mixed" | "false" | "true" | undefined;
208
- 'aria-readonly'?: boolean | "false" | "true" | undefined;
189
+ 'aria-pressed'?: boolean | "true" | "false" | "mixed" | undefined;
190
+ 'aria-readonly'?: boolean | "true" | "false" | undefined;
209
191
  'aria-relevant'?: "all" | "text" | "additions" | "additions removals" | "additions text" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
210
- 'aria-required'?: boolean | "false" | "true" | undefined;
192
+ 'aria-required'?: boolean | "true" | "false" | undefined;
211
193
  'aria-roledescription'?: string | undefined;
212
194
  'aria-rowcount'?: number | undefined;
213
195
  'aria-rowindex'?: number | undefined;
214
196
  'aria-rowspan'?: number | undefined;
215
- 'aria-selected'?: boolean | "false" | "true" | undefined;
197
+ 'aria-selected'?: boolean | "true" | "false" | undefined;
216
198
  'aria-setsize'?: number | undefined;
217
199
  'aria-sort'?: "none" | "ascending" | "descending" | "other" | undefined;
218
200
  'aria-valuemax'?: number | undefined;
@@ -382,9 +364,27 @@ declare namespace CircleOcticon {
382
364
  onAnimationIterationCapture?: React.AnimationEventHandler<HTMLDivElement> | undefined;
383
365
  onTransitionEnd?: React.TransitionEventHandler<HTMLDivElement> | undefined;
384
366
  onTransitionEndCapture?: React.TransitionEventHandler<HTMLDivElement> | undefined;
367
+ bg?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
368
+ m?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
369
+ mt?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
370
+ mr?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
371
+ mb?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
372
+ ml?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
373
+ mx?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
374
+ marginX?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
375
+ my?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
376
+ marginY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
377
+ pt?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
378
+ pr?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
379
+ pb?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
380
+ pl?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
381
+ px?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
382
+ paddingX?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
383
+ py?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
384
+ paddingY?: import("styled-system").ResponsiveValue<string | number | symbol, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
385
385
  borderX?: import("styled-system").ResponsiveValue<import("csstype").Property.Border<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
386
386
  borderY?: import("styled-system").ResponsiveValue<import("csstype").Property.Border<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
387
- sx?: import("./sx").BetterSystemStyleObject | undefined;
387
+ sx?: import("@styled-system/css").SystemStyleObject | undefined;
388
388
  theme?: any;
389
389
  };
390
390
  }
@@ -0,0 +1,48 @@
1
+ import React from 'react';
2
+ import { OverlayProps } from '../Overlay';
3
+ import { FocusTrapHookSettings } from '../hooks/useFocusTrap';
4
+ import { FocusZoneHookSettings } from '../hooks/useFocusZone';
5
+ import { DatePickerConfiguration, Selection } from './useDatePicker';
6
+ declare type OpenGesture = 'anchor-click' | 'anchor-key-press';
7
+ declare type CloseGesture = 'anchor-click' | 'click-outside' | 'escape';
8
+ export interface DatePickerProps extends DatePickerConfiguration {
9
+ /**
10
+ * An override to the internal ref that will be spread on to the renderAnchor
11
+ */
12
+ anchorRef?: React.RefObject<HTMLElement>;
13
+ /**
14
+ * Settings to apply to the Focus Zone on the internal `Overlay` component.
15
+ */
16
+ focusTrapSettings?: Partial<FocusTrapHookSettings>;
17
+ /**
18
+ * Settings to apply to the Focus Zone on the internal `Overlay` component.
19
+ */
20
+ focusZoneSettings?: Partial<FocusZoneHookSettings>;
21
+ initialValue?: 'today' | Date | string | null;
22
+ iconOnly?: boolean;
23
+ placeholder?: string;
24
+ /**
25
+ * Determines whether the overlay portion of the component should be shown or not
26
+ */
27
+ open?: boolean;
28
+ /**
29
+ * A callback which is called whenever the overlay is currently closed and an "open gesture" is detected.
30
+ */
31
+ onOpen?: (gesture: OpenGesture) => unknown;
32
+ /**
33
+ * A callback which is called whenever the overlay is currently open and a "close gesture" is detected.
34
+ */
35
+ onClose?: (gesture: CloseGesture) => unknown;
36
+ /**
37
+ * Props to be spread on the internal `Overlay` component.
38
+ */
39
+ overlayProps?: Partial<OverlayProps>;
40
+ /**
41
+ * A custom function component used to render the anchor element.
42
+ * Will receive the selected text as `children` prop when an item is activated.
43
+ */
44
+ renderAnchor: <T extends React.HTMLAttributes<HTMLElement>>(props: T) => JSX.Element;
45
+ value?: Selection;
46
+ }
47
+ export declare const DatePicker: React.FC<DatePickerProps>;
48
+ export {};
@@ -0,0 +1,89 @@
1
+ import React, { useRef, useState } from 'react';
2
+ import { DatePickerAnchor } from './DatePickerAnchor';
3
+ import { DatePickerProvider } from './useDatePicker';
4
+ import { DatePickerOverlay } from './DatePickerOverlay';
5
+ export const DatePicker = ({
6
+ anchorVariant,
7
+ anchorRef: externalAnchorRef,
8
+ confirmation,
9
+ confirmUnsavedClose,
10
+ dateFormat,
11
+ disableWeekends,
12
+ focusTrapSettings,
13
+ focusZoneSettings,
14
+ iconPlacement,
15
+ maxDate,
16
+ maxRangeSize,
17
+ maxSelections,
18
+ minDate,
19
+ onOpen: onOpenExternal,
20
+ onClose: onCloseExternal,
21
+ open,
22
+ overlayProps,
23
+ placeholder,
24
+ renderAnchor,
25
+ showInputPrompt,
26
+ value,
27
+ variant,
28
+ view,
29
+ weekStartsOn
30
+ }) => {
31
+ const anchorRef = useRef(null);
32
+ const [isOpen, setIsOpen] = useState(false);
33
+ const datePickerConfiguration = {
34
+ anchorVariant,
35
+ confirmation,
36
+ confirmUnsavedClose,
37
+ dateFormat,
38
+ disableWeekends,
39
+ iconPlacement,
40
+ maxDate: maxDate ? new Date(new Date(maxDate).toDateString()) : maxDate,
41
+ maxRangeSize,
42
+ maxSelections,
43
+ minDate: minDate ? new Date(new Date(minDate).toDateString()) : minDate,
44
+ placeholder,
45
+ showInputPrompt,
46
+ variant,
47
+ view,
48
+ weekStartsOn
49
+ };
50
+
51
+ const onOpen = gesture => {
52
+ setIsOpen(true);
53
+ onOpenExternal === null || onOpenExternal === void 0 ? void 0 : onOpenExternal(gesture);
54
+ };
55
+
56
+ const onClose = gesture => {
57
+ setIsOpen(false);
58
+ onCloseExternal === null || onCloseExternal === void 0 ? void 0 : onCloseExternal(gesture);
59
+ };
60
+
61
+ const toggleIsOpen = () => {
62
+ if (isOpen) {
63
+ setIsOpen(false);
64
+ onCloseExternal === null || onCloseExternal === void 0 ? void 0 : onCloseExternal('anchor-click');
65
+ } else {
66
+ setIsOpen(true);
67
+ onCloseExternal === null || onCloseExternal === void 0 ? void 0 : onCloseExternal('anchor-click');
68
+ }
69
+ };
70
+
71
+ return /*#__PURE__*/React.createElement(DatePickerProvider, {
72
+ configuration: datePickerConfiguration,
73
+ value: value,
74
+ closePicker: () => setIsOpen(false)
75
+ }, /*#__PURE__*/React.createElement(DatePickerAnchor, {
76
+ ref: anchorRef,
77
+ onAction: toggleIsOpen
78
+ }), /*#__PURE__*/React.createElement(DatePickerOverlay, {
79
+ anchorRef: externalAnchorRef !== null && externalAnchorRef !== void 0 ? externalAnchorRef : anchorRef,
80
+ renderAnchor: renderAnchor,
81
+ open: open !== null && open !== void 0 ? open : isOpen,
82
+ onOpen: onOpen,
83
+ onClose: onClose,
84
+ overlayProps: overlayProps,
85
+ focusTrapSettings: focusTrapSettings,
86
+ focusZoneSettings: focusZoneSettings
87
+ }));
88
+ };
89
+ DatePicker.displayName = "DatePicker";
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export interface DatePickerAnchorProps {
3
+ onAction?: (event?: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>) => void;
4
+ }
5
+ export declare const DatePickerAnchor: React.ForwardRefExoticComponent<DatePickerAnchorProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,196 @@
1
+ import { CalendarIcon } from '@primer/octicons-react';
2
+ import styled from 'styled-components';
3
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
+ import Button, { ButtonInvisible } from '../Button';
5
+ import Text from '../Text';
6
+ import { get } from '../constants';
7
+ import StyledOcticon from '../StyledOcticon';
8
+ import useDatePicker from './useDatePicker';
9
+ import TextInput from '../TextInput';
10
+ import Box from '../Box';
11
+ import { parseDate } from './dateParser';
12
+ const DatePickerAnchorButton = styled(Button).withConfig({
13
+ displayName: "DatePickerAnchor__DatePickerAnchorButton",
14
+ componentId: "sc-8gpb9d-0"
15
+ })(["align-items:center;display:flex;flex-direction:row;justify-content:space-between;max-width:350px;overflow:hidden;& ", " ~ svg{margin-left:", ";}& svg ~ ", "{margin-left:", ";}"], Text, get('space.2'), Text, get('space.2'));
16
+ export const DatePickerAnchor = /*#__PURE__*/React.forwardRef(({
17
+ onAction
18
+ }, ref) => {
19
+ const {
20
+ configuration: {
21
+ anchorVariant,
22
+ iconPlacement,
23
+ placeholder,
24
+ showInputPrompt,
25
+ variant
26
+ },
27
+ disabled,
28
+ formattedDate,
29
+ onDateInput
30
+ } = useDatePicker();
31
+ const [inputValue, setInputValue] = useState(formattedDate);
32
+ const inputRef = useRef(null);
33
+ const [inputValid, setInputValid] = useState(true);
34
+ const keyPressHandler = useCallback(event => {
35
+ if (disabled) {
36
+ return;
37
+ }
38
+
39
+ if ([' ', 'Enter'].includes(event.key)) {
40
+ onAction === null || onAction === void 0 ? void 0 : onAction(event);
41
+ }
42
+ }, [disabled, onAction]);
43
+ const clickHandler = useCallback(event => {
44
+ if (disabled) {
45
+ return;
46
+ }
47
+
48
+ onAction === null || onAction === void 0 ? void 0 : onAction(event);
49
+ }, [disabled, onAction]);
50
+ useEffect(() => {
51
+ if (document.activeElement !== inputRef.current) {
52
+ setInputValue(formattedDate);
53
+ }
54
+ }, [formattedDate]);
55
+ const onInputChangeHandler = useCallback(e => {
56
+ const value = e.currentTarget.value;
57
+ setInputValue(value);
58
+
59
+ if (!value) {
60
+ return;
61
+ }
62
+
63
+ const parsedDate = parseDate(value, variant);
64
+ setInputValid(!!parsedDate);
65
+
66
+ if (parsedDate) {
67
+ onDateInput(parsedDate);
68
+ }
69
+ }, [onDateInput, variant]);
70
+
71
+ const onBlurHandler = () => {
72
+ setInputValue(formattedDate);
73
+ };
74
+
75
+ const inputSx = useMemo(() => {
76
+ let sxObject = {};
77
+
78
+ if (iconPlacement === 'start') {
79
+ sxObject = { ...sxObject,
80
+ pl: 5,
81
+ pr: 2
82
+ };
83
+ } else if (iconPlacement === 'end') {
84
+ sxObject = { ...sxObject,
85
+ pl: 2,
86
+ pr: 5
87
+ };
88
+ }
89
+
90
+ if (showInputPrompt) {
91
+ sxObject = { ...sxObject,
92
+ pt: '20px'
93
+ };
94
+ }
95
+
96
+ if (inputValid) {
97
+ sxObject = { ...sxObject,
98
+ color: 'success.emphasis'
99
+ };
100
+ } else {
101
+ sxObject = { ...sxObject,
102
+ color: 'danger.emphasis'
103
+ };
104
+ }
105
+
106
+ return sxObject;
107
+ }, [iconPlacement, inputValid, showInputPrompt]);
108
+ const inputPrompt = useMemo(() => {
109
+ if (!showInputPrompt) return;
110
+
111
+ switch (variant) {
112
+ case 'single':
113
+ return 'MM/DD/YYYY';
114
+
115
+ case 'multi':
116
+ return 'MM/DD/YYYY, MM/DD/YYYY, ...';
117
+
118
+ case 'range':
119
+ return 'MM/DD/YYYY - MM/DD/YYYY';
120
+
121
+ default:
122
+ return 'MM/DD/YYYY';
123
+ }
124
+ }, [showInputPrompt, variant]);
125
+
126
+ if (anchorVariant === 'input') {
127
+ const calendarButton = side => /*#__PURE__*/React.createElement(ButtonInvisible, {
128
+ onClick: clickHandler,
129
+ sx: {
130
+ width: '32px',
131
+ px: '6px',
132
+ position: 'absolute',
133
+ [side]: '1px',
134
+ top: '1px',
135
+ bottom: '1px'
136
+ }
137
+ }, /*#__PURE__*/React.createElement(StyledOcticon, {
138
+ icon: CalendarIcon
139
+ }));
140
+
141
+ const promptSx = () => {
142
+ let sxObject = {
143
+ position: 'absolute',
144
+ top: '2px',
145
+ fontSize: '11px',
146
+ color: 'fg.subtle'
147
+ };
148
+
149
+ if (iconPlacement === 'start') {
150
+ sxObject = { ...sxObject,
151
+ left: '36px'
152
+ };
153
+ }
154
+
155
+ return sxObject;
156
+ };
157
+
158
+ return /*#__PURE__*/React.createElement(Box, {
159
+ ref: ref,
160
+ sx: {
161
+ position: 'relative',
162
+ display: 'flex',
163
+ flex: 1
164
+ }
165
+ }, iconPlacement === 'start' && calendarButton('left'), showInputPrompt && /*#__PURE__*/React.createElement(Text, {
166
+ sx: promptSx()
167
+ }, inputPrompt), /*#__PURE__*/React.createElement(TextInput, {
168
+ ref: inputRef,
169
+ placeholder: placeholder,
170
+ value: inputValue,
171
+ onChange: onInputChangeHandler,
172
+ sx: inputSx,
173
+ onBlur: onBlurHandler
174
+ }), iconPlacement === 'end' && calendarButton('right'));
175
+ }
176
+
177
+ const calendarIcon = () => /*#__PURE__*/React.createElement(StyledOcticon, {
178
+ icon: CalendarIcon,
179
+ color: "fg.muted",
180
+ sx: {
181
+ my: '2px'
182
+ }
183
+ });
184
+
185
+ return /*#__PURE__*/React.createElement(Box, {
186
+ ref: ref
187
+ }, /*#__PURE__*/React.createElement(DatePickerAnchorButton, {
188
+ onClick: clickHandler,
189
+ onKeyPress: keyPressHandler
190
+ }, iconPlacement === 'start' && calendarIcon(), anchorVariant !== 'icon-only' && /*#__PURE__*/React.createElement(Text, {
191
+ sx: {
192
+ overflow: 'hidden',
193
+ textOverflow: 'ellipsis'
194
+ }
195
+ }, formattedDate), iconPlacement === 'end' && calendarIcon()));
196
+ });