@planningcenter/tapestry-react 2.6.0-rc.9 → 2.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 (66) hide show
  1. package/dist/cjs/Button/Button.js +8 -1
  2. package/dist/cjs/Button/Button.test.js +51 -8
  3. package/dist/cjs/DataTable/components/BodyRow.js +2 -2
  4. package/dist/cjs/DataTable/hooks/useCollapsibleRows.js +2 -2
  5. package/dist/cjs/Dropdown/Dropdown.js +5 -3
  6. package/dist/cjs/Dropdown/Dropdown.test.js +3 -3
  7. package/dist/cjs/Dropdown/Link.js +2 -4
  8. package/dist/cjs/Input/InputLabel.js +40 -63
  9. package/dist/cjs/Modal/Modal.js +15 -7
  10. package/dist/cjs/Modal/Modal.test.js +2 -2
  11. package/dist/cjs/Popover/Popover.js +10 -2
  12. package/dist/cjs/Scrim/Scrim.js +16 -4
  13. package/dist/cjs/Table/Table.js +5 -3
  14. package/dist/cjs/ThemeProvider/ThemeProvider.js +2 -2
  15. package/dist/cjs/TimeField/TimeField.js +1 -1
  16. package/dist/cjs/Tooltip/Tooltip.js +27 -23
  17. package/dist/cjs/system/utils.js +2 -2
  18. package/dist/cjs/utils.js +3 -3
  19. package/dist/esm/Button/Button.js +8 -1
  20. package/dist/esm/Button/Button.test.js +67 -9
  21. package/dist/esm/DataTable/components/BodyRow.js +2 -2
  22. package/dist/esm/DataTable/hooks/useCollapsibleRows.js +1 -1
  23. package/dist/esm/Dropdown/Dropdown.js +6 -4
  24. package/dist/esm/Dropdown/Dropdown.test.js +1 -1
  25. package/dist/esm/Dropdown/Link.js +1 -2
  26. package/dist/esm/Input/InputLabel.js +40 -63
  27. package/dist/esm/Modal/Modal.js +13 -7
  28. package/dist/esm/Modal/Modal.test.js +1 -1
  29. package/dist/esm/Popover/Popover.js +8 -2
  30. package/dist/esm/Scrim/Scrim.js +15 -4
  31. package/dist/esm/Table/Table.js +2 -1
  32. package/dist/esm/ThemeProvider/ThemeProvider.js +1 -1
  33. package/dist/esm/TimeField/TimeField.js +1 -1
  34. package/dist/esm/Tooltip/Tooltip.js +29 -24
  35. package/dist/esm/system/utils.js +1 -1
  36. package/dist/esm/utils.js +1 -1
  37. package/dist/types/Button/Button.d.ts +4 -0
  38. package/dist/types/ThemeProvider/ThemeProvider.d.ts +3 -3
  39. package/dist/types/index.d.ts +1 -1
  40. package/package.json +4 -4
  41. package/src/Button/Button.test.tsx +30 -0
  42. package/src/Button/Button.tsx +14 -1
  43. package/src/DataTable/DataTable.js +1 -1
  44. package/src/DataTable/components/BodyRow.js +1 -1
  45. package/src/DataTable/hooks/useCollapsibleRows.js +1 -1
  46. package/src/Dropdown/Dropdown.js +7 -4
  47. package/src/Dropdown/Dropdown.mdx +3 -3
  48. package/src/Dropdown/Dropdown.test.tsx +1 -1
  49. package/src/Dropdown/Link.js +1 -7
  50. package/src/Input/InputLabel.js +39 -36
  51. package/src/Input/InputLabel.mdx +1 -0
  52. package/src/Modal/Modal.js +12 -4
  53. package/src/Modal/Modal.mdx +2 -1
  54. package/src/Modal/Modal.test.tsx +1 -1
  55. package/src/Popover/Popover.mdx +1 -0
  56. package/src/Popover/Popover.tsx +8 -2
  57. package/src/Scrim/Scrim.mdx +1 -0
  58. package/src/Scrim/Scrim.tsx +11 -6
  59. package/src/Sidebar/Sidebar.mdx +0 -1
  60. package/src/Table/Table.js +2 -1
  61. package/src/ThemeProvider/ThemeProvider.tsx +7 -6
  62. package/src/TimeField/TimeField.js +1 -1
  63. package/src/Tooltip/Tooltip.js +19 -21
  64. package/src/index.d.ts +1 -1
  65. package/src/system/utils.js +1 -1
  66. package/src/utils.js +1 -1
