@tamagui/select 1.0.1-beta.115 → 1.0.1-beta.118
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.
- package/dist/cjs/Select.js +9 -20
- package/dist/cjs/Select.js.map +2 -2
- package/dist/cjs/SelectImpl.js +11 -7
- package/dist/cjs/SelectImpl.js.map +2 -2
- package/dist/cjs/SelectViewport.native.js +2 -2
- package/dist/cjs/SelectViewport.native.js.map +2 -2
- package/dist/esm/Select.js +9 -18
- package/dist/esm/Select.js.map +2 -2
- package/dist/esm/SelectImpl.js +5 -1
- package/dist/esm/SelectImpl.js.map +2 -2
- package/dist/esm/SelectViewport.native.js +2 -2
- package/dist/esm/SelectViewport.native.js.map +2 -2
- package/dist/jsx/Select.js +1 -19
- package/dist/jsx/Select.js.map +2 -2
- package/dist/jsx/SelectImpl.js +6 -1
- package/dist/jsx/SelectImpl.js.map +2 -2
- package/dist/jsx/SelectViewport.native.js +2 -3
- package/dist/jsx/SelectViewport.native.js.map +2 -2
- package/package.json +12 -12
- package/src/Select.tsx +9 -20
- package/src/SelectImpl.tsx +8 -1
- package/src/SelectViewport.native.tsx +5 -8
- package/types/Select.d.ts +12 -14
- package/types/Select.d.ts.map +1 -1
- package/types/SelectImpl.d.ts.map +1 -1
- package/types/SelectViewport.d.ts +3 -3
- package/types/SelectViewport.native.d.ts +6 -53
- package/types/SelectViewport.native.d.ts.map +1 -1
- package/types/BubbleSelect.d.ts +0 -2
- package/types/BubbleSelect.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SelectImpl.tsx"],
|
|
4
|
-
"sourcesContent": ["import {\n detectOverflow,\n flip,\n offset,\n size,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useListNavigation,\n useRole,\n useTypeahead,\n} from '@floating-ui/react-dom-interactions'\nimport { usePrevious } from '@radix-ui/react-use-previous'\nimport * as React from 'react'\n\nimport { FALLBACK_THRESHOLD, MIN_HEIGHT, SCROLL_ARROW_THRESHOLD, WINDOW_PADDING } from './constants'\nimport { SelectProvider, useSelectContext } from './context'\nimport { getVisualOffsetTop, isFirefox } from './Select'\nimport { ScopedProps, SelectProps } from './types'\n\nexport type SelectImplProps = ScopedProps<SelectProps> & {\n activeIndexRef: any\n selectedIndexRef: any\n listContentRef: any\n}\n\n// TODO use id for focusing from label\nexport const SelectInlineImpl = (props: SelectImplProps) => {\n const {\n __scopeSelect,\n children,\n open = false,\n activeIndexRef,\n selectedIndexRef,\n listContentRef,\n } = props\n\n const selectContext = useSelectContext('SelectSheetImpl', __scopeSelect)\n const { setActiveIndex, setOpen, setSelectedIndex, selectedIndex, activeIndex, forceUpdate } =\n selectContext\n const [showArrows, setShowArrows] = React.useState(false)\n const [scrollTop, setScrollTop] = React.useState(0)\n const prevActiveIndex = usePrevious<number | null>(activeIndex)\n\n const listItemsRef = React.useRef<Array<HTMLElement | null>>([])\n\n const [controlledScrolling, setControlledScrolling] = React.useState(false)\n const [middlewareType, setMiddlewareType] = React.useState<'align' | 'fallback'>('align')\n\n // Wait for scroll position to settle before showing arrows to prevent\n // interference with pointer events.\n React.useEffect(() => {\n const frame = requestAnimationFrame(() => {\n setShowArrows(open)\n\n if (!open) {\n setScrollTop(0)\n setMiddlewareType('align')\n setActiveIndex(null)\n setControlledScrolling(false)\n }\n })\n return () => {\n cancelAnimationFrame(frame)\n }\n }, [open, setActiveIndex])\n\n function getFloatingPadding(floating: HTMLElement | null) {\n if (!floating) {\n return 0\n }\n return Number(getComputedStyle(floating).paddingLeft?.replace('px', ''))\n }\n\n const { x, y, reference, floating, strategy, context, refs, middlewareData, update } =\n useFloating({\n open,\n onOpenChange: setOpen,\n placement: 'bottom',\n middleware:\n middlewareType === 'align'\n ? [\n offset(({ rects }) => {\n const index = activeIndexRef.current ?? selectedIndexRef.current\n\n if (index == null) {\n return 0\n }\n\n const item = listItemsRef.current[index]\n\n if (item == null) {\n return 0\n }\n\n const offsetTop = item.offsetTop\n const itemHeight = item.offsetHeight\n const height = rects.reference.height\n\n return -offsetTop - height - (itemHeight - height) / 2\n }),\n // Custom `size` that can handle the opposite direction of the placement\n {\n name: 'size',\n async fn(args) {\n const {\n elements: { floating },\n rects: { reference },\n middlewareData,\n } = args\n\n const overflow = await detectOverflow(args, {\n padding: WINDOW_PADDING,\n })\n\n const top = Math.max(0, overflow.top)\n const bottom = Math.max(0, overflow.bottom)\n const nextY = args.y + top\n\n if (middlewareData.size?.skip) {\n return {\n y: nextY,\n data: {\n y: middlewareData.size.y,\n },\n }\n }\n\n Object.assign(floating.style, {\n maxHeight: `${floating.scrollHeight - Math.abs(top + bottom)}px`,\n minWidth: `${reference.width + getFloatingPadding(floating) * 2}px`,\n })\n\n return {\n y: nextY,\n data: {\n y: top,\n skip: true,\n },\n reset: {\n rects: true,\n },\n }\n },\n },\n ]\n : [\n offset(5),\n flip(),\n size({\n apply({ rects, availableHeight, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n maxHeight: `${availableHeight}px`,\n })\n },\n padding: WINDOW_PADDING,\n }),\n ],\n })\n\n const floatingRef = refs.floating\n\n const showUpArrow = showArrows && scrollTop > SCROLL_ARROW_THRESHOLD\n const showDownArrow =\n showArrows &&\n floatingRef.current &&\n scrollTop <\n floatingRef.current.scrollHeight - floatingRef.current.clientHeight - SCROLL_ARROW_THRESHOLD\n\n const interactions = useInteractions([\n useClick(context, { pointerDown: true }),\n useRole(context, { role: 'listbox' }),\n useDismiss(context),\n useListNavigation(context, {\n listRef: listItemsRef,\n activeIndex,\n selectedIndex,\n onNavigate: setActiveIndex,\n }),\n useTypeahead(context, {\n listRef: listContentRef,\n onMatch: open ? setActiveIndex : setSelectedIndex,\n selectedIndex,\n activeIndex,\n }),\n ])\n\n const increaseHeight = React.useCallback(\n (floating: HTMLElement, amount = 0) => {\n if (middlewareType === 'fallback') {\n return\n }\n\n const currentMaxHeight = Number(floating.style.maxHeight.replace('px', ''))\n const currentTop = Number(floating.style.top.replace('px', ''))\n const rect = floating.getBoundingClientRect()\n const rectTop = rect.top\n const rectBottom = rect.bottom\n const viewportHeight = visualViewport?.height ?? 0\n const visualMaxHeight = viewportHeight - WINDOW_PADDING * 2\n\n if (\n amount < 0 &&\n selectedIndexRef.current != null &&\n Math.round(rectBottom) < Math.round(viewportHeight + getVisualOffsetTop() - WINDOW_PADDING)\n ) {\n floating.style.maxHeight = `${Math.min(visualMaxHeight, currentMaxHeight - amount)}px`\n }\n\n if (\n amount > 0 &&\n Math.round(rectTop) > Math.round(WINDOW_PADDING - getVisualOffsetTop()) &&\n floating.scrollHeight > floating.offsetHeight\n ) {\n const nextTop = Math.max(WINDOW_PADDING + getVisualOffsetTop(), currentTop - amount)\n\n const nextMaxHeight = Math.min(visualMaxHeight, currentMaxHeight + amount)\n\n Object.assign(floating.style, {\n maxHeight: `${nextMaxHeight}px`,\n top: `${nextTop}px`,\n })\n\n if (nextTop - WINDOW_PADDING > getVisualOffsetTop()) {\n floating.scrollTop -= nextMaxHeight - currentMaxHeight + getFloatingPadding(floating)\n }\n\n return currentTop - nextTop\n }\n },\n [middlewareType, selectedIndexRef]\n )\n\n const touchPageYRef = React.useRef<number | null>(null)\n\n const handleWheel = React.useCallback(\n (event: WheelEvent | TouchEvent) => {\n const pinching = event.ctrlKey\n\n const currentTarget = event.currentTarget as HTMLElement\n\n function isWheelEvent(event: any): event is WheelEvent {\n return typeof event.deltaY === 'number'\n }\n\n function isTouchEvent(event: any): event is TouchEvent {\n return event.touches != null\n }\n\n if (\n Math.abs(\n (currentTarget?.offsetHeight ?? 0) - ((visualViewport?.height ?? 0) - WINDOW_PADDING * 2)\n ) > 1 &&\n !pinching\n ) {\n event.preventDefault()\n } else if (isWheelEvent(event) && isFirefox) {\n // Firefox needs this to propagate scrolling\n // during momentum scrolling phase if the\n // height reached its maximum (at boundaries)\n currentTarget.scrollTop += event.deltaY\n }\n\n if (!pinching) {\n let delta = 5\n\n if (isTouchEvent(event)) {\n const currentPageY = touchPageYRef.current\n const pageY = event.touches[0]?.pageY\n\n if (pageY != null) {\n touchPageYRef.current = pageY\n\n if (currentPageY != null) {\n delta = currentPageY - pageY\n }\n }\n }\n\n increaseHeight(currentTarget, isWheelEvent(event) ? event.deltaY : delta)\n setScrollTop(currentTarget.scrollTop)\n // Ensure derived data (scroll arrows) is fresh\n forceUpdate()\n }\n },\n [forceUpdate, increaseHeight]\n )\n\n // Handle `onWheel` event in an effect to remove the `passive` option so we\n // can .preventDefault() it\n React.useEffect(() => {\n function onTouchEnd() {\n touchPageYRef.current = null\n }\n\n const floating = floatingRef.current\n if (open && floating && middlewareType === 'align') {\n floating.addEventListener('wheel', handleWheel)\n floating.addEventListener('touchmove', handleWheel)\n floating.addEventListener('touchend', onTouchEnd, { passive: true })\n return () => {\n floating.removeEventListener('wheel', handleWheel)\n floating.removeEventListener('touchmove', handleWheel)\n floating.removeEventListener('touchend', onTouchEnd)\n }\n }\n }, [open, floatingRef, handleWheel, middlewareType])\n\n // Ensure the menu remains attached to the reference element when resizing.\n React.useEffect(() => {\n window.addEventListener('resize', update)\n return () => {\n window.removeEventListener('resize', update)\n }\n }, [update])\n\n // Scroll the active or selected item into view when in `controlledScrolling`\n // mode (i.e. arrow key nav).\n React.useLayoutEffect(() => {\n const floating = floatingRef.current\n\n if (open && controlledScrolling && floating) {\n const item =\n activeIndex != null\n ? listItemsRef.current[activeIndex]\n : selectedIndex != null\n ? listItemsRef.current[selectedIndex]\n : null\n\n if (item && prevActiveIndex != null) {\n const itemHeight = listItemsRef.current[prevActiveIndex]?.offsetHeight ?? 0\n\n const floatingHeight = floating.offsetHeight\n const top = item.offsetTop\n const bottom = top + itemHeight\n\n if (top < floating.scrollTop + 20) {\n const diff = floating.scrollTop - top + 20\n floating.scrollTop -= diff\n\n if (activeIndex != selectedIndex && activeIndex != null) {\n increaseHeight(floating, -diff)\n }\n } else if (bottom > floatingHeight + floating.scrollTop - 20) {\n const diff = bottom - floatingHeight - floating.scrollTop + 20\n\n floating.scrollTop += diff\n\n if (activeIndex != selectedIndex && activeIndex != null) {\n floating.scrollTop -= increaseHeight(floating, diff) ?? 0\n }\n }\n }\n }\n }, [\n open,\n controlledScrolling,\n prevActiveIndex,\n activeIndex,\n selectedIndex,\n floatingRef,\n increaseHeight,\n ])\n\n // Sync the height and the scrollTop values and device whether to use fallback\n // positioning.\n React.useLayoutEffect(() => {\n const floating = refs.floating.current\n const reference = refs.reference.current\n\n if (open && floating && reference && floating.offsetHeight < floating.scrollHeight) {\n const referenceRect = reference.getBoundingClientRect()\n\n if (middlewareType === 'fallback') {\n const item = listItemsRef.current[selectedIndex]\n if (item) {\n floating.scrollTop = item.offsetTop - floating.clientHeight + referenceRect.height\n }\n return\n }\n\n floating.scrollTop = middlewareData.size?.y\n\n const closeToBottom =\n (visualViewport?.height ?? 0) + getVisualOffsetTop() - referenceRect.bottom <\n FALLBACK_THRESHOLD\n const closeToTop = referenceRect.top < FALLBACK_THRESHOLD\n\n if (floating.offsetHeight < MIN_HEIGHT || closeToTop || closeToBottom) {\n setMiddlewareType('fallback')\n }\n }\n }, [\n open,\n increaseHeight,\n selectedIndex,\n middlewareType,\n refs.floating,\n refs.reference,\n // Always re-run this effect when the position has been computed so the\n // .scrollTop change works with fresh sizing.\n middlewareData,\n ])\n\n React.useLayoutEffect(() => {\n if (open && selectedIndex != null) {\n requestAnimationFrame(() => {\n listItemsRef.current[selectedIndex]?.focus({ preventScroll: true })\n })\n }\n }, [listItemsRef, selectedIndex, open])\n\n // Wait for scroll position to settle before showing arrows to prevent\n // interference with pointer events.\n React.useEffect(() => {\n const frame = requestAnimationFrame(() => {\n setShowArrows(open)\n\n if (!open) {\n setScrollTop(0)\n setMiddlewareType('align')\n setActiveIndex(null)\n setControlledScrolling(false)\n }\n })\n return () => cancelAnimationFrame(frame)\n }, [open, setActiveIndex])\n\n // We set this to true by default so that events bubble to forms without JS (SSR)\n // const isFormControl = trigger ? Boolean(trigger.closest('form')) : true\n // const [bubbleSelect, setBubbleSelect] = React.useState<HTMLSelectElement | null>(null)\n // const triggerPointerDownPosRef = React.useRef<{ x: number; y: number } | null>(null)\n return (\n <SelectProvider\n scope={__scopeSelect}\n {...(selectContext as Required<typeof selectContext>)}\n increaseHeight={increaseHeight}\n floatingRef={floatingRef}\n setValueAtIndex={(index, value) => {\n listContentRef.current[index] = value\n }}\n interactions={{\n ...interactions,\n getReferenceProps() {\n return interactions.getReferenceProps({\n ref: reference,\n className: 'SelectTrigger',\n onKeyDown(event) {\n if (event.key === 'Enter' || (event.key === ' ' && !context.dataRef.current.typing)) {\n event.preventDefault()\n setOpen(true)\n }\n },\n })\n },\n getFloatingProps(props) {\n return interactions.getFloatingProps({\n ref: floating,\n className: 'Select',\n ...props,\n style: {\n position: strategy,\n top: y ?? '',\n left: x ?? '',\n outline: 0,\n listStyleType: 'none',\n scrollbarWidth: 'none',\n userSelect: 'none',\n ...props?.style,\n },\n onPointerEnter() {\n setControlledScrolling(false)\n },\n onPointerMove() {\n setControlledScrolling(false)\n },\n onKeyDown() {\n setControlledScrolling(true)\n },\n onScroll(event) {\n setScrollTop(event.currentTarget.scrollTop)\n },\n })\n },\n }}\n floatingContext={context}\n activeIndex={activeIndex}\n canScrollDown={!!showDownArrow}\n canScrollUp={!!showUpArrow}\n controlledScrolling\n dataRef={context.dataRef}\n listRef={listItemsRef}\n >\n {children}\n {/* {isFormControl ? (\n <BubbleSelect\n ref={setBubbleSelect}\n aria-hidden\n tabIndex={-1}\n name={name}\n autoComplete={autoComplete}\n value={value}\n // enable form autofill\n onChange={(event) => setValue(event.target.value)}\n />\n ) : null} */}\n </SelectProvider>\n )\n}\n"],
|
|
5
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA;AACA;AAEA;AACA;
|
|
4
|
+
"sourcesContent": ["import {\n detectOverflow,\n flip,\n offset,\n size,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useListNavigation,\n useRole,\n useTypeahead,\n} from '@floating-ui/react-dom-interactions'\nimport { usePrevious } from '@radix-ui/react-use-previous'\nimport * as React from 'react'\n\nimport { FALLBACK_THRESHOLD, MIN_HEIGHT, SCROLL_ARROW_THRESHOLD, WINDOW_PADDING } from './constants'\nimport { SelectProvider, useSelectContext } from './context'\nimport { ScopedProps, SelectProps } from './types'\n\nexport type SelectImplProps = ScopedProps<SelectProps> & {\n activeIndexRef: any\n selectedIndexRef: any\n listContentRef: any\n}\n\n// TODO use id for focusing from label\nexport const SelectInlineImpl = (props: SelectImplProps) => {\n const {\n __scopeSelect,\n children,\n open = false,\n activeIndexRef,\n selectedIndexRef,\n listContentRef,\n } = props\n\n const selectContext = useSelectContext('SelectSheetImpl', __scopeSelect)\n const { setActiveIndex, setOpen, setSelectedIndex, selectedIndex, activeIndex, forceUpdate } =\n selectContext\n const [showArrows, setShowArrows] = React.useState(false)\n const [scrollTop, setScrollTop] = React.useState(0)\n const prevActiveIndex = usePrevious<number | null>(activeIndex)\n\n const listItemsRef = React.useRef<Array<HTMLElement | null>>([])\n\n const [controlledScrolling, setControlledScrolling] = React.useState(false)\n const [middlewareType, setMiddlewareType] = React.useState<'align' | 'fallback'>('align')\n\n // Wait for scroll position to settle before showing arrows to prevent\n // interference with pointer events.\n React.useEffect(() => {\n const frame = requestAnimationFrame(() => {\n setShowArrows(open)\n\n if (!open) {\n setScrollTop(0)\n setMiddlewareType('align')\n setActiveIndex(null)\n setControlledScrolling(false)\n }\n })\n return () => {\n cancelAnimationFrame(frame)\n }\n }, [open, setActiveIndex])\n\n function getFloatingPadding(floating: HTMLElement | null) {\n if (!floating) {\n return 0\n }\n return Number(getComputedStyle(floating).paddingLeft?.replace('px', ''))\n }\n\n const { x, y, reference, floating, strategy, context, refs, middlewareData, update } =\n useFloating({\n open,\n onOpenChange: setOpen,\n placement: 'bottom',\n middleware:\n middlewareType === 'align'\n ? [\n offset(({ rects }) => {\n const index = activeIndexRef.current ?? selectedIndexRef.current\n\n if (index == null) {\n return 0\n }\n\n const item = listItemsRef.current[index]\n\n if (item == null) {\n return 0\n }\n\n const offsetTop = item.offsetTop\n const itemHeight = item.offsetHeight\n const height = rects.reference.height\n\n return -offsetTop - height - (itemHeight - height) / 2\n }),\n // Custom `size` that can handle the opposite direction of the placement\n {\n name: 'size',\n async fn(args) {\n const {\n elements: { floating },\n rects: { reference },\n middlewareData,\n } = args\n\n const overflow = await detectOverflow(args, {\n padding: WINDOW_PADDING,\n })\n\n const top = Math.max(0, overflow.top)\n const bottom = Math.max(0, overflow.bottom)\n const nextY = args.y + top\n\n if (middlewareData.size?.skip) {\n return {\n y: nextY,\n data: {\n y: middlewareData.size.y,\n },\n }\n }\n\n Object.assign(floating.style, {\n maxHeight: `${floating.scrollHeight - Math.abs(top + bottom)}px`,\n minWidth: `${reference.width + getFloatingPadding(floating) * 2}px`,\n })\n\n return {\n y: nextY,\n data: {\n y: top,\n skip: true,\n },\n reset: {\n rects: true,\n },\n }\n },\n },\n ]\n : [\n offset(5),\n flip(),\n size({\n apply({ rects, availableHeight, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n maxHeight: `${availableHeight}px`,\n })\n },\n padding: WINDOW_PADDING,\n }),\n ],\n })\n\n const floatingRef = refs.floating\n\n const showUpArrow = showArrows && scrollTop > SCROLL_ARROW_THRESHOLD\n const showDownArrow =\n showArrows &&\n floatingRef.current &&\n scrollTop <\n floatingRef.current.scrollHeight - floatingRef.current.clientHeight - SCROLL_ARROW_THRESHOLD\n\n const interactions = useInteractions([\n useClick(context, { pointerDown: true }),\n useRole(context, { role: 'listbox' }),\n useDismiss(context),\n useListNavigation(context, {\n listRef: listItemsRef,\n activeIndex,\n selectedIndex,\n onNavigate: setActiveIndex,\n }),\n useTypeahead(context, {\n listRef: listContentRef,\n onMatch: open ? setActiveIndex : setSelectedIndex,\n selectedIndex,\n activeIndex,\n }),\n ])\n\n const increaseHeight = React.useCallback(\n (floating: HTMLElement, amount = 0) => {\n if (middlewareType === 'fallback') {\n return\n }\n\n const currentMaxHeight = Number(floating.style.maxHeight.replace('px', ''))\n const currentTop = Number(floating.style.top.replace('px', ''))\n const rect = floating.getBoundingClientRect()\n const rectTop = rect.top\n const rectBottom = rect.bottom\n const viewportHeight = visualViewport?.height ?? 0\n const visualMaxHeight = viewportHeight - WINDOW_PADDING * 2\n\n if (\n amount < 0 &&\n selectedIndexRef.current != null &&\n Math.round(rectBottom) < Math.round(viewportHeight + getVisualOffsetTop() - WINDOW_PADDING)\n ) {\n floating.style.maxHeight = `${Math.min(visualMaxHeight, currentMaxHeight - amount)}px`\n }\n\n if (\n amount > 0 &&\n Math.round(rectTop) > Math.round(WINDOW_PADDING - getVisualOffsetTop()) &&\n floating.scrollHeight > floating.offsetHeight\n ) {\n const nextTop = Math.max(WINDOW_PADDING + getVisualOffsetTop(), currentTop - amount)\n\n const nextMaxHeight = Math.min(visualMaxHeight, currentMaxHeight + amount)\n\n Object.assign(floating.style, {\n maxHeight: `${nextMaxHeight}px`,\n top: `${nextTop}px`,\n })\n\n if (nextTop - WINDOW_PADDING > getVisualOffsetTop()) {\n floating.scrollTop -= nextMaxHeight - currentMaxHeight + getFloatingPadding(floating)\n }\n\n return currentTop - nextTop\n }\n },\n [middlewareType, selectedIndexRef]\n )\n\n const touchPageYRef = React.useRef<number | null>(null)\n\n const handleWheel = React.useCallback(\n (event: WheelEvent | TouchEvent) => {\n const pinching = event.ctrlKey\n\n const currentTarget = event.currentTarget as HTMLElement\n\n function isWheelEvent(event: any): event is WheelEvent {\n return typeof event.deltaY === 'number'\n }\n\n function isTouchEvent(event: any): event is TouchEvent {\n return event.touches != null\n }\n\n if (\n Math.abs(\n (currentTarget?.offsetHeight ?? 0) - ((visualViewport?.height ?? 0) - WINDOW_PADDING * 2)\n ) > 1 &&\n !pinching\n ) {\n event.preventDefault()\n } else if (isWheelEvent(event) && isFirefox) {\n // Firefox needs this to propagate scrolling\n // during momentum scrolling phase if the\n // height reached its maximum (at boundaries)\n currentTarget.scrollTop += event.deltaY\n }\n\n if (!pinching) {\n let delta = 5\n\n if (isTouchEvent(event)) {\n const currentPageY = touchPageYRef.current\n const pageY = event.touches[0]?.pageY\n\n if (pageY != null) {\n touchPageYRef.current = pageY\n\n if (currentPageY != null) {\n delta = currentPageY - pageY\n }\n }\n }\n\n increaseHeight(currentTarget, isWheelEvent(event) ? event.deltaY : delta)\n setScrollTop(currentTarget.scrollTop)\n // Ensure derived data (scroll arrows) is fresh\n forceUpdate()\n }\n },\n [forceUpdate, increaseHeight]\n )\n\n // Handle `onWheel` event in an effect to remove the `passive` option so we\n // can .preventDefault() it\n React.useEffect(() => {\n function onTouchEnd() {\n touchPageYRef.current = null\n }\n\n const floating = floatingRef.current\n if (open && floating && middlewareType === 'align') {\n floating.addEventListener('wheel', handleWheel)\n floating.addEventListener('touchmove', handleWheel)\n floating.addEventListener('touchend', onTouchEnd, { passive: true })\n return () => {\n floating.removeEventListener('wheel', handleWheel)\n floating.removeEventListener('touchmove', handleWheel)\n floating.removeEventListener('touchend', onTouchEnd)\n }\n }\n }, [open, floatingRef, handleWheel, middlewareType])\n\n // Ensure the menu remains attached to the reference element when resizing.\n React.useEffect(() => {\n window.addEventListener('resize', update)\n return () => {\n window.removeEventListener('resize', update)\n }\n }, [update])\n\n // Scroll the active or selected item into view when in `controlledScrolling`\n // mode (i.e. arrow key nav).\n React.useLayoutEffect(() => {\n const floating = floatingRef.current\n\n if (open && controlledScrolling && floating) {\n const item =\n activeIndex != null\n ? listItemsRef.current[activeIndex]\n : selectedIndex != null\n ? listItemsRef.current[selectedIndex]\n : null\n\n if (item && prevActiveIndex != null) {\n const itemHeight = listItemsRef.current[prevActiveIndex]?.offsetHeight ?? 0\n\n const floatingHeight = floating.offsetHeight\n const top = item.offsetTop\n const bottom = top + itemHeight\n\n if (top < floating.scrollTop + 20) {\n const diff = floating.scrollTop - top + 20\n floating.scrollTop -= diff\n\n if (activeIndex != selectedIndex && activeIndex != null) {\n increaseHeight(floating, -diff)\n }\n } else if (bottom > floatingHeight + floating.scrollTop - 20) {\n const diff = bottom - floatingHeight - floating.scrollTop + 20\n\n floating.scrollTop += diff\n\n if (activeIndex != selectedIndex && activeIndex != null) {\n floating.scrollTop -= increaseHeight(floating, diff) ?? 0\n }\n }\n }\n }\n }, [\n open,\n controlledScrolling,\n prevActiveIndex,\n activeIndex,\n selectedIndex,\n floatingRef,\n increaseHeight,\n ])\n\n // Sync the height and the scrollTop values and device whether to use fallback\n // positioning.\n React.useLayoutEffect(() => {\n const floating = refs.floating.current\n const reference = refs.reference.current\n\n if (open && floating && reference && floating.offsetHeight < floating.scrollHeight) {\n const referenceRect = reference.getBoundingClientRect()\n\n if (middlewareType === 'fallback') {\n const item = listItemsRef.current[selectedIndex]\n if (item) {\n floating.scrollTop = item.offsetTop - floating.clientHeight + referenceRect.height\n }\n return\n }\n\n floating.scrollTop = middlewareData.size?.y\n\n const closeToBottom =\n (visualViewport?.height ?? 0) + getVisualOffsetTop() - referenceRect.bottom <\n FALLBACK_THRESHOLD\n const closeToTop = referenceRect.top < FALLBACK_THRESHOLD\n\n if (floating.offsetHeight < MIN_HEIGHT || closeToTop || closeToBottom) {\n setMiddlewareType('fallback')\n }\n }\n }, [\n open,\n increaseHeight,\n selectedIndex,\n middlewareType,\n refs.floating,\n refs.reference,\n // Always re-run this effect when the position has been computed so the\n // .scrollTop change works with fresh sizing.\n middlewareData,\n ])\n\n React.useLayoutEffect(() => {\n if (open && selectedIndex != null) {\n requestAnimationFrame(() => {\n listItemsRef.current[selectedIndex]?.focus({ preventScroll: true })\n })\n }\n }, [listItemsRef, selectedIndex, open])\n\n // Wait for scroll position to settle before showing arrows to prevent\n // interference with pointer events.\n React.useEffect(() => {\n const frame = requestAnimationFrame(() => {\n setShowArrows(open)\n\n if (!open) {\n setScrollTop(0)\n setMiddlewareType('align')\n setActiveIndex(null)\n setControlledScrolling(false)\n }\n })\n return () => cancelAnimationFrame(frame)\n }, [open, setActiveIndex])\n\n // We set this to true by default so that events bubble to forms without JS (SSR)\n // const isFormControl = trigger ? Boolean(trigger.closest('form')) : true\n // const [bubbleSelect, setBubbleSelect] = React.useState<HTMLSelectElement | null>(null)\n // const triggerPointerDownPosRef = React.useRef<{ x: number; y: number } | null>(null)\n return (\n <SelectProvider\n scope={__scopeSelect}\n {...(selectContext as Required<typeof selectContext>)}\n increaseHeight={increaseHeight}\n floatingRef={floatingRef}\n setValueAtIndex={(index, value) => {\n listContentRef.current[index] = value\n }}\n interactions={{\n ...interactions,\n getReferenceProps() {\n return interactions.getReferenceProps({\n ref: reference,\n className: 'SelectTrigger',\n onKeyDown(event) {\n if (event.key === 'Enter' || (event.key === ' ' && !context.dataRef.current.typing)) {\n event.preventDefault()\n setOpen(true)\n }\n },\n })\n },\n getFloatingProps(props) {\n return interactions.getFloatingProps({\n ref: floating,\n className: 'Select',\n ...props,\n style: {\n position: strategy,\n top: y ?? '',\n left: x ?? '',\n outline: 0,\n listStyleType: 'none',\n scrollbarWidth: 'none',\n userSelect: 'none',\n ...props?.style,\n },\n onPointerEnter() {\n setControlledScrolling(false)\n },\n onPointerMove() {\n setControlledScrolling(false)\n },\n onKeyDown() {\n setControlledScrolling(true)\n },\n onScroll(event) {\n setScrollTop(event.currentTarget.scrollTop)\n },\n })\n },\n }}\n floatingContext={context}\n activeIndex={activeIndex}\n canScrollDown={!!showDownArrow}\n canScrollUp={!!showUpArrow}\n controlledScrolling\n dataRef={context.dataRef}\n listRef={listItemsRef}\n >\n {children}\n {/* {isFormControl ? (\n <BubbleSelect\n ref={setBubbleSelect}\n aria-hidden\n tabIndex={-1}\n name={name}\n autoComplete={autoComplete}\n value={value}\n // enable form autofill\n onChange={(event) => setValue(event.target.value)}\n />\n ) : null} */}\n </SelectProvider>\n )\n}\n\n// Cross browser fixes for pinch-zooming/backdrop-filter \uD83D\uDE44\nconst userAgent = (typeof navigator !== 'undefined' && navigator.userAgent) || ''\nconst isFirefox = userAgent.toLowerCase().includes('firefox')\n\nfunction getVisualOffsetTop() {\n return !/^((?!chrome|android).)*safari/i.test(userAgent) ? visualViewport?.offsetTop ?? 0 : 0\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { PortalItem } from "@tamagui/portal";
|
|
2
|
-
import * as React from "react";
|
|
3
2
|
import { VIEWPORT_NAME } from "./constants";
|
|
4
3
|
import { useSelectContext } from "./context";
|
|
5
|
-
const SelectViewport =
|
|
4
|
+
const SelectViewport = (props) => {
|
|
6
5
|
const { __scopeSelect, children } = props;
|
|
7
6
|
const context = useSelectContext(VIEWPORT_NAME, __scopeSelect);
|
|
8
7
|
return <PortalItem hostName={`${context.scopeKey}SheetContents`}>{children}</PortalItem>;
|
|
9
|
-
}
|
|
8
|
+
};
|
|
10
9
|
SelectViewport.displayName = VIEWPORT_NAME;
|
|
11
10
|
export {
|
|
12
11
|
SelectViewport
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SelectViewport.native.tsx"],
|
|
4
|
-
"sourcesContent": ["import {
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import { PortalItem } from '@tamagui/portal'\nimport * as React from 'react'\n\nimport { VIEWPORT_NAME } from './constants'\nimport { useSelectContext } from './context'\nimport { ScopedProps, SelectViewportProps } from './types'\n\nexport const SelectViewport = (props: ScopedProps<SelectViewportProps>) => {\n const { __scopeSelect, children } = props\n const context = useSelectContext(VIEWPORT_NAME, __scopeSelect)\n return <PortalItem hostName={`${context.scopeKey}SheetContents`}>{children}</PortalItem>\n}\n\nSelectViewport.displayName = VIEWPORT_NAME\n"],
|
|
5
|
+
"mappings": "AAAA;AAGA;AACA;AAGO,MAAM,iBAAiB,CAAC,UAA4C;AACzE,QAAM,EAAE,eAAe,aAAa;AACpC,QAAM,UAAU,iBAAiB,eAAe,aAAa;AAC7D,SAAO,CAAC,WAAW,UAAU,GAAG,QAAQ,0BAA0B,SAAS,EAAnE;AACV;AAEA,eAAe,cAAc;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/select",
|
|
3
|
-
"version": "1.0.1-beta.
|
|
3
|
+
"version": "1.0.1-beta.118",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"*.css"
|
|
6
6
|
],
|
|
@@ -25,16 +25,16 @@
|
|
|
25
25
|
"@floating-ui/react-dom-interactions": "^0.5.0",
|
|
26
26
|
"@floating-ui/react-native": "^0.7.0",
|
|
27
27
|
"@radix-ui/react-use-previous": "^0.1.1",
|
|
28
|
-
"@tamagui/compose-refs": "^1.0.1-beta.
|
|
29
|
-
"@tamagui/core": "^1.0.1-beta.
|
|
30
|
-
"@tamagui/create-context": "^1.0.1-beta.
|
|
31
|
-
"@tamagui/list-item": "^1.0.1-beta.
|
|
32
|
-
"@tamagui/portal": "^1.0.1-beta.
|
|
33
|
-
"@tamagui/separator": "^1.0.1-beta.
|
|
34
|
-
"@tamagui/stacks": "^1.0.1-beta.
|
|
35
|
-
"@tamagui/text": "^1.0.1-beta.
|
|
36
|
-
"@tamagui/use-controllable-state": "^1.0.1-beta.
|
|
37
|
-
"@tamagui/use-event": "^1.0.1-beta.
|
|
28
|
+
"@tamagui/compose-refs": "^1.0.1-beta.118",
|
|
29
|
+
"@tamagui/core": "^1.0.1-beta.118",
|
|
30
|
+
"@tamagui/create-context": "^1.0.1-beta.118",
|
|
31
|
+
"@tamagui/list-item": "^1.0.1-beta.118",
|
|
32
|
+
"@tamagui/portal": "^1.0.1-beta.118",
|
|
33
|
+
"@tamagui/separator": "^1.0.1-beta.118",
|
|
34
|
+
"@tamagui/stacks": "^1.0.1-beta.118",
|
|
35
|
+
"@tamagui/text": "^1.0.1-beta.118",
|
|
36
|
+
"@tamagui/use-controllable-state": "^1.0.1-beta.118",
|
|
37
|
+
"@tamagui/use-event": "^1.0.1-beta.118"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"react": "*",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"react-native": "*"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@tamagui/build": "^1.0.1-beta.
|
|
45
|
+
"@tamagui/build": "^1.0.1-beta.118",
|
|
46
46
|
"@types/react-native": "^0.69.2",
|
|
47
47
|
"react": "*",
|
|
48
48
|
"react-dom": "*",
|
package/src/Select.tsx
CHANGED
|
@@ -20,13 +20,6 @@ import { SelectScrollDownButton, SelectScrollUpButton } from './SelectScrollButt
|
|
|
20
20
|
import { SelectViewport } from './SelectViewport'
|
|
21
21
|
import { ScopedProps, SelectContextValue, SelectProps } from './types'
|
|
22
22
|
|
|
23
|
-
// Cross browser fixes for pinch-zooming/backdrop-filter 🙄
|
|
24
|
-
const userAgent = (typeof navigator !== 'undefined' && navigator.userAgent) || ''
|
|
25
|
-
export const isFirefox = userAgent.toLowerCase().includes('firefox')
|
|
26
|
-
export function getVisualOffsetTop() {
|
|
27
|
-
return !/^((?!chrome|android).)*safari/i.test(userAgent) ? visualViewport?.offsetTop ?? 0 : 0
|
|
28
|
-
}
|
|
29
|
-
|
|
30
23
|
/* -------------------------------------------------------------------------------------------------
|
|
31
24
|
* SelectTrigger
|
|
32
25
|
* -----------------------------------------------------------------------------------------------*/
|
|
@@ -35,17 +28,6 @@ const TRIGGER_NAME = 'SelectTrigger'
|
|
|
35
28
|
|
|
36
29
|
export type SelectTriggerProps = ListItemProps
|
|
37
30
|
|
|
38
|
-
const SelectTriggerFrame = styled(ListItem, {
|
|
39
|
-
componentName: TRIGGER_NAME,
|
|
40
|
-
backgrounded: true,
|
|
41
|
-
radiused: true,
|
|
42
|
-
hoverTheme: true,
|
|
43
|
-
pressTheme: true,
|
|
44
|
-
focusTheme: true,
|
|
45
|
-
focusable: false,
|
|
46
|
-
borderWidth: 1,
|
|
47
|
-
})
|
|
48
|
-
|
|
49
31
|
export const SelectTrigger = React.forwardRef<TamaguiElement, SelectTriggerProps>(
|
|
50
32
|
(props: ScopedProps<SelectTriggerProps>, forwardedRef) => {
|
|
51
33
|
const {
|
|
@@ -62,7 +44,15 @@ export const SelectTrigger = React.forwardRef<TamaguiElement, SelectTriggerProps
|
|
|
62
44
|
const labelledBy = ariaLabelledby // || labelId
|
|
63
45
|
|
|
64
46
|
return (
|
|
65
|
-
<
|
|
47
|
+
<ListItem
|
|
48
|
+
componentName={TRIGGER_NAME}
|
|
49
|
+
backgrounded
|
|
50
|
+
radiused
|
|
51
|
+
hoverTheme
|
|
52
|
+
pressTheme
|
|
53
|
+
focusTheme
|
|
54
|
+
focusable
|
|
55
|
+
borderWidth={1}
|
|
66
56
|
size={context.size}
|
|
67
57
|
// aria-controls={context.contentId}
|
|
68
58
|
aria-expanded={context.open}
|
|
@@ -441,7 +431,6 @@ const SelectLabel = React.forwardRef<TamaguiElement, SelectLabelProps>(
|
|
|
441
431
|
id={groupContext.id}
|
|
442
432
|
size={context.size}
|
|
443
433
|
{...labelProps}
|
|
444
|
-
// @ts-expect-error
|
|
445
434
|
ref={forwardedRef}
|
|
446
435
|
/>
|
|
447
436
|
)
|
package/src/SelectImpl.tsx
CHANGED
|
@@ -16,7 +16,6 @@ import * as React from 'react'
|
|
|
16
16
|
|
|
17
17
|
import { FALLBACK_THRESHOLD, MIN_HEIGHT, SCROLL_ARROW_THRESHOLD, WINDOW_PADDING } from './constants'
|
|
18
18
|
import { SelectProvider, useSelectContext } from './context'
|
|
19
|
-
import { getVisualOffsetTop, isFirefox } from './Select'
|
|
20
19
|
import { ScopedProps, SelectProps } from './types'
|
|
21
20
|
|
|
22
21
|
export type SelectImplProps = ScopedProps<SelectProps> & {
|
|
@@ -509,3 +508,11 @@ export const SelectInlineImpl = (props: SelectImplProps) => {
|
|
|
509
508
|
</SelectProvider>
|
|
510
509
|
)
|
|
511
510
|
}
|
|
511
|
+
|
|
512
|
+
// Cross browser fixes for pinch-zooming/backdrop-filter 🙄
|
|
513
|
+
const userAgent = (typeof navigator !== 'undefined' && navigator.userAgent) || ''
|
|
514
|
+
const isFirefox = userAgent.toLowerCase().includes('firefox')
|
|
515
|
+
|
|
516
|
+
function getVisualOffsetTop() {
|
|
517
|
+
return !/^((?!chrome|android).)*safari/i.test(userAgent) ? visualViewport?.offsetTop ?? 0 : 0
|
|
518
|
+
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { TamaguiElement } from '@tamagui/core'
|
|
2
1
|
import { PortalItem } from '@tamagui/portal'
|
|
3
2
|
import * as React from 'react'
|
|
4
3
|
|
|
@@ -6,12 +5,10 @@ import { VIEWPORT_NAME } from './constants'
|
|
|
6
5
|
import { useSelectContext } from './context'
|
|
7
6
|
import { ScopedProps, SelectViewportProps } from './types'
|
|
8
7
|
|
|
9
|
-
export const SelectViewport =
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
)
|
|
8
|
+
export const SelectViewport = (props: ScopedProps<SelectViewportProps>) => {
|
|
9
|
+
const { __scopeSelect, children } = props
|
|
10
|
+
const context = useSelectContext(VIEWPORT_NAME, __scopeSelect)
|
|
11
|
+
return <PortalItem hostName={`${context.scopeKey}SheetContents`}>{children}</PortalItem>
|
|
12
|
+
}
|
|
16
13
|
|
|
17
14
|
SelectViewport.displayName = VIEWPORT_NAME
|
package/types/Select.d.ts
CHANGED
|
@@ -3,8 +3,6 @@ import { ListItemProps } from '@tamagui/list-item';
|
|
|
3
3
|
import { YStackProps } from '@tamagui/stacks';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { ScopedProps, SelectContextValue, SelectProps } from './types';
|
|
6
|
-
export declare const isFirefox: boolean;
|
|
7
|
-
export declare function getVisualOffsetTop(): number;
|
|
8
6
|
export declare type SelectTriggerProps = ListItemProps;
|
|
9
7
|
export declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<import("@tamagui/helpers-tamagui").TextParentStyles, "TextComponent"> & Omit<import("react-native").ViewProps, "display" | "children"> & import("@tamagui/core").RNWViewProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & Omit<{
|
|
10
8
|
readonly fullscreen?: boolean | undefined;
|
|
@@ -22,7 +20,7 @@ export declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<import(
|
|
|
22
20
|
bordered?: number | boolean | undefined;
|
|
23
21
|
transparent?: boolean | undefined;
|
|
24
22
|
chromeless?: boolean | undefined;
|
|
25
|
-
}, "
|
|
23
|
+
}, "size" | "disabled" | "active"> & {
|
|
26
24
|
size?: import("@tamagui/core").SizeTokens | undefined;
|
|
27
25
|
active?: boolean | undefined;
|
|
28
26
|
disabled?: boolean | undefined;
|
|
@@ -42,7 +40,7 @@ export declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<import(
|
|
|
42
40
|
bordered?: number | boolean | undefined;
|
|
43
41
|
transparent?: boolean | undefined;
|
|
44
42
|
chromeless?: boolean | undefined;
|
|
45
|
-
}, "
|
|
43
|
+
}, "size" | "disabled" | "active"> & {
|
|
46
44
|
size?: import("@tamagui/core").SizeTokens | undefined;
|
|
47
45
|
active?: boolean | undefined;
|
|
48
46
|
disabled?: boolean | undefined;
|
|
@@ -62,7 +60,7 @@ export declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<import(
|
|
|
62
60
|
bordered?: number | boolean | undefined;
|
|
63
61
|
transparent?: boolean | undefined;
|
|
64
62
|
chromeless?: boolean | undefined;
|
|
65
|
-
}, "
|
|
63
|
+
}, "size" | "disabled" | "active"> & {
|
|
66
64
|
size?: import("@tamagui/core").SizeTokens | undefined;
|
|
67
65
|
active?: boolean | undefined;
|
|
68
66
|
disabled?: boolean | undefined;
|
|
@@ -395,7 +393,7 @@ export declare const Select: ((props: ScopedProps<SelectProps>) => JSX.Element)
|
|
|
395
393
|
bordered?: number | boolean | undefined;
|
|
396
394
|
transparent?: boolean | undefined;
|
|
397
395
|
chromeless?: boolean | undefined;
|
|
398
|
-
}, "
|
|
396
|
+
}, "size" | "disabled" | "active"> & {
|
|
399
397
|
size?: import("@tamagui/core").SizeTokens | undefined;
|
|
400
398
|
active?: boolean | undefined;
|
|
401
399
|
disabled?: boolean | undefined;
|
|
@@ -415,7 +413,7 @@ export declare const Select: ((props: ScopedProps<SelectProps>) => JSX.Element)
|
|
|
415
413
|
bordered?: number | boolean | undefined;
|
|
416
414
|
transparent?: boolean | undefined;
|
|
417
415
|
chromeless?: boolean | undefined;
|
|
418
|
-
}, "
|
|
416
|
+
}, "size" | "disabled" | "active"> & {
|
|
419
417
|
size?: import("@tamagui/core").SizeTokens | undefined;
|
|
420
418
|
active?: boolean | undefined;
|
|
421
419
|
disabled?: boolean | undefined;
|
|
@@ -435,7 +433,7 @@ export declare const Select: ((props: ScopedProps<SelectProps>) => JSX.Element)
|
|
|
435
433
|
bordered?: number | boolean | undefined;
|
|
436
434
|
transparent?: boolean | undefined;
|
|
437
435
|
chromeless?: boolean | undefined;
|
|
438
|
-
}, "
|
|
436
|
+
}, "size" | "disabled" | "active"> & {
|
|
439
437
|
size?: import("@tamagui/core").SizeTokens | undefined;
|
|
440
438
|
active?: boolean | undefined;
|
|
441
439
|
disabled?: boolean | undefined;
|
|
@@ -472,7 +470,7 @@ export declare const Select: ((props: ScopedProps<SelectProps>) => JSX.Element)
|
|
|
472
470
|
bordered?: number | boolean | undefined;
|
|
473
471
|
transparent?: boolean | undefined;
|
|
474
472
|
chromeless?: boolean | undefined;
|
|
475
|
-
}, "
|
|
473
|
+
}, "size" | "disabled" | "active"> & {
|
|
476
474
|
size?: import("@tamagui/core").SizeTokens | undefined;
|
|
477
475
|
active?: boolean | undefined;
|
|
478
476
|
disabled?: boolean | undefined;
|
|
@@ -492,7 +490,7 @@ export declare const Select: ((props: ScopedProps<SelectProps>) => JSX.Element)
|
|
|
492
490
|
bordered?: number | boolean | undefined;
|
|
493
491
|
transparent?: boolean | undefined;
|
|
494
492
|
chromeless?: boolean | undefined;
|
|
495
|
-
}, "
|
|
493
|
+
}, "size" | "disabled" | "active"> & {
|
|
496
494
|
size?: import("@tamagui/core").SizeTokens | undefined;
|
|
497
495
|
active?: boolean | undefined;
|
|
498
496
|
disabled?: boolean | undefined;
|
|
@@ -512,7 +510,7 @@ export declare const Select: ((props: ScopedProps<SelectProps>) => JSX.Element)
|
|
|
512
510
|
bordered?: number | boolean | undefined;
|
|
513
511
|
transparent?: boolean | undefined;
|
|
514
512
|
chromeless?: boolean | undefined;
|
|
515
|
-
}, "
|
|
513
|
+
}, "size" | "disabled" | "active"> & {
|
|
516
514
|
size?: import("@tamagui/core").SizeTokens | undefined;
|
|
517
515
|
active?: boolean | undefined;
|
|
518
516
|
disabled?: boolean | undefined;
|
|
@@ -597,7 +595,7 @@ export declare const Select: ((props: ScopedProps<SelectProps>) => JSX.Element)
|
|
|
597
595
|
Viewport: React.ForwardRefExoticComponent<Omit<import("react-native").ViewProps, "display" | "children"> & import("@tamagui/core").RNWViewProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & Omit<{
|
|
598
596
|
readonly fullscreen?: boolean | undefined;
|
|
599
597
|
readonly elevation?: import("@tamagui/core").SizeTokens | undefined;
|
|
600
|
-
}, "fontFamily" | "
|
|
598
|
+
}, "fontFamily" | "hoverTheme" | "pressTheme" | "focusTheme" | "circular" | "elevate" | "bordered" | "transparent" | "backgrounded" | "radiused" | "padded" | "chromeless"> & {
|
|
601
599
|
fontFamily?: unknown;
|
|
602
600
|
backgrounded?: boolean | undefined;
|
|
603
601
|
radiused?: boolean | undefined;
|
|
@@ -613,7 +611,7 @@ export declare const Select: ((props: ScopedProps<SelectProps>) => JSX.Element)
|
|
|
613
611
|
} & import("@tamagui/core").MediaProps<Partial<Omit<import("react-native").ViewProps, "display" | "children"> & import("@tamagui/core").RNWViewProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & Omit<{
|
|
614
612
|
readonly fullscreen?: boolean | undefined;
|
|
615
613
|
readonly elevation?: import("@tamagui/core").SizeTokens | undefined;
|
|
616
|
-
}, "fontFamily" | "
|
|
614
|
+
}, "fontFamily" | "hoverTheme" | "pressTheme" | "focusTheme" | "circular" | "elevate" | "bordered" | "transparent" | "backgrounded" | "radiused" | "padded" | "chromeless"> & {
|
|
617
615
|
fontFamily?: unknown;
|
|
618
616
|
backgrounded?: boolean | undefined;
|
|
619
617
|
radiused?: boolean | undefined;
|
|
@@ -629,7 +627,7 @@ export declare const Select: ((props: ScopedProps<SelectProps>) => JSX.Element)
|
|
|
629
627
|
}>> & import("@tamagui/core").PseudoProps<Partial<Omit<import("react-native").ViewProps, "display" | "children"> & import("@tamagui/core").RNWViewProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & Omit<{
|
|
630
628
|
readonly fullscreen?: boolean | undefined;
|
|
631
629
|
readonly elevation?: import("@tamagui/core").SizeTokens | undefined;
|
|
632
|
-
}, "fontFamily" | "
|
|
630
|
+
}, "fontFamily" | "hoverTheme" | "pressTheme" | "focusTheme" | "circular" | "elevate" | "bordered" | "transparent" | "backgrounded" | "radiused" | "padded" | "chromeless"> & {
|
|
633
631
|
fontFamily?: unknown;
|
|
634
632
|
backgrounded?: boolean | undefined;
|
|
635
633
|
radiused?: boolean | undefined;
|
package/types/Select.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../src/Select.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,cAAc,EAAmB,MAAM,eAAe,CAAA;AAGzE,OAAO,EAAY,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAI5D,OAAO,EAAkB,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../src/Select.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,cAAc,EAAmB,MAAM,eAAe,CAAA;AAGzE,OAAO,EAAY,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAI5D,OAAO,EAAkB,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAQtE,oBAAY,kBAAkB,GAAG,aAAa,CAAA;AAE9C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA6CzB,CAAA;AA0DD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAKrB,CAAA;AAkBF,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,UAAU,wFAsHtB,CAAA;AAUD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAG9B,CAAA;AA4FF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAG3B,CAAA;AA8BF,oBAAY,gBAAgB,GAAG,aAAa,CAAA;AA0B5C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;GAE1B,CAAA;AAEF,eAAO,MAAM,yBAAyB,oBACnB,kBAAkB,CAAC,iBAAiB,CAAC,YAIvD,CAAA;AAED,eAAO,MAAM,kBAAkB,YAAa,kBAAkB,YAG7D,CAAA;AAkCD,eAAO,MAAM,mBAAmB;wBAAuB,YAAY,EAAE,CAAC;;CAGrE,CAAA;AAYD,eAAO,MAAM,MAAM,WACT,YAAY,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAlalB,MAAM,SAAS;;;;;;;;;;;;;;sBAAf,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;sBAAf,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;sBAAf,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAkZwB,YAAY,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2HrE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectImpl.d.ts","sourceRoot":"","sources":["../src/SelectImpl.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"SelectImpl.d.ts","sourceRoot":"","sources":["../src/SelectImpl.tsx"],"names":[],"mappings":";AAkBA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAElD,oBAAY,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG;IACvD,cAAc,EAAE,GAAG,CAAA;IACnB,gBAAgB,EAAE,GAAG,CAAA;IACrB,cAAc,EAAE,GAAG,CAAA;CACpB,CAAA;AAGD,eAAO,MAAM,gBAAgB,UAAW,eAAe,gBAketD,CAAA"}
|
|
@@ -76,7 +76,7 @@ export declare const SelectViewportFrame: import("@tamagui/core").TamaguiCompone
|
|
|
76
76
|
export declare const SelectViewport: React.ForwardRefExoticComponent<Omit<import("react-native").ViewProps, "display" | "children"> & import("@tamagui/core").RNWViewProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & Omit<{
|
|
77
77
|
readonly fullscreen?: boolean | undefined;
|
|
78
78
|
readonly elevation?: import("@tamagui/core").SizeTokens | undefined;
|
|
79
|
-
}, "fontFamily" | "
|
|
79
|
+
}, "fontFamily" | "hoverTheme" | "pressTheme" | "focusTheme" | "circular" | "elevate" | "bordered" | "transparent" | "backgrounded" | "radiused" | "padded" | "chromeless"> & {
|
|
80
80
|
fontFamily?: unknown;
|
|
81
81
|
backgrounded?: boolean | undefined;
|
|
82
82
|
radiused?: boolean | undefined;
|
|
@@ -92,7 +92,7 @@ export declare const SelectViewport: React.ForwardRefExoticComponent<Omit<import
|
|
|
92
92
|
} & import("@tamagui/core").MediaProps<Partial<Omit<import("react-native").ViewProps, "display" | "children"> & import("@tamagui/core").RNWViewProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & Omit<{
|
|
93
93
|
readonly fullscreen?: boolean | undefined;
|
|
94
94
|
readonly elevation?: import("@tamagui/core").SizeTokens | undefined;
|
|
95
|
-
}, "fontFamily" | "
|
|
95
|
+
}, "fontFamily" | "hoverTheme" | "pressTheme" | "focusTheme" | "circular" | "elevate" | "bordered" | "transparent" | "backgrounded" | "radiused" | "padded" | "chromeless"> & {
|
|
96
96
|
fontFamily?: unknown;
|
|
97
97
|
backgrounded?: boolean | undefined;
|
|
98
98
|
radiused?: boolean | undefined;
|
|
@@ -108,7 +108,7 @@ export declare const SelectViewport: React.ForwardRefExoticComponent<Omit<import
|
|
|
108
108
|
}>> & import("@tamagui/core").PseudoProps<Partial<Omit<import("react-native").ViewProps, "display" | "children"> & import("@tamagui/core").RNWViewProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & Omit<{
|
|
109
109
|
readonly fullscreen?: boolean | undefined;
|
|
110
110
|
readonly elevation?: import("@tamagui/core").SizeTokens | undefined;
|
|
111
|
-
}, "fontFamily" | "
|
|
111
|
+
}, "fontFamily" | "hoverTheme" | "pressTheme" | "focusTheme" | "circular" | "elevate" | "bordered" | "transparent" | "backgrounded" | "radiused" | "padded" | "chromeless"> & {
|
|
112
112
|
fontFamily?: unknown;
|
|
113
113
|
backgrounded?: boolean | undefined;
|
|
114
114
|
radiused?: boolean | undefined;
|
|
@@ -1,54 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
export declare const SelectViewport:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
fontFamily?: unknown;
|
|
8
|
-
backgrounded?: boolean | undefined;
|
|
9
|
-
radiused?: boolean | undefined;
|
|
10
|
-
hoverTheme?: boolean | undefined;
|
|
11
|
-
pressTheme?: boolean | undefined;
|
|
12
|
-
focusTheme?: boolean | undefined;
|
|
13
|
-
circular?: boolean | undefined;
|
|
14
|
-
padded?: boolean | undefined;
|
|
15
|
-
elevate?: boolean | undefined;
|
|
16
|
-
bordered?: number | boolean | undefined;
|
|
17
|
-
transparent?: boolean | undefined;
|
|
18
|
-
chromeless?: boolean | undefined;
|
|
19
|
-
} & import("@tamagui/core").MediaProps<Partial<Omit<import("react-native").ViewProps, "display" | "children"> & import("@tamagui/core").RNWViewProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & Omit<{
|
|
20
|
-
readonly fullscreen?: boolean | undefined;
|
|
21
|
-
readonly elevation?: import("@tamagui/core").SizeTokens | undefined;
|
|
22
|
-
}, "fontFamily" | "backgrounded" | "radiused" | "hoverTheme" | "pressTheme" | "focusTheme" | "circular" | "padded" | "elevate" | "bordered" | "transparent" | "chromeless"> & {
|
|
23
|
-
fontFamily?: unknown;
|
|
24
|
-
backgrounded?: boolean | undefined;
|
|
25
|
-
radiused?: boolean | undefined;
|
|
26
|
-
hoverTheme?: boolean | undefined;
|
|
27
|
-
pressTheme?: boolean | undefined;
|
|
28
|
-
focusTheme?: boolean | undefined;
|
|
29
|
-
circular?: boolean | undefined;
|
|
30
|
-
padded?: boolean | undefined;
|
|
31
|
-
elevate?: boolean | undefined;
|
|
32
|
-
bordered?: number | boolean | undefined;
|
|
33
|
-
transparent?: boolean | undefined;
|
|
34
|
-
chromeless?: boolean | undefined;
|
|
35
|
-
}>> & import("@tamagui/core").PseudoProps<Partial<Omit<import("react-native").ViewProps, "display" | "children"> & import("@tamagui/core").RNWViewProps & import("@tamagui/core").TamaguiComponentPropsBase & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStylePropsBase>> & Omit<{
|
|
36
|
-
readonly fullscreen?: boolean | undefined;
|
|
37
|
-
readonly elevation?: import("@tamagui/core").SizeTokens | undefined;
|
|
38
|
-
}, "fontFamily" | "backgrounded" | "radiused" | "hoverTheme" | "pressTheme" | "focusTheme" | "circular" | "padded" | "elevate" | "bordered" | "transparent" | "chromeless"> & {
|
|
39
|
-
fontFamily?: unknown;
|
|
40
|
-
backgrounded?: boolean | undefined;
|
|
41
|
-
radiused?: boolean | undefined;
|
|
42
|
-
hoverTheme?: boolean | undefined;
|
|
43
|
-
pressTheme?: boolean | undefined;
|
|
44
|
-
focusTheme?: boolean | undefined;
|
|
45
|
-
circular?: boolean | undefined;
|
|
46
|
-
padded?: boolean | undefined;
|
|
47
|
-
elevate?: boolean | undefined;
|
|
48
|
-
bordered?: number | boolean | undefined;
|
|
49
|
-
transparent?: boolean | undefined;
|
|
50
|
-
chromeless?: boolean | undefined;
|
|
51
|
-
}>> & {
|
|
52
|
-
size?: import("@tamagui/core").SizeTokens | undefined;
|
|
53
|
-
} & React.RefAttributes<TamaguiElement>>;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ScopedProps, SelectViewportProps } from './types';
|
|
3
|
+
export declare const SelectViewport: {
|
|
4
|
+
(props: ScopedProps<SelectViewportProps>): JSX.Element;
|
|
5
|
+
displayName: string;
|
|
6
|
+
};
|
|
54
7
|
//# sourceMappingURL=SelectViewport.native.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectViewport.native.d.ts","sourceRoot":"","sources":["../src/SelectViewport.native.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SelectViewport.native.d.ts","sourceRoot":"","sources":["../src/SelectViewport.native.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE1D,eAAO,MAAM,cAAc;YAAW,YAAY,mBAAmB,CAAC;;CAIrE,CAAA"}
|
package/types/BubbleSelect.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BubbleSelect.d.ts","sourceRoot":"","sources":["../src/BubbleSelect.tsx"],"names":[],"mappings":""}
|