@@ -5,7 +5,6 @@ import React, {
5
5
  forwardRef,
6
6
  useRef,
7
7
  useState,
8
- useCallback,
9
8
  useImperativeHandle,
10
9
  useEffect,
11
10
  } from 'react'
@@ -122,19 +121,18 @@ function Tooltip(props: Props, ref) {
122
121
  ...childProps
123
122
  } = useThemeProps('tooltip', props)
124
123
 
125
- let isPageInView = true
126
- let isFocused = false
127
- let isMouseDown = false
124
+ let isPageInView = useRef(true)
125
+ let isMouseDown = useRef(false)
128
126
  let openTimeoutId = useRef(null)
129
127
  let closeTimeoutId = useRef(null)
130
128
 
131
- // prevents tooltips showing when focused and navigating back to a page after leaving
132
- const cleanupPageViewChange = useCallback(
133
- pageViewChange((inView) => setTimeout(() => (isPageInView = inView)))
134
- )
135
129
  const [isPopoverOpen, setIsPopoverOpen] = useState(defaultOpen)
136
130
 
137
131
  useEffect(() => {
132
+ // prevents tooltips showing when focused and navigating back to a page after leaving
133
+ const cleanupPageViewChange = pageViewChange((inView) =>
134
+ setTimeout(() => (isPageInView.current = inView))
135
+ )
138
136
  emitter.on('CLOSE_OPEN_TOOLTIPS', close)
139
137
  return () => {
140
138
  emitter.off('CLOSE_OPEN_TOOLTIPS', close)
@@ -178,7 +176,7 @@ function Tooltip(props: Props, ref) {
178
176
  }
179
177
  }, [triggerOnHover])
180
178
 
181
- const createOpenTimeout = useCallback(() => {
179
+ const createOpenTimeout = () => {
182
180
  clearGlobalTimeout()
183
181
  if (openTimeoutId.current === null) {
184
182
  clearTimeout(closeTimeoutId.current)
@@ -191,31 +189,31 @@ function Tooltip(props: Props, ref) {
191
189
  )
192
190
  }
193
191
  }
194
- })
192
+ }
195
193
 
196
- const createCloseTimeout = useCallback(() => {
194
+ const createCloseTimeout = () => {
197
195
  startGlobalTimeout()
198
196
  if (closeTimeoutId.current === null) {
199
197
  clearTimeout(openTimeoutId.current)
200
198
  openTimeoutId.current = null
201
199
  closeTimeoutId.current = setTimeout(() => close(), closeDelay)
202
200
  }
203
- })
201
+ }
204
202
 
205
- const handleFocus = useCallback(() => {
206
- if (isPageInView && !isMouseDown) {
203
+ const handleFocus = () => {
204
+ if (isPageInView.current && !isMouseDown.current) {
207
205
  open()
208
206
  }
209
- })
207
+ }
210
208
 
211
- const handleMouseDown = useCallback(() => {
212
- isMouseDown = true
209
+ const handleMouseDown = () => {
210
+ isMouseDown.current = true
213
211
  close()
214
- })
212
+ }
215
213
 
216
- const handleMouseUp = useCallback(() => {
217
- isMouseDown = false
218
- })
214
+ const handleMouseUp = () => {
215
+ isMouseDown.current = false
216
+ }
219
217
 
220
218
  const child = Children.only(children)
221
219
  const {
package/src/index.d.ts CHANGED
@@ -350,7 +350,7 @@ export const Checkbox: HTMLInputWrapperComponent
350
350
  // Input
351
351
  // =====
352
352
 
353
- export const Input: CommonComponent & {
353
+ export const Input: HTMLInputWrapperComponent & {
354
354
  Inline: HTMLInputWrapperComponent
355
355
  Input: HTMLInputWrapperComponent
356
356
  InputBox: CommonComponent
@@ -1,7 +1,7 @@
1
1
  import { useContext, useCallback } from 'react'
2
2
  import { ThemeContext } from '@emotion/react'
3
3
  import { darken, getLuminance, lighten, parseToRgb } from 'polished'
4
- import { get } from 'lodash'
4
+ import get from 'lodash/get'
5
5
 
6
6
  import { getColor } from './colors'
7
7
  import defaultTheme from './default-theme'
package/src/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Children, cloneElement } from 'react'
2
2
  import { tabbable } from 'tabbable'
3
- import { kebabCase } from 'lodash'
3
+ import kebabCase from 'lodash/kebabCase'
4
4
 
5
5
  /**
6
6
  * Returns true if user platform is an iOS device