@yamada-ui/modal 1.2.0 → 1.2.1-dev-20240409072750

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/.pnpm/toggle-selection@1.0.6/node_modules/toggle-selection/index.js","../../../../node_modules/.pnpm/copy-to-clipboard@3.3.3/node_modules/copy-to-clipboard/index.js","../../../../node_modules/.pnpm/stacking-order@1.0.1/node_modules/stacking-order/src/utils/getParent.js","../../../../node_modules/.pnpm/stacking-order@1.0.1/node_modules/stacking-order/src/utils/findStackingContext.js","../../../../node_modules/.pnpm/stacking-order@1.0.1/node_modules/stacking-order/src/utils/getAncestors.js","../../../../node_modules/.pnpm/stacking-order@1.0.1/node_modules/stacking-order/src/utils/getZIndex.js","../../../../node_modules/.pnpm/stacking-order@1.0.1/node_modules/stacking-order/src/utils/last.js","../../../../node_modules/.pnpm/stacking-order@1.0.1/node_modules/stacking-order/src/index.js","../src/drawer.tsx","../../../react/src/index.ts","../../../providers/src/ui-provider.tsx","../../loading/src/loading.tsx","../../../hooks/use-token/src/index.ts","../../loading/src/audio.tsx","../../icon/src/icon.tsx","../../loading/src/circles.tsx","../../loading/src/dots.tsx","../../loading/src/grid.tsx","../../loading/src/oval.tsx","../../loading/src/puff.tsx","../../loading/src/rings.tsx","../../loading/src/loading-provider.tsx","../../../hooks/use-timeout/src/index.ts","../../alert/src/alert.tsx","../../notice/src/notice.tsx","../../notice/src/notice-provider.tsx","../../../theme/src/components/accordion.ts","../../../theme/src/components/alert.ts","../../../theme/src/components/alpha-slider.ts","../../../theme/src/components/hue-slider.ts","../../../theme/src/components/area-chart.ts","../../../theme/src/components/line-chart.ts","../../../theme/src/components/autocomplete.ts","../../../theme/src/components/select.ts","../../../theme/src/components/menu.ts","../../../theme/src/components/native-select.ts","../../../theme/src/components/input.ts","../../../theme/src/components/avatar.ts","../../../theme/src/components/badge.ts","../../../theme/src/components/bar-chart.ts","../../../theme/src/components/breadcrumb.ts","../../../theme/src/components/button.ts","../../../theme/src/components/calendar.ts","../../../theme/src/components/card.ts","../../../theme/src/components/carousel.ts","../../../theme/src/components/checkbox.ts","../../../theme/src/components/close-button.ts","../../../theme/src/components/color-picker.ts","../../../theme/src/components/color-selector.ts","../../../theme/src/components/color-swatch.ts","../../../theme/src/components/container.ts","../../../theme/src/components/date-picker.ts","../../../theme/src/components/multi-select.ts","../../../theme/src/components/dialog.ts","../../../theme/src/components/modal.ts","../../../theme/src/components/divider.ts","../../../theme/src/components/drawer.ts","../../../theme/src/components/dropzone.ts","../../../theme/src/components/editable.ts","../../../theme/src/components/file-input.ts","../../../theme/src/components/form-control.ts","../../../theme/src/components/heading.ts","../../../theme/src/components/indicator.ts","../../../theme/src/components/kbd.ts","../../../theme/src/components/link.ts","../../../theme/src/components/list.ts","../../../theme/src/components/mark.ts","../../../theme/src/components/markdown.ts","../../../theme/src/components/month-picker.ts","../../../theme/src/components/multi-autocomplete.ts","../../../theme/src/components/multi-date-picker.ts","../../../theme/src/components/native-table.ts","../../../theme/src/components/number-input.ts","../../../theme/src/components/pagination.ts","../../../theme/src/components/paging-table.ts","../../../theme/src/components/table.ts","../../../theme/src/components/pin-input.ts","../../../theme/src/components/popover.ts","../../../theme/src/components/progress.ts","../../../theme/src/components/radar-chart.ts","../../../theme/src/components/radio.ts","../../../theme/src/components/range-date-picker.ts","../../../theme/src/components/range-slider.ts","../../../theme/src/components/slider.ts","../../../theme/src/components/rating.ts","../../../theme/src/components/reorder.ts","../../../theme/src/components/resizable.ts","../../../theme/src/components/saturation-slider.ts","../../../theme/src/components/scroll-area.ts","../../../theme/src/components/segmented-control.ts","../../../theme/src/components/skeleton.ts","../../../theme/src/components/stat.ts","../../../theme/src/components/stepper.ts","../../../theme/src/components/switch.ts","../../../theme/src/components/tabs.ts","../../../theme/src/components/tag.ts","../../../theme/src/components/textarea.ts","../../../theme/src/components/toggle.ts","../../../theme/src/components/tooltip.ts","../../../theme/src/components/index.ts","../../../theme/src/config.ts","../../../theme/src/semantics.ts","../../../theme/src/styles/global-style.ts","../../../theme/src/styles/reset-style.ts","../../../theme/src/styles/layer-styles.ts","../../../theme/src/styles/text-styles.ts","../../../theme/src/tokens/animations.ts","../../../theme/src/tokens/blurs.ts","../../../theme/src/tokens/borders.ts","../../../theme/src/tokens/breakpoints.ts","../../../theme/src/tokens/colors.ts","../../../theme/src/tokens/fontSizes.ts","../../../theme/src/tokens/fontWeights.ts","../../../theme/src/tokens/fonts.ts","../../../theme/src/tokens/gradients.ts","../../../theme/src/tokens/letterSpacings.ts","../../../theme/src/tokens/lineHeights.ts","../../../theme/src/tokens/radii.ts","../../../theme/src/tokens/shadows.ts","../../../theme/src/tokens/spaces.ts","../../../theme/src/tokens/sizes.ts","../../../theme/src/tokens/transitions.ts","../../../theme/src/tokens/z-indices.ts","../../../theme/src/tokens/index.ts","../../../theme/src/index.ts","../../../providers/src/environment-provider.tsx","../../../theme-tools/src/extend-theme.ts","../../../theme-tools/src/extend-config.ts","../../../theme-tools/src/with-default.ts","../../accordion/src/accordion.tsx","../../../hooks/use-controllable-state/src/index.ts","../../../hooks/use-descendant/src/index.ts","../../accordion/src/accordion-item.tsx","../../accordion/src/accordion-label.tsx","../../accordion/src/accordion-panel.tsx","../../badge/src/badge.tsx","../../breadcrumb/src/breadcrumb.tsx","../../card/src/card.tsx","../../checkbox/src/checkbox.tsx","../../form-control/src/form-control.tsx","../../../hooks/use-focus-visible/src/index.ts","../../layouts/src/box.tsx","../../layouts/src/flex.tsx","../../layouts/src/center.tsx","../../layouts/src/grid.tsx","../../layouts/src/container.tsx","../../layouts/src/stack.tsx","../../layouts/src/spacer.tsx","../../layouts/src/divider.tsx","../../layouts/src/aspect-ratio.tsx","../../checkbox/src/checkbox-group.tsx","../../editable/src/editable.tsx","../../../hooks/use-event-listener/src/index.ts","../../../hooks/use-focus/src/index.ts","../../file-button/src/file-button.tsx","../../highlight/src/highlight.tsx","../../typography/src/heading.tsx","../../typography/src/text.tsx","../../image/src/image.tsx","../../image/src/use-image.ts","../../input/src/input.tsx","../../input/src/input-group.tsx","../../file-input/src/file-input.tsx","../../input/src/input-addon.tsx","../../input/src/input-element.tsx","../../kbd/src/kbd.tsx","../../link/src/link.tsx","../../link/src/link-box.tsx","../../list/src/list.tsx","../../menu/src/menu.tsx","../../popover/src/popover.tsx","../../../hooks/use-animation/src/index.ts","../../../hooks/use-boolean/src/index.ts","../../../hooks/use-disclosure/src/index.ts","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/enums.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/math.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/userAgent.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/within.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getVariation.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/flip.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/hide.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/offset.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/debounce.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/createPopper.js","../../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper.js","../../../hooks/use-popper/src/index.ts","../../popover/src/popover-trigger.tsx","../../popover/src/popover-anchor.tsx","../../popover/src/popover-close-button.tsx","../../popover/src/popover-content.tsx","../../popover/src/popover-header.tsx","../../popover/src/popover-body.tsx","../../popover/src/popover-footer.tsx","../../menu/src/menu-button.tsx","../../menu/src/menu-list.tsx","../../menu/src/menu-item.tsx","../../../hooks/use-clickable/src/index.ts","../../menu/src/menu-group.tsx","../../menu/src/menu-option-group.tsx","../../menu/src/menu-divider.tsx","../src/modal.tsx","../src/modal-overlay.tsx","../src/modal-close-button.tsx","../src/modal-header.tsx","../src/modal-body.tsx","../src/modal-footer.tsx","../src/dialog.tsx","../../native-select/src/native-select.tsx","../../number-input/src/number-input.tsx","../../../hooks/use-counter/src/index.ts","../../../hooks/use-interval/src/index.ts","../../pin-input/src/pin-input.tsx","../../progress/src/progress.tsx","../../progress/src/circle-progress.tsx","../../radio/src/radio.tsx","../../radio/src/radio-group.tsx","../../segmented-control/src/segmented-control.tsx","../../select/src/select.tsx","../../select/src/select-icon.tsx","../../select/src/use-select.ts","../../../hooks/use-outside-click/src/index.ts","../../select/src/select-list.tsx","../../select/src/multi-select.tsx","../../select/src/option-group.tsx","../../select/src/option.tsx","../../slider/src/slider.tsx","../../../hooks/use-latest-ref/src/index.ts","../../../hooks/use-pan-event/src/index.ts","../../../../node_modules/.pnpm/framesync@6.1.2/node_modules/framesync/dist/es/on-next-frame.mjs","../../../../node_modules/.pnpm/framesync@6.1.2/node_modules/framesync/dist/es/create-render-step.mjs","../../../../node_modules/.pnpm/framesync@6.1.2/node_modules/framesync/dist/es/index.mjs","../../../hooks/use-size/src/index.ts","../../slider/src/range-slider.tsx","../../switch/src/switch.tsx","../../tabs/src/tabs.tsx","../../tabs/src/tab-list.tsx","../../tabs/src/tab.tsx","../../ripple/src/ripple.tsx","../../ripple/src/use-ripple.ts","../../tabs/src/tab-panels.tsx","../../tabs/src/tab-panel.tsx","../../tag/src/tag.tsx","../../textarea/src/textarea.tsx","../../textarea/src/use-autosize.ts","../../tooltip/src/tooltip.tsx","../../../hooks/use-breakpoint/src/index.ts","../../../hooks/use-resize-observer/src/index.ts","../../scroll-area/src/scroll-area.tsx","../../autocomplete/src/autocomplete.tsx","../../autocomplete/src/autocomplete-icon.tsx","../../autocomplete/src/use-autocomplete.tsx","../../autocomplete/src/autocomplete-list.tsx","../../autocomplete/src/autocomplete-option-group.tsx","../../autocomplete/src/autocomplete-option.tsx","../../autocomplete/src/autocomplete-create.tsx","../../autocomplete/src/autocomplete-empty.tsx","../../autocomplete/src/multi-autocomplete.tsx","../../avatar/src/avatar.tsx","../../avatar/src/avatar-icon.tsx","../../avatar/src/avatar-name.tsx","../../avatar/src/avatar-group.tsx","../../avatar/src/avatar-badge.tsx","../../reorder/src/reorder.tsx","../../reorder/src/reorder-item.tsx","../../reorder/src/reorder-trigger.tsx","../../pagination/src/pagination.tsx","../../pagination/src/pagination-item.tsx","../../pagination/src/pagination-icon.tsx","../../pagination/src/use-pagination.ts","../../skeleton/src/skeleton.tsx","../../../hooks/use-previous/src/index.ts","../../skeleton/src/skeleton-circle.tsx","../../skeleton/src/skeleton-text.tsx","../../stepper/src/stepper.tsx","../../stepper/src/use-stepper.ts","../../stepper/src/use-steps.ts","../../stepper/src/step.tsx","../../stepper/src/step-title.tsx","../../stepper/src/step-description.tsx","../../stepper/src/step-separator.tsx","../../stepper/src/step-status.tsx","../../native-table/src/native-table.tsx","../../native-table/src/table-container.tsx","../../native-table/src/thead.tsx","../../native-table/src/tbody.tsx","../../native-table/src/tfoot.tsx","../../native-table/src/tr.tsx","../../native-table/src/th.tsx","../../native-table/src/td.tsx","../../native-table/src/table-caption.tsx","../../indicator/src/indicator.tsx","../../../hooks/use-hover/src/index.ts","../../../hooks/use-idle/src/index.ts","../../../hooks/use-os/src/index.ts","../../../hooks/use-window-event/src/index.ts","../../../hooks/use-local-storage/src/index.ts","../../../hooks/use-media-query/src/index.ts","../../../hooks/use-clipboard/src/index.ts","../../color-picker/src/color-selector.tsx","../../color-picker/src/color-selector-body.tsx","../../color-picker/src/color-selector-eye-dropper.tsx","../../../hooks/use-eye-dropper/src/index.ts","../../color-picker/src/use-color-selector.ts","../../color-picker/src/color-selector-sliders.tsx","../../color-picker/src/alpha-slider.tsx","../../color-picker/src/use-color-slider.ts","../../color-picker/src/hue-slider.tsx","../../color-picker/src/color-swatch.tsx","../../color-picker/src/color-selector-channels.tsx","../../color-picker/src/color-selector-swatches.tsx","../../color-picker/src/saturation-slider.tsx","../../color-picker/src/use-saturation-slider.ts","../../color-picker/src/color-picker.tsx","../../color-picker/src/use-color-picker.ts","../../rating/src/rating.tsx","../../rating/src/use-rating.tsx","../../rating/src/rating-group.tsx","../../rating/src/rating-item.tsx","../../stat/src/stat.tsx","../../stat/src/stat-helper-message.tsx","../../stat/src/stat-icon.tsx","../../stat/src/stat-label.tsx","../../stat/src/stat-number.tsx","../../resizable/src/resizable.tsx","../../../../node_modules/.pnpm/react-resizable-panels@2.0.8_react-dom@18.2.0_react@18.2.0/node_modules/react-resizable-panels/dist/react-resizable-panels.node.esm.js","../../resizable/src/use-resizable.ts","../../resizable/src/resizable-item.tsx","../../resizable/src/resizable-trigger.tsx","../../snacks/src/use-snacks.tsx","../../snacks/src/snacks.tsx","../../infinite-scroll-area/src/infinite-scroll-area.tsx","../../../hooks/use-infinite-scroll/src/index.ts","../../toggle/src/toggle.tsx","../../toggle/src/toggle-group.tsx"],"sourcesContent":["\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","export default function getParent ( node ) {\n\treturn node.parentNode && node.parentNode.host || node.parentNode;\n}\n","import getParent from './getParent';\n\nconst props = /\\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\\b/;\n\nfunction isFlexItem ( node ) {\n\tconst display = getComputedStyle( getParent( node ) ).display;\n\treturn display === 'flex' || display === 'inline-flex';\n}\n\nfunction createsStackingContext ( node ) {\n\tconst style = getComputedStyle( node );\n\n\t// https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n\tif ( style.position === 'fixed' ) return true;\n\tif ( style.zIndex !== 'auto' && style.position !== 'static' || isFlexItem( node ) ) return true;\n\tif ( +style.opacity < 1 ) return true;\n\tif ( 'transform' in style && style.transform !== 'none' ) return true;\n\tif ( 'webkitTransform' in style && style.webkitTransform !== 'none' ) return true;\n\tif ( 'mixBlendMode' in style && style.mixBlendMode !== 'normal' ) return true;\n\tif ( 'filter' in style && style.filter !== 'none' ) return true;\n\tif ( 'webkitFilter' in style && style.webkitFilter !== 'none' ) return true;\n\tif ( 'isolation' in style && style.isolation === 'isolate' ) return true;\n\tif ( props.test( style.willChange ) ) return true;\n\tif ( style.webkitOverflowScrolling === 'touch' ) return true;\n\n\treturn false;\n}\n\nexport default function findStackingContext ( nodes ) {\n\tlet i = nodes.length;\n\n\twhile ( i-- ) {\n\t\tif ( createsStackingContext( nodes[i] ) ) return nodes[i];\n\t}\n\n\treturn null;\n}\n","import getParent from './getParent';\n\nexport default function getAncestors ( node ) {\n\tlet ancestors = [];\n\n\twhile ( node ) {\n\t\tancestors.push( node );\n\t\tnode = getParent( node );\n\t}\n\n\treturn ancestors; // [ node, ... <body>, <html>, document ]\n}\n","export default function getZIndex ( node ) {\n\treturn node && Number( getComputedStyle( node ).zIndex ) || 0;\n}\n","export default function last ( array ) {\n\treturn array[ array.length - 1 ];\n}\n","import findStackingContext from './utils/findStackingContext.js';\nimport getAncestors from './utils/getAncestors.js';\nimport getZIndex from './utils/getZIndex.js';\nimport last from './utils/last.js';\n\nexport function compare ( a, b ) {\n\tif ( a === b ) throw new Error( 'Cannot compare node with itself' );\n\n\tlet ancestors = {\n\t\ta: getAncestors( a ),\n\t\tb: getAncestors( b )\n\t};\n\n\tlet commonAncestor;\n\n\t// remove shared ancestors\n\twhile ( last( ancestors.a ) === last( ancestors.b ) ) {\n\t\ta = ancestors.a.pop();\n\t\tb = ancestors.b.pop();\n\n\t\tcommonAncestor = a;\n\t}\n\n\tlet stackingContexts = {\n\t\ta: findStackingContext( ancestors.a ),\n\t\tb: findStackingContext( ancestors.b )\n\t};\n\n\tlet zIndexes = {\n\t\ta: getZIndex( stackingContexts.a ),\n\t\tb: getZIndex( stackingContexts.b )\n\t};\n\n\tif ( zIndexes.a === zIndexes.b ) {\n\t\tconst children = commonAncestor.childNodes;\n\n\t\tconst furthestAncestors = {\n\t\t\ta: last( ancestors.a ),\n\t\t\tb: last( ancestors.b )\n\t\t};\n\n\t\tlet i = children.length;\n\t\twhile ( i-- ) {\n\t\t\tconst child = children[i];\n\t\t\tif ( child === furthestAncestors.a ) return 1;\n\t\t\tif ( child === furthestAncestors.b ) return -1;\n\t\t}\n\t}\n\n\treturn Math.sign( zIndexes.a - zIndexes.b );\n}\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { useValue, type PanEventInfo } from \"@yamada-ui/react\"\nimport type { SlideProps } from \"@yamada-ui/transitions\"\nimport { Slide } from \"@yamada-ui/transitions\"\nimport {\n createContext,\n getValidChildren,\n findChildren,\n cx,\n omitObject,\n isArray,\n} from \"@yamada-ui/utils\"\nimport type { FC } from \"react\"\nimport { useCallback, useMemo } from \"react\"\nimport { useModal } from \"./modal\"\nimport type {\n ModalProps,\n ModalOverlayProps,\n ModalCloseButtonProps,\n ModalHeaderProps,\n ModalBodyProps,\n ModalFooterProps,\n} from \"./\"\nimport {\n Modal,\n ModalOverlay,\n ModalCloseButton,\n ModalHeader,\n ModalBody,\n ModalFooter,\n} from \"./\"\n\ntype DrawerOptions = {\n /**\n * The placement of the drawer.\n *\n * @default 'right'\n */\n placement?: SlideProps[\"placement\"]\n /**\n * If `true` and drawer's placement is `top` or `bottom`, the drawer will occupy the viewport height (100dvh).\n */\n isFullHeight?: boolean\n /**\n * If `true`, then the drawer will close on drag.\n *\n * @default false\n */\n closeOnDrag?: boolean\n /**\n * If `true`, display the drag bar when `closeOnDrag` is `true`.\n *\n * @default true\n */\n withDragBar?: boolean\n /**\n * Applies constraints on the permitted draggable area.\n *\n * @default 0\n */\n dragConstraints?: number\n /**\n * The degree of movement allowed outside constraints. 0 = no movement, 1 = full movement.\n *\n * @default 0.1\n */\n dragElastic?: number\n /**\n * Offset from being dragged to closing.\n *\n * @default 80\n */\n dragOffset?: number\n /**\n * Velocity of the drag that triggers close.\n *\n * @default 100\n */\n dragVelocity?: number\n /**\n * Props for the blank area when `closeOnDrag` is `true`.\n */\n blankForDragProps?: CSSUIObject\n}\n\nexport type DrawerProps = Omit<\n ModalProps,\n | \"scrollBehavior\"\n | \"animation\"\n | \"outside\"\n | \"placement\"\n | \"dragConstraints\"\n | \"dragElastic\"\n | keyof ThemeProps\n> &\n ThemeProps<\"Drawer\"> &\n DrawerOptions\n\ntype DrawerContext = Record<string, CSSUIObject>\n\nconst [DrawerProvider, useDrawer] = createContext<DrawerContext>({\n name: `DrawerContext`,\n errorMessage: `useDrawer returned is 'undefined'. Seems you forgot to wrap the components in \"<Drawer />\" `,\n})\n\n/**\n * `Drawer` is a component for a panel that appears from the edge of the screen.\n *\n * @see Docs https://yamada-ui.com/components/overlay/drawer\n */\nexport const Drawer = forwardRef<DrawerProps, \"div\">(\n ({ size, placement = \"right\", closeOnDrag = false, ...props }, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Drawer\", {\n size,\n placement,\n closeOnDrag,\n ...props,\n })\n const {\n children,\n isOpen,\n onClose,\n onOverlayClick,\n onEsc,\n onCloseComplete,\n withCloseButton = !closeOnDrag,\n withOverlay = true,\n withDragBar = true,\n allowPinchZoom,\n autoFocus,\n restoreFocus,\n initialFocusRef,\n finalFocusRef,\n blockScrollOnMount,\n closeOnOverlay,\n closeOnEsc,\n lockFocusAcrossFrames,\n duration = { enter: 0.4, exit: 0.3 },\n dragConstraints = 0,\n dragElastic = 0.1,\n dragOffset = 80,\n dragVelocity = 100,\n blankForDragProps,\n portalProps,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const validChildren = getValidChildren(children)\n\n const [customDrawerOverlay, ...cloneChildren] = findChildren(\n validChildren,\n DrawerOverlay,\n )\n\n return (\n <DrawerProvider value={styles}>\n <Modal\n ref={ref}\n {...{\n isOpen,\n onClose,\n onOverlayClick,\n onEsc,\n onCloseComplete,\n withCloseButton: false,\n withOverlay: false,\n allowPinchZoom,\n autoFocus,\n restoreFocus,\n initialFocusRef,\n finalFocusRef,\n blockScrollOnMount,\n closeOnOverlay,\n closeOnEsc,\n lockFocusAcrossFrames,\n duration,\n portalProps,\n }}\n >\n {customDrawerOverlay ?? (withOverlay ? <DrawerOverlay /> : null)}\n\n <DrawerContent\n {...{\n dragConstraints,\n dragElastic,\n dragOffset,\n dragVelocity,\n withCloseButton,\n withDragBar,\n blankForDragProps,\n ...omitObject(rest, [\"isFullHeight\"]),\n placement,\n closeOnDrag,\n }}\n >\n {cloneChildren}\n </DrawerContent>\n </Modal>\n </DrawerProvider>\n )\n },\n)\n\ntype DrawerContentProps = Omit<\n DrawerProps,\n \"color\" | \"transition\" | \"isOpen\" | keyof ThemeProps\n> &\n Required<\n Pick<\n DrawerProps,\n | \"placement\"\n | \"dragConstraints\"\n | \"dragElastic\"\n | \"dragOffset\"\n | \"dragVelocity\"\n >\n >\n\nexport const DrawerContent = forwardRef<DrawerContentProps, \"div\", false>(\n (\n {\n className,\n children,\n placement: _placement,\n withCloseButton,\n withDragBar,\n closeOnDrag,\n dragConstraints,\n dragElastic,\n dragOffset,\n dragVelocity,\n blankForDragProps,\n ...rest\n },\n ref,\n ) => {\n const { isOpen, onClose, duration } = useModal()\n const styles = useDrawer()\n const placement = useValue(_placement)\n\n const validChildren = getValidChildren(children)\n\n const [customDrawerCloseButton, ...cloneChildren] = findChildren(\n validChildren,\n DrawerCloseButton,\n )\n\n const blankForDragBg = useMemo(() => {\n const propBg =\n rest.backgroundColor ?? rest.bgColor ?? rest.background ?? rest.bg\n const styleBg =\n styles.container?.backgroundColor ??\n styles.container?.bgColor ??\n styles.container?.background ??\n styles.container?.bg\n const computedBg = propBg ?? styleBg\n\n return isArray(computedBg) ? computedBg : [computedBg]\n }, [rest, styles])\n\n const blankForDrag = useMemo<CSSUIObject>(() => {\n let position: CSSUIObject = {}\n\n switch (placement) {\n case \"top\":\n position = { top: \"calc(-100dvh + 1px)\", left: 0, right: 0 }\n break\n\n case \"bottom\":\n position = { bottom: \"calc(-100dvh + 1px)\", left: 0, right: 0 }\n break\n\n case \"left\":\n position = { left: \"calc(-100% + 1px)\", top: 0, bottom: 0 }\n break\n\n case \"right\":\n position = { right: \"calc(-100% + 1px)\", top: 0, bottom: 0 }\n break\n }\n\n const [lightBg, darkBg] = blankForDragBg\n\n return {\n _after: {\n content: '\"\"',\n display: \"block\",\n w: \"100%\",\n h: \"100dvh\",\n bg: lightBg,\n position: \"absolute\",\n ...position,\n ...blankForDragProps,\n },\n _dark: {\n _after: {\n bg: darkBg,\n },\n },\n }\n }, [placement, blankForDragBg, blankForDragProps])\n\n const css = useMemo<CSSUIObject>(\n () => ({\n display: \"flex\",\n flexDirection:\n placement === \"top\" || placement === \"bottom\" ? \"column\" : \"row\",\n outline: 0,\n ...(closeOnDrag ? blankForDrag : {}),\n ...styles.container,\n }),\n [blankForDrag, closeOnDrag, placement, styles],\n )\n\n const getDragDirectionRestriction = useCallback(\n (value: number) => {\n switch (placement) {\n case \"top\":\n return { bottom: value }\n case \"bottom\":\n return { top: value }\n case \"left\":\n return { right: value }\n case \"right\":\n return { left: value }\n }\n },\n [placement],\n )\n\n const getDragDirection = useCallback(() => {\n switch (placement) {\n case \"top\":\n case \"bottom\":\n return \"y\"\n case \"left\":\n case \"right\":\n return \"x\"\n }\n }, [placement])\n\n const isCloseByDragInfo = useCallback(\n (info: PanEventInfo) => {\n switch (placement) {\n case \"top\":\n return (\n info.velocity.y <= dragVelocity * -1 ||\n info.offset.y <= dragOffset * -1\n )\n case \"bottom\":\n return (\n info.velocity.y >= dragVelocity || info.offset.y >= dragOffset\n )\n case \"left\":\n return (\n info.velocity.x <= dragVelocity * -1 ||\n info.offset.x <= dragOffset * -1\n )\n case \"right\":\n return (\n info.velocity.x >= dragVelocity || info.offset.x >= dragOffset\n )\n }\n },\n [placement, dragVelocity, dragOffset],\n )\n\n return (\n <Slide\n ref={ref}\n className={cx(\"ui-drawer\", className)}\n isOpen={isOpen}\n placement={placement}\n duration={duration}\n drag={closeOnDrag ? getDragDirection() : false}\n dragConstraints={getDragDirectionRestriction(dragConstraints)}\n dragElastic={getDragDirectionRestriction(dragElastic)}\n dragSnapToOrigin\n dragMomentum={false}\n onDragEnd={(_, info) => {\n if (isCloseByDragInfo(info)) onClose?.()\n }}\n tabIndex={-1}\n __css={css}\n {...rest}\n >\n {customDrawerCloseButton ??\n (withCloseButton && onClose ? <DrawerCloseButton /> : null)}\n\n {withDragBar &&\n closeOnDrag &&\n (placement === \"bottom\" || placement === \"right\") ? (\n <DrawerDragBar />\n ) : null}\n\n <ui.div\n className=\"ui-drawer__inner\"\n __css={{ display: \"flex\", flexDirection: \"column\", ...styles.inner }}\n >\n {cloneChildren}\n </ui.div>\n\n {withDragBar &&\n closeOnDrag &&\n (placement === \"top\" || placement === \"left\") ? (\n <DrawerDragBar />\n ) : null}\n </Slide>\n )\n },\n)\n\nexport type DrawerOverlayProps = ModalOverlayProps\n\nexport const DrawerOverlay = forwardRef<DrawerOverlayProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const styles = useDrawer()\n\n const css: CSSUIObject = { ...styles.overlay }\n\n return (\n <ModalOverlay\n ref={ref}\n className={cx(\"ui-drawer__overlay\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DrawerDragBarProps = HTMLUIProps<\"div\">\n\nexport const DrawerDragBar: FC<DrawerDragBarProps> = ({\n className,\n ...rest\n}) => {\n const styles = useDrawer()\n\n const css: CSSUIObject = { ...styles.dragBar }\n\n return (\n <ui.div\n className={cx(\"ui-drawer__drag-bar\", className)}\n __css={css}\n {...rest}\n />\n )\n}\n\nexport type DrawerCloseButtonProps = ModalCloseButtonProps\n\nexport const DrawerCloseButton = forwardRef<DrawerCloseButtonProps, \"button\">(\n ({ className, ...rest }, ref) => {\n const styles = useDrawer()\n\n const css: CSSUIObject = { ...styles.closeButton }\n\n return (\n <ModalCloseButton\n ref={ref}\n className={cx(\"ui-drawer__close-button\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DrawerHeaderProps = ModalHeaderProps\n\nexport const DrawerHeader = forwardRef<DrawerHeaderProps, \"header\">(\n ({ className, ...rest }, ref) => {\n const styles = useDrawer()\n\n const css: CSSUIObject = { ...styles.header }\n\n return (\n <ModalHeader\n ref={ref}\n className={cx(\"ui-drawer__header\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DrawerBodyProps = ModalBodyProps\n\nexport const DrawerBody = forwardRef<DrawerBodyProps, \"main\">(\n ({ className, ...rest }, ref) => {\n const styles = useDrawer()\n\n const css: CSSUIObject = { ...styles.body }\n\n return (\n <ModalBody\n ref={ref}\n className={cx(\"ui-drawer__body\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DrawerFooterProps = ModalFooterProps\n\nexport const DrawerFooter = forwardRef<DrawerFooterProps, \"footer\">(\n ({ className, ...rest }, ref) => {\n const styles = useDrawer()\n\n const css: CSSUIObject = { ...styles.footer }\n\n return (\n <ModalFooter\n ref={ref}\n className={cx(\"ui-drawer__footer\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","export { UIProvider, useEnvironment } from \"@yamada-ui/providers\"\nexport type { UIProviderProps } from \"@yamada-ui/providers\"\nexport * from \"@yamada-ui/core\"\nexport * from \"@yamada-ui/utils\"\nexport * from \"@yamada-ui/theme\"\nexport * from \"@yamada-ui/theme-tools\"\nexport * from \"@yamada-ui/accordion\"\nexport * from \"@yamada-ui/alert\"\nexport * from \"@yamada-ui/badge\"\nexport * from \"@yamada-ui/breadcrumb\"\nexport * from \"@yamada-ui/button\"\nexport * from \"@yamada-ui/close-button\"\nexport * from \"@yamada-ui/card\"\nexport * from \"@yamada-ui/checkbox\"\nexport * from \"@yamada-ui/editable\"\nexport * from \"@yamada-ui/file-button\"\nexport * from \"@yamada-ui/focus-lock\"\nexport * from \"@yamada-ui/form-control\"\nexport * from \"@yamada-ui/highlight\"\nexport * from \"@yamada-ui/icon\"\nexport * from \"@yamada-ui/image\"\nexport * from \"@yamada-ui/input\"\nexport * from \"@yamada-ui/kbd\"\nexport * from \"@yamada-ui/layouts\"\nexport * from \"@yamada-ui/link\"\nexport * from \"@yamada-ui/list\"\nexport * from \"@yamada-ui/loading\"\nexport * from \"@yamada-ui/menu\"\nexport * from \"@yamada-ui/modal\"\nexport * from \"@yamada-ui/motion\"\nexport * from \"@yamada-ui/native-select\"\nexport * from \"@yamada-ui/notice\"\nexport * from \"@yamada-ui/number-input\"\nexport * from \"@yamada-ui/pin-input\"\nexport * from \"@yamada-ui/popover\"\nexport * from \"@yamada-ui/portal\"\nexport * from \"@yamada-ui/progress\"\nexport * from \"@yamada-ui/radio\"\nexport * from \"@yamada-ui/segmented-control\"\nexport * from \"@yamada-ui/select\"\nexport * from \"@yamada-ui/slider\"\nexport * from \"@yamada-ui/switch\"\nexport * from \"@yamada-ui/tabs\"\nexport * from \"@yamada-ui/tag\"\nexport * from \"@yamada-ui/textarea\"\nexport * from \"@yamada-ui/tooltip\"\nexport * from \"@yamada-ui/transitions\"\nexport * from \"@yamada-ui/typography\"\nexport * from \"@yamada-ui/use-animation\"\nexport * from \"@yamada-ui/use-boolean\"\nexport * from \"@yamada-ui/use-breakpoint\"\nexport * from \"@yamada-ui/use-clickable\"\nexport * from \"@yamada-ui/use-controllable-state\"\nexport * from \"@yamada-ui/use-counter\"\nexport * from \"@yamada-ui/use-descendant\"\nexport * from \"@yamada-ui/use-disclosure\"\nexport * from \"@yamada-ui/use-event-listener\"\nexport * from \"@yamada-ui/use-focus\"\nexport * from \"@yamada-ui/use-focus-visible\"\nexport * from \"@yamada-ui/use-interval\"\nexport * from \"@yamada-ui/use-latest-ref\"\nexport * from \"@yamada-ui/use-outside-click\"\nexport * from \"@yamada-ui/use-pan-event\"\nexport * from \"@yamada-ui/use-popper\"\nexport * from \"@yamada-ui/use-resize-observer\"\nexport * from \"@yamada-ui/use-size\"\nexport * from \"@yamada-ui/use-timeout\"\nexport * from \"@yamada-ui/use-token\"\nexport * from \"@yamada-ui/use-value\"\nexport * from \"@yamada-ui/file-input\"\nexport * from \"@yamada-ui/scroll-area\"\nexport * from \"@yamada-ui/autocomplete\"\nexport * from \"@yamada-ui/avatar\"\nexport * from \"@yamada-ui/reorder\"\nexport * from \"@yamada-ui/pagination\"\nexport * from \"@yamada-ui/skeleton\"\nexport * from \"@yamada-ui/use-previous\"\nexport * from \"@yamada-ui/stepper\"\nexport * from \"@yamada-ui/native-table\"\nexport * from \"@yamada-ui/indicator\"\nexport * from \"@yamada-ui/use-hover\"\nexport * from \"@yamada-ui/use-idle\"\nexport * from \"@yamada-ui/use-os\"\nexport * from \"@yamada-ui/use-local-storage\"\nexport * from \"@yamada-ui/use-window-event\"\nexport * from \"@yamada-ui/use-media-query\"\nexport * from \"@yamada-ui/use-clipboard\"\nexport * from \"@yamada-ui/ripple\"\nexport * from \"@yamada-ui/color-picker\"\nexport * from \"@yamada-ui/rating\"\nexport * from \"@yamada-ui/stat\"\nexport * from \"@yamada-ui/resizable\"\nexport * from \"@yamada-ui/use-eye-dropper\"\nexport * from \"@yamada-ui/snacks\"\nexport * from \"@yamada-ui/infinite-scroll-area\"\nexport * from \"@yamada-ui/use-infinite-scroll\"\nexport * from \"@yamada-ui/toggle\"\n","import type {\n ThemeConfig,\n ColorModeManager,\n ThemeSchemeManager,\n} from \"@yamada-ui/core\"\nimport {\n ThemeProvider,\n ColorModeProvider,\n ResetStyle,\n GlobalStyle,\n} from \"@yamada-ui/core\"\nimport { LoadingProvider } from \"@yamada-ui/loading\"\nimport { MotionConfig } from \"@yamada-ui/motion\"\nimport { NoticeProvider } from \"@yamada-ui/notice\"\nimport { defaultTheme, defaultConfig } from \"@yamada-ui/theme\"\nimport type { Dict } from \"@yamada-ui/utils\"\nimport type { FC, ReactNode } from \"react\"\nimport type { Environment } from \"./environment-provider\"\nimport { EnvironmentProvider } from \"./environment-provider\"\n\nexport type UIProviderProps = {\n /**\n * The theme of the yamada ui.\n *\n * If omitted, uses the default theme provided by yamada ui.\n */\n theme?: Dict\n /**\n * The config of the yamada ui.\n *\n * If omitted, uses the default config provided by yamada ui.\n */\n config?: ThemeConfig\n /**\n * If `true`, `ResetStyle` component will be mounted to help reset browser styles.\n *\n * @default true\n */\n disableResetStyle?: boolean\n /**\n * If `true`, will not mount the global styles defined in the theme.\n *\n * @default true\n */\n disableGlobalStyle?: boolean\n /**\n * Manager to persist a user's color mode preference.\n *\n * Omit if you don't render server-side.\n * For SSR, choose `colorModeManager.ssr`.\n *\n * @default 'colorModeManager.localStorage'\n */\n colorModeManager?: ColorModeManager\n /**\n * Manager to persist a user's theme scheme preference.\n *\n * Omit if you don't render server-side.\n * For SSR, choose `themeSchemeManager.ssr`.\n *\n * @default 'themeSchemeManager.localStorage'\n */\n themeSchemeManager?: ThemeSchemeManager\n /**\n * The environment `window` and `document` to be used by all components and hooks.\n *\n * By default, we smartly determine the ownerDocument and defaultView\n * based on where `UIProvider` is rendered.\n */\n environment?: Environment\n /**\n * If `true`, the use of automatic window and document detection will be disabled.\n *\n * @default false\n */\n disableEnvironment?: boolean\n /**\n * Application content.\n */\n children: ReactNode\n /**\n * Key of value saved in storage.\n * By default, it is saved to `local storage`.\n */\n colorModeStorageKey?: string\n /**\n * Key of value saved in storage.\n * By default, it is saved to `local storage`.\n */\n themeSchemeStorageKey?: string\n}\n\n/**\n * The global provider that must be added to make all Yamada UI components work correctly.\n */\nexport const UIProvider: FC<UIProviderProps> = ({\n theme = defaultTheme,\n config = defaultConfig,\n disableResetStyle,\n disableGlobalStyle,\n colorModeManager,\n colorModeStorageKey,\n themeSchemeManager,\n themeSchemeStorageKey,\n environment,\n disableEnvironment,\n children,\n}) => {\n return (\n <ThemeProvider\n theme={theme}\n config={config}\n themeSchemeManager={themeSchemeManager}\n storageKey={themeSchemeStorageKey}\n >\n <ColorModeProvider\n colorModeManager={colorModeManager}\n storageKey={colorModeStorageKey}\n config={config}\n >\n <EnvironmentProvider\n environment={environment}\n disabled={disableEnvironment}\n >\n <MotionConfig {...config.motion?.config}>\n <LoadingProvider {...config.loading}>\n {!disableResetStyle ? <ResetStyle /> : null}\n {!disableGlobalStyle ? <GlobalStyle /> : null}\n\n {children}\n\n <NoticeProvider {...config.notice} />\n </LoadingProvider>\n </MotionConfig>\n </EnvironmentProvider>\n </ColorModeProvider>\n </ThemeProvider>\n )\n}\n","import type { CSSUIProps } from \"@yamada-ui/core\"\nimport { forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { useToken } from \"@yamada-ui/use-token\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useMemo } from \"react\"\nimport { Audio } from \"./audio\"\nimport { Circles } from \"./circles\"\nimport { Dots } from \"./dots\"\nimport { Grid } from \"./grid\"\nimport { Oval } from \"./oval\"\nimport { Puff } from \"./puff\"\nimport { Rings } from \"./rings\"\n\ntype LoadingOptions = {\n /**\n * The variant of the Loading.\n *\n * @default 'oval'\n */\n variant?: \"oval\" | \"grid\" | \"audio\" | \"dots\" | \"puff\" | \"rings\" | \"circles\"\n /**\n * The CSS `color` property.\n *\n * @default 'primary'\n */\n secondaryColor?: CSSUIProps[\"color\"]\n /**\n * The CSS `dur` property.\n */\n duration?: IconProps[\"dur\"]\n}\n\nexport type LoadingProps = Omit<IconProps, \"dur\"> & LoadingOptions\n\n/**\n * `Loading` is a component displayed during waiting times, such as when data is being loaded.\n *\n * @see Docs https://yamada-ui.com/components/feedback/loading\n */\nexport const Loading = forwardRef<LoadingProps, \"svg\">(\n (\n {\n className,\n variant = \"oval\",\n color: _color = \"primary\",\n secondaryColor: _secondaryColor,\n size = \"1em\",\n duration,\n ...rest\n },\n ref,\n ) => {\n const color = (useToken(\"colors\", useValue(_color)) ?? _color) as string\n const secondaryColor = (useToken(\"colors\", useValue(_secondaryColor)) ??\n _secondaryColor) as string\n\n const props = useMemo(\n () => ({\n className: cx(\"ui-loading\", className),\n size,\n color,\n duration,\n ...rest,\n }),\n [className, color, duration, rest, size],\n )\n\n switch (variant) {\n case \"grid\":\n return <Grid ref={ref} {...props} />\n\n case \"audio\":\n return <Audio ref={ref} {...props} />\n\n case \"dots\":\n return <Dots ref={ref} {...props} />\n\n case \"puff\":\n return <Puff ref={ref} {...props} />\n\n case \"rings\":\n return <Rings ref={ref} {...props} />\n\n case \"circles\":\n return <Circles ref={ref} {...props} />\n\n default:\n return <Oval ref={ref} {...props} secondaryColor={secondaryColor} />\n }\n },\n)\n","import type { ColorMode, StyledTheme, Theme } from \"@yamada-ui/core\"\nimport { useColorMode, useTheme } from \"@yamada-ui/core\"\nimport {\n getMemoizedObject as get,\n isArray,\n isUndefined,\n} from \"@yamada-ui/utils\"\n\n/**\n * `useToken` is a custom hook for retrieving tokens from the theme.\n *\n * @see Docs https://yamada-ui.com/hooks/use-token\n */\nexport const useToken = <\n Y extends string | number = string,\n M extends keyof Omit<\n Theme,\n \"components\" | \"colorSchemes\" | \"themeSchemes\"\n > = keyof Omit<Theme, \"components\" | \"colorSchemes\" | \"themeSchemes\">,\n>(\n name: M,\n path: Theme[M] | number | undefined,\n) => {\n const { theme } = useTheme()\n const { colorMode } = useColorMode()\n\n return getToken<Y, M>(name, path)(theme, colorMode)\n}\n\nexport const getToken =\n <\n Y extends string | number = string,\n M extends keyof Omit<\n Theme,\n \"components\" | \"colorSchemes\" | \"themeSchemes\"\n > = keyof Omit<Theme, \"components\" | \"colorSchemes\" | \"themeSchemes\">,\n >(\n name: M,\n path: Theme[M] | number | undefined,\n ) =>\n (theme: StyledTheme, colorMode: ColorMode) => {\n if (name === \"layerStyles\") name = \"styles.layerStyles\" as M\n\n if (name === \"textStyles\") name = \"styles.textStyles\" as M\n\n if (name === \"transitionProperty\") name = \"transitions.property\" as M\n\n if (name === \"transitionDuration\") name = \"transitions.duration\" as M\n\n if (name === \"transitionEasing\") name = \"transitions.easing\" as M\n\n let value = get<Y | [Y, Y] | undefined>(theme, `${name}.${path}`)\n\n if (!isUndefined(value)) {\n if (isArray(value)) {\n const [lightValue, darkValue] = value\n\n return colorMode === \"light\" ? lightValue : darkValue\n } else {\n return value\n }\n } else {\n value = get<Y | [Y, Y] | undefined>(theme, `semantics.${name}.${path}`)\n\n if (isArray(value)) {\n value = [\n get<Y>(theme, `${name}.${value[0]}`) ?? value[0],\n get<Y>(theme, `${name}.${value[1]}`) ?? value[1],\n ]\n } else {\n value = get<Y | undefined>(theme, `${name}.${value}`) ?? value\n }\n\n if (isArray(value)) {\n const [lightValue, darkValue] = value\n\n value = colorMode === \"light\" ? lightValue : darkValue\n\n if (isArray(value)) {\n const [lightValue, darkValue] = value as unknown as [Y, Y]\n\n return colorMode === \"light\" ? lightValue : darkValue\n } else {\n return value\n }\n } else {\n return value\n }\n }\n }\n","import { forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\n\nexport type AudioProps = IconProps & {\n /**\n * The CSS `dur` property.\n *\n * @default '1.4s'\n */\n duration?: IconProps[\"dur\"]\n}\n\nexport const Audio = forwardRef<AudioProps, \"svg\">(\n ({ color, duration = \"1.4s\", ...rest }, ref) => {\n const dur = typeof duration === \"string\" ? parseFloat(duration) : duration\n\n return (\n <Icon ref={ref} viewBox=\"0 0 55 80\" fill={color} {...rest}>\n <g transform=\"matrix(1 0 0 -1 0 80)\">\n <rect width=\"10\" height=\"20\" rx=\"3\">\n <animate\n attributeName=\"height\"\n begin=\"0s\"\n dur={`${dur * 3}s`}\n values=\"20;45;57;80;64;32;66;45;64;23;66;13;64;56;34;34;2;23;76;79;20\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </rect>\n <rect x=\"15\" width=\"10\" height=\"80\" rx=\"3\">\n <animate\n attributeName=\"height\"\n begin=\"0s\"\n dur={`${dur * 1.4}s`}\n values=\"80;55;33;5;75;23;73;33;12;14;60;80\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </rect>\n <rect x=\"30\" width=\"10\" height=\"50\" rx=\"3\">\n <animate\n attributeName=\"height\"\n begin=\"0s\"\n dur={`${dur}s`}\n values=\"50;34;78;23;56;23;34;76;80;54;21;50\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </rect>\n <rect x=\"45\" width=\"10\" height=\"30\" rx=\"3\">\n <animate\n attributeName=\"height\"\n begin=\"0s\"\n dur={`${dur * 1.4}s`}\n values=\"30;45;13;80;56;72;45;76;34;23;67;30\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </rect>\n </g>\n </Icon>\n )\n },\n)\n","import type { CSSUIObject, UIProps, CSSUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { useToken } from \"@yamada-ui/use-token\"\nimport { cx, replaceObject, isUnit } from \"@yamada-ui/utils\"\nimport type { FC, SVGAttributes } from \"react\"\n\ntype IconOptions = {\n /**\n * The CSS `font-size` property.\n */\n size?: CSSUIProps[\"fontSize\"]\n}\n\nexport type IconProps = Omit<SVGAttributes<SVGElement>, keyof UIProps> &\n UIProps &\n IconOptions\n\n/**\n * `Icon` is a general icon component that can be used in your projects.\n *\n * @see Docs https://yamada-ui.com/components/media-and-icons/icon\n */\nexport const Icon = forwardRef<IconProps, \"svg\">(\n (\n { as: element, viewBox, size: fontSize, className, __css, ...rest },\n ref,\n ) => {\n const boxSize = replaceObject(fontSize, (value) =>\n !isUnit(value) ? useToken(\"fontSizes\", value) : value,\n )\n\n const css: CSSUIObject = {\n w: \"1em\",\n h: \"1em\",\n display: \"inline-block\",\n lineHeight: \"1em\",\n flexShrink: 0,\n color: \"currentColor\",\n ...__css,\n }\n\n if (element && typeof element !== \"string\")\n return (\n <ui.svg\n as={element}\n className={cx(\"ui-icon\", className)}\n __css={css}\n {...{ boxSize, ...rest }}\n />\n )\n\n return (\n <ui.svg\n ref={ref}\n verticalAlign=\"middle\"\n viewBox={viewBox}\n className={cx(\"ui-icon\", className)}\n __css={css}\n {...{ boxSize, ...rest }}\n />\n )\n },\n)\n\nexport const CheckIcon: FC<IconProps> = (props) => {\n return (\n <Icon viewBox=\"0 0 24 24\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M12,0A12,12,0,1,0,24,12,12.014,12.014,0,0,0,12,0Zm6.927,8.2-6.845,9.289a1.011,1.011,0,0,1-1.43.188L5.764,13.769a1,1,0,1,1,1.25-1.562l4.076,3.261,6.227-8.451A1,1,0,1,1,18.927,8.2Z\"\n />\n </Icon>\n )\n}\n\nexport const InfoIcon: FC<IconProps> = (props) => {\n return (\n <Icon viewBox=\"0 0 24 24\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M12,0A12,12,0,1,0,24,12,12.013,12.013,0,0,0,12,0Zm.25,5a1.5,1.5,0,1,1-1.5,1.5A1.5,1.5,0,0,1,12.25,5ZM14.5,18.5h-4a1,1,0,0,1,0-2h.75a.25.25,0,0,0,.25-.25v-4.5a.25.25,0,0,0-.25-.25H10.5a1,1,0,0,1,0-2h1a2,2,0,0,1,2,2v4.75a.25.25,0,0,0,.25.25h.75a1,1,0,1,1,0,2Z\"\n />\n </Icon>\n )\n}\n\nexport const WarningIcon: FC<IconProps> = (props) => {\n return (\n <Icon viewBox=\"0 0 24 24\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M11.983,0a12.206,12.206,0,0,0-8.51,3.653A11.8,11.8,0,0,0,0,12.207,11.779,11.779,0,0,0,11.8,24h.214A12.111,12.111,0,0,0,24,11.791h0A11.766,11.766,0,0,0,11.983,0ZM10.5,16.542a1.476,1.476,0,0,1,1.449-1.53h.027a1.527,1.527,0,0,1,1.523,1.47,1.475,1.475,0,0,1-1.449,1.53h-.027A1.529,1.529,0,0,1,10.5,16.542ZM11,12.5v-6a1,1,0,0,1,2,0v6a1,1,0,1,1-2,0Z\"\n />\n </Icon>\n )\n}\n\nexport const CloseIcon: FC<IconProps> = (props) => {\n return (\n <Icon focusable=\"false\" aria-hidden viewBox=\"0 0 24 24\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M.439,21.44a1.5,1.5,0,0,0,2.122,2.121L11.823,14.3a.25.25,0,0,1,.354,0l9.262,9.263a1.5,1.5,0,1,0,2.122-2.121L14.3,12.177a.25.25,0,0,1,0-.354l9.263-9.262A1.5,1.5,0,0,0,21.439.44L12.177,9.7a.25.25,0,0,1-.354,0L2.561.44A1.5,1.5,0,0,0,.439,2.561L9.7,11.823a.25.25,0,0,1,0,.354Z\"\n />\n </Icon>\n )\n}\n\nexport const ChevronIcon: FC<IconProps> = (props) => {\n return (\n <Icon focusable=\"false\" aria-hidden viewBox=\"0 0 24 24\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n />\n </Icon>\n )\n}\n","import { forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\n\nexport type CirclesProps = Omit<IconProps, \"color\"> & {\n /**\n * The CSS `stroke` property.\n */\n color?: string\n /**\n * The CSS `dur` property.\n *\n * @default '3s'\n */\n duration?: IconProps[\"dur\"]\n}\n\nexport const Circles = forwardRef<CirclesProps, \"svg\">(\n ({ color, duration = \"3s\", ...rest }, ref) => {\n return (\n <Icon ref={ref} viewBox=\"0 0 58 58\" stroke={color} {...rest}>\n <g fill=\"none\" fillRule=\"evenodd\">\n <g transform=\"translate(2 1)\" stroke={color} strokeWidth=\"1.5\">\n <circle cx=\"42.601\" cy=\"11.462\" r=\"5\" fillOpacity=\"1\" fill={color}>\n <animate\n attributeName=\"fill-opacity\"\n begin=\"0s\"\n dur={duration}\n values=\"1;0;0;0;0;0;0;0\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"49.063\" cy=\"27.063\" r=\"5\" fillOpacity=\"0\" fill={color}>\n <animate\n attributeName=\"fill-opacity\"\n begin=\"0s\"\n dur={duration}\n values=\"0;1;0;0;0;0;0;0\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"42.601\" cy=\"42.663\" r=\"5\" fillOpacity=\"0\" fill={color}>\n <animate\n attributeName=\"fill-opacity\"\n begin=\"0s\"\n dur={duration}\n values=\"0;0;1;0;0;0;0;0\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"27\" cy=\"49.125\" r=\"5\" fillOpacity=\"0\" fill={color}>\n <animate\n attributeName=\"fill-opacity\"\n begin=\"0s\"\n dur={duration}\n values=\"0;0;0;1;0;0;0;0\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"11.399\" cy=\"42.663\" r=\"5\" fillOpacity=\"0\" fill={color}>\n <animate\n attributeName=\"fill-opacity\"\n begin=\"0s\"\n dur={duration}\n values=\"0;0;0;0;1;0;0;0\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"4.938\" cy=\"27.063\" r=\"5\" fillOpacity=\"0\" fill={color}>\n <animate\n attributeName=\"fill-opacity\"\n begin=\"0s\"\n dur={duration}\n values=\"0;0;0;0;0;1;0;0\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"11.399\" cy=\"11.462\" r=\"5\" fillOpacity=\"0\" fill={color}>\n <animate\n attributeName=\"fill-opacity\"\n begin=\"0s\"\n dur={duration}\n values=\"0;0;0;0;0;0;1;0\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"27\" cy=\"5\" r=\"5\" fillOpacity=\"0\" fill={color}>\n <animate\n attributeName=\"fill-opacity\"\n begin=\"0s\"\n dur={duration}\n values=\"0;0;0;0;0;0;0;1\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n </g>\n </g>\n </Icon>\n )\n },\n)\n","import { forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\n\nexport type DotsProps = IconProps & {\n /**\n * The CSS `dur` property.\n *\n * @default '1s'\n */\n duration?: IconProps[\"dur\"]\n}\n\nexport const Dots = forwardRef<DotsProps, \"svg\">(\n ({ color, duration = \"1s\", ...rest }, ref) => {\n return (\n <Icon ref={ref} viewBox=\"0 0 120 30\" fill={color} {...rest}>\n <circle cx=\"15\" cy=\"15\" r=\"15\">\n <animate\n attributeName=\"r\"\n from=\"15\"\n to=\"15\"\n begin=\"0s\"\n dur={duration}\n values=\"15;9;15\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"fill-opacity\"\n from=\"1\"\n to=\"1\"\n begin=\"0s\"\n dur={duration}\n values=\"1;.5;1\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"60\" cy=\"15\" r=\"9\" fillOpacity=\"0.3\">\n <animate\n attributeName=\"r\"\n from=\"9\"\n to=\"9\"\n begin=\"0s\"\n dur={duration}\n values=\"9;15;9\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"fill-opacity\"\n from=\"0.5\"\n to=\"0.5\"\n begin=\"0s\"\n dur={duration}\n values=\".5;1;.5\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"105\" cy=\"15\" r=\"15\">\n <animate\n attributeName=\"r\"\n from=\"15\"\n to=\"15\"\n begin=\"0s\"\n dur={duration}\n values=\"15;9;15\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"fill-opacity\"\n from=\"1\"\n to=\"1\"\n begin=\"0s\"\n dur={duration}\n values=\"1;.5;1\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n </Icon>\n )\n },\n)\n","import { forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\n\nexport type GridProps = IconProps & {\n /**\n * The CSS `dur` property.\n *\n * @default '1s'\n */\n duration?: IconProps[\"dur\"]\n}\n\nexport const Grid = forwardRef<GridProps, \"svg\">(\n ({ color, duration = \"1s\", ...rest }, ref) => {\n return (\n <Icon ref={ref} viewBox=\"0 0 105 105\" fill={color} {...rest}>\n <circle cx=\"12.5\" cy=\"12.5\" r=\"12.5\">\n <animate\n attributeName=\"fill-opacity\"\n begin=\"0s\"\n dur={duration}\n values=\"1;.2;1\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"12.5\" cy=\"52.5\" r=\"12.5\" fillOpacity=\".5\">\n <animate\n attributeName=\"fill-opacity\"\n begin=\"100ms\"\n dur={duration}\n values=\"1;.2;1\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"52.5\" cy=\"12.5\" r=\"12.5\">\n <animate\n attributeName=\"fill-opacity\"\n begin=\"300ms\"\n dur={duration}\n values=\"1;.2;1\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"52.5\" cy=\"52.5\" r=\"12.5\">\n <animate\n attributeName=\"fill-opacity\"\n begin=\"600ms\"\n dur={duration}\n values=\"1;.2;1\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"92.5\" cy=\"12.5\" r=\"12.5\">\n <animate\n attributeName=\"fill-opacity\"\n begin=\"800ms\"\n dur={duration}\n values=\"1;.2;1\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"92.5\" cy=\"52.5\" r=\"12.5\">\n <animate\n attributeName=\"fill-opacity\"\n begin=\"400ms\"\n dur={duration}\n values=\"1;.2;1\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"12.5\" cy=\"92.5\" r=\"12.5\">\n <animate\n attributeName=\"fill-opacity\"\n begin=\"700ms\"\n dur={duration}\n values=\"1;.2;1\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"52.5\" cy=\"92.5\" r=\"12.5\">\n <animate\n attributeName=\"fill-opacity\"\n begin=\"500ms\"\n dur={duration}\n values=\"1;.2;1\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"92.5\" cy=\"92.5\" r=\"12.5\">\n <animate\n attributeName=\"fill-opacity\"\n begin=\"200ms\"\n dur={duration}\n values=\"1;.2;1\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n </Icon>\n )\n },\n)\n","import { forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\n\nexport type OvalProps = IconProps & {\n /**\n * The CSS `stroke` property.\n */\n secondaryColor: string\n /**\n * The CSS `dur` property.\n *\n * @default '1s'\n */\n duration?: IconProps[\"dur\"]\n}\n\nexport const Oval = forwardRef<OvalProps, \"svg\">(\n ({ color, secondaryColor, duration = \"1s\", ...rest }, ref) => {\n return (\n <Icon ref={ref} viewBox=\"0 0 38 38\" stroke={color} {...rest}>\n <g fill=\"none\" fillRule=\"evenodd\">\n <g transform=\"translate(1 1)\" strokeWidth=\"2\">\n <circle\n {...(secondaryColor\n ? { stroke: secondaryColor }\n : { strokeOpacity: \".5\" })}\n cx=\"18\"\n cy=\"18\"\n r=\"18\"\n />\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 18 18\"\n to=\"360 18 18\"\n dur={duration}\n repeatCount=\"indefinite\"\n />\n </path>\n </g>\n </g>\n </Icon>\n )\n },\n)\n","import { forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\n\nexport type PuffProps = IconProps & {\n /**\n * The CSS `dur` property.\n *\n * @default '1.8s'\n */\n duration?: IconProps[\"dur\"]\n}\n\nexport const Puff = forwardRef<PuffProps, \"svg\">(\n ({ color, duration = \"1.8s\", ...rest }, ref) => {\n return (\n <Icon ref={ref} viewBox=\"0 0 44 44\" stroke={color} {...rest}>\n <g fill=\"none\" fillRule=\"evenodd\" strokeWidth=\"2\">\n <circle cx=\"22\" cy=\"22\" r=\"1\">\n <animate\n attributeName=\"r\"\n begin=\"0s\"\n dur={duration}\n values=\"1; 20\"\n calcMode=\"spline\"\n keyTimes=\"0; 1\"\n keySplines=\"0.165, 0.84, 0.44, 1\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"stroke-opacity\"\n begin=\"0s\"\n dur={duration}\n values=\"1; 0\"\n calcMode=\"spline\"\n keyTimes=\"0; 1\"\n keySplines=\"0.3, 0.61, 0.355, 1\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"22\" cy=\"22\" r=\"1\">\n <animate\n attributeName=\"r\"\n begin=\"-0.9s\"\n dur={duration}\n values=\"1; 20\"\n calcMode=\"spline\"\n keyTimes=\"0; 1\"\n keySplines=\"0.165, 0.84, 0.44, 1\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"stroke-opacity\"\n begin=\"-0.9s\"\n dur={duration}\n values=\"1; 0\"\n calcMode=\"spline\"\n keyTimes=\"0; 1\"\n keySplines=\"0.3, 0.61, 0.355, 1\"\n repeatCount=\"indefinite\"\n />\n </circle>\n </g>\n </Icon>\n )\n },\n)\n","import { forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\n\nexport type RingsProps = IconProps & {\n /**\n * The CSS `dur` property.\n *\n * @default '3s'\n */\n duration?: IconProps[\"dur\"]\n}\n\nexport const Rings = forwardRef<RingsProps, \"svg\">(\n ({ color, duration = \"3s\", ...rest }, ref) => {\n const dur = typeof duration === \"string\" ? parseFloat(duration) : duration\n\n return (\n <Icon ref={ref} viewBox=\"0 0 45 45\" stroke={color} {...rest}>\n <g\n fill=\"none\"\n fillRule=\"evenodd\"\n transform=\"translate(1 1)\"\n strokeWidth=\"2\"\n >\n <circle cx=\"22\" cy=\"22\" r=\"6\" strokeOpacity=\"0\">\n <animate\n attributeName=\"r\"\n begin=\"1.5s\"\n dur={`${dur}s`}\n values=\"6;22\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"stroke-opacity\"\n begin=\"1.5s\"\n dur={`${dur}s`}\n values=\"1;0\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"stroke-width\"\n begin=\"1.5s\"\n dur={`${dur}s`}\n values=\"2;0\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"22\" cy=\"22\" r=\"6\" strokeOpacity=\"0\">\n <animate\n attributeName=\"r\"\n begin=\"3s\"\n dur={`${dur}s`}\n values=\"6;22\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"stroke-opacity\"\n begin=\"3s\"\n dur={`${dur}s`}\n values=\"1;0\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"stroke-width\"\n begin=\"3s\"\n dur={`${dur}s`}\n values=\"2;0\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx=\"22\" cy=\"22\" r=\"8\">\n <animate\n attributeName=\"r\"\n begin=\"0s\"\n dur={`${dur / 2}s`}\n values=\"6;1;2;3;4;5;6\"\n calcMode=\"linear\"\n repeatCount=\"indefinite\"\n />\n </circle>\n </g>\n </Icon>\n )\n },\n)\n","import type {\n ThemeConfig,\n LoadingComponentProps,\n CSSUIObject,\n LoadingConfigOptions,\n HTMLUIProps,\n} from \"@yamada-ui/core\"\nimport { ui } from \"@yamada-ui/core\"\nimport type { MotionVariants } from \"@yamada-ui/motion\"\nimport { AnimatePresence, Motion, motion } from \"@yamada-ui/motion\"\nimport { Portal } from \"@yamada-ui/portal\"\nimport { useTimeout } from \"@yamada-ui/use-timeout\"\nimport {\n isValidElement,\n assignRef,\n useUpdateEffect,\n isNumber,\n} from \"@yamada-ui/utils\"\nimport type {\n FC,\n PropsWithChildren,\n ReactNode,\n MutableRefObject,\n RefObject,\n} from \"react\"\nimport {\n createContext,\n memo,\n useContext,\n useMemo,\n useState,\n Fragment,\n useRef,\n createRef,\n} from \"react\"\nimport { RemoveScroll } from \"react-remove-scroll\"\nimport { Loading } from \"./loading\"\n\ntype LoadingContextProps = {\n /**\n * Returns a judgement on whether it is currently loading or not.\n */\n isLoading: () => boolean\n /**\n * Function to start loading.\n *\n * If you specify a `message` etc. as an argument, the loading will change accordingly.\n */\n start: (props?: Partial<LoadingProps>) => void\n /**\n * Function to finish loading.\n */\n finish: () => void\n /**\n * Function to update loading.\n *\n * If you specify a `message` etc. as an argument, the loading will change accordingly.\n */\n update: (props: Partial<LoadingProps>) => void\n /**\n * Function to forcefully update the loading state.\n *\n * Please be careful, as it will forcefully overwrite the state of the loading component.\n */\n force: (state: Partial<LoadingState>) => void\n}\n\ntype LoadingContext = {\n /**\n * The screen loading animation.\n */\n screen: LoadingContextProps\n /**\n * The page loading animation.\n */\n page: LoadingContextProps\n /**\n * The background loading animation.\n */\n background: LoadingContextProps\n /**\n * The custom loading animation.\n *\n * This cannot be used unless a component is defined at `config/loading/custom.`\n */\n custom: LoadingContextProps\n}\n\ntype LoadingProps = {\n message: ReactNode | undefined\n duration: number | null\n}\n\ntype LoadingState = {\n loadingCount: number\n message: ReactNode | undefined\n duration: number | null\n}\n\nexport type LoadingProviderProps = PropsWithChildren<ThemeConfig[\"loading\"]>\n\nconst LoadingContext = createContext({} as LoadingContext)\n\ntype Refs = {\n isLoading: RefObject<LoadingContextProps[\"isLoading\"]>\n start: RefObject<LoadingContextProps[\"start\"]>\n finish: RefObject<LoadingContextProps[\"finish\"]>\n update: RefObject<LoadingContextProps[\"update\"]>\n force: RefObject<LoadingContextProps[\"force\"]>\n}\n\ntype ControlRefs = MutableRefObject<Refs>\n\nconst createLoadingRefs = (): Refs => ({\n isLoading: createRef<LoadingContextProps[\"isLoading\"]>(),\n start: createRef<LoadingContextProps[\"start\"]>(),\n finish: createRef<LoadingContextProps[\"finish\"]>(),\n update: createRef<LoadingContextProps[\"update\"]>(),\n force: createRef<LoadingContextProps[\"force\"]>(),\n})\n\nconst createLoadingFunc = (refs: ControlRefs): LoadingContextProps => ({\n isLoading: () => refs.current.isLoading.current?.() ?? false,\n start: (props) => refs.current.start.current?.(props),\n finish: () => refs.current.finish.current?.(),\n update: (props) => refs.current.update.current?.(props),\n force: (state) => refs.current.force.current?.(state),\n})\n\nconst incrementCount = (prev: number) => prev + 1\nconst decrementCount = (prev: number) => (prev === 0 ? prev : prev - 1)\n\nexport const LoadingProvider: FC<LoadingProviderProps> = ({\n screen,\n page,\n background,\n custom,\n children,\n}) => {\n const screenRefs = useRef(createLoadingRefs())\n const pageRefs = useRef(createLoadingRefs())\n const backgroundRefs = useRef(createLoadingRefs())\n const customRefs = useRef(createLoadingRefs())\n\n const screenLoadingFunc = createLoadingFunc(screenRefs)\n const pageLoadingFunc = createLoadingFunc(pageRefs)\n const backgroundLoadingFunc = createLoadingFunc(backgroundRefs)\n const customLoadingFunc = createLoadingFunc(customRefs)\n\n const value = {\n screen: screenLoadingFunc,\n page: pageLoadingFunc,\n background: backgroundLoadingFunc,\n custom: customLoadingFunc,\n }\n\n return (\n <LoadingContext.Provider value={value}>\n {children}\n\n <Controller\n controlRefs={screenRefs}\n {...screen}\n component={\n screen?.component ?? ((props) => <ScreenComponent {...props} />)\n }\n />\n\n <Controller\n controlRefs={pageRefs}\n {...page}\n component={page?.component ?? ((props) => <PageComponent {...props} />)}\n />\n\n <Controller\n controlRefs={backgroundRefs}\n {...background}\n blockScrollOnMount={background?.blockScrollOnMount ?? false}\n component={\n background?.component ??\n ((props) => <BackgroundComponent {...props} />)\n }\n />\n\n <Controller\n controlRefs={customRefs}\n blockScrollOnMount={background?.blockScrollOnMount ?? false}\n {...custom}\n component={custom?.component}\n />\n </LoadingContext.Provider>\n )\n}\n\ntype ControllerProps = {\n controlRefs: ControlRefs\n render?: (props: LoadingComponentProps) => JSX.Element\n} & LoadingConfigOptions\n\nconst Controller: FC<ControllerProps> = ({\n controlRefs,\n appendToParentPortal,\n containerRef,\n allowPinchZoom = false,\n blockScrollOnMount = true,\n initialState,\n duration: durationProps = null,\n icon,\n text,\n component,\n}) => {\n const isLoadingRef = useRef<boolean>(false)\n const [{ loadingCount, message, duration }, setState] =\n useState<LoadingState>({\n loadingCount: initialState ? 1 : 0,\n message: undefined,\n duration: durationProps,\n })\n\n const { isLoading, start, finish, update, force }: LoadingContextProps =\n useMemo(\n () => ({\n isLoading: () => isLoadingRef.current,\n\n start: ({ message, duration = durationProps } = {}) => {\n isLoadingRef.current = true\n\n setState(({ loadingCount }) => ({\n loadingCount: incrementCount(loadingCount),\n message,\n duration,\n }))\n },\n\n update: (next) => setState((prev) => ({ ...prev, ...next })),\n\n finish: () => {\n isLoadingRef.current = false\n\n setState(({ loadingCount }) => ({\n loadingCount: decrementCount(loadingCount),\n message: undefined,\n duration: durationProps,\n }))\n },\n\n force: ({ loadingCount = 0, message, duration = durationProps }) => {\n isLoadingRef.current = !!loadingCount\n\n setState({\n loadingCount,\n message,\n duration,\n })\n },\n }),\n [durationProps],\n )\n\n assignRef(controlRefs.current.isLoading, isLoading)\n assignRef(controlRefs.current.start, start)\n assignRef(controlRefs.current.finish, finish)\n assignRef(controlRefs.current.update, update)\n assignRef(controlRefs.current.force, force)\n\n const props: LoadingComponentProps = {\n initialState,\n icon,\n text,\n message,\n duration,\n onFinish: finish,\n }\n\n useUpdateEffect(() => {\n if (initialState || isNumber(durationProps))\n setState({\n loadingCount: initialState ? 1 : 0,\n message: undefined,\n duration: durationProps,\n })\n }, [initialState, durationProps])\n\n return (\n <AnimatePresence initial={false}>\n {loadingCount ? (\n <Portal\n appendToParentPortal={appendToParentPortal}\n containerRef={containerRef}\n >\n <RemoveScroll\n allowPinchZoom={allowPinchZoom}\n enabled={blockScrollOnMount}\n forwardProps\n >\n <Fragment>\n <Render component={component} {...props} />\n </Fragment>\n </RemoveScroll>\n </Portal>\n ) : null}\n </AnimatePresence>\n )\n}\n\ntype RenderProps = {\n component?: (props: LoadingComponentProps) => ReactNode\n} & LoadingComponentProps\n\nconst Render: FC<RenderProps> = ({ component, ...props }) => {\n if (typeof component === \"function\") {\n return component(props) as JSX.Element\n } else {\n return <></>\n }\n}\n\ntype MessageProps = { message: ReactNode } & HTMLUIProps<\"p\">\n\nconst Message: FC<MessageProps> = ({ message, ...rest }) => {\n return message ? (\n isValidElement(message) ? (\n message\n ) : (\n <ui.p {...rest}>{message}</ui.p>\n )\n ) : null\n}\n\nconst getVariants = (type: \"fade\" | \"scaleFade\" = \"fade\"): MotionVariants => ({\n initial: {\n opacity: 0,\n scale: type === \"scaleFade\" ? 0.95 : undefined,\n },\n animate: {\n opacity: 1,\n scale: type === \"scaleFade\" ? 1 : undefined,\n transition: {\n duration: 0.4,\n ease: [0.4, 0, 0.2, 1],\n },\n },\n exit: {\n opacity: 0,\n scale: type === \"scaleFade\" ? 0.95 : undefined,\n transition: {\n duration: 0.4,\n ease: [0.4, 0, 1, 1],\n },\n },\n})\n\nconst getOverlayStyle = (\n type: \"fill\" | \"transparent\" = \"fill\",\n): CSSUIObject => ({\n position: \"fixed\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: \"fallback(beerus, 9999)\",\n bg:\n type === \"fill\"\n ? [\"fallback(white, #fbfbfb)\", \"fallback(black, #141414)\"]\n : \"fallback(blackAlpha.600, rgba(0, 0, 0, 0.48))\",\n w: \"100vw\",\n h: \"100dvh\",\n p: \"fallback(4, 1rem)\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n})\n\nconst getMotionProps = (\n initialState: boolean | undefined,\n type: \"fade\" | \"scaleFade\" = \"fade\",\n) => ({\n initial: initialState ? false : \"initial\",\n animate: \"animate\",\n exit: \"exit\",\n variants: getVariants(type),\n})\n\nconst ScreenComponent = memo(\n ({\n initialState,\n icon,\n text,\n message,\n duration,\n onFinish,\n }: LoadingComponentProps) => {\n const css: CSSUIObject = {\n maxW: \"24rem\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n gap: \"fallback(2, 0.5rem)\",\n }\n\n useTimeout(onFinish, duration)\n\n return (\n <Motion\n className=\"ui-loading-screen\"\n {...getMotionProps(initialState)}\n __css={getOverlayStyle()}\n >\n <ui.div __css={css}>\n <Loading size=\"6xl\" {...icon} />\n <Message message={message} lineClamp={3} {...text} />\n </ui.div>\n </Motion>\n )\n },\n)\n\nScreenComponent.displayName = \"ScreenComponent\"\n\nconst PageComponent = memo(\n ({\n initialState,\n icon,\n text,\n message,\n duration,\n onFinish,\n }: LoadingComponentProps) => {\n const css: CSSUIObject = {\n bg: [\"fallback(white, #fbfbfb)\", \"fallback(black, #141414)\"],\n maxW: \"24rem\",\n p: \"fallback(4, 1rem)\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n gap: \"fallback(2, 0.5rem)\",\n rounded: \"fallback(md, 0.375rem)\",\n boxShadow: [\n \"fallback(lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05))\",\n \"fallback(dark-lg, 0px 0px 0px 1px rgba(0, 0, 0, 0.1), 0px 5px 10px rgba(0, 0, 0, 0.2), 0px 15px 40px rgba(0, 0, 0, 0.4))\",\n ],\n }\n\n useTimeout(onFinish, duration)\n\n return (\n <Motion\n className=\"ui-loading-page\"\n {...getMotionProps(initialState)}\n __css={getOverlayStyle(\"transparent\")}\n >\n <ui.div\n as={motion.div}\n className=\"ui-loading-page__inner\"\n {...getMotionProps(initialState, \"scaleFade\")}\n __css={css}\n >\n <Loading size=\"6xl\" {...icon} />\n <Message message={message} lineClamp={3} {...text} />\n </ui.div>\n </Motion>\n )\n },\n)\n\nPageComponent.displayName = \"PageComponent\"\n\nconst BackgroundComponent = memo(\n ({\n initialState,\n icon,\n text,\n message,\n duration,\n onFinish,\n }: LoadingComponentProps) => {\n const css: CSSUIObject = {\n position: \"fixed\",\n right: \"fallback(4, 1rem)\",\n bottom: \"fallback(4, 1rem)\",\n zIndex: \"fallback(beerus, 9999)\",\n bg: [\"fallback(white, #fbfbfb)\", \"fallback(black, #141414)\"],\n maxW: \"20rem\",\n p: \"fallback(2, 0.5rem)\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n gap: \"fallback(2, 0.5rem)\",\n rounded: \"fallback(md, 0.375rem)\",\n boxShadow: [\n \"fallback(3xl, 0 25px 50px -12px rgba(0, 0, 0, 0.25), 0 -25px 50px -12px rgba(0, 0, 0, 0.25))\",\n \"fallback(dark-lg, 0px 0px 0px 1px rgba(0, 0, 0, 0.1), 0px 5px 10px rgba(0, 0, 0, 0.2), 0px 15px 40px rgba(0, 0, 0, 0.4))\",\n ],\n }\n\n useTimeout(onFinish, duration)\n\n return (\n <Motion\n className=\"ui-loading-background\"\n {...getMotionProps(initialState, \"scaleFade\")}\n __css={css}\n >\n <Loading size=\"xl\" {...icon} />\n <Message message={message} fontSize=\"sm\" lineClamp={1} {...text} />\n </Motion>\n )\n },\n)\n\nBackgroundComponent.displayName = \"BackgroundComponent\"\n\n/**\n * `useLoading` is a custom hook for controlling the loading of the application.\n *\n * @see Docs https://yamada-ui.com/hooks/use-loading\n */\nexport const useLoading = (): LoadingContext => {\n const { screen, page, background, custom } = useContext(LoadingContext)\n\n return { screen, page, background, custom }\n}\n","import { useCallbackRef } from \"@yamada-ui/utils\"\nimport { useEffect } from \"react\"\n\n/**\n * `useTimeout` is a custom hook that executes a function after a specified number of milliseconds.\n *\n * @see Docs https://yamada-ui.com/hooks/use-timeout\n */\nexport const useTimeout = (\n callback: (...args: any[]) => void,\n delay: number | null,\n) => {\n const func = useCallbackRef(callback)\n\n useEffect(() => {\n if (delay == null) return undefined\n\n let timeoutId: number | null = null\n\n timeoutId = window.setTimeout(func, delay)\n\n return () => {\n if (timeoutId) window.clearTimeout(timeoutId)\n }\n }, [delay, func])\n}\n","import type {\n HTMLUIProps,\n ThemeProps,\n CSSUIObject,\n AlertStatuses,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n useTheme,\n} from \"@yamada-ui/core\"\nimport { InfoIcon, WarningIcon, CheckIcon } from \"@yamada-ui/icon\"\nimport type { LoadingProps } from \"@yamada-ui/loading\"\nimport { Loading } from \"@yamada-ui/loading\"\nimport { createContext, cx } from \"@yamada-ui/utils\"\nimport type { FC } from \"react\"\n\nconst defaultStatuses = {\n info: { icon: InfoIcon, colorScheme: \"info\" },\n success: { icon: CheckIcon, colorScheme: \"success\" },\n warning: { icon: WarningIcon, colorScheme: \"warning\" },\n error: { icon: WarningIcon, colorScheme: \"danger\" },\n loading: { icon: Loading, colorScheme: \"primary\" },\n} as const\n\ntype Status = keyof typeof defaultStatuses\n\ntype AlertContext = {\n status: Status\n styles: Record<string, CSSUIObject>\n}\n\nconst [AlertProvider, useAlert] = createContext<AlertContext>({\n name: `AlertStylesContext`,\n errorMessage: `useAlert returned is 'undefined'. Seems you forgot to wrap the components in \"<Alert />\" `,\n})\n\nexport const getStatusColorScheme = (\n status: Status,\n statuses?: AlertStatuses,\n) => statuses?.[status]?.colorScheme ?? defaultStatuses[status].colorScheme\n\nexport const getStatusIcon = (status: Status, statuses?: AlertStatuses) =>\n statuses?.[status]?.icon ?? defaultStatuses[status].icon\n\ntype AlertOptions = {\n /**\n * The status of the alert.\n *\n * @default 'info'\n */\n status?: Status\n}\n\nexport type AlertProps = HTMLUIProps<\"div\"> & ThemeProps<\"Alert\"> & AlertOptions\n\n/**\n * `Alert` is a component that conveys information to the user.\n *\n * @see Docs https://yamada-ui.com/components/feedback/alert\n */\nexport const Alert = forwardRef<AlertProps, \"div\">(\n ({ status = \"info\", colorScheme, ...props }, ref) => {\n const { theme } = useTheme()\n const statuses = theme.__config?.alert?.statuses ?? {}\n\n colorScheme ??= getStatusColorScheme(status, statuses)\n\n const [styles, mergedProps] = useMultiComponentStyle(\"Alert\", {\n ...props,\n colorScheme,\n })\n const { className, children, ...rest } = omitThemeProps(mergedProps)\n\n const css: CSSUIObject = {\n w: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n position: \"relative\",\n overflow: \"hidden\",\n ...styles.container,\n }\n\n return (\n <AlertProvider value={{ status, styles }}>\n <ui.div\n ref={ref}\n className={cx(\"ui-alert\", className)}\n role=\"alert\"\n __css={css}\n {...rest}\n >\n {children}\n </ui.div>\n </AlertProvider>\n )\n },\n)\n\nexport type AlertIconProps = HTMLUIProps<\"span\"> & {\n variant?: LoadingProps[\"variant\"]\n}\n\nexport const AlertIcon: FC<AlertIconProps> = ({\n className,\n children,\n variant = \"oval\",\n ...rest\n}) => {\n const { status, styles } = useAlert()\n const { theme } = useTheme()\n const statuses = theme.__config?.alert?.statuses ?? {}\n\n const Icon = getStatusIcon(status, statuses)\n const css: CSSUIObject = {\n ...styles.icon,\n ...(status === \"loading\" ? styles.loading : {}),\n }\n\n return (\n <ui.span\n display=\"inherit\"\n className={cx(\"ui-alert__icon\", className)}\n __css={css}\n {...rest}\n >\n {children || (\n <Icon\n {...(status === \"loading\"\n ? { variant, color: \"currentcolor\" }\n : { boxSize: \"100%\" })}\n />\n )}\n </ui.span>\n )\n}\n\nexport type AlertTitleProps = HTMLUIProps<\"p\">\n\nexport const AlertTitle = forwardRef<AlertTitleProps, \"p\">(\n ({ className, ...rest }, ref) => {\n const { styles } = useAlert()\n\n const css: CSSUIObject = {\n display: \"block\",\n ...styles.title,\n }\n\n return (\n <ui.p\n ref={ref}\n className={cx(\"ui-alert__title\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type AlertDescriptionProps = HTMLUIProps<\"span\">\n\nexport const AlertDescription = forwardRef<AlertDescriptionProps, \"span\">(\n ({ className, ...rest }, ref) => {\n const { styles } = useAlert()\n\n const css: CSSUIObject = {\n ...styles.description,\n }\n\n return (\n <ui.span\n ref={ref}\n className={cx(\"ui-alert__desc\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { AlertProps } from \"@yamada-ui/alert\"\nimport {\n Alert,\n AlertDescription,\n AlertIcon,\n AlertTitle,\n} from \"@yamada-ui/alert\"\nimport { CloseButton } from \"@yamada-ui/close-button\"\nimport type {\n CSSUIObject,\n NoticePlacement,\n NoticeComponentProps,\n NoticeConfigOptions,\n StyledTheme,\n} from \"@yamada-ui/core\"\nimport { ui, useTheme } from \"@yamada-ui/core\"\nimport { cx, merge } from \"@yamada-ui/utils\"\nimport type { FC, ReactNode } from \"react\"\nimport { useMemo } from \"react\"\n\nexport type UseNoticeOptions = NoticeConfigOptions\n\nexport type NoticeOptions = {\n id: string | number\n placement: NoticePlacement\n duration: UseNoticeOptions[\"duration\"]\n status: UseNoticeOptions[\"status\"]\n message: (props: NoticeComponentProps) => ReactNode\n isDelete?: boolean\n onDelete: () => void\n onCloseComplete?: () => void\n style?: CSSUIObject\n}\n\nconst findId = (\n options: NoticeOptions[],\n id: string | number,\n): NoticeOptions | undefined => options.find((notice) => notice.id === id)\n\nconst findNotice = (\n state: State,\n id: string | number,\n): {\n placement: NoticePlacement | undefined\n index: number\n} => {\n const placement = getNoticePlacement(state, id)\n\n const index = placement\n ? state[placement].findIndex((notice) => notice.id === id)\n : -1\n\n return { placement, index }\n}\n\nconst getNoticePlacement = (\n state: State,\n id: string | number,\n): NoticePlacement | undefined => {\n for (const [placement, values] of Object.entries(state)) {\n if (findId(values, id)) return placement as NoticePlacement\n }\n}\n\ntype CreateNoticeOptions = Partial<\n Pick<\n NoticeOptions,\n \"id\" | \"placement\" | \"status\" | \"duration\" | \"onCloseComplete\" | \"style\"\n >\n>\n\nlet counter = 0\n\nconst createNotice = (\n message: (props: NoticeComponentProps) => ReactNode,\n {\n id,\n placement = \"top\",\n duration,\n onCloseComplete,\n status,\n style,\n }: CreateNoticeOptions,\n) => {\n counter += 1\n\n id ??= counter\n\n return {\n id,\n placement,\n status,\n duration,\n message,\n onDelete: () => noticeStore.remove(String(id), placement),\n isDelete: false,\n onCloseComplete,\n style,\n }\n}\n\nconst createRender = (options: UseNoticeOptions): FC<NoticeComponentProps> => {\n const { component } = options\n\n const Render: FC<NoticeComponentProps> = (props) => {\n if (typeof component === \"function\") {\n return component({ ...props, ...options }) as JSX.Element\n } else {\n return <Notice {...props} {...options} />\n }\n }\n\n return Render\n}\n\nconst createNoticeFunc = (\n defaultOptions: UseNoticeOptions,\n theme: StyledTheme,\n) => {\n const themeOptions = theme.__config.notice?.options ?? {}\n\n const computedOptions = (options: UseNoticeOptions) =>\n merge(themeOptions, merge(defaultOptions, options))\n\n const notice = (options: UseNoticeOptions = {}) => {\n options = computedOptions(options)\n\n const message = createRender(options)\n\n return noticeStore.create(message, options)\n }\n\n notice.update = (\n id: string | number,\n options: Omit<UseNoticeOptions, \"id\">,\n ) => {\n options = computedOptions(options)\n\n noticeStore.update(id, options)\n }\n\n notice.closeAll = noticeStore.closeAll\n notice.close = noticeStore.close\n notice.isActive = noticeStore.isActive\n\n return notice\n}\n\ntype CreateNoticeReturn = ReturnType<typeof createNoticeFunc>\n\n/**\n * `useNotice` is a custom hook that controls the notifications of the application.\n *\n * @see Docs https://yamada-ui.com/hooks/use-notice\n */\nexport const useNotice = (\n defaultOptions?: UseNoticeOptions,\n): CreateNoticeReturn => {\n const { theme } = useTheme()\n\n return useMemo(\n () => createNoticeFunc(defaultOptions ?? {}, theme),\n [defaultOptions, theme],\n )\n}\n\ntype State = {\n [K in NoticePlacement]: NoticeOptions[]\n}\n\ntype Store = {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => State\n create: (\n message: (props: NoticeComponentProps) => ReactNode,\n options: UseNoticeOptions,\n ) => string | number\n close: (id: string | number) => void\n closeAll: (options?: { placement?: NoticePlacement[] }) => void\n update: (id: string | number, options: Omit<UseNoticeOptions, \"id\">) => void\n remove: (id: string | number, placement: NoticePlacement) => void\n isActive: (id: string | number) => boolean\n}\n\nconst initialState = {\n top: [],\n \"top-left\": [],\n \"top-right\": [],\n bottom: [],\n \"bottom-left\": [],\n \"bottom-right\": [],\n}\n\nconst createNoticeStore = (initialState: State): Store => {\n let state = initialState\n const storeChangeCache = new Set<() => void>()\n\n const setState = (setStateFunc: (values: State) => State) => {\n state = setStateFunc(state)\n storeChangeCache.forEach((onStoreChange) => onStoreChange())\n }\n\n return {\n getSnapshot: () => state,\n\n subscribe: (onStoreChange) => {\n storeChangeCache.add(onStoreChange)\n\n return () => {\n setState(() => initialState)\n storeChangeCache.delete(onStoreChange)\n }\n },\n\n remove: (id, placement) => {\n setState((prevState) => ({\n ...prevState,\n [placement]: prevState[placement].filter((notice) => notice.id != id),\n }))\n },\n\n create: (message, options) => {\n const limit = options.limit\n\n const notice = createNotice(message, options)\n const { placement, id } = notice\n\n setState((prev) => {\n let prevNotices = prev[placement] ?? []\n\n if (\n limit !== undefined &&\n limit > 0 &&\n prevNotices.length > limit - 1\n ) {\n const n = prevNotices.length - (limit - 1)\n const notices = placement.includes(\"top\")\n ? prevNotices.slice(n * -1)\n : prevNotices.slice(0, n)\n\n const ids = notices.map(({ id }) => id)\n\n prevNotices = prevNotices.map((notice) =>\n ids.includes(notice.id) ? { ...notice, isDelete: true } : notice,\n )\n }\n\n const notices = placement.includes(\"top\")\n ? [notice, ...prevNotices]\n : [...prevNotices, notice]\n\n return { ...prev, [placement]: notices }\n })\n\n return id\n },\n\n update: (id, options) => {\n setState((prev) => {\n const next = { ...prev }\n const { placement, index } = findNotice(next, id)\n\n if (placement && index !== -1) {\n next[placement][index] = {\n ...next[placement][index],\n ...options,\n message: createRender(options),\n }\n }\n\n return next\n })\n },\n\n closeAll: ({ placement } = {}) => {\n setState((prev) => {\n let placements: NoticePlacement[] = [\n \"bottom\",\n \"bottom-right\",\n \"bottom-left\",\n \"top\",\n \"top-left\",\n \"top-right\",\n ]\n\n if (placement) placements = placement\n\n return placements.reduce(\n (acc, placement) => {\n acc[placement] = prev[placement].map((notice) => ({\n ...notice,\n isDelete: true,\n }))\n\n return acc\n },\n { ...prev },\n )\n })\n },\n\n close: (id) => {\n setState((prev) => {\n const placement = getNoticePlacement(prev, id)\n\n if (!placement) return prev\n\n return {\n ...prev,\n [placement]: prev[placement].map((notice) =>\n notice.id == id ? { ...notice, isDelete: true } : notice,\n ),\n }\n })\n },\n\n isActive: (id) =>\n Boolean(findNotice(noticeStore.getSnapshot(), id).placement),\n }\n}\n\nexport const noticeStore = createNoticeStore(initialState)\n\nexport type NoticeProps = Omit<AlertProps, keyof UseNoticeOptions> &\n UseNoticeOptions & {\n onClose?: () => void\n }\n\nconst Notice: FC<NoticeProps> = ({\n variant = \"basic\",\n colorScheme,\n status,\n icon,\n title,\n description,\n isClosable,\n className,\n onClose,\n}) => {\n return (\n <Alert\n status={status}\n variant={variant}\n colorScheme={colorScheme}\n alignItems=\"start\"\n boxShadow=\"fallback(lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05))\"\n className={cx(\"ui-notice\", className)}\n pe={isClosable ? 8 : undefined}\n >\n <AlertIcon\n variant={icon?.variant}\n className=\"ui-notice__icon\"\n {...(icon?.color ? { color: icon.color } : {})}\n >\n {icon?.children}\n </AlertIcon>\n\n <ui.div flex=\"1\">\n {title ? (\n <AlertTitle className=\"ui-notice__title\" lineClamp={1}>\n {title}\n </AlertTitle>\n ) : null}\n {description ? (\n <AlertDescription className=\"ui-notice__desc\" lineClamp={3}>\n {description}\n </AlertDescription>\n ) : null}\n </ui.div>\n\n {isClosable ? (\n <CloseButton\n className=\"ui-notice__close-button\"\n size=\"sm\"\n onClick={onClose}\n position=\"absolute\"\n top={2}\n right={2}\n />\n ) : null}\n </Alert>\n )\n}\n","import type { CSSUIObject, ThemeConfig } from \"@yamada-ui/core\"\nimport { ui } from \"@yamada-ui/core\"\nimport type { MotionVariants, MotionStyle } from \"@yamada-ui/motion\"\nimport { AnimatePresence, motion, useIsPresent } from \"@yamada-ui/motion\"\nimport { Portal } from \"@yamada-ui/portal\"\nimport { useTimeout } from \"@yamada-ui/use-timeout\"\nimport { cx, runIfFunc, useUpdateEffect } from \"@yamada-ui/utils\"\nimport type { FC } from \"react\"\nimport { memo, useEffect, useState, useSyncExternalStore } from \"react\"\nimport type { NoticeOptions } from \"./notice\"\nimport { noticeStore } from \"./notice\"\n\nexport type NoticeProviderProps = Omit<\n Required<ThemeConfig>[\"notice\"],\n \"options\"\n>\n\nexport const NoticeProvider: FC<NoticeProviderProps> = ({\n variants,\n gap = \"fallback(4, 1rem)\",\n appendToParentPortal,\n containerRef,\n}) => {\n const state = useSyncExternalStore(\n noticeStore.subscribe,\n noticeStore.getSnapshot,\n noticeStore.getSnapshot,\n )\n\n const components = Object.entries(state).map(([placement, notices]) => {\n const top = placement.includes(\"top\")\n ? \"env(safe-area-inset-top, 0px)\"\n : undefined\n const bottom = placement.includes(\"bottom\")\n ? \"env(safe-area-inset-bottom, 0px)\"\n : undefined\n const right = !placement.includes(\"left\")\n ? \"env(safe-area-inset-right, 0px)\"\n : undefined\n const left = !placement.includes(\"right\")\n ? \"env(safe-area-inset-left, 0px)\"\n : undefined\n\n const css: CSSUIObject = {\n position: \"fixed\",\n zIndex: \"fallback(zarbon, 160)\",\n pointerEvents: \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n margin: gap,\n gap,\n top,\n bottom,\n right,\n left,\n }\n\n return (\n <ui.ul\n key={placement}\n className={cx(\"ui-notice__list\", `ui-notice__list--${placement}`)}\n __css={css}\n >\n <AnimatePresence initial={false}>\n {notices.map((notice) => (\n <NoticeComponent key={notice.id} variants={variants} {...notice} />\n ))}\n </AnimatePresence>\n </ui.ul>\n )\n })\n\n return (\n <Portal\n appendToParentPortal={appendToParentPortal}\n containerRef={containerRef}\n >\n {components}\n </Portal>\n )\n}\n\nconst defaultVariants: MotionVariants = {\n initial: ({ placement }) => ({\n opacity: 0,\n [[\"top\", \"bottom\"].includes(placement) ? \"y\" : \"x\"]:\n (placement === \"bottom\" ? 1 : placement.includes(\"right\") ? 1 : -1) * 24,\n }),\n animate: {\n opacity: 1,\n y: 0,\n x: 0,\n scale: 1,\n transition: {\n duration: 0.4,\n ease: [0.4, 0, 0.2, 1],\n },\n },\n exit: {\n opacity: 0,\n scale: 0.95,\n transition: {\n duration: 0.2,\n ease: [0.4, 0, 1, 1],\n },\n },\n}\n\ntype NoticeComponentProps = NoticeOptions &\n Pick<NoticeProviderProps, \"variants\">\n\nconst NoticeComponent = memo(\n ({\n variants = defaultVariants,\n placement,\n duration = 5000,\n message,\n onCloseComplete,\n isDelete = false,\n onDelete,\n style,\n }: NoticeComponentProps) => {\n const [delay, setDelay] = useState(duration)\n const isPresent = useIsPresent()\n\n useUpdateEffect(() => {\n if (!isPresent) onCloseComplete?.()\n }, [isPresent])\n\n useUpdateEffect(() => {\n setDelay(duration)\n }, [duration])\n\n const onMouseEnter = () => setDelay(null)\n const onMouseLeave = () => setDelay(duration)\n\n const onClose = () => {\n if (isPresent) onDelete()\n }\n\n useEffect(() => {\n if (isPresent && isDelete) onDelete()\n }, [isPresent, isDelete, onDelete])\n\n useTimeout(onClose, delay)\n\n const css: CSSUIObject = {\n pointerEvents: \"auto\",\n maxW: \"36rem\",\n minW: \"20rem\",\n ...style,\n }\n\n return (\n <motion.li\n layout\n className=\"ui-notice__list__item\"\n variants={variants}\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n onHoverStart={onMouseEnter}\n onHoverEnd={onMouseLeave}\n custom={{ placement }}\n style={\n {\n display: \"flex\",\n justifyContent: placement.includes(\"left\")\n ? \"flex-start\"\n : placement.includes(\"right\")\n ? \"flex-end\"\n : \"center\",\n } as MotionStyle\n }\n >\n <ui.div className=\"ui-notice__list__item__inner\" __css={css}>\n {runIfFunc(message, { onClose })}\n </ui.div>\n </motion.li>\n )\n },\n)\n\nNoticeComponent.displayName = \"NoticeComponent\"\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const Accordion: ComponentMultiStyle = {\n baseStyle: {\n container: {},\n item: {},\n button: {\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _focusVisible: {\n boxShadow: \"outline\",\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n },\n py: \"3\",\n px: \"4\",\n },\n panel: {\n px: \"4\",\n pb: \"3\",\n },\n icon: {\n ml: \"auto\",\n fontSize: \"1.25em\",\n color: [\"blackAlpha.600\", \"whiteAlpha.700\"],\n },\n },\n\n variants: {\n basic: {\n item: {\n borderTopWidth: \"1px\",\n borderColor: \"inherit\",\n _last: {\n borderBottomWidth: \"1px\",\n },\n },\n button: {\n _hover: {\n bg: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n _disabled: {\n bg: \"none\",\n },\n },\n },\n },\n card: {\n item: {\n borderWidth: \"1px\",\n rounded: \"md\",\n bg: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n _expanded: {\n bg: [\"white\", \"black\"],\n },\n _notFirst: {\n mt: \"md\",\n },\n },\n button: {\n _hover: {\n bg: [\"blackAlpha.100\", \"whiteAlpha.100\"],\n _expanded: {\n bg: \"none\",\n },\n _disabled: {\n bg: \"none\",\n },\n },\n },\n },\n unstyled: {},\n },\n\n defaultProps: {\n variant: \"basic\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { shadeColor, tintColor } from \"@yamada-ui/utils\"\n\nexport const Alert: ComponentMultiStyle = {\n baseStyle: {\n container: {\n px: 4,\n py: 3,\n rounded: \"md\",\n },\n icon: {\n flexShrink: 0,\n marginEnd: 3,\n boxSize: 5,\n },\n loading: {\n flexShrink: 0,\n marginEnd: 3,\n fontSize: \"xl\",\n },\n title: {\n marginEnd: 2,\n fontWeight: \"bold\",\n lineHeight: 5,\n },\n description: {\n lineHeight: 5,\n },\n },\n\n variants: {\n basic: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => ({\n container: { bg: [\"white\", \"black\"], borderWidth: \"1px\" },\n icon: { color: [tintColor(`${c}.600`, 16)(t, m), `${c}.400`] },\n }),\n subtle: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => ({\n container: { bg: [`${c}.100`, shadeColor(`${c}.300`, 58)(t, m)] },\n icon: { color: [tintColor(`${c}.600`, 16)(t, m), `${c}.400`] },\n }),\n solid: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => ({\n container: {\n bg: [tintColor(`${c}.600`, 16)(t, m), shadeColor(`${c}.600`, 16)(t, m)],\n color: \"white\",\n },\n }),\n \"island-accent\": ({\n theme: t,\n colorMode: m,\n colorScheme: c = \"primary\",\n }) => ({\n container: {\n bg: [\"white\", \"black\"],\n borderWidth: \"1px\",\n pl: 7,\n _before: {\n content: '\"\"',\n position: \"absolute\",\n top: \"50%\",\n left: 3,\n transform: \"translateY(-50%)\",\n w: 1,\n h: \"calc(100% - 1.5rem)\",\n bg: [tintColor(`${c}.600`, 16)(t, m), `${c}.400`],\n rounded: \"full\",\n },\n },\n icon: { color: [tintColor(`${c}.600`, 16)(t, m), `${c}.400`] },\n }),\n \"left-accent\": ({\n theme: t,\n colorMode: m,\n colorScheme: c = \"primary\",\n }) => ({\n container: {\n bg: [`${c}.100`, shadeColor(`${c}.300`, 58)(t, m)],\n pl: 3,\n borderLeft: \"0.25rem solid\",\n borderLeftColor: [tintColor(`${c}.600`, 16)(t, m), `${c}.400`],\n rounded: 4,\n },\n icon: { color: [tintColor(`${c}.600`, 16)(t, m), `${c}.400`] },\n }),\n \"top-accent\": ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => ({\n container: {\n bg: [`${c}.100`, shadeColor(`${c}.300`, 58)(t, m)],\n pt: 3,\n borderTop: \"0.25rem solid\",\n borderTopColor: [tintColor(`${c}.600`, 16)(t, m), `${c}.400`],\n rounded: 4,\n },\n icon: { color: [tintColor(`${c}.600`, 16)(t, m), `${c}.400`] },\n }),\n },\n\n defaultProps: {\n variant: \"basic\",\n colorScheme: \"primary\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { HueSlider } from \"./hue-slider\"\n\nexport const AlphaSlider: ComponentMultiStyle = mergeMultiStyle(HueSlider)()\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const HueSlider: ComponentMultiStyle = {\n baseStyle: {\n container: {\n w: \"100%\",\n rounded: \"full\",\n cursor: \"pointer\",\n _readOnly: { cursor: \"auto\" },\n _disabled: {\n opacity: 0.6,\n cursor: \"not-allowed\",\n },\n },\n overlay: {\n rounded: \"full\",\n },\n track: {},\n thumb: {\n rounded: \"full\",\n outline: 0,\n borderWidth: \"3px\",\n borderColor: \"whiteAlpha.950\",\n boxShadow: [\"md\", \"dark-md\"],\n transitionProperty: \"transform\",\n transitionDuration: \"normal\",\n _active: {\n transform: `scale(1.15)`,\n },\n _focusVisible: {\n boxShadow: [\"outline\", \"outline\"],\n },\n },\n },\n\n sizes: {\n sm: {\n container: { h: \"3\" },\n thumb: { boxSize: \"3\" },\n },\n md: {\n container: { h: \"4\" },\n thumb: { boxSize: \"4\" },\n },\n lg: {\n container: { h: \"5\" },\n thumb: { boxSize: \"5\" },\n },\n },\n\n defaultProps: {\n size: \"md\",\n },\n}\n","import { mergeMultiStyle, type ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { LineChart } from \"./line-chart\"\n\nexport const AreaChart: ComponentMultiStyle = mergeMultiStyle(LineChart, {\n baseStyle: {\n area: {},\n },\n})({ omit: [\"line\"] })\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { getMemoizedObject as get } from \"@yamada-ui/utils\"\n\nexport const LineChart: ComponentMultiStyle = {\n baseStyle: {\n container: {},\n chart: {},\n referenceLine: {\n fillOpacity: 1,\n fontSize: \"xs\",\n },\n grid: {\n stroke: [\"blackAlpha.400\", \"whiteAlpha.400\"],\n strokeWidth: 1,\n },\n cursor: {\n fill: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n stroke: [\"blackAlpha.400\", \"whiteAlpha.400\"],\n strokeWidth: 1,\n },\n xAxis: {\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n fontSize: \"xs\",\n },\n yAxis: {\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n fontSize: \"xs\",\n },\n line: {},\n dot: {\n strokeWidth: 2,\n },\n activeDot: {\n strokeWidth: 2,\n fill: [\"white\", \"black\"],\n },\n legend: {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-end\",\n },\n legendItem: {\n display: \"flex\",\n alignItems: \"center\",\n rounded: \"md\",\n gap: \"sm\",\n transitionProperty: \"common\",\n transitionDuration: \"slower\",\n color: [\"blackAlpha.800\", \"whiteAlpha.700\"],\n _hover: {\n bg: [\"blackAlpha.50\", \"whiteAlpha.100\"],\n },\n },\n legendSwatch: {\n boxSize: \"3\",\n rounded: \"full\",\n },\n tooltip: {\n display: \"flex\",\n flexDirection: \"column\",\n minW: \"48\",\n gap: \"sm\",\n rounded: \"md\",\n bg: [\"white\", \"black\"],\n border: \"1px solid\",\n borderColor: [\"blackAlpha.200\", \"whiteAlpha.100\"],\n p: \"3\",\n fontWeight: \"medium\",\n fontSize: \"sm\",\n color: \"inherit\",\n boxShadow: [\"md\", \"dark-md\"],\n maxW: \"xs\",\n zIndex: \"dodoria\",\n },\n tooltipTitle: {\n fontSize: \"md\",\n },\n tooltipList: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"xs\",\n },\n tooltipItem: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"sm\",\n fontSize: \"sm\",\n },\n tooltipSwatch: {\n boxSize: \"3\",\n rounded: \"full\",\n },\n tooltipLabel: {\n color: [\"blackAlpha.800\", \"whiteAlpha.700\"],\n },\n tooltipValue: {\n flex: 1,\n textAlign: \"end\",\n },\n },\n\n variants: {},\n\n sizes: {\n sm: ({ theme: t }) => ({\n container: {\n w: \"xl\",\n h: \"xs\",\n },\n legend: {\n gap: \"xs\",\n mb: \"md\",\n },\n legendItem: {\n minH: \"6\",\n minW: \"6\",\n fontSize: \"xs\",\n px: \"2\",\n lineHeight: get(t, \"sizes.6\"),\n },\n }),\n md: ({ theme: t }) => ({\n container: {\n w: \"3xl\",\n h: \"sm\",\n },\n legend: {\n gap: \"xs\",\n mb: \"md\",\n },\n legendItem: {\n minH: \"7\",\n minW: \"7\",\n fontSize: \"sm\",\n px: \"3\",\n lineHeight: get(t, \"sizes.7\"),\n },\n }),\n lg: ({ theme: t }) => ({\n container: {\n w: \"5xl\",\n h: \"md\",\n },\n legend: {\n gap: \"sm\",\n mb: \"md\",\n },\n legendItem: {\n minH: \"8\",\n minW: \"8\",\n fontSize: \"md\",\n px: \"3\",\n lineHeight: get(t, \"sizes.8\"),\n },\n }),\n full: ({ theme: t }) => ({\n container: {\n w: \"full\",\n h: \"md\",\n },\n legend: {\n gap: \"sm\",\n mb: \"md\",\n },\n legendItem: {\n minH: \"8\",\n minW: \"8\",\n fontSize: \"md\",\n px: \"3\",\n lineHeight: get(t, \"sizes.8\"),\n },\n }),\n },\n\n defaultProps: {\n size: \"full\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { Select } from \"./select\"\n\nexport const Autocomplete: ComponentMultiStyle = mergeMultiStyle(Select)()\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { Menu } from \"./menu\"\nimport { NativeSelect } from \"./native-select\"\n\nexport const Select: ComponentMultiStyle = mergeMultiStyle(NativeSelect, Menu, {\n baseStyle: {\n inner: {},\n list: {\n w: \"100%\",\n maxH: \"xs\",\n overflowY: \"auto\",\n },\n itemIcon: {},\n },\n})({ omit: [\"button\", \"command\"] })\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const Menu: ComponentMultiStyle = {\n baseStyle: {\n button: {\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n },\n list: {\n rounded: \"md\",\n minW: \"xs\",\n py: \"2\",\n bg: [\"white\", \"black\"],\n border: \"1px solid\",\n borderColor: [\"blackAlpha.200\", \"whiteAlpha.100\"],\n color: \"inherit\",\n boxShadow: [\"lg\", \"dark-lg\"],\n zIndex: \"yamcha\",\n },\n item: {\n cursor: \"pointer\",\n py: \"1.5\",\n px: \"3\",\n transitionProperty: \"background\",\n transitionDuration: \"ultra-fast\",\n transitionTimingFunction: \"ease-in\",\n _focus: {\n bg: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n },\n _hover: {\n bg: [\"blackAlpha.100\", \"whiteAlpha.100\"],\n },\n _active: {\n bg: [\"blackAlpha.200\", \"whiteAlpha.200\"],\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n },\n },\n icon: {\n color: [\"blackAlpha.600\", \"whiteAlpha.700\"],\n },\n command: {\n opacity: 0.6,\n },\n divider: {\n my: \"2\",\n borderBottomWidth: \"1px\",\n borderColor: \"inherit\",\n },\n group: {},\n groupLabel: {\n py: \"1.5\",\n px: \"3\",\n fontSize: \"sm\",\n fontWeight: \"semibold\",\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n },\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { Input } from \"./input\"\n\nexport const NativeSelect: ComponentMultiStyle = mergeMultiStyle(Input, {\n baseStyle: {\n container: {},\n field: {\n cursor: \"pointer\",\n pr: \"8\",\n pb: \"px\",\n _focus: {\n zIndex: \"unset\",\n },\n _readOnly: {\n pointerEvents: \"none\",\n },\n },\n icon: {\n w: \"6\",\n py: \"2\",\n color: [\"blackAlpha.600\", \"whiteAlpha.700\"],\n fontSize: \"xl\",\n outline: 0,\n rounded: \"md\",\n _disabled: {\n opacity: 0.4,\n },\n },\n },\n\n sizes: {\n xs: {\n icon: {\n pt: \"3\",\n fontSize: \"lg\",\n insetEnd: \"1\",\n },\n },\n sm: {\n icon: {\n insetEnd: \"2\",\n },\n },\n md: {\n icon: {\n insetEnd: \"2\",\n },\n },\n lg: {\n icon: {\n insetEnd: \"2\",\n },\n },\n },\n})({ omit: [\"addon\", \"element\"] })\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mode } from \"@yamada-ui/core\"\nimport { getColor, isArray } from \"@yamada-ui/utils\"\n\nexport const Input: ComponentMultiStyle = {\n baseStyle: {\n container: {},\n field: {\n width: \"100%\",\n minWidth: 0,\n outline: 0,\n position: \"relative\",\n appearance: \"none\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n },\n },\n element: {\n color: [\"blackAlpha.600\", \"whiteAlpha.700\"],\n },\n },\n\n variants: {\n outline: ({\n theme: t,\n colorMode: m,\n focusBorderColor: fc = \"focus\",\n errorBorderColor: ec = [\"danger.500\", \"danger.400\"],\n }) => {\n const focusBorderColor = isArray(fc)\n ? mode(getColor(fc[0], fc[0])(t, m), getColor(fc[1], fc[1])(t, m))(m)\n : getColor(fc, fc)(t, m)\n const errorBorderColor = isArray(ec)\n ? mode(getColor(ec[0], ec[0])(t, m), getColor(ec[1], ec[1])(t, m))(m)\n : getColor(ec, ec)(t, m)\n\n return {\n field: {\n border: \"1px solid\",\n borderColor: \"inherit\",\n bg: \"inherit\",\n _hover: {\n borderColor: [\"blackAlpha.500\", \"whiteAlpha.400\"],\n },\n _readOnly: {\n boxShadow: \"none !important\",\n userSelect: \"all\",\n },\n _invalid: {\n borderColor: [errorBorderColor, errorBorderColor],\n boxShadow: `0 0 0 1px ${errorBorderColor}`,\n },\n _active: {\n borderColor: [focusBorderColor, focusBorderColor],\n boxShadow: `0 0 0 1px ${focusBorderColor}`,\n },\n _focusVisible: {\n zIndex: \"yamcha\",\n borderColor: [focusBorderColor, focusBorderColor],\n boxShadow: `0 0 0 1px ${focusBorderColor}`,\n },\n },\n addon: {\n border: \"1px solid\",\n borderColor: [\"inherit\", \"whiteAlpha.50\"],\n bg: [\"blackAlpha.300\", \"whiteAlpha.300\"],\n },\n }\n },\n filled: ({\n theme: t,\n colorMode: m,\n focusBorderColor: fc = \"focus\",\n errorBorderColor: ec = [\"danger.500\", \"danger.400\"],\n }) => {\n const focusBorderColor = isArray(fc)\n ? mode(getColor(fc[0], fc[0])(t, m), getColor(fc[1], fc[1])(t, m))(m)\n : getColor(fc, fc)(t, m)\n const errorBorderColor = isArray(ec)\n ? mode(getColor(ec[0], ec[0])(t, m), getColor(ec[1], ec[1])(t, m))(m)\n : getColor(ec, ec)(t, m)\n\n return {\n field: {\n border: \"2px solid\",\n borderColor: \"transparent\",\n bg: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n _hover: {\n bg: [\"blackAlpha.100\", \"whiteAlpha.100\"],\n },\n _readOnly: {\n boxShadow: \"none !important\",\n userSelect: \"all\",\n },\n _invalid: {\n borderColor: errorBorderColor,\n boxShadow: `0 0 0 1px ${errorBorderColor}`,\n },\n _active: {\n bg: \"transparent\",\n borderColor: focusBorderColor,\n boxShadow: `0 0 0 1px ${focusBorderColor}`,\n },\n _focusVisible: {\n bg: \"transparent\",\n borderColor: focusBorderColor,\n boxShadow: `0 0 0 1px ${focusBorderColor}`,\n },\n },\n addon: {\n border: \"2px solid transparent\",\n bg: [\"blackAlpha.300\", \"whiteAlpha.300\"],\n },\n }\n },\n flushed: ({\n theme: t,\n colorMode: m,\n focusBorderColor: fc = \"focus\",\n errorBorderColor: ec = [\"danger.500\", \"danger.400\"],\n }) => {\n const focusBorderColor = isArray(fc)\n ? mode(getColor(fc[0], fc[0])(t, m), getColor(fc[1], fc[1])(t, m))(m)\n : getColor(fc, fc)(t, m)\n const errorBorderColor = isArray(ec)\n ? mode(getColor(ec[0], ec[0])(t, m), getColor(ec[1], ec[1])(t, m))(m)\n : getColor(ec, ec)(t, m)\n\n return {\n field: {\n borderBottom: \"1px solid\",\n borderColor: \"inherit\",\n rounded: \"0\",\n px: \"0\",\n bg: \"transparent\",\n _hover: {\n borderColor: [\"blackAlpha.500\", \"whiteAlpha.400\"],\n },\n _readOnly: {\n boxShadow: \"none !important\",\n userSelect: \"all\",\n },\n _invalid: {\n borderColor: [errorBorderColor, errorBorderColor],\n boxShadow: `0px 1px 0px 0px ${errorBorderColor}`,\n },\n _active: {\n borderColor: [focusBorderColor, focusBorderColor],\n boxShadow: `0px 1px 0px 0px ${focusBorderColor}`,\n },\n _focusVisible: {\n borderColor: [focusBorderColor, focusBorderColor],\n boxShadow: `0px 1px 0px 0px ${focusBorderColor}`,\n },\n },\n addon: {\n borderBottom: \"1px solid\",\n borderColor: \"inherit\",\n bg: \"transparent\",\n rounded: \"0\",\n },\n }\n },\n unstyled: {\n field: {\n bg: \"transparent\",\n minH: \"auto\",\n px: \"0\",\n },\n addon: {\n bg: \"transparent\",\n minH: \"auto\",\n px: \"0\",\n },\n },\n },\n\n sizes: {\n xs: {\n field: {\n fontSize: \"xs\",\n px: \"2\",\n minH: \"6\",\n rounded: \"sm\",\n },\n addon: {\n fontSize: \"xs\",\n px: \"2\",\n minH: \"6\",\n rounded: \"sm\",\n },\n },\n sm: {\n field: {\n fontSize: \"sm\",\n px: \"2\",\n minH: \"8\",\n rounded: \"md\",\n },\n addon: {\n fontSize: \"sm\",\n px: \"2\",\n minH: \"8\",\n rounded: \"md\",\n },\n },\n md: {\n field: {\n fontSize: \"md\",\n px: \"3\",\n minH: \"10\",\n rounded: \"md\",\n },\n addon: {\n fontSize: \"md\",\n px: \"3\",\n minH: \"10\",\n rounded: \"md\",\n },\n },\n lg: {\n field: {\n fontSize: \"lg\",\n px: \"4\",\n minH: \"12\",\n rounded: \"md\",\n },\n addon: {\n fontSize: \"lg\",\n px: \"4\",\n minH: \"12\",\n rounded: \"md\",\n },\n },\n },\n\n defaultProps: {\n size: \"md\",\n variant: \"outline\",\n },\n}\n","import { mode, type ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { getMemoizedObject as get, isDark, randomColor } from \"@yamada-ui/utils\"\n\nexport const Avatar: ComponentMultiStyle = {\n baseStyle: {\n group: {},\n container: ({ theme: t, colorMode: m, name: string }) => {\n const bg = string\n ? randomColor({ string })\n : mode(\"gray.200\", \"gray.500\")(m)\n\n return {\n bg,\n color: isDark(bg)(t, m) ? \"white\" : \"black\",\n borderColor: [\"white\", \"black\"],\n verticalAlign: \"top\",\n _loaded: { bg: \"inherit\" },\n }\n },\n name: {},\n excess: {\n borderColor: [\"white\", \"black\"],\n bg: [\"blackAlpha.200\", \"whiteAlpha.200\"],\n },\n badge: {\n rounded: \"full\",\n borderWidth: \"0.2em\",\n borderColor: [\"white\", \"black\"],\n },\n },\n\n sizes: {\n \"2xs\": ({ theme: t }) => ({\n container: {\n w: \"4\",\n h: \"4\",\n fontSize: `calc(${get(t, \"sizes.4\")} / 2.5)`,\n },\n name: {\n fontSize: `calc(${get(t, \"sizes.4\")} / 2.5)`,\n lineHeight: get(t, \"sizes.16\"),\n },\n excess: {\n w: \"4\",\n h: \"4\",\n fontSize: `calc(${get(t, \"sizes.4\")} / 2.5)`,\n lineHeight: get(t, \"sizes.16\"),\n },\n }),\n xs: ({ theme: t }) => ({\n container: {\n w: \"6\",\n h: \"6\",\n fontSize: `calc(${get(t, \"sizes.6\")} / 2.5)`,\n },\n name: {\n fontSize: `calc(${get(t, \"sizes.6\")} / 2.5)`,\n lineHeight: get(t, \"sizes.16\"),\n },\n excess: { w: \"6\", h: \"6\" },\n }),\n sm: ({ theme: t }) => ({\n container: {\n w: \"8\",\n h: \"8\",\n fontSize: `calc(${get(t, \"sizes.8\")} / 2.5)`,\n },\n name: {\n fontSize: `calc(${get(t, \"sizes.8\")} / 2.5)`,\n lineHeight: get(t, \"sizes.16\"),\n },\n excess: { w: \"8\", h: \"8\" },\n }),\n md: ({ theme: t }) => ({\n container: {\n w: \"12\",\n h: \"12\",\n fontSize: `calc(${get(t, \"sizes.12\")} / 2.5)`,\n },\n name: {\n fontSize: `calc(${get(t, \"sizes.12\")} / 2.5)`,\n lineHeight: get(t, \"sizes.16\"),\n },\n excess: { w: \"12\", h: \"12\" },\n }),\n lg: ({ theme: t }) => ({\n container: {\n w: \"16\",\n h: \"16\",\n fontSize: `calc(${get(t, \"sizes.16\")} / 2.5)`,\n },\n name: {\n fontSize: `calc(${get(t, \"sizes.16\")} / 2.5)`,\n lineHeight: get(t, \"sizes.16\"),\n },\n excess: { w: \"16\", h: \"16\" },\n }),\n xl: ({ theme: t }) => ({\n container: {\n w: \"24\",\n h: \"24\",\n fontSize: `calc(${get(t, \"sizes.24\")} / 2.5)`,\n },\n name: {\n fontSize: `calc(${get(t, \"sizes.24\")} / 2.5)`,\n lineHeight: get(t, \"sizes.16\"),\n },\n excess: { w: \"24\", h: \"24\" },\n }),\n \"2xl\": ({ theme: t }) => ({\n container: {\n w: \"32\",\n h: \"32\",\n fontSize: `calc(${get(t, \"sizes.32\")} / 2.5)`,\n },\n name: {\n fontSize: `calc(${get(t, \"sizes.32\")} / 2.5)`,\n lineHeight: get(t, \"sizes.16\"),\n },\n excess: { w: \"32\", h: \"32\" },\n }),\n },\n\n defaultProps: {\n size: \"md\",\n },\n}\n","import type { ComponentStyle } from \"@yamada-ui/core\"\nimport { mode } from \"@yamada-ui/core\"\nimport {\n transparentizeColor,\n getColor,\n isGray,\n tintColor,\n shadeColor,\n} from \"@yamada-ui/utils\"\n\nexport const Badge: ComponentStyle = {\n baseStyle: {\n px: 1,\n textTransform: \"uppercase\",\n fontSize: \"xs\",\n rounded: \"sm\",\n fontWeight: \"bold\",\n },\n\n variants: {\n solid: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => ({\n bg: [tintColor(`${c}.600`, 24)(t, m), shadeColor(`${c}.600`, 16)(t, m)],\n color: `white`,\n }),\n subtle: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => ({\n bg: [\n isGray(c) ? `${c}.50` : `${c}.100`,\n shadeColor(`${c}.300`, 58)(t, m),\n ],\n color: [`${c}.800`, isGray(c) ? `${c}.50` : `${c}.200`],\n }),\n outline: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => {\n const color = mode(\n getColor(`${c}.500`)(t, m),\n getColor(\n isGray(c) ? `${c}.100` : transparentizeColor(`${c}.400`, 0.92)(t, m),\n )(t, m),\n )(m)\n\n return {\n color,\n boxShadow: `inset 0 0 0px 1px ${color}`,\n }\n },\n },\n\n defaultProps: {\n variant: \"subtle\",\n colorScheme: \"primary\",\n },\n}\n","import { mergeMultiStyle, type ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { LineChart } from \"./line-chart\"\n\nexport const BarChart: ComponentMultiStyle = mergeMultiStyle(LineChart, {\n baseStyle: {\n bar: {},\n activeBar: {},\n background: { fill: \"transparent\" },\n cursor: { strokeDasharray: \"5 5\" },\n },\n})({ omit: [\"dot\", \"activeDot\"] })\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const Breadcrumb: ComponentMultiStyle = {\n baseStyle: {\n container: {},\n item: {},\n link: {\n transitionProperty: \"common\",\n transitionDuration: \"fast\",\n transitionTimingFunction: \"ease-out\",\n textDecoration: \"none\",\n outline: \"none\",\n color: \"inherit\",\n \"&:not([aria-current=page])\": {\n cursor: \"pointer\",\n _hover: {\n textDecoration: \"underline\",\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n },\n },\n separator: {},\n },\n}\n","import type { ComponentStyle } from \"@yamada-ui/core\"\nimport { mode } from \"@yamada-ui/core\"\nimport {\n getMemoizedObject as get,\n transparentizeColor,\n isArray,\n getColor,\n isGray,\n isAccessible,\n} from \"@yamada-ui/utils\"\n\nexport const Button: ComponentStyle = {\n baseStyle: {\n cursor: \"pointer\",\n rounded: \"md\",\n fontWeight: \"semibold\",\n transitionProperty: \"common\",\n transitionDuration: \"slower\",\n _focus: {\n outline: \"none\",\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n boxShadow: \"none\",\n },\n _readOnly: {\n cursor: \"default\",\n _ripple: {\n display: \"none\",\n },\n },\n _hover: {\n _disabled: {\n bg: [\"initial\", \"initial\"],\n },\n },\n },\n\n variants: {\n solid: ({\n theme: t,\n colorMode: m,\n colorScheme: c = \"gray\",\n errorBorderColor: ec = [\"danger.500\", \"danger.400\"],\n }) => {\n const errorBorderColor = isArray(ec)\n ? mode(getColor(ec[0], ec[0])(t, m), getColor(ec[1], ec[1])(t, m))(m)\n : getColor(ec, ec)(t, m)\n\n return {\n bg: isGray(c)\n ? [`${c}.50`, `${c}.700`]\n : [isAccessible(c) ? `${c}.400` : `${c}.500`, `${c}.600`],\n color: [isGray(c) || isAccessible(c) ? `black` : `white`, `white`],\n _hover: {\n bg: isGray(c)\n ? [`${c}.100`, `${c}.800`]\n : [isAccessible(c) ? `${c}.500` : `${c}.600`, `${c}.700`],\n _disabled: {\n bg: isGray(c)\n ? [`${c}.50`, `${c}.700`]\n : [isAccessible(c) ? `${c}.400` : `${c}.500`, `${c}.600`],\n },\n },\n _invalid: {\n border: \"1px solid\",\n borderColor: errorBorderColor,\n boxShadow: `0 0 0 1px ${errorBorderColor}`,\n },\n _focusVisible: {\n borderColor: \"transparent\",\n boxShadow: \"outline\",\n },\n }\n },\n outline: ({\n theme: t,\n colorMode: m,\n colorScheme: c = \"gray\",\n errorBorderColor: ec = [\"danger.500\", \"danger.400\"],\n }) => {\n const errorBorderColor = isArray(ec)\n ? mode(getColor(ec[0], ec[0])(t, m), getColor(ec[1], ec[1])(t, m))(m)\n : getColor(ec, ec)(t, m)\n\n return {\n border: \"1px solid\",\n borderColor: [`${c}.600`, `${c}.500`],\n color: isGray(c)\n ? [\"blackAlpha.800\", \"whiteAlpha.700\"]\n : [`${c}.600`, `${c}.500`],\n bg: \"transparent\",\n _hover: {\n bg: [`${c}.50`, transparentizeColor(`${c}.600`, 0.12)(t, m)],\n },\n _invalid: {\n borderColor: [errorBorderColor, errorBorderColor],\n boxShadow: `0 0 0 1px ${errorBorderColor}`,\n },\n _focusVisible: {\n boxShadow: \"outline\",\n _invalid: {\n borderColor: \"transparent\",\n },\n },\n }\n },\n link: ({ colorScheme: c = \"gray\" }) => ({\n padding: 0,\n height: \"auto\",\n lineHeight: \"normal\",\n verticalAlign: \"baseline\",\n color: [`${c}.600`, `${c}.500`],\n _hover: {\n textDecoration: \"underline\",\n _disabled: {\n textDecoration: \"none\",\n },\n },\n _active: {\n color: [`${c}.700`, `${c}.600`],\n _disabled: {\n color: [`${c}.600`, `${c}.500`],\n },\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n _ripple: {\n display: \"none\",\n },\n }),\n ghost: ({\n theme: t,\n colorMode: m,\n colorScheme: c = \"gray\",\n errorBorderColor: ec = [\"danger.500\", \"danger.400\"],\n }) => {\n const errorBorderColor = isArray(ec)\n ? mode(getColor(ec[0], ec[0])(t, m), getColor(ec[1], ec[1])(t, m))(m)\n : getColor(ec, ec)(t, m)\n\n return {\n color: isGray(c)\n ? [\"blackAlpha.800\", \"whiteAlpha.700\"]\n : [`${c}.600`, `${c}.500`],\n bg: \"transparent\",\n _hover: {\n bg: [`${c}.50`, transparentizeColor(`${c}.600`, 0.12)(t, m)],\n },\n _invalid: {\n border: \"1px solid\",\n borderColor: errorBorderColor,\n boxShadow: `0 0 0 1px ${errorBorderColor}`,\n },\n _focusVisible: {\n borderColor: \"transparent\",\n boxShadow: \"outline\",\n },\n }\n },\n unstyled: {\n bg: \"none\",\n color: \"inherit\",\n display: \"inline\",\n lineHeight: \"inherit\",\n m: 0,\n p: 0,\n _ripple: {\n display: \"none\",\n },\n },\n },\n\n sizes: {\n xs: ({ theme: t }) => ({\n h: 6,\n minW: 6,\n fontSize: \"xs\",\n lineHeight: get(t, \"sizes.6\"),\n px: 2,\n }),\n sm: ({ theme: t }) => ({\n h: 8,\n minW: 8,\n fontSize: \"sm\",\n lineHeight: get(t, \"sizes.8\"),\n px: 3,\n }),\n md: ({ theme: t }) => ({\n h: 10,\n minW: 10,\n fontSize: \"md\",\n lineHeight: get(t, \"sizes.10\"),\n px: 4,\n }),\n lg: ({ theme: t }) => ({\n h: 12,\n minW: 12,\n fontSize: \"lg\",\n lineHeight: get(t, \"sizes.12\"),\n px: 6,\n }),\n },\n\n defaultProps: {\n variant: \"solid\",\n size: \"md\",\n colorScheme: \"gray\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport {\n isAccessible,\n isGray,\n shadeColor,\n transparentizeColor,\n} from \"@yamada-ui/utils\"\n\nexport const Calendar: ComponentMultiStyle = {\n baseStyle: {\n container: {\n gap: \"md\",\n },\n header: {},\n label: {\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n },\n labelIcon: {\n color: [\"blackAlpha.500\", \"whiteAlpha.500\"],\n },\n control: {\n color: [\"blackAlpha.500\", \"whiteAlpha.500\"],\n fontSize: \"1.25em\",\n _hidden: {\n opacity: 0,\n pointerEvents: \"none\",\n },\n },\n prev: {},\n next: {},\n content: {},\n year: {\n gridTemplateColumns: \"repeat(4, 1fr)\",\n },\n month: {\n gridTemplateColumns: \"repeat(3, 1fr)\",\n },\n button: {\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n boxShadow: \"none\",\n _focusVisible: {\n boxShadow: \"0 0 0 3px rgba(125, 125, 125, 0.6)\",\n },\n },\n },\n date: {},\n row: {},\n cell: {\n transitionProperty: \"common\",\n transitionDuration: \"slower\",\n },\n weekday: {\n userSelect: \"none\",\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n day: {\n _weekend: {\n color: [\"red.600\", \"red.400\"],\n },\n _outside: {\n color: [\"blackAlpha.500\", \"whiteAlpha.500\"],\n },\n _holiday: {\n color: [\"red.600\", \"red.400\"],\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n _ripple: {\n display: \"none\",\n },\n },\n },\n },\n\n variants: {\n solid: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => ({\n button: {\n _hover: {\n bg: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n _disabled: {\n bg: [\"initial\", \"initial\"],\n },\n },\n _selected: {\n bg: isGray(c)\n ? [`${c}.50`, `${c}.700`]\n : [isAccessible(c) ? `${c}.400` : `${c}.500`, `${c}.600`],\n color: [isGray(c) || isAccessible(c) ? `black` : `white`, `white`],\n },\n },\n cell: {\n _between: {\n bg: [\n isGray(c) ? transparentizeColor(`${c}.50`, 0.48)(t, m) : `${c}.50`,\n shadeColor(`${c}.300`, 72)(t, m),\n ],\n _start: {\n roundedLeft: \"md\",\n },\n _end: {\n roundedRight: \"md\",\n },\n },\n },\n day: {\n _hover: {\n bg: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n _between: {\n bg: [\"initial\", \"initial\"],\n },\n _selected: {\n bg: isGray(c)\n ? [`${c}.100`, `${c}.700`]\n : [isAccessible(c) ? `${c}.400` : `${c}.500`, `${c}.600`],\n },\n _disabled: {\n bg: [\"initial\", \"initial\"],\n },\n },\n _today: {\n bg: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n _between: {\n bg: [\"initial\", \"initial\"],\n },\n },\n _start: {\n roundedRight: \"0\",\n },\n _end: {\n roundedLeft: \"0\",\n },\n _selected: {\n bg: isGray(c)\n ? [`${c}.100`, `${c}.700`]\n : [isAccessible(c) ? `${c}.400` : `${c}.500`, `${c}.600`],\n color: [isGray(c) || isAccessible(c) ? `black` : `white`, `white`],\n borderColor: [\"transparent\", \"transparent\"],\n },\n },\n }),\n subtle: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => ({\n button: {\n _hover: {\n bg: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n _disabled: {\n bg: [\"initial\", \"initial\"],\n },\n },\n _selected: {\n bg: [\n isGray(c) ? `${c}.50` : `${c}.100`,\n shadeColor(`${c}.300`, 58)(t, m),\n ],\n color: [`${c}.800`, isGray(c) ? `${c}.50` : `${c}.200`],\n },\n },\n cell: {\n _between: {\n bg: [\n isGray(c) ? transparentizeColor(`${c}.50`, 0.48)(t, m) : `${c}.50`,\n shadeColor(`${c}.300`, 72)(t, m),\n ],\n _start: {\n roundedLeft: \"md\",\n },\n _end: {\n roundedRight: \"md\",\n },\n },\n },\n day: {\n _hover: {\n bg: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n _between: {\n bg: [\"initial\", \"initial\"],\n },\n _selected: {\n bg: [\n isGray(c) ? `${c}.50` : `${c}.100`,\n shadeColor(`${c}.300`, 58)(t, m),\n ],\n },\n _disabled: {\n bg: [\"initial\", \"initial\"],\n },\n },\n _today: {\n bg: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n _between: {\n bg: [\"initial\", \"initial\"],\n },\n },\n _start: {\n roundedRight: \"0\",\n },\n _end: {\n roundedLeft: \"0\",\n },\n _selected: {\n bg: [\n isGray(c) ? `${c}.50` : `${c}.100`,\n shadeColor(`${c}.300`, 58)(t, m),\n ],\n color: [`${c}.800`, isGray(c) ? `${c}.50` : `${c}.200`],\n borderColor: [\"transparent\", \"transparent\"],\n },\n },\n }),\n unstyled: {\n container: {\n gap: \"inherit\",\n fontSize: \"inherit\",\n },\n content: {\n w: \"auto\",\n },\n label: {\n h: \"auto\",\n pointerEvents: \"inherit\",\n _hover: {\n bg: \"inherit\",\n },\n _active: {\n bg: \"inherit\",\n pointerEvents: \"inherit\",\n },\n },\n labelIcon: {\n color: \"inherit\",\n },\n control: {\n fontSize: \"inherit\",\n w: \"auto\",\n h: \"auto\",\n _hover: {\n bg: \"inherit\",\n },\n _active: {\n bg: \"inherit\",\n },\n _hidden: {\n opacity: \"inherit\",\n pointerEvents: \"inherit\",\n },\n },\n button: {\n h: \"auto\",\n _hover: {\n bg: \"inherit\",\n },\n _active: {\n bg: \"inherit\",\n },\n _disabled: {\n opacity: \"inherit\",\n cursor: \"inherit\",\n boxShadow: \"inherit\",\n _focusVisible: {\n boxShadow: \"inherit\",\n },\n },\n },\n weekday: {\n userSelect: \"auto\",\n color: \"inherit\",\n w: \"auto\",\n h: \"auto\",\n },\n day: {\n w: \"auto\",\n h: \"auto\",\n _hover: {\n bg: \"inherit\",\n },\n _active: {\n bg: \"inherit\",\n },\n _weekend: {\n color: \"inherit\",\n },\n _outside: {\n color: \"inherit\",\n },\n _holiday: {\n color: \"inherit\",\n },\n _disabled: {\n opacity: \"inherit\",\n cursor: \"inherit\",\n boxShadow: \"inherit\",\n _focusVisible: {\n boxShadow: \"inherit\",\n },\n },\n },\n },\n },\n\n sizes: {\n sm: {\n container: {\n fontSize: \"xs\",\n },\n content: {\n w: 56,\n },\n label: {\n h: 8,\n },\n control: {\n w: 8,\n h: 8,\n },\n button: {\n h: 8,\n },\n weekday: {\n w: 8,\n h: 8,\n },\n day: {\n w: 8,\n h: 8,\n },\n },\n md: {\n container: {\n fontSize: \"sm\",\n },\n content: {\n w: \"17.5rem\",\n },\n label: {\n h: 10,\n },\n control: {\n w: 10,\n h: 10,\n },\n button: {\n h: 10,\n },\n weekday: {\n w: 10,\n h: 10,\n },\n day: {\n w: 10,\n h: 10,\n },\n },\n lg: {\n container: {\n fontSize: \"md\",\n },\n content: {\n w: \"21rem\",\n },\n label: {\n h: 12,\n },\n control: {\n fontSize: \"1.5em\",\n w: 12,\n h: 12,\n },\n button: {\n h: 12,\n },\n weekday: {\n w: 12,\n h: 12,\n },\n day: {\n w: 12,\n h: 12,\n },\n },\n full: {\n container: {\n w: \"full\",\n fontSize: \"md\",\n },\n content: {\n w: \"full\",\n },\n label: {\n h: 12,\n },\n control: {\n fontSize: \"1.5em\",\n w: 12,\n h: 12,\n },\n button: {\n h: 12,\n },\n weekday: {\n w: \"full\",\n h: 12,\n },\n day: {\n w: \"full\",\n h: 12,\n },\n },\n },\n\n defaultProps: {\n size: \"md\",\n variant: \"solid\",\n colorScheme: \"primary\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { shadeColor, tintColor } from \"@yamada-ui/utils\"\n\nexport const Card: ComponentMultiStyle = {\n baseStyle: {\n container: {},\n header: {},\n body: {\n flex: \"1\",\n },\n footer: {},\n },\n\n variants: {\n elevated: {\n container: {\n boxShadow: [\"md\", \"dark-md\"],\n },\n },\n outline: {\n container: {\n borderWidth: \"1px\",\n },\n },\n solid: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => ({\n container: {\n bg: [tintColor(`${c}.600`, 16)(t, m), shadeColor(`${c}.600`, 16)(t, m)],\n color: \"white\",\n },\n }),\n subtle: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => ({\n container: {\n bg: [`${c}.100`, shadeColor(`${c}.300`, 58)(t, m)],\n },\n }),\n unstyled: {\n container: { rounded: 0 },\n header: { p: 0 },\n body: { p: 0 },\n footer: { p: 0 },\n },\n },\n\n sizes: {\n sm: {\n container: { rounded: \"base\" },\n header: { pt: \"sm\", px: \"sm\", gap: \"sm\" },\n body: { py: \"sm\", px: \"sm\", gap: \"sm\" },\n footer: { pb: \"sm\", px: \"sm\", gap: \"sm\" },\n },\n md: {\n container: { rounded: \"md\" },\n header: { pt: \"md\", px: \"md\", gap: \"md\" },\n body: { py: \"md\", px: \"md\", gap: \"md\" },\n footer: { pb: \"md\", px: \"md\", gap: \"md\" },\n },\n normal: {\n container: { rounded: \"lg\" },\n header: { pt: \"normal\", px: \"normal\", gap: \"normal\" },\n body: { py: \"normal\", px: \"normal\", gap: \"normal\" },\n footer: { pb: \"normal\", px: \"normal\", gap: \"normal\" },\n },\n lg: {\n container: { rounded: \"xl\" },\n header: { pt: \"lg\", px: \"lg\", gap: \"lg\" },\n body: { py: \"lg\", px: \"lg\", gap: \"lg\" },\n footer: { pb: \"lg\", px: \"lg\", gap: \"lg\" },\n },\n },\n\n defaultProps: {\n variant: \"elevated\",\n colorScheme: \"primary\",\n size: \"md\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const Carousel: ComponentMultiStyle = {\n baseStyle: {\n container: {\n w: \"100%\",\n },\n inner: {},\n slide: {},\n control: {},\n prev: ({ orientation: o }) => ({\n ...(o === \"vertical\"\n ? { left: \"50%\", top: \"4\", transform: \"translateX(-50%)\" }\n : { top: \"50%\", left: \"4\", transform: \"translateY(-50%)\" }),\n }),\n next: ({ orientation: o }) => ({\n ...(o === \"vertical\"\n ? { left: \"50%\", bottom: \"4\", transform: \"translateX(-50%)\" }\n : { top: \"50%\", right: \"4\", transform: \"translateY(-50%)\" }),\n }),\n indicators: ({ orientation: o }) => ({\n gap: \"md\",\n ...(o === \"vertical\"\n ? {\n py: \"4\",\n h: \"100%\",\n top: \"50%\",\n right: \"4\",\n transform: \"translateY(-50%)\",\n }\n : {\n px: \"4\",\n w: \"100%\",\n h: \"2\",\n left: \"50%\",\n bottom: \"4\",\n transform: \"translateX(-50%)\",\n }),\n }),\n indicator: ({ orientation: o }) => ({\n rounded: \"full\",\n bg: [\"whiteAlpha.400\", \"blackAlpha.400\"],\n _hover: {\n bg: [\"whiteAlpha.500\", \"blackAlpha.500\"],\n },\n _active: {\n bg: [`whiteAlpha.600`, `blackAlpha.600`],\n },\n _selected: {\n bg: [`whiteAlpha.700`, `blackAlpha.700`],\n },\n transitionProperty: \"common\",\n transitionDuration: \"slower\",\n ...(o === \"vertical\" ? { h: \"8\", right: \"4\" } : { w: \"8\", bottom: \"4\" }),\n }),\n },\n\n sizes: {\n sm: {\n inner: {\n h: \"sm\",\n },\n indicators: ({ orientation: o }) => ({\n ...(o === \"vertical\" ? { w: \"1.5\" } : { h: \"1.5\" }),\n }),\n },\n md: {\n inner: {\n h: \"md\",\n },\n indicators: ({ orientation: o }) => ({\n ...(o === \"vertical\" ? { w: \"1.5\" } : { h: \"1.5\" }),\n }),\n },\n lg: {\n inner: {\n h: \"lg\",\n },\n indicators: ({ orientation: o }) => ({\n ...(o === \"vertical\" ? { w: \"2\" } : { h: \"2\" }),\n }),\n },\n xl: {\n inner: {\n h: \"xl\",\n },\n indicators: ({ orientation: o }) => ({\n ...(o === \"vertical\" ? { w: \"2\" } : { h: \"2\" }),\n }),\n },\n },\n\n defaultProps: {\n size: \"md\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const Checkbox: ComponentMultiStyle = {\n baseStyle: {\n container: {\n _readOnly: { cursor: \"auto\" },\n _disabled: { cursor: \"not-allowed\" },\n },\n icon: ({ colorScheme: c = \"primary\" }) => ({\n transitionProperty: \"box-shadow\",\n transitionDuration: \"normal\",\n border: \"2px solid\",\n borderColor: \"inherit\",\n color: [\"white\", \"black\"],\n _checked: {\n bg: `${c}.500`,\n borderColor: `${c}.500`,\n color: [\"white\", \"black\"],\n _hover: {\n bg: `${c}.600`,\n borderColor: `${c}.600`,\n },\n _disabled: {\n bg: [\"blackAlpha.400\", \"whiteAlpha.300\"],\n },\n },\n _indeterminate: {\n bg: `${c}.500`,\n borderColor: `${c}.500`,\n color: [\"white\", \"black\"],\n },\n _disabled: {\n bg: [\"blackAlpha.200\", \"whiteAlpha.100\"],\n borderColor: [\"transparent\", \"transparent\"],\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n _invalid: {\n borderColor: [\"danger.500\", \"danger.400\"],\n _focusVisible: {\n borderColor: \"inherit\",\n _checked: {\n borderColor: `${c}.500`,\n },\n },\n },\n }),\n label: {\n userSelect: \"none\",\n _disabled: { opacity: 0.4 },\n },\n },\n\n sizes: {\n sm: {\n icon: { boxSize: \"3.5\", rounded: \"base\", fontSize: \"2xs\" },\n label: { fontSize: \"sm\" },\n },\n md: {\n icon: { boxSize: \"4\", rounded: \"base\", fontSize: \"2xs\" },\n label: { fontSize: \"md\" },\n },\n lg: {\n icon: { boxSize: \"5\", rounded: \"base\", fontSize: \"sm\" },\n label: { fontSize: \"lg\" },\n },\n },\n\n defaultProps: {\n size: \"md\",\n colorScheme: \"primary\",\n },\n}\n","import { mergeStyle, type ComponentStyle } from \"@yamada-ui/core\"\nimport { Button } from \"./button\"\n\nexport const CloseButton: ComponentStyle = mergeStyle(Button, {\n baseStyle: {\n _hover: {\n bg: [\"blackAlpha.100\", \"whiteAlpha.100\"],\n },\n _active: {\n bg: [\"blackAlpha.200\", \"whiteAlpha.200\"],\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n },\n\n sizes: {\n sm: {\n boxSize: 6,\n fontSize: \"2xs\",\n },\n md: {\n boxSize: 8,\n fontSize: \"xs\",\n },\n lg: {\n boxSize: 10,\n fontSize: \"md\",\n },\n },\n\n defaultProps: {\n size: \"md\",\n },\n})({ omit: [\"variants\", \"sizes\", \"defaultProps\"] })\n","import { mergeMultiStyle, type ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { Input } from \"./input\"\nimport { Menu } from \"./menu\"\n\nexport const ColorPicker: ComponentMultiStyle = mergeMultiStyle(Input, Menu, {\n baseStyle: {\n container: {},\n inner: {},\n field: {\n pr: \"8\",\n pb: \"px\",\n _focus: {\n zIndex: \"unset\",\n },\n _readOnly: {\n pointerEvents: \"none\",\n },\n },\n swatch: {},\n eyeDropper: {\n w: \"6\",\n py: \"1\",\n fontSize: \"lg\",\n outline: 0,\n rounded: \"md\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n pointerEvents: \"auto\",\n color: [\"blackAlpha.600\", \"whiteAlpha.700\"],\n _hover: {\n color: [\"blackAlpha.500\", \"whiteAlpha.600\"],\n },\n _disabled: {\n pointerEvents: \"none\",\n opacity: 0.4,\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n },\n list: {\n w: \"auto\",\n minW: \"auto\",\n maxH: \"inherit\",\n overflowY: \"inherit\",\n p: \"2\",\n },\n },\n\n sizes: {\n xs: ({ withSwatch }) => ({\n field: {\n pl: withSwatch ? \"6\" : \"2\",\n },\n swatch: {\n insetStart: \"1\",\n boxSize: \"4\",\n },\n eyeDropper: {\n insetEnd: \"1\",\n fontSize: \"sm\",\n },\n }),\n sm: ({ withSwatch }) => ({\n field: {\n pl: withSwatch ? \"9\" : \"2\",\n },\n swatch: {\n insetStart: \"2\",\n boxSize: \"5\",\n },\n eyeDropper: {\n insetEnd: \"2\",\n },\n }),\n md: ({ withSwatch }) => ({\n field: {\n pl: withSwatch ? \"10\" : \"3\",\n },\n swatch: {\n insetStart: \"2\",\n boxSize: \"6\",\n },\n eyeDropper: {\n insetEnd: \"2\",\n },\n }),\n lg: ({ withSwatch }) => ({\n field: {\n pl: withSwatch ? \"12\" : \"4\",\n },\n swatch: {\n insetStart: \"2\",\n },\n eyeDropper: {\n insetEnd: \"2\",\n },\n }),\n },\n})({\n omit: [\n \"addon\",\n \"element\",\n \"button\",\n \"item\",\n \"command\",\n \"icon\",\n \"divider\",\n \"group\",\n \"groupLabel\",\n ],\n})\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const ColorSelector: ComponentMultiStyle = {\n baseStyle: {\n container: { w: \"full\" },\n saturationSlider: { maxW: \"full\" },\n body: {},\n sliders: { flex: \"1\" },\n hueSlider: {},\n alphaSlider: {},\n eyeDropper: {\n borderColor: \"border\",\n color: [\"blackAlpha.600\", \"whiteAlpha.700\"],\n _hover: {\n borderColor: [\"blackAlpha.500\", \"whiteAlpha.400\"],\n _disabled: {\n borderColor: \"inherit\",\n },\n },\n },\n result: {},\n channels: {},\n channelLabel: {\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n fontWeight: \"medium\",\n },\n channel: {},\n swatchesLabel: {\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n fontWeight: \"medium\",\n },\n swatches: {},\n swatch: {\n _readOnly: { cursor: \"auto\" },\n _disabled: {\n opacity: 0.6,\n cursor: \"not-allowed\",\n },\n },\n },\n\n sizes: {\n sm: {\n container: { w: \"xs\", gap: \"sm\" },\n body: { gap: \"xs\" },\n sliders: { gap: \"xs\" },\n channels: { gap: \"xs\" },\n eyeDropper: { boxSize: \"7\", fontSize: \"xs\" },\n result: { boxSize: \"7\" },\n channelLabel: { fontSize: \"xs\" },\n swatchesLabel: { fontSize: \"xs\" },\n swatches: { gap: \"xs\" },\n },\n md: {\n container: { w: \"sm\", gap: \"sm\" },\n body: { gap: \"sm\" },\n sliders: { gap: \"sm\" },\n channels: { gap: \"sm\" },\n eyeDropper: { boxSize: \"10\" },\n result: { boxSize: \"10\" },\n channelLabel: { fontSize: \"sm\", mb: \"xs\" },\n swatchesLabel: { fontSize: \"sm\", mb: \"xs\" },\n swatches: { gap: \"sm\" },\n },\n lg: {\n container: { w: \"md\", gap: \"md\" },\n body: { gap: \"sm\" },\n sliders: { gap: \"sm\" },\n channels: { gap: \"sm\" },\n eyeDropper: { boxSize: \"12\", fontSize: \"xl\" },\n result: { boxSize: \"12\" },\n channelLabel: { fontSize: \"md\", mb: \"xs\" },\n swatchesLabel: { fontSize: \"md\", mb: \"xs\" },\n swatches: { gap: \"sm\" },\n },\n full: {\n container: { w: \"full\", gap: \"md\" },\n body: { gap: \"sm\" },\n sliders: { gap: \"sm\" },\n channels: { gap: \"sm\" },\n eyeDropper: { boxSize: \"12\", fontSize: \"xl\" },\n result: { boxSize: \"12\" },\n channelLabel: { fontSize: \"md\", mb: \"xs\" },\n swatchesLabel: { fontSize: \"md\", mb: \"xs\" },\n swatches: { gap: \"sm\" },\n },\n },\n\n defaultProps: {\n size: \"md\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const ColorSwatch: ComponentMultiStyle = {\n baseStyle: {\n container: {},\n overlay: { boxSize: \"full\" },\n },\n\n variants: {\n basic: {\n container: { rounded: \"md\" },\n overlay: { rounded: \"md\" },\n },\n rounded: {\n container: { rounded: \"full\" },\n overlay: { rounded: \"full\" },\n },\n },\n\n sizes: {\n sm: {\n container: { boxSize: \"6\" },\n },\n md: {\n container: { boxSize: \"8\" },\n },\n lg: {\n container: { boxSize: \"10\" },\n },\n },\n\n defaultProps: {\n variant: \"basic\",\n size: \"md\",\n },\n}\n","import type { ComponentStyle } from \"@yamada-ui/core\"\n\nexport const Container: ComponentStyle = {\n baseStyle: {\n w: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: { base: \"lg\", sm: \"md\" },\n p: { base: \"lg\", sm: \"md\" },\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { Input } from \"./input\"\nimport { MultiSelect } from \"./multi-select\"\n\nexport const DatePicker: ComponentMultiStyle = mergeMultiStyle(\n Input,\n MultiSelect,\n {\n baseStyle: {\n container: {},\n field: {\n cursor: \"text\",\n pb: \"px\",\n _focus: {\n zIndex: \"unset\",\n },\n _readOnly: {\n pointerEvents: \"none\",\n },\n },\n list: {\n w: \"auto\",\n minW: \"auto\",\n maxH: \"inherit\",\n overflowY: \"inherit\",\n p: \"2\",\n },\n },\n\n sizes: {\n xs: {\n icon: {\n pt: \"2\",\n fontSize: \"md\",\n },\n },\n },\n },\n)({ omit: [\"addon\", \"element\", \"group\", \"groupLabel\", \"item\", \"itemIcon\"] })\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { Select } from \"./select\"\n\nexport const MultiSelect: ComponentMultiStyle = mergeMultiStyle(Select, {\n baseStyle: {\n clearIcon: {\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n pointerEvents: \"auto\",\n _hover: {\n opacity: 0.8,\n },\n _disabled: {\n pointerEvents: \"none\",\n opacity: 0.4,\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n },\n },\n})()\n","import { type ComponentMultiStyle, mergeMultiStyle } from \"@yamada-ui/core\"\nimport { Modal } from \"./modal\"\n\nexport const Dialog: ComponentMultiStyle = mergeMultiStyle(Modal)()\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const Modal: ComponentMultiStyle = {\n baseStyle: {\n container: {\n w: \"100%\",\n rounded: \"md\",\n bg: [\"white\", \"black\"],\n color: \"inherit\",\n boxShadow: [\"lg\", \"dark-lg\"],\n zIndex: \"recoome\",\n },\n closeButton: {\n top: \"3\",\n right: \"3\",\n },\n overlay: {\n bg: \"blackAlpha.600\",\n zIndex: \"burter\",\n },\n header: {\n pt: \"md\",\n px: \"md\",\n gap: \"md\",\n fontSize: \"xl\",\n fontWeight: \"semibold\",\n },\n body: {\n my: \"md\",\n px: \"md\",\n gap: \"md\",\n flex: \"1\",\n },\n footer: {\n px: \"md\",\n pb: \"md\",\n gap: \"md\",\n },\n },\n\n sizes: {\n xs: { container: { maxW: \"xs\" } },\n sm: { container: { maxW: \"sm\" } },\n md: { container: { maxW: \"md\" } },\n lg: { container: { maxW: \"lg\" } },\n xl: { container: { maxW: \"xl\" } },\n \"2xl\": { container: { maxW: \"2xl\" } },\n \"3xl\": { container: { maxW: \"3xl\" } },\n \"4xl\": { container: { maxW: \"4xl\" } },\n \"5xl\": { container: { maxW: \"5xl\" } },\n \"6xl\": { container: { maxW: \"6xl\" } },\n full: {\n container: { minW: \"100vw\", minH: \"100dvh\", rounded: 0 },\n },\n },\n\n defaultProps: {\n size: \"md\",\n },\n}\n","import type { ComponentStyle } from \"@yamada-ui/core\"\n\nexport const Divider: ComponentStyle = {\n baseStyle: {\n borderColor: \"border\",\n },\n\n variants: {\n solid: {\n borderStyle: \"solid\",\n },\n dashed: {\n borderStyle: \"dashed\",\n },\n dotted: {\n borderStyle: \"dotted\",\n },\n },\n\n defaultProps: { variant: \"solid\" },\n}\n","import { mergeMultiStyle, type ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { antonym, toCamelCase } from \"@yamada-ui/utils\"\nimport { Modal } from \"./modal\"\n\nexport const Drawer: ComponentMultiStyle = mergeMultiStyle(Modal, {\n baseStyle: {\n container: ({ isFullHeight, placement }) => ({\n ...(isFullHeight ? { height: \"100dvh\", rounded: 0 } : {}),\n [`rounded${toCamelCase(placement)}`]: 0,\n }),\n inner: {},\n body: {\n overflow: \"auto\",\n },\n dragBar: ({ placement }) => ({\n [`margin${toCamelCase(antonym(placement))}`]: \"md\",\n ...(placement === \"top\" || placement === \"bottom\"\n ? { mx: \"auto\", w: \"3xs\", minH: \"2\" }\n : { my: \"auto\", minW: \"2\", h: \"3xs\" }),\n bg: [\"blackAlpha.100\", \"whiteAlpha.100\"],\n rounded: \"full\",\n }),\n },\n\n sizes: {\n xs: { container: { maxW: \"xs\" } },\n sm: { container: { maxW: \"md\" } },\n md: { container: { maxW: \"lg\" } },\n lg: { container: { maxW: \"2xl\" } },\n xl: { container: { maxW: \"4xl\" } },\n full: {\n container: { minW: \"100vw\", minH: \"100dvh\", rounded: 0 },\n },\n },\n\n defaultProps: {\n size: \"md\",\n },\n})({ omit: [\"sizes\"] })\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mode } from \"@yamada-ui/core\"\nimport { getColor, isArray, transparentizeColor } from \"@yamada-ui/utils\"\n\nexport const Dropzone: ComponentMultiStyle = {\n baseStyle: ({ theme: t, colorMode: m }) => ({\n container: {\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n rounded: \"md\",\n w: \"100%\",\n bg: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n outline: 0,\n overflow: \"hidden\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n },\n _hover: {\n cursor: \"pointer\",\n bg: [\"blackAlpha.100\", \"whiteAlpha.100\"],\n },\n _loading: {\n cursor: \"not-allowed\",\n bg: [\"blackAlpha.100\", \"whiteAlpha.100\"],\n },\n _accept: {\n bg: [\"success.50\", transparentizeColor(\"success.400\", 0.12)(t, m)],\n borderColor: [\"success.500\", \"success.400\"],\n },\n _reject: {\n bg: [\"danger.50\", transparentizeColor(\"danger.400\", 0.12)(t, m)],\n borderColor: [\"danger.500\", \"danger.400\"],\n },\n },\n\n overlay: {\n bg: [\"whiteAlpha.600\", \"blackAlpha.600\"],\n zIndex: \"kurillin\",\n },\n }),\n\n variants: {\n solid: ({\n theme: t,\n colorMode: m,\n focusBorderColor: fc = \"focus\",\n errorBorderColor: ec = [\"danger.500\", \"danger.400\"],\n }) => {\n const focusBorderColor = isArray(fc)\n ? mode(getColor(fc[0], fc[0])(t, m), getColor(fc[1], fc[1])(t, m))(m)\n : getColor(fc, fc)(t, m)\n const errorBorderColor = isArray(ec)\n ? mode(getColor(ec[0], ec[0])(t, m), getColor(ec[1], ec[1])(t, m))(m)\n : getColor(ec, ec)(t, m)\n\n return {\n container: {\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n _invalid: {\n borderColor: errorBorderColor,\n boxShadow: `0 0 0 1px ${errorBorderColor}`,\n },\n _focus: {\n zIndex: \"yamcha\",\n borderColor: focusBorderColor,\n boxShadow: `0 0 0 1px ${focusBorderColor}`,\n },\n _focusVisible: {\n zIndex: \"yamcha\",\n borderColor: focusBorderColor,\n boxShadow: `0 0 0 1px ${focusBorderColor}`,\n },\n },\n }\n },\n dashed: ({\n theme: t,\n colorMode: m,\n focusBorderColor: fc = \"focus\",\n errorBorderColor: ec = [\"danger.500\", \"danger.400\"],\n }) => {\n const focusBorderColor = isArray(fc)\n ? mode(getColor(fc[0], fc[0])(t, m), getColor(fc[1], fc[1])(t, m))(m)\n : getColor(fc, fc)(t, m)\n const errorBorderColor = isArray(ec)\n ? mode(getColor(ec[0], ec[0])(t, m), getColor(ec[1], ec[1])(t, m))(m)\n : getColor(ec, ec)(t, m)\n\n return {\n container: {\n borderWidth: \"1px\",\n borderStyle: \"dashed\",\n _invalid: {\n borderColor: errorBorderColor,\n boxShadow: `0 0 0 1px ${errorBorderColor}`,\n },\n _focus: {\n zIndex: \"yamcha\",\n borderColor: focusBorderColor,\n boxShadow: `0 0 0 1px ${focusBorderColor}`,\n },\n _focusVisible: {\n zIndex: \"yamcha\",\n borderColor: focusBorderColor,\n boxShadow: `0 0 0 1px ${focusBorderColor}`,\n },\n },\n }\n },\n unstyled: {\n container: {\n color: \"inherit\",\n rounded: \"inherit\",\n bg: \"transparent\",\n h: \"auto\",\n _hover: {\n cursor: \"inherit\",\n bg: \"transparent\",\n },\n _loading: {\n cursor: \"auto\",\n bg: \"transparent\",\n },\n _accept: {\n bg: \"transparent\",\n borderColor: \"inherit\",\n },\n _reject: {\n bg: \"transparent\",\n borderColor: \"inherit\",\n },\n },\n overlay: {\n bg: \"transparent\",\n },\n },\n },\n\n sizes: {\n xs: {\n container: { h: \"xs\" },\n },\n sm: {\n container: { h: \"sm\" },\n },\n md: {\n container: { h: \"md\" },\n },\n lg: {\n container: { h: \"lg\" },\n },\n full: {\n container: { h: \"full\" },\n },\n },\n\n defaultProps: {\n size: \"sm\",\n variant: \"dashed\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mode } from \"@yamada-ui/core\"\nimport { getColor, isArray } from \"@yamada-ui/utils\"\n\nexport const Editable: ComponentMultiStyle = {\n baseStyle: {\n container: {\n w: \"full\",\n },\n preview: {\n rounded: \"md\",\n p: \"1\",\n whiteSpace: \"pre-line\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n },\n input: ({\n theme: t,\n colorMode: m,\n focusBorderColor: fc = \"focus\",\n errorBorderColor: ec = [\"danger.500\", \"danger.400\"],\n }) => {\n const focusBorderColor = isArray(fc)\n ? mode(getColor(fc[0], fc[0])(t, m), getColor(fc[1], fc[1])(t, m))(m)\n : getColor(fc, fc)(t, m)\n const errorBorderColor = isArray(ec)\n ? mode(getColor(ec[0], ec[0])(t, m), getColor(ec[1], ec[1])(t, m))(m)\n : getColor(ec, ec)(t, m)\n\n return {\n rounded: \"md\",\n p: \"1\",\n w: \"full\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _placeholder: { opacity: 0.6 },\n _invalid: {\n boxShadow: `0px 0px 0px 1px ${errorBorderColor}`,\n },\n _focus: {\n zIndex: \"yamcha\",\n boxShadow: `0px 0px 0px 1px ${focusBorderColor}`,\n },\n _focusVisible: {\n zIndex: \"yamcha\",\n boxShadow: `0px 0px 0px 1px ${focusBorderColor}`,\n },\n }\n },\n textarea: ({\n theme: t,\n colorMode: m,\n focusBorderColor: fc = \"focus\",\n errorBorderColor: ec = [\"danger.500\", \"danger.400\"],\n }) => {\n const focusBorderColor = isArray(fc)\n ? mode(getColor(fc[0], fc[0])(t, m), getColor(fc[1], fc[1])(t, m))(m)\n : getColor(fc, fc)(t, m)\n const errorBorderColor = isArray(ec)\n ? mode(getColor(ec[0], ec[0])(t, m), getColor(ec[1], ec[1])(t, m))(m)\n : getColor(ec, ec)(t, m)\n\n return {\n boxSizing: \"content-box\",\n rounded: \"md\",\n p: \"1\",\n w: \"full\",\n h: \"1lh\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _placeholder: { opacity: 0.6 },\n _invalid: {\n boxShadow: `0px 0px 0px 1px ${errorBorderColor}`,\n },\n _focus: {\n zIndex: \"yamcha\",\n boxShadow: `0px 0px 0px 1px ${focusBorderColor}`,\n },\n _focusVisible: {\n zIndex: \"yamcha\",\n boxShadow: `0px 0px 0px 1px ${focusBorderColor}`,\n },\n }\n },\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { Input } from \"./input\"\n\nexport const FileInput: ComponentMultiStyle = mergeMultiStyle(Input)()\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const FormControl: ComponentMultiStyle = {\n baseStyle: {\n container: {\n w: \"100%\",\n position: \"relative\",\n },\n label: {\n fontSize: \"md\",\n me: \"3\",\n mb: \"2\",\n fontWeight: \"medium\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n opacity: 1,\n _disabled: {\n opacity: 0.4,\n },\n },\n requiredIndicator: {\n ms: \"1\",\n color: [\"danger.500\", \"danger.400\"],\n },\n helperMessage: {\n mt: \"2\",\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n fontSize: \"sm\",\n },\n errorMessage: {\n mt: \"2\",\n color: [\"danger.500\", \"danger.400\"],\n fontSize: \"sm\",\n },\n },\n}\n","import type { ComponentStyle } from \"@yamada-ui/core\"\n\nexport const Heading: ComponentStyle = {\n baseStyle: {\n fontFamily: \"heading\",\n fontWeight: \"bold\",\n },\n\n sizes: {\n \"4xl\": {\n fontSize: { base: \"7xl\", sm: \"6xl\" },\n },\n \"3xl\": {\n fontSize: { base: \"6xl\", sm: \"5xl\" },\n },\n \"2xl\": {\n fontSize: { base: \"5xl\", sm: \"4xl\" },\n },\n xl: {\n fontSize: { base: \"4xl\", sm: \"3xl\" },\n },\n lg: {\n fontSize: { base: \"3xl\", sm: \"2xl\" },\n },\n md: { fontSize: \"xl\" },\n sm: { fontSize: \"md\" },\n xs: { fontSize: \"sm\" },\n },\n\n defaultProps: { size: \"xl\" },\n}\n","import type { ComponentStyle } from \"@yamada-ui/core\"\nimport { isGray, shadeColor } from \"@yamada-ui/utils\"\n\nexport const Indicator: ComponentStyle = {\n baseStyle: ({ withBorder }) => ({\n zIndex: \"kurillin\",\n rounded: \"full\",\n w: \"fit-content\",\n h: \"fit-content\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n outline: 0,\n whiteSpace: \"nowrap\",\n ...(withBorder\n ? { borderWidth: \"0.2em\", borderColor: [\"white\", \"black\"] }\n : {}),\n }),\n\n sizes: {\n sm: { minH: 2, minW: 2, fontSize: \"xs\", px: 1, lineHeight: 1.6 },\n md: { minH: 3, minW: 3, fontSize: \"sm\", px: 1.5, lineHeight: 1.5 },\n lg: { minH: 4, minW: 4, fontSize: \"md\", px: 2, lineHeight: 1.4 },\n },\n\n variants: {\n solid: ({ colorScheme: c = \"primary\" }) => ({\n bg: [`${c}.500`, `${c}.600`],\n color: `white`,\n var: [\n {\n __prefix: \"ui\",\n name: \"ping\",\n token: \"colors\",\n value: [`${c}.300`, `${c}.400`],\n },\n ],\n }),\n subtle: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => ({\n bg: [\n isGray(c) ? `${c}.50` : `${c}.100`,\n shadeColor(`${c}.300`, 58)(t, m),\n ],\n color: [`${c}.800`, isGray(c) ? `${c}.50` : `${c}.200`],\n var: [\n {\n __prefix: \"ui\",\n name: \"ping\",\n token: \"colors\",\n value: [\"blackAlpha.400\", \"whiteAlpha.500\"],\n },\n ],\n }),\n },\n\n defaultProps: {\n size: \"md\",\n variant: \"solid\",\n colorScheme: \"primary\",\n },\n}\n","import type { ComponentStyle } from \"@yamada-ui/core\"\n\nexport const Kbd: ComponentStyle = {\n baseStyle: {\n fontFamily: \"mono\",\n bg: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n rounded: \"md\",\n borderWidth: \"1px\",\n fontSize: \"0.8em\",\n fontWeight: \"bold\",\n lineHeight: \"shorter\",\n py: \"0.2em\",\n px: \"0.4em\",\n whiteSpace: \"nowrap\",\n },\n}\n","import type { ComponentStyle } from \"@yamada-ui/core\"\n\nexport const Link: ComponentStyle = {\n baseStyle: {\n transitionProperty: \"common\",\n transitionDuration: \"fast\",\n transitionTimingFunction: \"ease-out\",\n cursor: \"pointer\",\n textDecoration: \"none\",\n outline: \"none\",\n color: \"link\",\n _hover: {\n textDecoration: \"underline\",\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const List: ComponentMultiStyle = {\n baseStyle: {\n container: {},\n item: {},\n icon: {\n me: \"2\",\n display: \"inline-block\",\n verticalAlign: \"middle\",\n },\n },\n}\n","import type { ComponentStyle } from \"@yamada-ui/core\"\nimport { mode } from \"@yamada-ui/core\"\nimport { getColor, isGray, shadeColor, tintColor } from \"@yamada-ui/utils\"\n\nexport const Mark: ComponentStyle = {\n baseStyle: {\n px: \"1\",\n py: \"1\",\n },\n\n variants: {\n solid: ({ theme: t, colorMode: m, colorScheme: c = \"gray\" }) => ({\n bg: [tintColor(`${c}.600`, 24)(t, m), shadeColor(`${c}.600`, 16)(t, m)],\n color: `white`,\n }),\n subtle: ({ theme: t, colorMode: m, colorScheme: c = \"gray\" }) => ({\n bg: [\n isGray(c) ? `${c}.50` : `${c}.100`,\n shadeColor(`${c}.300`, 58)(t, m),\n ],\n color: [`${c}.800`, isGray(c) ? `${c}.50` : `${c}.200`],\n }),\n outline: ({ theme: t, colorMode: m, colorScheme: c = \"gray\" }) => {\n const color = mode(\n getColor(`${c}.500`)(t, m),\n getColor(isGray(c) ? `${c}.100` : `${c}.400`)(t, m),\n )(m)\n\n return {\n color,\n boxShadow: `inset 0 0 0px 1px ${color}`,\n }\n },\n \"text-accent\": ({ colorScheme: c = \"gray\" }) => ({\n color: [`${c}.500`, isGray(c) ? `${c}.100` : `${c}.400`],\n p: 0,\n }),\n unstyled: {\n p: 0,\n },\n },\n\n defaultProps: {\n variant: \"subtle\",\n colorScheme: \"secondary\",\n },\n}\n","import type { ComponentStyle } from \"@yamada-ui/core\"\n\nexport const Markdown: ComponentStyle = {\n baseStyle: {\n w: \"full\",\n \"*:first-of-type\": {\n mt: \"0 !important\",\n },\n \"h1, h2, h3, h4, h5, h6\": {\n mt: \"24px\",\n mb: \"16px\",\n fontWeight: \"semibold\",\n lineHeight: \"1.25\",\n },\n h1: {\n pb: \".3em\",\n fontSize: \"2em\",\n borderBottom: \"1px solid\",\n borderBottomColor: \"border\",\n },\n h2: {\n pb: \".3em\",\n fontSize: \"1.5em\",\n borderBottom: \"1px solid\",\n borderBottomColor: \"border\",\n },\n h3: {\n fontSize: \"1.25em\",\n },\n h4: {\n fontSize: \"1em\",\n },\n h5: {\n fontSize: \"0.875em\",\n },\n h6: {\n fontSize: \"0.85em\",\n },\n \"p, blockquote, ul, ol, dl, table, pre, details\": {\n mt: \"0px\",\n mb: \"16px\",\n },\n strong: { fontWeight: \"semibold\" },\n a: { color: \"link\", textDecoration: \"none\" },\n img: { maxW: \"100%\", boxSizing: \"content-box\" },\n blockquote: {\n px: \"1em\",\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n borderLeft: \"0.25em solid\",\n borderLeftColor: \"border\",\n },\n \"blockquote>:last-child\": { mb: 0 },\n ul: {\n pl: \"2em\",\n listStyleType: \"disc\",\n },\n \"li + li\": { mt: \"0.25em\" },\n \"code:not(pre > *)\": {\n py: \"0.2em\",\n px: \"0.4em\",\n m: 0,\n fontFamily: \"mono\",\n fontSize: \"85%\",\n bg: [\"blackAlpha.200\", \"whiteAlpha.300\"],\n rounded: \"6px\",\n },\n pre: { mt: \"16px\", fontSize: \"92.5%\", lineHeight: 1.45, rounded: \"6px\" },\n hr: { h: \"0.25em\", p: 0, my: \"24px\", bg: \"border\", border: 0 },\n table: {\n display: \"block\",\n w: \"max-content\",\n maxW: \"100%\",\n overflow: \"auto\",\n },\n tr: { borderTop: \"1px solid\", borderTopColor: \"border\" },\n th: {\n fontWeight: \"semibold\",\n },\n \"th, td\": {\n py: \"6px\",\n px: \"13px\",\n border: \"1px solid\",\n borderColor: \"border\",\n },\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { DatePicker } from \"./date-picker\"\n\nexport const MonthPicker: ComponentMultiStyle = mergeMultiStyle(DatePicker)()\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { MultiSelect } from \"./multi-select\"\n\nexport const MultiAutocomplete: ComponentMultiStyle =\n mergeMultiStyle(MultiSelect)()\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { DatePicker } from \"./date-picker\"\n\nexport const MultiDatePicker: ComponentMultiStyle =\n mergeMultiStyle(DatePicker)()\n","import type { ComponentMultiStyle, UIMultiStyle } from \"@yamada-ui/core\"\nimport { transparentizeColor, isGray, tintColor } from \"@yamada-ui/utils\"\n\nexport const NativeTable: ComponentMultiStyle = {\n baseStyle: {\n container: {\n w: \"100%\",\n },\n table: {\n h: \"100%\",\n w: \"100%\",\n fontVariantNumeric: \"lining-nums tabular-nums\",\n borderCollapse: \"collapse\",\n },\n tr: {\n _disabled: {\n cursor: \"not-allowed\",\n opacity: 0.4,\n _hover: {\n bg: [\"initial\", \"initial\"],\n },\n },\n },\n th: {\n fontFamily: \"heading\",\n fontWeight: \"semibold\",\n textAlign: \"start\",\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n textTransform: \"uppercase\",\n letterSpacing: \"wider\",\n },\n td: {\n textAlign: \"start\",\n },\n caption: {\n fontFamily: \"heading\",\n fontWeight: \"medium\",\n textAlign: \"center\",\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n },\n },\n\n variants: {\n simple: (({\n theme: t,\n colorMode: m,\n colorScheme: c = \"gray\",\n withBorder,\n withColumnBorders,\n highlightOnSelected,\n highlightOnHover,\n }) => ({\n table: {\n ...(withBorder ? { borderWidth: \"1px\" } : {}),\n },\n th: {\n borderBottomWidth: \"1px\",\n \"&[data-is-numeric=true]\": {\n textAlign: \"end\",\n },\n ...(withColumnBorders ? { _notLast: { borderRightWidth: \"1px\" } } : {}),\n },\n td: {\n borderBottomWidth: \"1px\",\n \"&[data-is-numeric=true]\": {\n textAlign: \"end\",\n },\n ...(withColumnBorders ? { _notLast: { borderRightWidth: \"1px\" } } : {}),\n },\n tbody: {\n tr: {\n ...(highlightOnSelected\n ? {\n _selected: {\n bg: [\n isGray(c)\n ? tintColor(`${c}.50`, 72)(t, m)\n : tintColor(`${c}.50`, 64)(t, m),\n transparentizeColor(`${c}.300`, 0.04)(t, m),\n ],\n },\n }\n : {}),\n ...(highlightOnHover\n ? {\n cursor: \"pointer\",\n transitionProperty: \"common\",\n transitionDuration: \"slow\",\n _hover: {\n bg: [\n transparentizeColor(`${c}.400`, 0.08)(t, m),\n transparentizeColor(`${c}.300`, 0.12)(t, m),\n ],\n },\n }\n : {}),\n },\n },\n tfoot: {\n tr: {\n _last: {\n th: { borderBottomWidth: 0 },\n },\n },\n },\n })) as UIMultiStyle,\n striped: (({\n theme: t,\n colorMode: m,\n colorScheme: c = \"gray\",\n withBorder,\n withColumnBorders,\n highlightOnHover,\n }) => ({\n table: {\n ...(withBorder ? { borderWidth: \"1px\" } : {}),\n },\n th: {\n borderBottomWidth: \"1px\",\n \"&[data-is-numeric=true]\": {\n textAlign: \"end\",\n },\n ...(withColumnBorders ? { _notLast: { borderRightWidth: \"1px\" } } : {}),\n },\n td: {\n borderBottomWidth: \"1px\",\n \"&[data-is-numeric=true]\": {\n textAlign: \"end\",\n },\n ...(withColumnBorders ? { _notLast: { borderRightWidth: \"1px\" } } : {}),\n },\n tbody: {\n tr: {\n _odd: {\n bg: [\n isGray(c)\n ? tintColor(`${c}.50`, 72)(t, m)\n : tintColor(`${c}.50`, 64)(t, m),\n transparentizeColor(`${c}.300`, 0.04)(t, m),\n ],\n },\n ...(highlightOnHover\n ? {\n cursor: \"pointer\",\n transitionProperty: \"common\",\n transitionDuration: \"slow\",\n _hover: {\n bg: [\n transparentizeColor(`${c}.400`, 0.08)(t, m),\n transparentizeColor(`${c}.300`, 0.12)(t, m),\n ],\n },\n }\n : {}),\n },\n },\n tfoot: {\n tr: {\n _last: {\n th: { borderBottomWidth: 0 },\n },\n },\n },\n })) as UIMultiStyle,\n unstyled: {},\n },\n\n sizes: {\n sm: {\n container: {\n gap: 2,\n },\n th: {\n px: 2,\n py: 1,\n fontSize: \"xs\",\n lineHeight: 5,\n },\n td: {\n px: 2,\n py: 1,\n fontSize: \"xs\",\n lineHeight: 5,\n },\n caption: {\n mt: 1,\n px: 2,\n py: 1,\n fontSize: \"xs\",\n },\n },\n md: {\n container: {\n gap: 4,\n },\n th: {\n px: 3,\n py: 2,\n fontSize: \"sm\",\n lineHeight: 5,\n },\n td: {\n px: 3,\n py: 2,\n fontSize: \"sm\",\n lineHeight: 5,\n },\n caption: {\n mt: 2,\n px: 3,\n py: 2,\n fontSize: \"sm\",\n },\n },\n lg: {\n container: {\n gap: 6,\n },\n th: {\n px: 4,\n py: 3,\n lineHeight: 6,\n },\n td: {\n px: 4,\n py: 3,\n lineHeight: 6,\n },\n caption: {\n mt: 3,\n px: 4,\n py: 3,\n },\n },\n xl: {\n container: {\n gap: 8,\n },\n th: {\n px: 6,\n py: 4,\n fontSize: \"lg\",\n lineHeight: 6,\n },\n td: {\n px: 6,\n py: 4,\n fontSize: \"lg\",\n lineHeight: 6,\n },\n caption: {\n mt: 4,\n px: 6,\n py: 4,\n fontSize: \"lg\",\n },\n },\n },\n\n defaultProps: {\n variant: \"simple\",\n size: \"md\",\n colorScheme: \"gray\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { Input } from \"./input\"\n\nexport const NumberInput: ComponentMultiStyle = mergeMultiStyle(Input, {\n baseStyle: {\n stepper: {\n borderStart: \"1px solid\",\n borderColor: \"inherit\",\n color: [\"blackAlpha.600\", \"whiteAlpha.700\"],\n _hover: {\n bg: [\"blackAlpha.100\", \"whiteAlpha.100\"],\n },\n _active: {\n bg: [\"blackAlpha.200\", \"whiteAlpha.200\"],\n },\n _readOnly: { cursor: \"auto\" },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n },\n },\n },\n\n variants: {\n flushed: {\n stepper: {\n bg: \"transparent\",\n border: \"none\",\n _hover: {\n bg: \"transparent\",\n opacity: 0.8,\n },\n _active: {\n bg: \"transparent\",\n opacity: 0.7,\n },\n _last: {\n border: \"none\",\n },\n },\n },\n unstyled: {\n stepper: {\n bg: \"transparent\",\n border: \"none\",\n _hover: {\n bg: \"transparent\",\n },\n _active: {\n bg: \"transparent\",\n },\n _last: {\n border: \"none\",\n },\n },\n },\n },\n\n sizes: {\n xs: {\n stepper: {\n fontSize: \"xs\",\n _first: {\n borderTopEndRadius: \"sm\",\n },\n _last: {\n borderBottomEndRadius: \"sm\",\n mt: \"-1px\",\n borderTop: \"1px solid\",\n borderColor: \"inherit\",\n },\n },\n },\n sm: {\n stepper: {\n fontSize: \"sm\",\n _first: {\n borderTopEndRadius: \"md\",\n },\n _last: {\n borderBottomEndRadius: \"md\",\n mt: \"-1px\",\n borderTop: \"1px solid\",\n borderColor: \"inherit\",\n },\n },\n },\n md: {\n stepper: {\n fontSize: \"md\",\n _first: {\n borderTopEndRadius: \"md\",\n },\n _last: {\n borderBottomEndRadius: \"md\",\n mt: \"-1px\",\n borderTop: \"1px solid\",\n borderColor: \"inherit\",\n },\n },\n },\n lg: {\n stepper: {\n fontSize: \"lg\",\n _first: {\n borderTopEndRadius: \"md\",\n },\n _last: {\n borderBottomEndRadius: \"md\",\n mt: \"-1px\",\n borderTop: \"1px solid\",\n borderColor: \"inherit\",\n },\n },\n },\n },\n})({ omit: [\"addon\"] })\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { transparentizeColor, isGray, isAccessible } from \"@yamada-ui/utils\"\n\nexport const Pagination: ComponentMultiStyle = {\n baseStyle: {\n container: {\n _disabled: {\n cursor: \"not-allowed\",\n },\n },\n inner: {\n flex: 1,\n },\n item: {\n px: 1,\n color: [\"blackAlpha.600\", \"whiteAlpha.700\"],\n rounded: \"md\",\n transitionProperty: \"common\",\n transitionDuration: \"slower\",\n _selected: { cursor: \"default\", pointerEvents: \"none\" },\n _focus: {\n outline: \"none\",\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n boxShadow: \"none\",\n },\n _hover: {\n _disabled: {\n bg: [\"initial\", \"initial\"],\n },\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n },\n first: {},\n last: {},\n prev: {},\n next: {},\n dots: { pointerEvents: \"none\" },\n },\n\n variants: {\n solid: ({ colorScheme: c = \"primary\" }) => ({\n item: {\n border: \"1px solid\",\n borderColor: \"border\",\n _selected: {\n bg: isGray(c)\n ? [`${c}.50`, `${c}.700`]\n : [isAccessible(c) ? `${c}.400` : `${c}.500`, `${c}.600`],\n borderColor: isGray(c)\n ? [`${c}.50`, `${c}.700`]\n : [isAccessible(c) ? `${c}.400` : `${c}.500`, `${c}.600`],\n color: [isGray(c) || isAccessible(c) ? `black` : `white`, `white`],\n _hover: {\n bg: isGray(c)\n ? [`${c}.100`, `${c}.800`]\n : [isAccessible(c) ? `${c}.500` : `${c}.600`, `${c}.700`],\n },\n },\n _hover: {\n bg: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n _disabled: {\n bg: [\"initial\", \"initial\"],\n },\n },\n _active: {\n bg: [\"blackAlpha.100\", \"whiteAlpha.100\"],\n },\n },\n dots: {\n border: \"0\",\n },\n }),\n outline: ({ colorScheme: c = \"primary\" }) => {\n return {\n item: {\n border: \"1px solid\",\n borderColor: \"border\",\n _selected: {\n bg: \"transparent\",\n borderColor: [`${c}.600`, `${c}.500`],\n color: isGray(c)\n ? [\"blackAlpha.800\", \"whiteAlpha.700\"]\n : [`${c}.600`, `${c}.500`],\n _hover: {\n bg: [\"transparent\", \"transparent\"],\n },\n },\n _hover: {\n bg: [\"blackAlpha.50\", \"whiteAlpha.50\"],\n _disabled: {\n bg: [\"initial\", \"initial\"],\n },\n },\n _active: {\n bg: [\"blackAlpha.100\", \"whiteAlpha.100\"],\n },\n },\n dots: {\n border: \"0\",\n },\n }\n },\n ghost: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => {\n return {\n item: {\n _selected: {\n bg: isGray(c) ? undefined : \"transparent\",\n fontWeight: \"semibold\",\n color: isGray(c)\n ? [\"blackAlpha.800\", \"whiteAlpha.700\"]\n : [`${c}.600`, `${c}.500`],\n },\n _hover: {\n bg: [`${c}.50`, transparentizeColor(`${c}.600`, 0.12)(t, m)],\n },\n _active: {\n bg: isGray(c)\n ? [`${c}.300`, `whiteAlpha.300`]\n : [`${c}.200`, transparentizeColor(`${c}.200`, 0.24)(t, m)],\n },\n },\n }\n },\n unstyled: {\n container: { gap: 0 },\n inner: { gap: 0 },\n item: { bg: \"none\", color: \"inherit\", minW: \"auto\", minH: \"auto\" },\n _ripple: { display: \"none\" },\n },\n },\n\n sizes: {\n xs: {\n container: {\n gap: \"xs\",\n },\n inner: {\n gap: \"xs\",\n },\n item: {\n minW: 6,\n minH: 6,\n fontSize: \"xs\",\n },\n },\n sm: {\n container: {\n gap: \"xs\",\n },\n inner: {\n gap: \"xs\",\n },\n item: {\n minW: 7,\n minH: 7,\n fontSize: \"sm\",\n },\n },\n md: {\n container: {\n gap: \"sm\",\n },\n inner: {\n gap: \"sm\",\n },\n item: {\n minW: 8,\n minH: 8,\n fontSize: \"md\",\n },\n },\n lg: {\n container: {\n gap: \"sm\",\n },\n inner: {\n gap: \"sm\",\n },\n item: {\n minW: 10,\n minH: 10,\n fontSize: \"lg\",\n },\n },\n xl: {\n container: {\n gap: \"md\",\n },\n inner: {\n gap: \"md\",\n },\n item: {\n minW: 12,\n minH: 12,\n fontSize: \"xl\",\n },\n },\n },\n\n defaultProps: {\n variant: \"solid\",\n size: \"md\",\n colorScheme: \"primary\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { Table } from \"./table\"\n\nexport const PagingTable: ComponentMultiStyle = mergeMultiStyle(Table, {\n baseStyle: {\n pagingControl: {\n gridTemplateColumns: \"1fr 5fr 1fr\",\n },\n },\n\n sizes: {\n sm: {\n pagingControl: {\n gap: 2,\n },\n },\n md: {\n pagingControl: {\n gap: 4,\n },\n },\n lg: {\n pagingControl: {\n gap: 6,\n },\n },\n xl: {\n pagingControl: {\n gap: 8,\n },\n },\n },\n})()\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { NativeTable } from \"./native-table\"\n\nexport const Table: ComponentMultiStyle = mergeMultiStyle(NativeTable, {\n baseStyle: {\n sortIcon: {},\n },\n\n sizes: {\n sm: {\n sortIcon: {\n right: 2,\n },\n },\n md: {\n sortIcon: {\n right: 3,\n },\n },\n lg: {\n sortIcon: {\n right: 4,\n },\n },\n xl: {\n sortIcon: {\n right: 6,\n },\n },\n },\n})()\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { Input } from \"./input\"\n\nexport const PinInput: ComponentMultiStyle = mergeMultiStyle(Input, {\n baseStyle: {\n container: {\n gap: \"sm\",\n },\n field: {\n textAlign: \"center\",\n },\n },\n\n variants: {\n unstyled: {\n field: {\n h: \"auto\",\n },\n },\n },\n\n sizes: {\n xs: {\n field: {\n fontSize: \"xs\",\n boxSize: \"6\",\n rounded: \"sm\",\n },\n },\n sm: {\n field: {\n fontSize: \"sm\",\n boxSize: \"8\",\n rounded: \"md\",\n },\n },\n md: {\n field: {\n fontSize: \"md\",\n boxSize: \"10\",\n rounded: \"md\",\n },\n },\n lg: {\n field: {\n fontSize: \"lg\",\n boxSize: \"12\",\n rounded: \"md\",\n },\n },\n },\n})({ omit: [\"addon\", \"sizes\"] })\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const Popover: ComponentMultiStyle = {\n baseStyle: {\n container: {\n rounded: \"md\",\n bg: [\"white\", \"black\"],\n border: \"1px solid\",\n borderColor: [\"blackAlpha.200\", \"whiteAlpha.100\"],\n color: \"inherit\",\n boxShadow: [\"lg\", \"dark-lg\"],\n zIndex: \"guldo\",\n _focusVisible: {\n outline: 0,\n boxShadow: \"outline\",\n },\n },\n closeButton: {\n top: \"2\",\n right: \"2\",\n },\n header: {\n p: \"sm\",\n gap: \"sm\",\n fontWeight: \"semibold\",\n borderBottom: \"1px solid\",\n borderColor: \"inherit\",\n },\n body: {\n my: \"sm\",\n px: \"sm\",\n gap: \"sm\",\n },\n footer: {\n p: \"sm\",\n gap: \"sm\",\n borderTop: \"1px solid\",\n borderColor: \"inherit\",\n },\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mode } from \"@yamada-ui/core\"\nimport { getColor, isArray } from \"@yamada-ui/utils\"\n\nexport const Progress: ComponentMultiStyle = {\n baseStyle: {\n track: {\n bg: \"border\",\n },\n filledTrack: ({\n theme: t,\n colorMode: m,\n colorScheme: c = \"primary\",\n hasStripe,\n isAnimation,\n filledTrackColor: f,\n }) => {\n hasStripe = !isAnimation && hasStripe\n\n const color = mode(\"rgba(255, 255, 255, 0.15)\", \"rgba(0,0,0,0.1)\")(m)\n\n const bgColor = f\n ? isArray(f)\n ? mode(getColor(f[0], f[0])(t, m), getColor(f[1], f[1])(t, m))(m)\n : getColor(f, f)(t, m)\n : getColor(`${c}.500`)(t, m)\n\n const bgImage = hasStripe\n ? `linear-gradient(\n 45deg,\n ${color} 25%,\n transparent 25%,\n transparent 50%,\n ${color} 50%,\n ${color} 75%,\n transparent 75%,\n transparent\n )`\n : isAnimation\n ? `linear-gradient(\n to right,\n transparent 0%,\n ${bgColor} 50%,\n transparent 100%\n )`\n : undefined\n\n return {\n transitionProperty: \"common\",\n transitionDuration: \"slow\",\n bgImage,\n ...(hasStripe ? { bgSize: \"1rem 1rem\" } : {}),\n ...(!isAnimation ? { bgColor } : {}),\n }\n },\n },\n\n sizes: {\n xs: {\n track: {\n h: \"1\",\n },\n },\n sm: {\n track: {\n h: \"2\",\n },\n },\n md: {\n track: {\n h: \"3\",\n },\n },\n lg: {\n track: {\n h: \"4\",\n },\n },\n },\n\n defaultProps: {\n size: \"md\",\n colorScheme: \"primary\",\n },\n}\n","import { mergeMultiStyle, type ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { LineChart } from \"./line-chart\"\n\nexport const RadarChart: ComponentMultiStyle = mergeMultiStyle(LineChart, {\n baseStyle: {\n radar: {},\n polarGrid: {\n stroke: [\"blackAlpha.400\", \"whiteAlpha.400\"],\n strokeWidth: 1,\n },\n polarAngleAxis: {},\n polarAngleAxisTick: {\n \"& > text\": {\n fill: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n fontSize: \"xs\",\n },\n },\n polarRadiusAxis: {\n \"& > line\": {\n stroke: [\"blackAlpha.400\", \"whiteAlpha.400\"],\n },\n },\n polarRadiusAxisTick: {\n \"& > text\": {\n fill: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n fontSize: \"xs\",\n },\n },\n },\n\n sizes: {\n sm: {\n container: {\n w: \"full\",\n },\n },\n md: {\n container: {\n w: \"full\",\n },\n },\n lg: {\n container: {\n w: \"full\",\n },\n },\n full: {\n container: {\n w: \"full\",\n },\n },\n },\n})({ omit: [\"line\", \"grid\"] })\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const Radio: ComponentMultiStyle = {\n baseStyle: {\n container: {\n _readOnly: { cursor: \"auto\" },\n _disabled: { cursor: \"not-allowed\" },\n },\n icon: ({ colorScheme: c = \"primary\" }) => ({\n transitionProperty: \"box-shadow\",\n transitionDuration: \"normal\",\n border: \"2px solid\",\n borderColor: \"inherit\",\n rounded: \"full\",\n color: \"white\",\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n _checked: {\n _before: {\n content: `\"\"`,\n display: \"inline-block\",\n rounded: \"full\",\n bg: [`${c}.500`, `${c}.600`],\n },\n _hover: {\n _before: {\n bg: [`${c}.600`, `${c}.700`],\n },\n },\n _disabled: {\n _before: {\n bg: [\"blackAlpha.400\", \"whiteAlpha.300\"],\n },\n _dark: {\n _before: {\n bg: \"whiteAlpha.300\",\n },\n },\n },\n },\n _disabled: {\n bg: [\"blackAlpha.200\", \"whiteAlpha.100\"],\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n _invalid: {\n borderColor: [\"danger.500\", \"danger.400\"],\n _focusVisible: {\n borderColor: [\"inherit\", \"inherit\"],\n },\n },\n }),\n label: {\n userSelect: \"none\",\n _disabled: { opacity: 0.4 },\n },\n },\n\n sizes: {\n sm: {\n icon: {\n boxSize: \"3.5\",\n _before: {\n boxSize: \"1.5\",\n },\n },\n label: { fontSize: \"sm\" },\n },\n md: {\n icon: {\n boxSize: \"4\",\n _before: {\n boxSize: \"2\",\n },\n },\n label: { fontSize: \"md\" },\n },\n lg: {\n icon: {\n boxSize: \"5\",\n _before: {\n boxSize: \"3\",\n },\n },\n label: { fontSize: \"lg\" },\n },\n },\n\n defaultProps: {\n size: \"md\",\n colorScheme: \"primary\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { DatePicker } from \"./date-picker\"\n\nexport const RangeDatePicker: ComponentMultiStyle =\n mergeMultiStyle(DatePicker)()\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mergeMultiStyle } from \"@yamada-ui/core\"\nimport { Slider } from \"./slider\"\n\nexport const RangeSlider: ComponentMultiStyle = mergeMultiStyle(Slider)()\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { shadeColor, tintColor } from \"@yamada-ui/utils\"\n\nexport const Slider: ComponentMultiStyle = {\n baseStyle: {\n container: ({ orientation: o }) => ({\n display: \"inline-block\",\n position: \"relative\",\n cursor: \"pointer\",\n _readOnly: { cursor: \"auto\" },\n _disabled: {\n opacity: 0.6,\n cursor: \"not-allowed\",\n },\n ...(o === \"vertical\" ? { h: \"100%\" } : { w: \"100%\" }),\n }),\n track: {\n overflow: \"hidden\",\n rounded: \"sm\",\n bg: \"border\",\n _disabled: {\n bg: [\"blackAlpha.200\", \"whiteAlpha.400\"],\n },\n },\n filledTrack: ({ colorScheme: c = \"primary\" }) => ({\n w: \"inherit\",\n h: \"inherit\",\n bg: [`${c}.500`, `${c}.400`],\n }),\n mark: {\n fontSize: \"sm\",\n },\n thumb: ({ theme: t, colorMode: m, orientation: o }) => ({\n position: \"absolute\",\n zIndex: \"yamcha\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n outline: 0,\n rounded: \"full\",\n bg: \"white\",\n boxShadow: \"base\",\n border: \"1px solid\",\n borderColor: \"transparent\",\n transitionProperty: \"transform\",\n transitionDuration: \"normal\",\n _focusVisible: {\n boxShadow: \"outline\",\n },\n _disabled: {\n bg: [tintColor(\"black\", 72)(t, m), shadeColor(\"white\", 64)],\n },\n ...(o === \"vertical\"\n ? {\n left: \"50%\",\n transform: `translateX(-50%)`,\n _active: {\n transform: `translateX(-50%) scale(1.15)`,\n },\n }\n : {\n top: \"50%\",\n transform: `translateY(-50%)`,\n _active: {\n transform: `translateY(-50%) scale(1.15)`,\n },\n }),\n }),\n },\n\n sizes: {\n sm: ({ orientation: o }) => ({\n track: o === \"vertical\" ? { w: \"0.5\" } : { h: \"0.5\" },\n thumb: { boxSize: \"2.5\" },\n mark: o === \"vertical\" ? { ml: \"2\" } : { mt: \"2\" },\n }),\n md: ({ orientation: o }) => ({\n track: o === \"vertical\" ? { w: \"1\" } : { h: \"1\" },\n thumb: { boxSize: \"3.5\" },\n mark: o === \"vertical\" ? { ml: \"3\" } : { mt: \"3\" },\n }),\n lg: ({ orientation: o }) => ({\n track: o === \"vertical\" ? { w: \"1.5\" } : { h: \"1.5\" },\n thumb: { boxSize: \"5\" },\n mark: o === \"vertical\" ? { ml: \"4\" } : { mt: \"4\" },\n }),\n },\n\n defaultProps: {\n size: \"md\",\n colorScheme: \"primary\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const Rating: ComponentMultiStyle = {\n baseStyle: ({ colorScheme: c = \"yellow\" }) => ({\n container: {\n w: \"max-content\",\n },\n group: {\n position: \"relative\",\n },\n item: {\n cursor: \"pointer\",\n rounded: \"sm\",\n color: [\"blackAlpha.300\", \"whiteAlpha.300\"],\n outline: \"none\",\n _notLast: {\n position: \"absolute\",\n top: 0,\n left: 0,\n },\n _readOnly: {\n cursor: \"default\",\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n _filled: {\n color: [`${c}.500`, `${c}.600`],\n },\n },\n icon: {\n fill: \"currentColor\",\n },\n }),\n\n sizes: {\n xs: {\n icon: {\n fontSize: \"md\",\n },\n },\n sm: {\n icon: {\n fontSize: \"lg\",\n },\n },\n md: {\n icon: {\n fontSize: \"xl\",\n },\n },\n lg: {\n icon: {\n fontSize: \"2xl\",\n },\n },\n xl: {\n icon: {\n fontSize: \"3xl\",\n },\n },\n },\n\n defaultProps: {\n size: \"md\",\n colorScheme: \"yellow\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const Reorder: ComponentMultiStyle = {\n baseStyle: {\n container: {\n w: \"100%\",\n },\n item: {\n w: \"100%\",\n h: \"100%\",\n _selected: {\n boxShadow: [\"md\", \"dark-md\"],\n },\n },\n trigger: {\n color: [\"blackAlpha.300\", \"whiteAlpha.300\"],\n },\n },\n\n variants: {\n elevated: {\n item: {\n bg: [\"white\", \"black\"],\n boxShadow: [\"base\", \"dark-md\"],\n },\n },\n outline: {\n item: {\n bg: [\"white\", \"black\"],\n borderWidth: \"1px\",\n },\n },\n unstyled: {\n item: { rounded: 0, p: 0, _selected: { boxShadow: \"unset\" } },\n },\n },\n\n sizes: {\n sm: {\n item: { rounded: \"base\", p: \"sm\" },\n },\n md: {\n item: { rounded: \"md\", p: \"md\" },\n },\n normal: {\n item: { rounded: \"lg\", p: \"normal\" },\n },\n lg: {\n item: { rounded: \"xl\", p: \"lg\" },\n },\n },\n\n defaultProps: {\n variant: \"outline\",\n size: \"md\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { isGray, transparentizeColor } from \"@yamada-ui/utils\"\n\nexport const Resizable: ComponentMultiStyle = {\n baseStyle: ({ direction: d }) => ({\n container: {},\n item: {},\n trigger: {},\n icon: {\n color: [\"blackAlpha.600\", \"whiteAlpha.700\"],\n rotate: d === \"vertical\" ? \"90deg\" : \"0deg\",\n },\n }),\n\n variants: {\n border: ({ direction: d }) => ({\n trigger: {\n bg: \"border\",\n ...(d === \"vertical\" ? { h: \"px\" } : { w: \"px\" }),\n _focus: {\n outline: \"none\",\n },\n _focusVisible: {\n outline: \"none\",\n bg: \"focus\",\n },\n _after: {\n content: \"''\",\n position: \"absolute\",\n ...(d === \"vertical\"\n ? { left: \"0\", right: \"0\", transform: \"translateY(-50%)\" }\n : { top: \"0\", bottom: \"0\", transform: \"translateX(-50%)\" }),\n ...(d === \"vertical\" ? { h: \"2\" } : { w: \"2\" }),\n },\n },\n icon: {\n p: \"1\",\n bg: \"border\",\n rounded: \"full\",\n },\n }),\n spacer: ({\n direction: d,\n theme: t,\n colorMode: m,\n colorScheme: c = \"gray\",\n }) => ({\n trigger: {\n ...(d === \"vertical\" ? { p: \"1\" } : { p: \"1\" }),\n _after: {\n transitionProperty: \"common\",\n transitionDuration: \"slower\",\n bg: \"transparent\",\n content: \"''\",\n display: \"block\",\n rounded: \"full\",\n ...(d === \"vertical\" ? { w: \"full\", h: \"2\" } : { w: \"2\", h: \"full\" }),\n },\n _dark: {\n _after: {\n bg: \"transparent\",\n },\n },\n _focus: {\n outline: \"none\",\n },\n _active: {\n _after: {\n bg: isGray(c) ? \"border\" : `${c}.50`,\n },\n _dark: {\n _after: {\n bg: isGray(c)\n ? \"border\"\n : transparentizeColor(`${c}.600`, 0.12)(t, m),\n },\n },\n },\n _focusVisible: {\n outline: \"none\",\n _after: {\n bg: isGray(c) ? \"border\" : `${c}.100`,\n },\n _dark: {\n _after: {\n bg: isGray(c)\n ? \"border\"\n : transparentizeColor(`${c}.600`, 0.24)(t, m),\n },\n },\n },\n },\n icon: {\n transitionProperty: \"common\",\n transitionDuration: \"slower\",\n _active: {\n color: [\"transparent\", \"transparent\"],\n },\n },\n }),\n unstyled: ({ direction: d }) => ({\n trigger: {\n _after: {\n content: \"''\",\n position: \"absolute\",\n ...(d === \"vertical\"\n ? { left: \"0\", right: \"0\", transform: \"translateY(-50%)\" }\n : { top: \"0\", bottom: \"0\", transform: \"translateX(-50%)\" }),\n ...(d === \"vertical\" ? { h: \"2\" } : { w: \"2\" }),\n },\n },\n }),\n },\n\n defaultProps: {\n variant: \"border\",\n colorScheme: \"gray\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const SaturationSlider: ComponentMultiStyle = {\n baseStyle: {\n container: {\n w: \"full\",\n rounded: \"md\",\n cursor: \"pointer\",\n _readOnly: { cursor: \"auto\" },\n _disabled: {\n opacity: 0.6,\n cursor: \"not-allowed\",\n },\n },\n inner: {\n rounded: \"md\",\n },\n overlay: {\n rounded: \"md\",\n },\n track: {},\n thumb: {\n rounded: \"full\",\n outline: 0,\n borderWidth: \"3px\",\n borderColor: \"whiteAlpha.950\",\n boxShadow: [\"md\", \"dark-md\"],\n transitionProperty: \"transform\",\n transitionDuration: \"normal\",\n _active: {\n transform: `scale(1.15)`,\n },\n _focusVisible: {\n boxShadow: [\"outline\", \"outline\"],\n },\n },\n },\n\n sizes: {\n sm: {\n container: { maxW: \"xs\" },\n thumb: { boxSize: \"3\" },\n },\n md: {\n container: { maxW: \"sm\" },\n thumb: { boxSize: \"4\" },\n },\n lg: {\n container: { maxW: \"md\" },\n thumb: { boxSize: \"5\" },\n },\n full: {\n container: { maxW: \"full\" },\n thumb: { boxSize: \"5\" },\n },\n },\n\n defaultProps: {\n size: \"md\",\n },\n}\n","import type { ComponentStyle } from \"@yamada-ui/core\"\n\nexport const ScrollArea: ComponentStyle = {\n baseStyle: {\n outline: 0,\n _focusVisible: {\n boxShadow: \"inline\",\n },\n _scrollbar: {\n w: \"3\",\n h: \"3\",\n },\n _scrollbarTrack: {\n bg: \"transparent\",\n },\n _scrollbarThumb: {\n bg: \"blackAlpha.600\",\n bgClip: \"padding-box\",\n border: \"3px solid transparent\",\n rounded: \"full\",\n _nativeHover: {\n bg: \"blackAlpha.800\",\n bgClip: \"padding-box\",\n },\n },\n _dark: {\n _scrollbarThumb: {\n bg: \"whiteAlpha.600\",\n bgClip: \"padding-box\",\n _nativeHover: {\n bg: \"whiteAlpha.800\",\n bgClip: \"padding-box\",\n },\n },\n },\n _scrollbarButton: {},\n _scrollbarCorner: {\n bg: \"transparent\",\n },\n \"@-moz-document url-prefix()\": {\n scrollbarColor: \"whiteAlpha.600 transparent\",\n _light: {\n scrollbarColor: \"whiteAlpha.600 transparent\",\n },\n _dark: {\n scrollbarColor: \"whiteAlpha.600 transparent\",\n },\n },\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { isAccessible, isGray } from \"@yamada-ui/utils\"\n\nexport const SegmentedControl: ComponentMultiStyle = {\n baseStyle: {\n container: {\n p: \"1\",\n bg: [\"blackAlpha.100\", \"whiteAlpha.50\"],\n _readOnly: { cursor: \"default\" },\n _disabled: { cursor: \"not-allowed\" },\n },\n cursor: {\n boxShadow: [\"md\", \"dark-md\"],\n },\n button: {\n transitionProperty: \"common\",\n transitionDuration: \"ultra-slow\",\n fontWeight: \"medium\",\n whiteSpace: \"nowrap\",\n color: [\"blackAlpha.800\", \"whiteAlpha.800\"],\n _hover: {\n opacity: 0.7,\n _checked: {\n opacity: 1,\n },\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n _readOnly: { cursor: \"default\" },\n _disabled: { opacity: 0.4, cursor: \"not-allowed\" },\n },\n },\n\n variants: {\n basic: ({ colorScheme: c = \"gray\" }) => ({\n container: {\n rounded: \"lg\",\n },\n cursor: {\n bg: isGray(c)\n ? [`whiteAlpha.800`, `${c}.700`]\n : [isAccessible(c) ? `${c}.400` : `${c}.500`, `${c}.600`],\n color: [isGray(c) || isAccessible(c) ? `black` : `white`, `white`],\n rounded: \"md\",\n },\n button: {\n rounded: \"md\",\n _checked: {\n color: [isGray(c) || isAccessible(c) ? `black` : `white`, `white`],\n },\n },\n }),\n rounded: ({ colorScheme: c = \"gray\" }) => ({\n container: {\n rounded: \"full\",\n },\n cursor: {\n bg: isGray(c)\n ? [`whiteAlpha.800`, `${c}.700`]\n : [isAccessible(c) ? `${c}.400` : `${c}.500`, `${c}.600`],\n color: [isGray(c) || isAccessible(c) ? `black` : `white`, `white`],\n rounded: \"full\",\n },\n button: {\n rounded: \"full\",\n _checked: {\n color: [isGray(c) || isAccessible(c) ? `black` : `white`, `white`],\n },\n },\n }),\n },\n\n sizes: {\n sm: {\n container: { minW: \"xs\" },\n button: { py: \"1\", px: \"2\", fontSize: \"sm\" },\n },\n md: {\n container: { minW: \"sm\" },\n button: { py: \"1.5\", px: \"3\", fontSize: \"md\" },\n },\n lg: {\n container: { minW: \"md\" },\n button: { py: \"2\", px: \"4\" },\n },\n },\n\n defaultProps: {\n variant: \"basic\",\n size: \"md\",\n },\n}\n","import type { ComponentStyle } from \"@yamada-ui/core\"\n\nexport const Skeleton: ComponentStyle = {\n baseStyle: {\n background: [\"blackAlpha.300\", \"whiteAlpha.300\"],\n borderColor: [\"blackAlpha.400\", \"whiteAlpha.400\"],\n opacity: 0.7,\n borderRadius: \"sm\",\n },\n defaultProps: {\n startColor: [\"blackAlpha.300\", \"whiteAlpha.300\"],\n endColor: [\"blackAlpha.400\", \"whiteAlpha.400\"],\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\n\nexport const Stat: ComponentMultiStyle = {\n baseStyle: {\n container: {},\n label: {\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n fontWeight: \"medium\",\n },\n number: ({ colorScheme: c }) => ({\n fontFeatureSettings: '\"pnum\"',\n fontVariantNumeric: \"proportional-nums\",\n verticalAlign: \"baseline\",\n fontSize: \"5xl\",\n color: c\n ? [`${c}.500`, `${c}.600`]\n : [\"blackAlpha.800\", \"whiteAlpha.700\"],\n fontWeight: \"extrabold\",\n }),\n helperMessage: {\n fontSize: \"sm\",\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n },\n icon: {\n marginEnd: \"1\",\n w: \"3.5\",\n h: \"3.5\",\n verticalAlign: \"middle\",\n var: [\n {\n __prefix: \"ui\",\n name: \"increase\",\n token: \"colors\",\n value: \"success.400\",\n },\n {\n __prefix: \"ui\",\n name: \"decrease\",\n token: \"colors\",\n value: \"danger.400\",\n },\n ],\n },\n },\n\n defaultProps: {},\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { getMemoizedObject as get } from \"@yamada-ui/utils\"\n\nexport const Stepper: ComponentMultiStyle = {\n baseStyle: ({ colorScheme: c = \"primary\" }) => ({\n stepper: {\n w: \"100%\",\n display: \"flex\",\n justifyContent: \"space-between\",\n _vertical: {\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n gap: 0,\n },\n _horizontal: {\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 4,\n },\n },\n step: {\n position: \"relative\",\n display: \"flex\",\n gap: 2,\n flex: 1,\n flexShrink: 0,\n _horizontal: {\n alignItems: \"center\",\n },\n \"&:last-of-type:not([data-stretch])\": {\n flex: \"initial\",\n },\n },\n status: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexShrink: 0,\n rounded: \"full\",\n transitionProperty: \"common\",\n transitionDuration: \"slow\",\n \"&[data-status=active]\": {\n borderWidth: \"2px\",\n borderColor: [`${c}.500`, `${c}.400`],\n },\n \"&[data-status=complete]\": {\n bg: [`${c}.500`, `${c}.400`],\n color: [\"white\", \"black\"],\n },\n \"&[data-status=incomplete]\": {\n borderWidth: \"2px\",\n },\n },\n icon: {\n flexShrink: 0,\n },\n number: {},\n title: {\n fontWeight: \"medium\",\n },\n description: {\n color: [\"blackAlpha.700\", \"whiteAlpha.600\"],\n },\n separator: {\n bg: \"border\",\n flex: 1,\n transitionProperty: \"common\",\n transitionDuration: \"slow\",\n \"&[data-status=complete]\": {\n bg: [`${c}.500`, `${c}.400`],\n },\n _vertical: {\n position: \"absolute\",\n w: 0.5,\n h: \"100%\",\n },\n _horizontal: {\n w: \"100%\",\n h: 0.5,\n ms: 2,\n },\n },\n }),\n\n sizes: {\n sm: ({ theme: t }) => ({\n title: {\n fontSize: \"sm\",\n },\n description: {\n fontSize: \"xs\",\n },\n status: {\n w: 6,\n h: 6,\n },\n icon: {\n w: 4,\n h: 4,\n },\n number: {\n fontSize: \"sm\",\n },\n separator: {\n maxHeight: `calc(100% - ${get(t, \"sizes.6\")} - 8px)`,\n top: `calc(${get(t, \"sizes.6\")} + 4px)`,\n insetStart: `calc(${get(t, \"sizes.6\")} / 2 - 1px)`,\n },\n }),\n md: ({ theme: t }) => ({\n title: {\n fontSize: \"md\",\n },\n description: {\n fontSize: \"sn\",\n },\n status: {\n w: 8,\n h: 8,\n },\n icon: {\n w: 5,\n h: 5,\n },\n number: {\n fontSize: \"md\",\n },\n separator: {\n maxHeight: `calc(100% - ${get(t, \"sizes.8\")} - 8px)`,\n top: `calc(${get(t, \"sizes.8\")} + 4px)`,\n insetStart: `calc(${get(t, \"sizes.8\")} / 2 - 1px)`,\n },\n }),\n lg: ({ theme: t }) => ({\n title: {\n fontSize: \"lg\",\n },\n description: {\n fontSize: \"md\",\n },\n status: {\n w: 10,\n h: 10,\n },\n icon: {\n w: 6,\n h: 6,\n },\n number: {\n fontSize: \"lg\",\n },\n separator: {\n maxHeight: `calc(100% - ${get(t, \"sizes.10\")} - 8px)`,\n top: `calc(${get(t, \"sizes.10\")} + 4px)`,\n insetStart: `calc(${get(t, \"sizes.10\")} / 2 - 1px)`,\n },\n }),\n },\n\n defaultProps: {\n size: \"md\",\n colorScheme: \"primary\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { isGray, shadeColor } from \"@yamada-ui/utils\"\n\nexport const Switch: ComponentMultiStyle = {\n baseStyle: {\n container: {\n _readOnly: { cursor: \"auto\" },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n },\n },\n track: {\n rounded: \"full\",\n bg: [\"blackAlpha.400\", \"whiteAlpha.300\"],\n transitionProperty: \"common\",\n transitionDuration: \"fast\",\n _checked: {\n justifyContent: \"flex-end\",\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n },\n thumb: {\n rounded: \"inherit\",\n bg: \"white\",\n },\n label: {\n userSelect: \"none\",\n },\n },\n\n variants: {\n thick: ({ colorScheme: c = \"primary\" }) => ({\n track: {\n p: \"1\",\n _checked: {\n bg: [`${c}.500`, `${c}.600`],\n },\n },\n }),\n thin: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => ({\n track: {\n _checked: {\n bg: [\n isGray(c) ? `${c}.50` : `${c}.100`,\n shadeColor(`${c}.300`, 58)(t, m),\n ],\n },\n },\n thumb: {\n boxShadow: \"dark-md\",\n _checked: {\n bg: [`${c}.500`, `${c}.600`],\n },\n },\n }),\n },\n\n sizes: {\n sm: ({ variant: v }) => ({\n track: {\n w: \"6\",\n h: v === \"thin\" ? \"2\" : undefined,\n },\n thumb: {\n w: \"3\",\n h: \"3\",\n },\n label: { fontSize: \"sm\" },\n }),\n md: ({ variant: v }) => ({\n track: {\n w: \"8\",\n h: v === \"thin\" ? \"3\" : undefined,\n },\n thumb: {\n w: \"4\",\n h: \"4\",\n },\n label: { fontSize: \"md\" },\n }),\n lg: ({ variant: v }) => ({\n track: {\n w: \"10\",\n h: v === \"thin\" ? \"4\" : undefined,\n },\n thumb: {\n w: \"5\",\n h: \"5\",\n },\n label: { fontSize: \"lg\" },\n }),\n },\n\n defaultProps: {\n size: \"md\",\n variant: \"thick\",\n colorScheme: \"primary\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mode } from \"@yamada-ui/core\"\nimport { getColor, isGray, shadeColor, tintColor } from \"@yamada-ui/utils\"\n\nexport const Tabs: ComponentMultiStyle = {\n baseStyle: {\n container: ({ orientation }) => ({\n display: \"flex\",\n flexDirection: orientation === \"vertical\" ? \"row\" : \"column\",\n }),\n tabList: ({ align, orientation }) => ({\n flexDirection: orientation === \"vertical\" ? \"column\" : \"row\",\n justifyContent: align === \"center\" ? align : `flex-${align}`,\n }),\n tab: ({ isFitted }) => ({\n flex: isFitted ? 1 : undefined,\n whiteSpace: \"nowrap\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _hover: { opacity: 0.7 },\n _focusVisible: {\n zIndex: \"yamcha\",\n boxShadow: \"outline\",\n },\n _selected: { _hover: { opacity: 1 } },\n _disabled: {\n cursor: \"not-allowed\",\n opacity: 0.4,\n },\n }),\n tabPanels: {},\n tabPanel: {\n p: \"md\",\n },\n },\n\n variants: {\n line: ({ colorScheme: c = \"primary\", orientation }) => {\n const isVertical = orientation === \"vertical\"\n\n return {\n tabList: {\n borderColor: \"inherit\",\n ...(isVertical\n ? { borderEndWidth: \"1px\" }\n : { borderBottomWidth: \"1px\" }),\n },\n tab: {\n borderColor: \"transparent\",\n _selected: {\n color: [`${c}.500`, isGray(c) ? `${c}.100` : `${c}.400`],\n borderColor: \"currentColor\",\n },\n ...(isVertical\n ? {\n borderEndWidth: \"1px\",\n borderEndStyle: \"solid\",\n me: \"-1px\",\n }\n : {\n borderBottomWidth: \"1px\",\n borderBottomStyle: \"solid\",\n mb: \"-1px\",\n }),\n _ripple: { display: \"none\" },\n },\n }\n },\n sticky: ({ colorScheme: c = \"primary\", orientation }) => {\n const isVertical = orientation === \"vertical\"\n\n return {\n tabList: {\n borderColor: \"inherit\",\n ...(isVertical\n ? { borderEndWidth: \"1px\" }\n : { borderBottomWidth: \"1px\" }),\n },\n tab: {\n borderColor: \"transparent\",\n _selected: {\n color: [`${c}.500`, isGray(c) ? `${c}.100` : `${c}.400`],\n borderColor: \"inherit\",\n ...(isVertical\n ? { borderEndColor: [\"white\", \"black\"] }\n : { borderBottomColor: [\"white\", \"black\"] }),\n },\n ...(isVertical\n ? {\n roundedLeft: \"md\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n me: \"-2px\",\n }\n : {\n roundedTop: \"md\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n mb: \"-2px\",\n }),\n _ripple: { display: \"none\" },\n },\n }\n },\n \"sticky-subtle\": ({\n theme: t,\n colorMode: m,\n colorScheme: c = \"primary\",\n orientation,\n }) => {\n const isVertical = orientation === \"vertical\"\n\n return {\n tabList: {\n borderColor: \"inherit\",\n ...(isVertical\n ? { borderEndWidth: \"1px\" }\n : { borderBottomWidth: \"1px\" }),\n },\n tab: {\n borderColor: \"inherit\",\n _notLast: {\n ...(isVertical ? { borderBottom: \"none\" } : { borderEnd: \"none\" }),\n },\n _selected: {\n bg: [\n isGray(c) ? `${c}.50` : `${c}.100`,\n shadeColor(`${c}.300`, 58)(t, m),\n ],\n color: [`${c}.800`, isGray(c) ? `${c}.50` : `${c}.200`],\n },\n ...(isVertical\n ? {\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n me: \"-1px\",\n }\n : {\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n mb: \"-1px\",\n }),\n },\n }\n },\n \"sticky-solid\": ({\n theme: t,\n colorMode: m,\n colorScheme: c = \"primary\",\n orientation,\n }) => {\n const isVertical = orientation === \"vertical\"\n\n return {\n tabList: {\n borderColor: \"inherit\",\n ...(isVertical\n ? { borderEndWidth: \"1px\" }\n : { borderBottomWidth: \"1px\" }),\n },\n tab: {\n borderColor: \"inherit\",\n _notLast: {\n ...(isVertical ? { borderBottom: \"none\" } : { borderEnd: \"none\" }),\n },\n _selected: {\n bg: [\n tintColor(`${c}.600`, 24)(t, m),\n shadeColor(`${c}.600`, 16)(t, m),\n ],\n color: `white`,\n },\n ...(isVertical\n ? {\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n me: \"-1px\",\n }\n : {\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n mb: \"-1px\",\n }),\n },\n }\n },\n rounded: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => {\n const color = mode(\n getColor(`${c}.500`)(t, m),\n getColor(isGray(c) ? `${c}.100` : `${c}.400`)(t, m),\n )(m)\n\n return {\n tabList: { gap: \"sm\" },\n tab: {\n borderRadius: \"full\",\n _selected: {\n color,\n boxShadow: `inset 0 0 0px 1px ${color}`,\n },\n },\n }\n },\n \"rounded-subtle\": ({\n theme: t,\n colorMode: m,\n colorScheme: c = \"primary\",\n }) => ({\n tabList: { gap: \"sm\" },\n tab: {\n borderRadius: \"full\",\n _selected: {\n bg: [\n isGray(c) ? `${c}.50` : `${c}.100`,\n shadeColor(`${c}.300`, 58)(t, m),\n ],\n color: [`${c}.800`, isGray(c) ? `${c}.50` : `${c}.200`],\n },\n },\n }),\n \"rounded-solid\": ({\n theme: t,\n colorMode: m,\n colorScheme: c = \"primary\",\n }) => ({\n tabList: { gap: \"sm\" },\n tab: {\n borderRadius: \"full\",\n _selected: {\n bg: [\n tintColor(`${c}.600`, 24)(t, m),\n shadeColor(`${c}.600`, 16)(t, m),\n ],\n color: `white`,\n },\n },\n }),\n unstyled: {\n tab: {\n _hover: { opacity: \"inherit\" },\n _ripple: { display: \"none\" },\n },\n },\n },\n\n sizes: {\n sm: {\n tab: {\n py: 1,\n px: 3,\n fontSize: \"sm\",\n },\n },\n md: {\n tab: {\n fontSize: \"md\",\n py: 2,\n px: 4,\n },\n },\n lg: {\n tab: {\n fontSize: \"lg\",\n py: 3,\n px: 5,\n },\n },\n },\n\n defaultProps: {\n size: \"md\",\n variant: \"line\",\n colorScheme: \"primary\",\n },\n}\n","import type { ComponentMultiStyle } from \"@yamada-ui/core\"\nimport { mode } from \"@yamada-ui/core\"\nimport {\n getMemoizedObject as get,\n getColor,\n isGray,\n shadeColor,\n tintColor,\n} from \"@yamada-ui/utils\"\n\nexport const Tag: ComponentMultiStyle = {\n baseStyle: {\n container: {\n outline: 0,\n fontWeight: \"medium\",\n rounded: \"md\",\n _focusVisible: {\n boxShadow: \"outline\",\n },\n },\n label: {\n overflow: \"visible\",\n },\n closeButton: {\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n rounded: \"full\",\n opacity: 0.5,\n _disabled: {\n opacity: 0.4,\n },\n _hover: {\n opacity: 0.8,\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n },\n },\n _active: {\n opacity: 1,\n },\n _focusVisible: {\n boxShadow: \"outline\",\n bg: \"rgba(0, 0, 0, 0.14)\",\n },\n },\n },\n\n variants: {\n solid: {\n container: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => ({\n bg: [tintColor(`${c}.600`, 24)(t, m), shadeColor(`${c}.600`, 16)(t, m)],\n color: `white`,\n }),\n },\n subtle: {\n container: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => ({\n bg: [\n isGray(c) ? `${c}.50` : `${c}.100`,\n shadeColor(`${c}.300`, 58)(t, m),\n ],\n color: [`${c}.800`, isGray(c) ? `${c}.50` : `${c}.200`],\n }),\n },\n outline: {\n container: ({ theme: t, colorMode: m, colorScheme: c = \"primary\" }) => {\n const color = mode(\n getColor(`${c}.500`)(t, m),\n getColor(isGray(c) ? `${c}.100` : `${c}.400`)(t, m),\n )(m)\n\n return {\n color,\n boxShadow: `inset 0 0 0px 1px ${color}`,\n }\n },\n },\n },\n\n sizes: {\n sm: ({ theme: t }) => ({\n container: {\n minH: \"6\",\n minW: \"6\",\n fontSize: \"xs\",\n px: \"2\",\n lineHeight: get(t, \"sizes.6\"),\n },\n }),\n md: ({ theme: t }) => ({\n container: {\n minH: \"7\",\n minW: \"7\",\n fontSize: \"sm\",\n px: \"2\",\n lineHeight: get(t, \"sizes.7\"),\n },\n }),\n lg: ({ theme: t }) => ({\n container: {\n minH: \"8\",\n minW: \"8\",\n fontSize: \"md\",\n px: \"3\",\n lineHeight: get(t, \"sizes.8\"),\n },\n }),\n },\n\n defaultProps: {\n size: \"md\",\n variant: \"subtle\",\n colorScheme: \"primary\",\n },\n}\n","import type { ComponentStyle } from \"@yamada-ui/core\"\nimport { mergeStyle, pickStyle } from \"@yamada-ui/core\"\nimport { Input } from \"./input\"\n\nexport const Textarea: ComponentStyle = mergeStyle(pickStyle(Input, \"field\"), {\n baseStyle: {\n py: \"2\",\n lineHeight: \"short\",\n verticalAlign: \"top\",\n },\n\n variants: {\n unstyled: {\n h: \"auto\",\n py: \"0\",\n px: \"0\",\n },\n },\n\n sizes: {\n xs: {\n py: \"2\",\n minH: \"20\",\n },\n sm: {\n py: \"2\",\n minH: \"20\",\n },\n md: {\n py: \"2\",\n minH: \"20\",\n },\n lg: {\n py: \"3\",\n minH: \"20\",\n },\n },\n})()\n","import type { ComponentStyle } from \"@yamada-ui/core\"\nimport {\n getMemoizedObject as get,\n isAccessible,\n isGray,\n shadeColor,\n transparentizeColor,\n} from \"@yamada-ui/utils\"\n\nexport const Toggle: ComponentStyle = {\n baseStyle: {\n cursor: \"pointer\",\n rounded: \"md\",\n transitionProperty: \"common\",\n transitionDuration: \"slower\",\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n boxShadow: \"none\",\n },\n _readOnly: {\n cursor: \"default\",\n _ripple: {\n display: \"none\",\n },\n },\n },\n\n variants: {\n subtle: ({ theme: t, colorMode: m, colorScheme: c = \"gray\" }) => {\n return {\n _hover: {\n bg: [\n isGray(c) ? `blackAlpha.200` : `${c}.50`,\n transparentizeColor(`${c}.500`, 0.12)(t, m),\n ],\n },\n _selected: {\n bg: [\n isGray(c) ? `${c}.50` : `${c}.100`,\n shadeColor(`${c}.300`, 72)(t, m),\n ],\n },\n _focusVisible: {\n borderColor: \"transparent\",\n boxShadow: \"outline\",\n },\n }\n },\n solid: ({ theme: t, colorMode: m, colorScheme: c = \"gray\" }) => {\n return {\n _hover: {\n bg: [\n isGray(c) ? `blackAlpha.200` : `${c}.100`,\n shadeColor(`${c}.300`, 72)(t, m),\n ],\n },\n _selected: {\n bg: isGray(c)\n ? [`${c}.100`, `${c}.700`]\n : [isAccessible(c) ? `${c}.400` : `${c}.500`, `${c}.600`],\n color: [isGray(c) || isAccessible(c) ? `black` : `white`, `white`],\n },\n _focusVisible: {\n borderColor: \"transparent\",\n boxShadow: \"outline\",\n },\n }\n },\n outline: ({ theme: t, colorMode: m, colorScheme: c = \"gray\" }) => {\n return {\n border: \"1px solid\",\n borderColor: \"border\",\n _hover: {\n bg: [\n isGray(c) ? `blackAlpha.200` : `${c}.50`,\n transparentizeColor(`${c}.500`, 0.12)(t, m),\n ],\n },\n _selected: {\n bg: [\n isGray(c) ? `${c}.50` : `${c}.100`,\n shadeColor(`${c}.300`, 72)(t, m),\n ],\n borderColor: [\n isGray(c) ? `${c}.50` : `${c}.100`,\n shadeColor(`${c}.300`, 72)(t, m),\n ],\n },\n _focusVisible: {\n boxShadow: \"outline\",\n _invalid: {\n borderColor: \"transparent\",\n },\n },\n }\n },\n unstyled: {\n bg: \"none\",\n color: \"inherit\",\n display: \"inline\",\n lineHeight: \"inherit\",\n m: 0,\n p: 0,\n _ripple: {\n display: \"none\",\n },\n },\n },\n\n sizes: {\n xs: ({ theme: t }) => ({\n minBoxSize: 6,\n fontSize: \"xs\",\n lineHeight: get(t, \"sizes.6\"),\n }),\n sm: ({ theme: t }) => ({\n minBoxSize: 8,\n fontSize: \"sm\",\n lineHeight: get(t, \"sizes.8\"),\n }),\n md: ({ theme: t }) => ({\n minBoxSize: 10,\n fontSize: \"md\",\n lineHeight: get(t, \"sizes.10\"),\n }),\n lg: ({ theme: t }) => ({\n minBoxSize: 12,\n fontSize: \"lg\",\n lineHeight: get(t, \"sizes.12\"),\n }),\n },\n\n defaultProps: {\n variant: \"subtle\",\n size: \"md\",\n colorScheme: \"gray\",\n },\n}\n","import type { ComponentStyle } from \"@yamada-ui/core\"\n\nexport const Tooltip: ComponentStyle = {\n baseStyle: {\n rounded: \"md\",\n bg: [\"white\", \"black\"],\n border: \"1px solid\",\n borderColor: [\"blackAlpha.200\", \"whiteAlpha.100\"],\n px: \"sm\",\n py: \"0.5\",\n fontWeight: \"medium\",\n fontSize: \"sm\",\n color: \"inherit\",\n boxShadow: [\"md\", \"dark-md\"],\n maxW: \"xs\",\n zIndex: \"dodoria\",\n },\n}\n","import { Accordion } from \"./accordion\"\nimport { Alert } from \"./alert\"\nimport { AlphaSlider } from \"./alpha-slider\"\nimport { AreaChart } from \"./area-chart\"\nimport { Autocomplete } from \"./autocomplete\"\nimport { Avatar } from \"./avatar\"\nimport { Badge } from \"./badge\"\nimport { BarChart } from \"./bar-chart\"\nimport { Breadcrumb } from \"./breadcrumb\"\nimport { Button } from \"./button\"\nimport { Calendar } from \"./calendar\"\nimport { Card } from \"./card\"\nimport { Carousel } from \"./carousel\"\nimport { Checkbox } from \"./checkbox\"\nimport { CloseButton } from \"./close-button\"\nimport { ColorPicker } from \"./color-picker\"\nimport { ColorSelector } from \"./color-selector\"\nimport { ColorSwatch } from \"./color-swatch\"\nimport { Container } from \"./container\"\nimport { DatePicker } from \"./date-picker\"\nimport { Dialog } from \"./dialog\"\nimport { Divider } from \"./divider\"\nimport { Drawer } from \"./drawer\"\nimport { Dropzone } from \"./dropzone\"\nimport { Editable } from \"./editable\"\nimport { FileInput } from \"./file-input\"\nimport { FormControl } from \"./form-control\"\nimport { Heading } from \"./heading\"\nimport { HueSlider } from \"./hue-slider\"\nimport { Indicator } from \"./indicator\"\nimport { Input } from \"./input\"\nimport { Kbd } from \"./kbd\"\nimport { LineChart } from \"./line-chart\"\nimport { Link } from \"./link\"\nimport { List } from \"./list\"\nimport { Mark } from \"./mark\"\nimport { Markdown } from \"./markdown\"\nimport { Menu } from \"./menu\"\nimport { Modal } from \"./modal\"\nimport { MonthPicker } from \"./month-picker\"\nimport { MultiAutocomplete } from \"./multi-autocomplete\"\nimport { MultiDatePicker } from \"./multi-date-picker\"\nimport { MultiSelect } from \"./multi-select\"\nimport { NativeSelect } from \"./native-select\"\nimport { NativeTable } from \"./native-table\"\nimport { NumberInput } from \"./number-input\"\nimport { Pagination } from \"./pagination\"\nimport { PagingTable } from \"./paging-table\"\nimport { PinInput } from \"./pin-input\"\nimport { Popover } from \"./popover\"\nimport { Progress } from \"./progress\"\nimport { RadarChart } from \"./radar-chart\"\nimport { Radio } from \"./radio\"\nimport { RangeDatePicker } from \"./range-date-picker\"\nimport { RangeSlider } from \"./range-slider\"\nimport { Rating } from \"./rating\"\nimport { Reorder } from \"./reorder\"\nimport { Resizable } from \"./resizable\"\nimport { SaturationSlider } from \"./saturation-slider\"\nimport { ScrollArea } from \"./scroll-area\"\nimport { SegmentedControl } from \"./segmented-control\"\nimport { Select } from \"./select\"\nimport { Skeleton } from \"./skeleton\"\nimport { Slider } from \"./slider\"\nimport { Stat } from \"./stat\"\nimport { Stepper } from \"./stepper\"\nimport { Switch } from \"./switch\"\nimport { Table } from \"./table\"\nimport { Tabs } from \"./tabs\"\nimport { Tag } from \"./tag\"\nimport { Textarea } from \"./textarea\"\nimport { Toggle } from \"./toggle\"\nimport { Tooltip } from \"./tooltip\"\n\nexport default {\n Toggle,\n Accordion,\n Alert,\n AlphaSlider,\n AreaChart,\n Autocomplete,\n Avatar,\n Badge,\n BarChart,\n Breadcrumb,\n Button,\n Calendar,\n Card,\n Carousel,\n Checkbox,\n CloseButton,\n ColorPicker,\n ColorSelector,\n ColorSwatch,\n Container,\n DatePicker,\n Dialog,\n Divider,\n Drawer,\n Dropzone,\n Editable,\n FileInput,\n FormControl,\n Heading,\n HueSlider,\n Indicator,\n Input,\n Kbd,\n LineChart,\n Link,\n List,\n Mark,\n Markdown,\n Menu,\n Modal,\n MonthPicker,\n MultiAutocomplete,\n MultiDatePicker,\n MultiSelect,\n NativeSelect,\n NumberInput,\n Pagination,\n PagingTable,\n PinInput,\n Popover,\n Progress,\n RadarChart,\n Radio,\n RangeDatePicker,\n RangeSlider,\n Rating,\n Reorder,\n Resizable,\n SaturationSlider,\n ScrollArea,\n SegmentedControl,\n Select,\n NativeTable,\n Skeleton,\n Slider,\n Stat,\n Stepper,\n Switch,\n Table,\n Tabs,\n Tag,\n Textarea,\n Tooltip,\n}\n","import type { ThemeConfig } from \"@yamada-ui/core\"\n\nexport const config: ThemeConfig = {\n initialThemeScheme: \"base\",\n initialColorMode: \"light\",\n var: { prefix: \"ui\" },\n breakpoint: \"down\",\n}\n","import type { ThemeSemantics } from \"@yamada-ui/core\"\n\nexport const semantics: ThemeSemantics = {\n colors: {\n primary: \"blue.500\",\n secondary: \"violet.500\",\n info: \"blue.500\",\n success: \"green.500\",\n warning: \"orange.500\",\n danger: \"red.500\",\n link: \"blue.500\",\n },\n colorSchemes: {\n primary: \"blue\",\n secondary: \"violet\",\n info: \"blue\",\n success: \"green\",\n warning: \"orange\",\n danger: \"red\",\n link: \"blue\",\n },\n}\n","import type { UIStyle } from \"@yamada-ui/core\"\n\nexport const globalStyle: UIStyle = {\n body: {\n fontFamily: \"body\",\n bg: [\"white\", \"black\"],\n color: [\"black\", \"white\"],\n transitionProperty: \"background-color\",\n transitionDuration: \"normal\",\n lineHeight: \"base\",\n overflowX: \"hidden\",\n },\n \"*::placeholder, *[data-placeholder]\": {\n color: \"blackAlpha.600\",\n },\n _dark: {\n \"*::placeholder, *[data-placeholder]\": {\n color: \"whiteAlpha.400\",\n },\n },\n \"*, *::before, *::after\": {\n borderWidth: \"0\",\n borderStyle: \"solid\",\n borderColor: \"border\",\n wordWrap: \"break-word\",\n },\n}\n","import type { UIStyle } from \"@yamada-ui/core\"\n\nexport const resetStyle: UIStyle = {\n \"*\": {\n boxSizing: \"border-box\",\n },\n\n \"::before, ::after\": {\n boxSizing: \"inherit\",\n },\n\n html: {\n lineHeight: 1.15,\n WebkitTextSizeAdjust: \"100%\",\n WebkitTapHighlightColor: \"transparent\",\n },\n\n body: {\n margin: 0,\n },\n\n main: {\n display: \"block\",\n },\n\n \"p, table, blockquote, address, pre, iframe, form, figure, dl\": {\n margin: 0,\n },\n\n \"h1, h2, h3, h4, h5, h6\": {\n fontSize: \"inherit\",\n lineHeight: \"inherit\",\n fontWeight: \"inherit\",\n margin: 0,\n },\n\n \"ul, ol\": {\n margin: 0,\n padding: 0,\n listStyle: \"none\",\n },\n\n dt: {\n fontWeight: \"bold\",\n },\n\n dd: {\n marginLeft: 0,\n },\n\n hr: {\n boxSizing: \"content-box\",\n height: 0,\n overflow: \"visible\",\n border: 0,\n borderTop: \"1px solid\",\n margin: 0,\n clear: \"both\",\n color: \"inherit\",\n },\n\n pre: {\n fontFamily: \"monospace, monospace\",\n fontSize: \"inherit\",\n },\n\n address: {\n fontStyle: \"inherit\",\n },\n\n a: {\n backgroundColor: \"transparent\",\n textDecoration: \"none\",\n color: \"inherit\",\n },\n\n \"abbr[title]\": {\n borderBottom: \"none\",\n textDecoration: \"underline dotted\",\n },\n\n \"b, strong\": {\n fontWeight: \"bolder\",\n },\n\n \"code, kbd, samp\": {\n fontFamily: \"monospace, monospace\",\n fontSize: \"inherit\",\n },\n\n small: {\n fontSize: \"80%\",\n },\n\n \"sub, sup\": {\n fontSize: \"75%\",\n lineHeight: 0,\n position: \"relative\",\n verticalAlign: \"baseline\",\n },\n\n sub: {\n bottom: \"-0.25em\",\n },\n\n sup: {\n top: \"-0.5em\",\n },\n\n img: {\n borderStyle: \"none\",\n verticalAlign: \"bottom\",\n },\n\n \"embed, object, iframe\": {\n border: 0,\n verticalAlign: \"bottom\",\n },\n\n \"button, input, optgroup, select, textarea\": {\n WebkitAppearance: \"none\",\n appearance: \"none\",\n verticalAlign: \"middle\",\n color: \"inherit\",\n font: \"inherit\",\n border: 0,\n background: \"transparent\",\n padding: 0,\n margin: 0,\n outline: 0,\n borderRadius: 0,\n textAlign: \"inherit\",\n },\n\n \"[type='checkbox']\": {\n WebkitAppearance: \"checkbox\",\n appearance: \"checkbox\",\n },\n\n \"[type='radio']\": {\n WebkitAppearance: \"radio\",\n appearance: \"radio\",\n },\n\n \"button, input\": {\n overflow: \"visible\",\n },\n\n \"button, select\": {\n textTransform: \"none\",\n },\n\n \"button, [type='button'], [type='reset'], [type='submit']\": {\n cursor: \"pointer\",\n WebkitAppearance: \"none\",\n appearance: \"none\",\n },\n\n \"button[disabled], [type='button'][disabled], [type='reset'][disabled], [type='submit'][disabled]\":\n {\n cursor: \"default\",\n },\n\n \"button::-moz-focus-inner, [type='button']::-moz-focus-inner, [type='reset']::-moz-focus-inner, [type='submit']::-moz-focus-inner\":\n {\n borderStyle: \"none\",\n padding: 0,\n },\n\n \"button:-moz-focusring, [type='button']:-moz-focusring, [type='reset']:-moz-focusring, [type='submit']:-moz-focusring\":\n {\n outline: \"1px dotted ButtonText\",\n },\n\n \"select::-ms-expand\": {\n display: \"none\",\n },\n\n option: {\n padding: 0,\n },\n\n fieldset: {\n margin: 0,\n padding: 0,\n border: 0,\n minWidth: 0,\n },\n\n legend: {\n color: \"inherit\",\n display: \"table\",\n maxWidth: \"100%\",\n padding: 0,\n whiteSpace: \"normal\",\n },\n\n progress: {\n verticalAlign: \"baseline\",\n },\n\n textarea: {\n overflow: \"auto\",\n },\n\n \"[type='number']::-webkit-inner-spin-button, [type='number']::-webkit-outer-spin-button\":\n {\n display: \"none\",\n },\n\n \"[type='search']\": {\n outlineOffset: \"-2px\",\n },\n\n \"[type='search']::-webkit-search-decoration\": {\n WebkitAppearance: \"none\",\n },\n\n \"[type='time']::-webkit-calendar-picker-indicator\": {\n display: \"none\",\n },\n\n \"::-webkit-file-upload-button\": {\n WebkitAppearance: \"button\",\n font: \"inherit\",\n },\n\n \"::-webkit-search-cancel-button\": {\n WebkitAppearance: \"none\",\n },\n\n \"label[for]\": {\n cursor: \"pointer\",\n },\n\n details: {\n display: \"block\",\n },\n\n summary: {\n display: \"list-item\",\n },\n\n \"[contenteditable]\": {\n outline: \"none\",\n },\n\n table: {\n borderCollapse: \"collapse\",\n borderSpacing: 0,\n },\n\n caption: {\n textAlign: \"left\",\n },\n\n \"td, th\": {\n verticalAlign: \"top\",\n padding: 0,\n },\n\n th: {\n textAlign: \"left\",\n fontWeight: \"bold\",\n },\n\n template: {\n display: \"none\",\n },\n\n \"[hidden]\": {\n display: \"none !important\",\n },\n}\n","import type { LayerStyles } from \"@yamada-ui/core\"\n\nexport const layerStyles: LayerStyles = {}\n","import type { TextStyles } from \"@yamada-ui/core\"\n\nexport const textStyles: TextStyles = {}\n","export type Animations = typeof animations\n\nexport const animations = {}\n","export type Blurs = typeof blurs\n\nexport const blurs = {\n sm: \"4px\",\n md: \"8px\",\n lg: \"12px\",\n xl: \"16px\",\n \"2xl\": \"24px\",\n}\n","export type Borders = typeof borders\n\nexport const borders = {}\n","export type Breakpoints = typeof breakpoints\n\nexport const breakpoints = {\n sm: \"30em\",\n md: \"48em\",\n lg: \"61em\",\n xl: \"80em\",\n \"2xl\": \"90em\",\n}\n","export type Colors = typeof colors\n\nexport const colors = {\n transparent: \"transparent\",\n current: \"currentColor\",\n black: \"#141414\",\n white: \"#fbfbfb\",\n border: [\"#dcdcde\", \"#434248\"],\n focus: \"#0070F0\",\n\n whiteAlpha: {\n 50: \"rgba(255, 255, 255, 0.04)\",\n 100: \"rgba(255, 255, 255, 0.06)\",\n 200: \"rgba(255, 255, 255, 0.08)\",\n 300: \"rgba(255, 255, 255, 0.16)\",\n 400: \"rgba(255, 255, 255, 0.24)\",\n 500: \"rgba(255, 255, 255, 0.36)\",\n 600: \"rgba(255, 255, 255, 0.48)\",\n 700: \"rgba(255, 255, 255, 0.64)\",\n 800: \"rgba(255, 255, 255, 0.80)\",\n 900: \"rgba(255, 255, 255, 0.92)\",\n 950: \"rgba(255, 255, 255, 0.96)\",\n },\n\n blackAlpha: {\n 50: \"rgba(0, 0, 0, 0.04)\",\n 100: \"rgba(0, 0, 0, 0.06)\",\n 200: \"rgba(0, 0, 0, 0.08)\",\n 300: \"rgba(0, 0, 0, 0.16)\",\n 400: \"rgba(0, 0, 0, 0.24)\",\n 500: \"rgba(0, 0, 0, 0.36)\",\n 600: \"rgba(0, 0, 0, 0.48)\",\n 700: \"rgba(0, 0, 0, 0.64)\",\n 800: \"rgba(0, 0, 0, 0.80)\",\n 900: \"rgba(0, 0, 0, 0.92)\",\n 950: \"rgba(0, 0, 0, 0.96)\",\n },\n\n gray: {\n 50: \"#dedfe3\",\n 100: \"#d3d5da\",\n 200: \"#b7bbc3\",\n 300: \"#9ea3ae\",\n 400: \"#828997\",\n 500: \"#6b7280\",\n 600: \"#565c67\",\n 700: \"#434851\",\n 800: \"#2e3138\",\n 900: \"#1c1e21\",\n 950: \"#101113\",\n },\n\n neutral: {\n 50: \"#dedede\",\n 100: \"#d4d4d4\",\n 200: \"#bababa\",\n 300: \"#a3a3a3\",\n 400: \"#8a8a8a\",\n 500: \"#737373\",\n 600: \"#5c5c5c\",\n 700: \"#474747\",\n 800: \"#303030\",\n 900: \"#1c1c1c\",\n 950: \"#0f0f0f\",\n },\n\n red: {\n 50: \"#fdeae8\",\n 100: \"#fbd9d5\",\n 200: \"#f6b2ac\",\n 300: \"#f28c82\",\n 400: \"#ee6a5d\",\n 500: \"#ea4334\",\n 600: \"#de2817\",\n 700: \"#b42013\",\n 800: \"#8a190f\",\n 900: \"#66120b\",\n 950: \"#530f09\",\n },\n\n rose: {\n 50: \"#feecef\",\n 100: \"#fdd8de\",\n 200: \"#fbb2be\",\n 300: \"#f88b9d\",\n 400: \"#f6657d\",\n 500: \"#f43e5c\",\n 600: \"#f2183c\",\n 700: \"#cf0c2d\",\n 800: \"#a40a23\",\n 900: \"#7d071b\",\n 950: \"#650616\",\n },\n\n pink: {\n 50: \"#fde8ed\",\n 100: \"#fcd9e3\",\n 200: \"#f9b9ca\",\n 300: \"#f693ad\",\n 400: \"#f37295\",\n 500: \"#f0517c\",\n 600: \"#ec275c\",\n 700: \"#d81347\",\n 800: \"#ae0f39\",\n 900: \"#880c2d\",\n 950: \"#710a25\",\n },\n\n flashy: {\n 50: \"#fdedf5\",\n 100: \"#fbdaeb\",\n 200: \"#f7b5d6\",\n 300: \"#f390c2\",\n 400: \"#ef6bad\",\n 500: \"#ec4699\",\n 600: \"#e82185\",\n 700: \"#c6156e\",\n 800: \"#a21159\",\n 900: \"#780d42\",\n 950: \"#660b38\",\n },\n\n orange: {\n 50: \"#fef0e6\",\n 100: \"#fee4d2\",\n 200: \"#fdc7a1\",\n 300: \"#fbac74\",\n 400: \"#fa9247\",\n 500: \"#f97415\",\n 600: \"#e06106\",\n 700: \"#b34d05\",\n 800: \"#863a03\",\n 900: \"#5e2902\",\n 950: \"#461e02\",\n },\n\n amber: {\n 50: \"#fdf0d8\",\n 100: \"#fde8c4\",\n 200: \"#fbd593\",\n 300: \"#f9c367\",\n 400: \"#f7b23b\",\n 500: \"#f59f0a\",\n 600: \"#ce8509\",\n 700: \"#a26907\",\n 800: \"#764c05\",\n 900: \"#4e3303\",\n 950: \"#362302\",\n },\n\n yellow: {\n 50: \"#fef4d7\",\n 100: \"#feefc3\",\n 200: \"#fde290\",\n 300: \"#fdd663\",\n 400: \"#fcc931\",\n 500: \"#fbbd04\",\n 600: \"#ce9b03\",\n 700: \"#a67d03\",\n 800: \"#795b02\",\n 900: \"#503d01\",\n 950: \"#372a01\",\n },\n\n lime: {\n 50: \"#e7facc\",\n 100: \"#ddf7b5\",\n 200: \"#c7f287\",\n 300: \"#b2ee59\",\n 400: \"#9de92b\",\n 500: \"#82cb15\",\n 600: \"#6ba611\",\n 700: \"#507d0d\",\n 800: \"#385809\",\n 900: \"#1e2e05\",\n 950: \"#121c03\",\n },\n\n green: {\n 50: \"#e0f5e6\",\n 100: \"#d0f1d9\",\n 200: \"#a9e5b9\",\n 300: \"#86da9c\",\n 400: \"#5fce7d\",\n 500: \"#3cc360\",\n 600: \"#31a04f\",\n 700: \"#28813f\",\n 800: \"#1d5e2e\",\n 900: \"#133e1f\",\n 950: \"#0d2b15\",\n },\n\n emerald: {\n 50: \"#d0fbed\",\n 100: \"#b4f8e2\",\n 200: \"#80f4cd\",\n 300: \"#4defb9\",\n 400: \"#19eba5\",\n 500: \"#10b77f\",\n 600: \"#0d9165\",\n 700: \"#096748\",\n 800: \"#06422e\",\n 900: \"#021710\",\n 950: \"#000503\",\n },\n\n teal: {\n 50: \"#cdf9f4\",\n 100: \"#b1f6ee\",\n 200: \"#7ef1e3\",\n 300: \"#51ecda\",\n 400: \"#1ee6cf\",\n 500: \"#14b8a5\",\n 600: \"#108e80\",\n 700: \"#0c6a5f\",\n 800: \"#07403a\",\n 900: \"#031c19\",\n 950: \"#010504\",\n },\n\n cyan: {\n 50: \"#cef6fd\",\n 100: \"#b0f1fd\",\n 200: \"#7ee8fb\",\n 300: \"#4de0f9\",\n 400: \"#16d6f8\",\n 500: \"#07b6d5\",\n 600: \"#0590a8\",\n 700: \"#046e81\",\n 800: \"#034854\",\n 900: \"#012228\",\n 950: \"#011114\",\n },\n\n sky: {\n 50: \"#ddf3fd\",\n 100: \"#c5eafc\",\n 200: \"#95d9f9\",\n 300: \"#65c8f6\",\n 400: \"#35b7f3\",\n 500: \"#0da2e7\",\n 600: \"#0b87c1\",\n 700: \"#096995\",\n 800: \"#064e6f\",\n 900: \"#042f43\",\n 950: \"#032230\",\n },\n\n blue: {\n 50: \"#e2edfd\",\n 100: \"#cfe0fc\",\n 200: \"#adcbfa\",\n 300: \"#8bb5f8\",\n 400: \"#659cf6\",\n 500: \"#4387f4\",\n 600: \"#186bf2\",\n 700: \"#0c59d4\",\n 800: \"#0a47a9\",\n 900: \"#07357d\",\n 950: \"#062c6a\",\n },\n\n indigo: {\n 50: \"#e8e8fd\",\n 100: \"#d9dafc\",\n 200: \"#bdbef9\",\n 300: \"#9c9ef6\",\n 400: \"#8082f4\",\n 500: \"#6467f2\",\n 600: \"#3a3dee\",\n 700: \"#1417e6\",\n 800: \"#1114c0\",\n 900: \"#0d0f96\",\n 950: \"#0b0d83\",\n },\n\n violet: {\n 50: \"#eee7fe\",\n 100: \"#e3d8fd\",\n 200: \"#cbb6fb\",\n 300: \"#b699fa\",\n 400: \"#a17cf8\",\n 500: \"#895af6\",\n 600: \"#6d34f4\",\n 700: \"#500ced\",\n 800: \"#410ac2\",\n 900: \"#34089b\",\n 950: \"#2e0788\",\n },\n\n purple: {\n 50: \"#f0e2fe\",\n 100: \"#e9d3fd\",\n 200: \"#d7b1fb\",\n 300: \"#c994fa\",\n 400: \"#b772f8\",\n 500: \"#a855f7\",\n 600: \"#9229f5\",\n 700: \"#7e0bea\",\n 800: \"#6609be\",\n 900: \"#510797\",\n 950: \"#44067f\",\n },\n\n fuchsia: {\n 50: \"#f9e3fd\",\n 100: \"#f5d0fb\",\n 200: \"#eeaff8\",\n 300: \"#e78af5\",\n 400: \"#e069f2\",\n 500: \"#d948ef\",\n 600: \"#d01eeb\",\n 700: \"#b112ca\",\n 800: \"#900ea4\",\n 900: \"#6b0b7a\",\n 950: \"#5b0967\",\n },\n}\n","export type FontSizes = typeof fontSizes\n\nexport const fontSizes = {\n \"2xs\": \"0.625rem\",\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n md: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\",\n \"2xl\": \"1.5rem\",\n \"3xl\": \"1.875rem\",\n \"4xl\": \"2rem\",\n \"5xl\": \"2.25rem\",\n \"6xl\": \"3rem\",\n \"7xl\": \"3.75rem\",\n \"8xl\": \"4.5rem\",\n \"9xl\": \"6rem\",\n}\n","export type FontWeights = typeof fontWeights\n\nexport const fontWeights = {\n hairline: 100,\n thin: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n black: 900,\n}\n","export type Fonts = typeof fonts\n\nexport const fonts = {\n heading: `-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Helvetica Neue\", \"游ゴシック体\", YuGothic, \"YuGothic M\", \"Hiragino Kaku Gothic ProN\", Meiryo, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`,\n body: `-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Helvetica Neue\", \"游ゴシック体\", YuGothic, \"YuGothic M\", \"Hiragino Kaku Gothic ProN\", Meiryo, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`,\n mono: `SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace`,\n}\n","export type Gradients = typeof gradients\n\nexport const gradients = {}\n","export type LetterSpacings = typeof letterSpacings\n\nexport const letterSpacings = {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\",\n}\n","export type LineHeights = typeof lineHeights\n\nexport const lineHeights = {\n normal: \"normal\",\n none: 1,\n shorter: 1.25,\n short: 1.375,\n base: 1.5,\n tall: 1.625,\n taller: \"2\",\n \"3\": \".75rem\",\n \"4\": \"1rem\",\n \"5\": \"1.25rem\",\n \"6\": \"1.5rem\",\n \"7\": \"1.75rem\",\n \"8\": \"2rem\",\n \"9\": \"2.25rem\",\n \"10\": \"2.5rem\",\n}\n","export type Radii = typeof radii\n\nexport const radii = {\n none: \"0\",\n sm: \"0.125rem\",\n base: \"0.25rem\",\n md: \"0.375rem\",\n lg: \"0.5rem\",\n xl: \"0.75rem\",\n \"2xl\": \"1rem\",\n \"3xl\": \"1.5rem\",\n full: \"9999px\",\n}\n","export type Shadows = typeof shadows\n\nexport const shadows = {\n xs: \"0 0 0 1px rgba(0, 0, 0, 0.05)\",\n sm: \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n base: \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)\",\n md: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n lg: \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n xl: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n \"2xl\": \"0 25px 50px -12px rgba(0, 0, 0, 0.25)\",\n \"3xl\":\n \"0 25px 50px -12px rgba(0, 0, 0, 0.25), 0 -25px 50px -12px rgba(0, 0, 0, 0.25)\",\n outline: \"0 0 0 3px rgb(0, 112, 240)\",\n inline: \"inset 0 0 0 3px rgb(0, 112, 240)\",\n inner: \"inset 0 2px 4px 0 rgba(0,0,0,0.06)\",\n none: \"none\",\n \"dark-sm\":\n \"0px 0px 0px 1px rgba(0, 0, 0, 0.1), 0px 1px 2px rgba(0, 0, 0, 0.2)\",\n \"dark-md\":\n \"0px 0px 0px 1px rgba(0, 0, 0, 0.1), 0px 5px 10px rgba(0, 0, 0, 0.2)\",\n \"dark-lg\":\n \"0px 0px 0px 1px rgba(0, 0, 0, 0.1), 0px 5px 10px rgba(0, 0, 0, 0.2), 0px 15px 40px rgba(0, 0, 0, 0.4)\",\n}\n","export type Spaces = typeof spaces\n\nexport const spaces = {\n xs: \"0.25rem\",\n sm: \"0.5rem\",\n md: \"1rem\",\n normal: \"1.5rem\",\n lg: \"2rem\",\n xl: \"3rem\",\n \"2xl\": \"4rem\",\n \"3xl\": \"6rem\",\n \"4xl\": \"8rem\",\n\n px: \"1px\",\n 0.5: \"0.125rem\",\n 1: \"0.25rem\",\n 1.5: \"0.375rem\",\n 2: \"0.5rem\",\n 2.5: \"0.625rem\",\n 3: \"0.75rem\",\n 3.5: \"0.875rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n 12: \"3rem\",\n 14: \"3.5rem\",\n 16: \"4rem\",\n 20: \"5rem\",\n 24: \"6rem\",\n 28: \"7rem\",\n 32: \"8rem\",\n 36: \"9rem\",\n 40: \"10rem\",\n 44: \"11rem\",\n 48: \"12rem\",\n 52: \"13rem\",\n 56: \"14rem\",\n 60: \"15rem\",\n 64: \"16rem\",\n 72: \"18rem\",\n 80: \"20rem\",\n 96: \"24rem\",\n}\n","import { spaces } from \"./spaces\"\n\nexport type Sizes = typeof sizes\n\nexport const sizes = {\n ...spaces,\n max: \"max-content\",\n min: \"min-content\",\n full: \"100%\",\n \"9xs\": \"1rem\",\n \"8xs\": \"1.5rem\",\n \"7xs\": \"2rem\",\n \"6xs\": \"3rem\",\n \"5xs\": \"4.5rem\",\n \"4xs\": \"6rem\",\n \"3xs\": \"7.5rem\",\n \"2xs\": \"10rem\",\n xs: \"15rem\",\n sm: \"20rem\",\n md: \"24rem\",\n lg: \"28rem\",\n xl: \"32rem\",\n \"2xl\": \"36rem\",\n \"3xl\": \"42rem\",\n \"4xl\": \"48rem\",\n \"5xl\": \"56rem\",\n \"6xl\": \"64rem\",\n \"7xl\": \"72rem\",\n \"8xl\": \"80rem\",\n \"9xl\": \"90rem\",\n}\n","export type Transitions = typeof transitions\n\nexport const transitions = {\n property: {\n common:\n \"background-color, border-color, color, fill, stroke, opacity, box-shadow, transform\",\n colors: \"background-color, border-color, color, fill, stroke\",\n dimensions: \"width, height\",\n position: \"left, right, top, bottom\",\n background: \"background-color, background-image, background-position\",\n },\n\n easing: {\n \"ease-in\": \"cubic-bezier(0.4, 0, 1, 1)\",\n \"ease-out\": \"cubic-bezier(0, 0, 0.2, 1)\",\n \"ease-in-out\": \"cubic-bezier(0.4, 0, 0.2, 1)\",\n },\n\n duration: {\n \"ultra-fast\": \"50ms\",\n faster: \"100ms\",\n fast: \"150ms\",\n normal: \"200ms\",\n slow: \"300ms\",\n slower: \"400ms\",\n \"ultra-slow\": \"500ms\",\n },\n}\n","export type ZIndices = typeof zIndices\n\nexport const zIndices = {\n yamcha: 1,\n kurillin: 9,\n nappa: 99,\n\n guldo: 100,\n jeice: 110,\n burter: 120,\n recoome: 130,\n ginyu: 140,\n dodoria: 150,\n zarbon: 160,\n\n freeza: 9996,\n vegeta: 9997,\n sonGoku: 9998,\n beerus: 9999,\n}\n","import { animations } from \"./animations\"\nimport { blurs } from \"./blurs\"\nimport { borders } from \"./borders\"\nimport { breakpoints } from \"./breakpoints\"\nimport { colors } from \"./colors\"\nimport { fontSizes } from \"./fontSizes\"\nimport { fontWeights } from \"./fontWeights\"\nimport { fonts } from \"./fonts\"\nimport { gradients } from \"./gradients\"\nimport { letterSpacings } from \"./letterSpacings\"\nimport { lineHeights } from \"./lineHeights\"\nimport { radii } from \"./radii\"\nimport { shadows } from \"./shadows\"\nimport { sizes } from \"./sizes\"\nimport { spaces } from \"./spaces\"\nimport { transitions } from \"./transitions\"\nimport { zIndices } from \"./z-indices\"\n\nexport default {\n animations,\n blurs,\n borders,\n breakpoints,\n colors,\n fontSizes,\n fontWeights,\n fonts,\n gradients,\n letterSpacings,\n lineHeights,\n radii,\n shadows,\n sizes,\n spaces,\n transitions,\n zIndices,\n}\n","import components from \"./components\"\nimport { config } from \"./config\"\nimport { semantics } from \"./semantics\"\nimport { globalStyle, resetStyle, layerStyles, textStyles } from \"./styles\"\nimport tokens from \"./tokens\"\n\nexport const defaultTheme = {\n styles: { globalStyle, resetStyle, layerStyles, textStyles },\n semantics,\n components,\n ...tokens,\n}\n\nexport const baseTheme = {\n styles: { globalStyle, resetStyle, layerStyles, textStyles },\n semantics,\n ...tokens,\n}\n\nexport const defaultConfig = config\n\n/**\n * The default theme of Yamada UI.\n *\n * @see Docs https://yamada-ui.com/styled-system/theming/default-theme\n */\nexport type DefaultTheme = typeof defaultTheme\n\n/**\n * The base theme of Yamada UI. It is except for Component's styles.\n */\nexport type BaseTheme = typeof baseTheme\n\nexport default defaultTheme\n","import { useSafeLayoutEffect } from \"@yamada-ui/utils\"\nimport type { FC, ReactNode } from \"react\"\nimport { createContext, useContext, useMemo, useReducer, useRef } from \"react\"\n\nexport type Environment = {\n getWindow: () => Window\n getDocument: () => Document\n}\n\nconst environment: Environment = {\n getDocument: () => document,\n getWindow: () => window,\n}\n\nconst EnvironmentContext = createContext<Environment>(environment)\n\nexport type EnvironmentProviderProps = {\n children: ReactNode\n disabled?: boolean\n environment?: Environment\n}\n\nexport const EnvironmentProvider: FC<EnvironmentProviderProps> = ({\n children,\n environment,\n disabled,\n}) => {\n const ref = useRef<HTMLSpanElement>(null)\n\n const context = useMemo<Environment>(() => {\n if (environment) return environment\n\n return {\n getDocument: () => ref.current?.ownerDocument ?? document,\n getWindow: () => ref.current?.ownerDocument.defaultView ?? window,\n }\n }, [environment])\n\n const enabled = !disabled || !environment\n\n return (\n <EnvironmentContext.Provider value={context}>\n {children}\n\n {enabled ? <span id=\"__ui_dev\" hidden ref={ref} /> : null}\n </EnvironmentContext.Provider>\n )\n}\n\nEnvironmentProvider.displayName = \"EnvironmentProvider\"\n\nexport const useEnvironment = ({ isDefer }: { isDefer?: boolean } = {}) => {\n const [, forceUpdate] = useReducer((c) => c + 1, 0)\n\n useSafeLayoutEffect(() => {\n if (!isDefer) return\n\n forceUpdate()\n }, [isDefer])\n\n return useContext(EnvironmentContext)\n}\n","import type {\n UsageTheme,\n ThemeToken,\n ThemeTokens,\n ComponentStyle,\n ComponentSizes,\n ComponentVariants,\n ComponentDefaultProps,\n UIStyle,\n UIStyleProps,\n ComponentMultiSizes,\n ComponentMultiVariants,\n ComponentMultiStyle,\n} from \"@yamada-ui/core\"\nimport { baseTheme, defaultTheme } from \"@yamada-ui/theme\"\nimport type { Dict } from \"@yamada-ui/utils\"\nimport {\n merge as mergeObject,\n getMemoizedObject as get,\n runIfFunc,\n omitObject,\n pickObject,\n isFunction,\n} from \"@yamada-ui/utils\"\n\ntype Options = {\n merge?: boolean\n omit?: (keyof typeof defaultTheme)[]\n pick?: (keyof typeof defaultTheme)[]\n}\n\nconst createExtendTheme =\n (initialTheme: Dict = defaultTheme) =>\n (...extensions: (UsageTheme | ((theme: UsageTheme) => UsageTheme))[]) =>\n ({ merge = true, pick = [], omit = [] }: Options = {}): Dict => {\n let overrides = [...extensions]\n let theme = extensions[extensions.length - 1]\n\n if (omit.length) initialTheme = omitObject(initialTheme, omit)\n if (pick.length) initialTheme = pickObject(initialTheme, pick)\n\n if (!isFunction(theme) && overrides.length > 1) {\n overrides = overrides.slice(0, overrides.length - 1)\n\n if (merge) theme = mergeObject(initialTheme, theme)\n } else {\n theme = merge ? initialTheme : {}\n }\n\n return overrides.reduce(\n (prev, extension) => mergeObject(prev, runIfFunc(extension, prev)),\n theme as Dict,\n )\n }\n\n/**\n * Create a new theme by inheriting the default theme.\n * It is also possible to pass multiple objects and specify options.\n *\n * @see Docs https://yamada-ui.com/styled-system/theming/customize-theme#using-extendtheme\n */\nexport const extendTheme = createExtendTheme(defaultTheme)\n\n/**\n * This creates a new theme that inherits only the tokens such as global styles and colors of the default theme.\n * It is also possible to pass multiple objects and specify options.\n *\n * @see Docs https://yamada-ui.com/styled-system/theming/customize-theme#using-extendbasetheme\n */\nexport const extendBaseTheme = createExtendTheme(baseTheme)\n\nexport const extendToken = (\n token: ThemeToken,\n tokens?: ThemeTokens,\n): ThemeTokens =>\n mergeObject(get<ThemeTokens>(defaultTheme, token, {}), tokens ?? {})\n\nexport const extendStyle = (\n name: \"globalStyle\" | \"resetStyle\",\n style: UIStyle,\n): UIStyle => {\n const props: UIStyleProps = {\n theme: {\n __config: {},\n __cssMap: {},\n __cssVars: {},\n __breakpoints: undefined,\n },\n }\n\n return mergeObject(\n runIfFunc(get<UIStyle>(defaultTheme, `styles.${name}`, {}), props),\n runIfFunc(style, props) ?? {},\n )\n}\n\nexport const extendComponent = (\n name: keyof (typeof defaultTheme)[\"components\"],\n componentStyle?: ComponentStyle | ComponentMultiStyle,\n): ComponentStyle | ComponentMultiStyle =>\n mergeObject(\n get<ComponentStyle | ComponentMultiStyle>(\n defaultTheme,\n `components.${name}`,\n {},\n ),\n componentStyle ?? {},\n )\n\nexport const extendComponentSize = (\n name: keyof (typeof defaultTheme)[\"components\"],\n componentSizes?: ComponentSizes | ComponentMultiSizes,\n): ComponentSizes | ComponentMultiSizes =>\n mergeObject(\n get<ComponentSizes>(defaultTheme, `components.${name}.sizes`, {}),\n componentSizes ?? {},\n )\n\nexport const extendComponentVariant = (\n name: keyof (typeof defaultTheme)[\"components\"],\n componentVariants?: ComponentVariants | ComponentMultiVariants,\n): ComponentVariants | ComponentMultiVariants =>\n mergeObject(\n get<ComponentVariants | ComponentMultiVariants>(\n defaultTheme,\n `components.${name}.variants`,\n {},\n ),\n componentVariants ?? {},\n )\n\nexport const extendComponentDefaultProps = (\n name: keyof (typeof defaultTheme)[\"components\"],\n componentDefaultProps?: ComponentDefaultProps,\n): ComponentDefaultProps =>\n mergeObject(\n get<ComponentDefaultProps>(\n defaultTheme,\n `components.${name}.defaultProps`,\n {},\n ),\n componentDefaultProps ?? {},\n )\n","import type { ThemeConfig } from \"@yamada-ui/core\"\nimport { defaultConfig } from \"@yamada-ui/theme\"\nimport { merge } from \"@yamada-ui/utils\"\n\nexport const extendConfig = (theme: ThemeConfig): ThemeConfig =>\n merge(defaultConfig, theme)\n","import type { Theme, ComponentDefaultProps, UsageTheme } from \"@yamada-ui/core\"\nimport type { Union } from \"@yamada-ui/utils\"\nimport { isArray, merge } from \"@yamada-ui/utils\"\n\nexport const withDefaultSize =\n ({\n size,\n components,\n }: {\n size: ComponentDefaultProps[\"size\"]\n components?: Union<keyof Theme[\"components\"]>[]\n }) =>\n (theme: UsageTheme): UsageTheme => {\n let keys: string[] = Object.keys(theme.components ?? {})\n\n if (isArray(components)) keys = components\n\n return merge(theme, {\n components: Object.fromEntries(\n keys.map((key) => [key, { defaultProps: { size } }]),\n ),\n })\n }\n\nexport const withDefaultVariant =\n ({\n variant,\n components,\n }: {\n variant: ComponentDefaultProps[\"variant\"]\n components?: Union<keyof Theme[\"components\"]>[]\n }) =>\n (theme: UsageTheme): UsageTheme => {\n let keys: string[] = Object.keys(theme.components ?? {})\n\n if (isArray(components)) keys = components\n\n return merge(theme, {\n components: Object.fromEntries(\n keys.map((key) => [key, { defaultProps: { variant } }]),\n ),\n })\n }\n\nexport const withDefaultColorScheme =\n ({\n colorScheme,\n components,\n }: {\n colorScheme: ComponentDefaultProps[\"colorScheme\"]\n components?: Union<keyof Theme[\"components\"]>[]\n }) =>\n (theme: UsageTheme): UsageTheme => {\n let keys: string[] = Object.keys(theme.components ?? {})\n\n if (isArray(components)) keys = components\n\n return merge(theme, {\n components: Object.fromEntries(\n keys.map((key) => [key, { defaultProps: { colorScheme } }]),\n ),\n })\n }\n\nexport const withDefaultProps =\n ({\n defaultProps,\n components,\n }: {\n defaultProps: ComponentDefaultProps\n components?: Union<keyof Theme[\"components\"]>[]\n }): UsageTheme =>\n (theme: UsageTheme) => {\n let keys: string[] = Object.keys(theme.components ?? {})\n\n if (isArray(components)) keys = components\n\n return merge(theme, {\n components: Object.fromEntries(\n keys.map((key) => [key, { defaultProps }]),\n ),\n })\n }\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { createDescendant } from \"@yamada-ui/use-descendant\"\nimport { createContext, cx, isArray } from \"@yamada-ui/utils\"\nimport type { Dispatch, ReactNode, SetStateAction } from \"react\"\nimport { useEffect, useState } from \"react\"\n\nconst {\n DescendantsContextProvider,\n useDescendants,\n useDescendant: useAccordionDescendant,\n} = createDescendant<HTMLButtonElement>()\n\nexport { useAccordionDescendant }\n\ntype AccordionContext = Pick<\n AccordionOptions,\n \"isMultiple\" | \"isToggle\" | \"icon\" | \"iconHidden\"\n> & {\n index: number | number[]\n setIndex: Dispatch<SetStateAction<number | number[]>>\n focusedIndex: number\n setFocusedIndex: Dispatch<SetStateAction<number>>\n styles: Record<string, CSSUIObject>\n}\n\nconst [AccordionProvider, useAccordionContext] =\n createContext<AccordionContext>({\n name: \"AccordionContext\",\n errorMessage: `useAccordionContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Accordion />\"`,\n })\n\nexport { useAccordionContext }\n\ntype AccordionOptions = {\n /**\n * The index(es) of the accordion item to expand.\n */\n index?: number | number[]\n /**\n * The initial index(es) of the accordion item to expand.\n */\n defaultIndex?: number | number[]\n /**\n * If `true`, multiple accordion items can be expanded at once.\n *\n * @default false\n */\n isMultiple?: boolean\n /**\n * If `true`, any expanded accordion item can be collapsed again.\n *\n * @default false\n */\n isToggle?: boolean\n /**\n * If `true`, hide the accordion icon for all items.\n *\n * @default false\n */\n iconHidden?: boolean\n /**\n * The accordion icon for all items to use.\n */\n icon?:\n | ReactNode\n | ((props: { isExpanded: boolean; isDisabled: boolean }) => ReactNode)\n /**\n * The callback invoked when accordion items are expanded or collapsed.\n */\n onChange?: (index: number | number[]) => void\n}\n\nexport type AccordionProps = Omit<HTMLUIProps<\"ul\">, \"onChange\"> &\n ThemeProps<\"Accordion\"> &\n AccordionOptions\n\n/**\n * `Accordion` is a component for a list that displays information in an expandable or collapsible manner.\n *\n * @see Docs https://yamada-ui.com/components/disclosure/accordion\n */\nexport const Accordion = forwardRef<AccordionProps, \"ul\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Accordion\", props)\n const {\n className,\n index: value,\n defaultIndex: defaultValue,\n isMultiple,\n isToggle,\n iconHidden,\n icon,\n onChange,\n ...rest\n } = omitThemeProps(mergedProps)\n\n if (\n (value || defaultValue) != null &&\n !isArray(value || defaultValue) &&\n isMultiple\n ) {\n console.warn(\n `Accordion: If 'isMultiple' is passed, then 'index' or 'defaultIndex' must be an array.`,\n )\n }\n\n if (isMultiple && isToggle) {\n console.warn(\n `Accordion: If 'isMultiple' is passed, 'isToggle' will be ignored. Either remove 'isToggle' or 'isMultiple' depending on whether you want isMultiple accordions visible or not`,\n )\n }\n\n const descendants = useDescendants()\n\n const [focusedIndex, setFocusedIndex] = useState<number>(-1)\n\n const [index, setIndex] = useControllableState({\n value,\n defaultValue: () => (isMultiple ? defaultValue ?? [] : defaultValue ?? -1),\n onChange,\n })\n\n useEffect(() => {\n return () => setFocusedIndex(-1)\n }, [])\n\n const css: CSSUIObject = { w: \"100%\", ...styles.container }\n\n return (\n <DescendantsContextProvider value={descendants}>\n <AccordionProvider\n value={{\n index,\n setIndex,\n focusedIndex,\n setFocusedIndex,\n isMultiple,\n isToggle,\n iconHidden,\n icon,\n styles,\n }}\n >\n <ui.ul\n ref={ref}\n className={cx(\"ui-accordion\", className)}\n __css={css}\n {...rest}\n />\n </AccordionProvider>\n </DescendantsContextProvider>\n )\n})\n","import {\n useCallbackRef,\n runIfFunc,\n isUndefined,\n isNull,\n} from \"@yamada-ui/utils\"\nimport type { Dispatch, SetStateAction } from \"react\"\nimport { useState } from \"react\"\n\nexport type UseControllableStateProps<T> = {\n value?: T\n defaultValue?: T | (() => T)\n onChange?: (value: T) => void\n onUpdate?: (prev: T, next: T) => boolean\n}\n\nexport const useControllableState = <T>({\n value,\n ...rest\n}: UseControllableStateProps<T>) => {\n rest.onUpdate ??= (prev, next) => prev !== next\n\n const onChange = useCallbackRef(rest.onChange)\n const onUpdate = useCallbackRef(rest.onUpdate)\n\n const [defaultValue, setDefaultValue] = useState(rest.defaultValue as T)\n const controlled = value !== undefined\n const resolvedValue = controlled ? value : defaultValue\n\n const setValue = useCallbackRef(\n (next: SetStateAction<T>) => {\n const nextValue = runIfFunc(next, resolvedValue)\n\n if (!onUpdate(resolvedValue, nextValue)) return\n\n if (!controlled || isUndefined(nextValue) || isNull(nextValue))\n setDefaultValue(nextValue)\n\n onChange(nextValue)\n },\n [controlled, resolvedValue, onChange, onUpdate],\n )\n\n return [resolvedValue, setValue] as [T, Dispatch<SetStateAction<T>>]\n}\n","import {\n cast,\n createContext,\n isElement,\n mergeRefs,\n useSafeLayoutEffect,\n} from \"@yamada-ui/utils\"\nimport type { Provider, RefCallback } from \"react\"\nimport { useRef, useState } from \"react\"\n\nconst sortNodes = (nodes: Node[]) =>\n nodes.sort((a, b) => {\n const compare = a.compareDocumentPosition(b)\n\n if (\n compare & Node.DOCUMENT_POSITION_FOLLOWING ||\n compare & Node.DOCUMENT_POSITION_CONTAINED_BY\n )\n return -1\n\n if (\n compare & Node.DOCUMENT_POSITION_PRECEDING ||\n compare & Node.DOCUMENT_POSITION_CONTAINS\n )\n return 1\n\n if (\n compare & Node.DOCUMENT_POSITION_DISCONNECTED ||\n compare & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\n ) {\n throw Error(\"Cannot sort the given nodes.\")\n } else {\n return 0\n }\n })\n\nconst getNextIndex = (current: number, max: number, loop: boolean) => {\n let next = current + 1\n\n if (loop && next >= max) next = 0\n\n return next\n}\n\nconst getPrevIndex = (current: number, max: number, loop: boolean) => {\n let next = current - 1\n\n if (loop && next < 0) next = max\n\n return next\n}\n\ntype DescendantOptions<T, K = {}> = K & {\n disabled?: boolean\n id?: string\n filter?: FilterDescendant<T, K>\n}\n\ntype Descendant<T, K> = DescendantOptions<K> & {\n node: T\n index: number\n}\n\ntype FilterDescendant<T, K> = (\n value: Descendant<T, K>,\n index: number,\n array: Descendant<T, K>[],\n) => boolean\n\nconst descendantsManager = <T extends HTMLElement, K = {}>() => {\n const descendants = new Map<T, Descendant<T, K>>()\n\n const assignIndex = (newDescendants: Node[]) => {\n descendants.forEach((descendant) => {\n const index = newDescendants.indexOf(descendant.node)\n\n descendant.index = index\n descendant.node.dataset.index = descendant.index.toString()\n })\n }\n\n const setDescendants = (\n node: T | null,\n options?: DescendantOptions<T, K>,\n ) => {\n if (!node || descendants.has(node)) return\n\n const keys = Array.from(descendants.keys()).concat(node)\n const sorted = sortNodes(keys)\n\n if (options?.disabled) options.disabled = !!options.disabled\n\n const descendant = { node, index: -1, ...options }\n\n descendants.set(node, descendant as Descendant<T, K>)\n\n assignIndex(sorted)\n }\n\n const register = (nodeOrOptions: T | null | DescendantOptions<T, K>) => {\n if (nodeOrOptions == null) return\n\n if (isElement(nodeOrOptions)) return setDescendants(nodeOrOptions)\n\n return (node: T | null) => setDescendants(node, nodeOrOptions)\n }\n\n const unregister = (node: T) => {\n descendants.delete(node)\n\n const sorted = sortNodes(Array.from(descendants.keys()))\n\n assignIndex(sorted)\n }\n\n const destroy = () => descendants.clear()\n\n const count = (filter?: FilterDescendant<T, K>) => values(filter).length\n\n const enabledCount = (filter?: FilterDescendant<T, K>) =>\n enabledValues(filter).length\n\n const indexOf = (node: T | null) =>\n !node ? -1 : descendants.get(node)?.index ?? -1\n\n const enabledIndexOf = (node: T | null, filter?: FilterDescendant<T, K>) =>\n node == null\n ? -1\n : enabledValues(filter).findIndex((i) => i.node.isSameNode(node))\n\n const values = (filter?: FilterDescendant<T, K>) => {\n const values = Array.from(descendants.values())\n\n if (filter) {\n return values.filter(filter).sort((a, b) => a.index - b.index)\n } else {\n return values.sort((a, b) => a.index - b.index)\n }\n }\n\n const enabledValues = (filter?: FilterDescendant<T, K>) =>\n values(filter).filter(({ disabled }) => !disabled)\n\n const value = (index: number, filter?: FilterDescendant<T, K>) => {\n if (count(filter) === 0) return undefined\n\n return values(filter)[index]\n }\n\n const enabledValue = (index: number, filter?: FilterDescendant<T, K>) => {\n if (enabledCount(filter) === 0) return undefined\n\n return enabledValues(filter)[index]\n }\n\n const firstValue = (filter?: FilterDescendant<T, K>) => value(0, filter)\n\n const enabledFirstValue = (filter?: FilterDescendant<T, K>) =>\n enabledValue(0, filter)\n\n const lastValue = (filter?: FilterDescendant<T, K>) =>\n value(descendants.size - 1, filter)\n\n const enabledLastValue = (filter?: FilterDescendant<T, K>) =>\n enabledValue(enabledValues(filter).length - 1, filter)\n\n const prevValue = (\n index: number,\n filter?: FilterDescendant<T, K>,\n loop = true,\n ) => {\n const prev = getPrevIndex(index, count(filter) - 1, loop)\n\n return value(prev, filter)\n }\n\n const enabledPrevValue = (\n index: number,\n filter?: FilterDescendant<T, K>,\n loop = true,\n ) => {\n const target = value(index)\n\n if (!target) return\n\n const enabledIndex = enabledIndexOf(target.node, filter)\n const prevEnabledIndex = getPrevIndex(\n enabledIndex,\n enabledCount(filter) - 1,\n loop,\n )\n\n return enabledValue(prevEnabledIndex, filter)\n }\n\n const nextValue = (\n index: number,\n filter?: FilterDescendant<T, K>,\n loop = true,\n ) => {\n const next = getNextIndex(index, count(filter), loop)\n\n return value(next, filter)\n }\n\n const enabledNextValue = (\n index: number,\n filter?: FilterDescendant<T, K>,\n loop = true,\n ) => {\n const target = value(index)\n\n if (!target) return\n\n const enabledIndex = enabledIndexOf(target.node, filter)\n const nextEnabledIndex = getNextIndex(\n enabledIndex,\n enabledCount(filter),\n loop,\n )\n\n return enabledValue(nextEnabledIndex, filter)\n }\n\n return {\n register,\n unregister,\n destroy,\n count,\n values,\n value,\n indexOf,\n firstValue,\n lastValue,\n prevValue,\n nextValue,\n enabledCount,\n enabledValues,\n enabledValue,\n enabledIndexOf,\n enabledFirstValue,\n enabledLastValue,\n enabledPrevValue,\n enabledNextValue,\n }\n}\n\nexport type DescendantsManager<\n T extends HTMLElement,\n K extends Record<string, any> = {},\n> = ReturnType<typeof descendantsManager<T, K>>\n\nconst useDescendants = <\n T extends HTMLElement = HTMLElement,\n K extends Record<string, any> = {},\n>() => {\n const descendants = useRef(descendantsManager<T, K>())\n\n useSafeLayoutEffect(() => {\n return () => descendants.current.destroy()\n })\n\n return descendants.current\n}\n\ntype UseDescendantsReturn = ReturnType<typeof useDescendants>\n\nconst [DescendantsContextProvider, useDescendantsContext] =\n createContext<UseDescendantsReturn>({\n name: \"DescendantsProvider\",\n errorMessage:\n \"useDescendantsContext must be used within DescendantsContextProvider\",\n })\n\nconst useDescendant = <\n T extends HTMLElement = HTMLElement,\n K extends Record<string, any> = {},\n>(\n options?: DescendantOptions<T, K>,\n) => {\n const descendants = useDescendantsContext()\n const [index, setIndex] = useState<number>(-1)\n const ref = useRef<T>(null)\n\n useSafeLayoutEffect(() => {\n return () => {\n if (!ref.current) return\n\n descendants.unregister(ref.current)\n }\n }, [])\n\n useSafeLayoutEffect(() => {\n if (!ref.current) return\n\n const dataIndex = Number(ref.current.dataset.index)\n\n if (index != dataIndex && !Number.isNaN(dataIndex)) setIndex(dataIndex)\n })\n\n const refCallback = options\n ? cast<RefCallback<T>>(descendants.register(options))\n : cast<RefCallback<T>>(descendants.register)\n\n return {\n descendants,\n index,\n enabledIndex: descendants.enabledIndexOf(\n ref.current,\n options?.filter as any,\n ),\n register: mergeRefs(refCallback, ref),\n }\n}\n\nexport const createDescendant = <\n T extends HTMLElement = HTMLElement,\n K extends Record<string, any> = {},\n>() =>\n ({\n DescendantsContextProvider: cast<Provider<DescendantsManager<T, K>>>(\n DescendantsContextProvider,\n ),\n useDescendantsContext: () =>\n cast<DescendantsManager<T, K>>(useDescendantsContext()),\n useDescendants: () => useDescendants<T, K>(),\n useDescendant: (options?: DescendantOptions<T, K>) =>\n useDescendant<T, K>(options),\n }) as const\n","import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport {\n ariaAttr,\n createContext,\n cx,\n findChildren,\n getValidChildren,\n handlerAll,\n isArray,\n isEmpty,\n mergeRefs,\n omitChildren,\n} from \"@yamada-ui/utils\"\nimport type { KeyboardEvent, KeyboardEventHandler, ReactNode } from \"react\"\nimport { useCallback } from \"react\"\nimport { useAccordionContext, useAccordionDescendant } from \"./accordion\"\nimport { AccordionLabel } from \"./accordion-label\"\nimport { AccordionPanel } from \"./accordion-panel\"\n\ntype AccordionItemContext = Omit<AccordionItemOptions, \"children\"> & {\n isOpen: boolean\n getLabelProps: UIPropGetter<\"button\">\n getPanelProps: UIPropGetter\n}\n\nconst [AccordionItemProvider, useAccordionItemContext] =\n createContext<AccordionItemContext>({\n name: \"AccordionItemContext\",\n errorMessage: `useAccordionItemContext returned is 'undefined'. Seems you forgot to wrap the components in \"<AccordionItem />\"`,\n })\n\nexport { useAccordionItemContext }\n\ntype AccordionItemOptions = {\n /**\n * If `true`, the accordion item will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * The accordion label to use.\n */\n label?:\n | ReactNode\n | ((props: { isExpanded: boolean; isDisabled: boolean }) => ReactNode)\n /**\n * The accordion icon to use.\n */\n icon?:\n | ReactNode\n | ((props: { isExpanded: boolean; isDisabled: boolean }) => ReactNode)\n children?:\n | ReactNode\n | ((props: { isExpanded: boolean; isDisabled: boolean }) => ReactNode)\n}\n\nexport type AccordionItemProps = Omit<HTMLUIProps<\"li\">, \"children\"> &\n AccordionItemOptions\n\nexport const AccordionItem = forwardRef<AccordionItemProps, \"li\">(\n ({ className, isDisabled = false, label, icon, children, ...rest }, ref) => {\n const { index, setIndex, setFocusedIndex, isMultiple, isToggle, styles } =\n useAccordionContext()\n\n const {\n index: i,\n register,\n descendants,\n } = useAccordionDescendant({ disabled: isDisabled })\n\n const isOpen =\n i !== -1 ? (isArray(index) ? index.includes(i) : index === i) : false\n\n if (isOpen && isDisabled)\n console.warn(`Accordion: Cannot open a disabled accordion item`)\n\n const onChange = useCallback(\n (isOpen: boolean) => {\n if (i === -1) return\n\n if (isMultiple && isArray(index)) {\n setIndex(isOpen ? index.concat(i) : index.filter((v) => v !== i))\n } else if (isOpen) {\n setIndex(i)\n } else if (isToggle) {\n setIndex(-1)\n }\n },\n [isMultiple, isToggle, i, index, setIndex],\n )\n\n const onFocus = useCallback(() => {\n setFocusedIndex(i)\n }, [setFocusedIndex, i])\n\n const onClick = useCallback(() => {\n onChange(!isOpen)\n setFocusedIndex(i)\n }, [i, setFocusedIndex, isOpen, onChange])\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent) => {\n const actions: Record<string, KeyboardEventHandler> = {\n ArrowDown: () => {\n const next = descendants.enabledNextValue(i)\n\n next?.node.focus()\n },\n ArrowUp: () => {\n const prev = descendants.enabledPrevValue(i)\n\n prev?.node.focus()\n },\n Home: () => {\n const first = descendants.enabledFirstValue()\n\n first?.node.focus()\n },\n End: () => {\n const last = descendants.enabledLastValue()\n\n last?.node.focus()\n },\n }\n\n const action = actions[ev.key]\n\n if (!action) return\n\n ev.preventDefault()\n action(ev)\n },\n [descendants, i],\n )\n\n const getLabelProps: UIPropGetter<\"button\"> = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ref: mergeRefs(register, ref),\n type: \"button\",\n disabled: isDisabled,\n \"aria-expanded\": ariaAttr(isOpen),\n onClick: handlerAll(props.onClick, onClick),\n onFocus: handlerAll(props.onFocus, onFocus),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n }),\n [isDisabled, isOpen, onClick, onFocus, onKeyDown, register],\n )\n\n const getPanelProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({ ...props, ref }),\n [],\n )\n\n const css: CSSUIObject = { ...styles.item, overflowAnchor: \"none\" }\n\n const cloneLabel =\n typeof label === \"function\"\n ? label({\n isExpanded: isOpen,\n isDisabled,\n })\n : label\n\n if (typeof children === \"function\")\n children = children({ isExpanded: isOpen, isDisabled })\n\n const validChildren = getValidChildren(children)\n\n const [customAccordionLabel] = findChildren(validChildren, AccordionLabel)\n const [customAccordionPanel] = findChildren(validChildren, AccordionPanel)\n\n const cloneChildren = !isEmpty(validChildren)\n ? omitChildren(validChildren, AccordionLabel, AccordionPanel)\n : children\n\n return (\n <AccordionItemProvider\n value={{ isOpen, isDisabled, icon, getLabelProps, getPanelProps }}\n >\n <ui.li\n ref={ref}\n className={cx(\"ui-accordion__item\", className)}\n aria-expanded={ariaAttr(isOpen)}\n __css={css}\n {...rest}\n >\n {customAccordionLabel ?? (\n <AccordionLabel>{cloneLabel}</AccordionLabel>\n )}\n {customAccordionPanel ?? (\n <AccordionPanel>{cloneChildren}</AccordionPanel>\n )}\n </ui.li>\n </AccordionItemProvider>\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { ChevronIcon } from \"@yamada-ui/icon\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { FC, PropsWithChildren, ReactNode } from \"react\"\nimport { useAccordionContext } from \"./accordion\"\nimport { useAccordionItemContext } from \"./accordion-item\"\n\ntype AccordionLabelOptions = {\n /**\n * The accordion icon to use.\n */\n icon?:\n | ReactNode\n | ((props: { isExpanded: boolean; isDisabled: boolean }) => ReactNode)\n}\n\nexport type AccordionLabelProps = HTMLUIProps<\"button\"> & AccordionLabelOptions\n\nexport const AccordionLabel = forwardRef<AccordionLabelProps, \"button\">(\n ({ className, icon: customIcon, children, ...rest }, ref) => {\n const {\n isOpen,\n isDisabled = false,\n icon: supplementIcon,\n getLabelProps,\n } = useAccordionItemContext()\n const { icon: generalIcon, iconHidden, styles } = useAccordionContext()\n\n const css: CSSUIObject = {\n display: \"inline-flex\",\n alignItems: \"center\",\n width: \"100%\",\n outline: 0,\n ...styles.button,\n }\n\n const cloneCustomIcon =\n typeof customIcon === \"function\"\n ? customIcon({\n isExpanded: isOpen,\n isDisabled,\n })\n : customIcon\n\n const cloneSupplementIcon =\n typeof supplementIcon === \"function\"\n ? supplementIcon({\n isExpanded: isOpen,\n isDisabled,\n })\n : supplementIcon\n\n const cloneGeneralIcon =\n typeof generalIcon === \"function\"\n ? generalIcon({\n isExpanded: isOpen,\n isDisabled,\n })\n : generalIcon\n\n return (\n <ui.button\n {...getLabelProps(rest, ref)}\n className={cx(\"ui-accordion__label\", className)}\n __css={css}\n >\n {children}\n {!iconHidden ? (\n <AccordionIcon>\n {cloneCustomIcon ?? cloneSupplementIcon ?? cloneGeneralIcon}\n </AccordionIcon>\n ) : null}\n </ui.button>\n )\n },\n)\n\nconst AccordionIcon: FC<PropsWithChildren<IconProps>> = ({\n className,\n children,\n ...rest\n}) => {\n const { isOpen, isDisabled } = useAccordionItemContext()\n const { styles } = useAccordionContext()\n\n const css: CSSUIObject = {\n opacity: isDisabled ? 0.4 : 1,\n transform: isOpen ? \"rotate(-180deg)\" : undefined,\n transition: \"transform 0.2s\",\n transformOrigin: \"center\",\n ...styles.icon,\n }\n\n if (children)\n return (\n <ui.span\n className={cx(\"ui-accordion__icon\", className)}\n __css={{\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n ml: \"auto\",\n }}\n >\n {children}\n </ui.span>\n )\n\n return (\n <ChevronIcon\n className={cx(\"ui-accordion__icon\", className)}\n __css={css}\n {...rest}\n />\n )\n}\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { WithTransitionProps } from \"@yamada-ui/motion\"\nimport type { CollapseProps } from \"@yamada-ui/transitions\"\nimport { Collapse } from \"@yamada-ui/transitions\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useAccordionContext } from \"./accordion\"\nimport { useAccordionItemContext } from \"./accordion-item\"\n\nexport type AccordionPanelProps = Omit<\n WithTransitionProps<HTMLUIProps<\"div\">>,\n \"isOpen\"\n> &\n Pick<CollapseProps, \"animationOpacity\" | \"startingHeight\" | \"endingHeight\">\n\nexport const AccordionPanel = forwardRef<AccordionPanelProps, \"div\">(\n (\n {\n className,\n unmountOnExit,\n animationOpacity,\n startingHeight,\n endingHeight,\n transition,\n transitionEnd,\n delay,\n duration,\n children,\n ...rest\n },\n ref,\n ) => {\n const { isOpen, getPanelProps } = useAccordionItemContext()\n const { styles } = useAccordionContext()\n\n const resolvedChildren =\n typeof children === \"string\" ? <p>{children}</p> : children\n\n const css: CSSUIObject = { ...styles.panel }\n\n return (\n <Collapse\n {...{\n isOpen,\n unmountOnExit,\n animationOpacity,\n startingHeight,\n endingHeight,\n transition,\n transitionEnd,\n delay,\n duration,\n }}\n >\n <ui.div\n {...getPanelProps(rest, ref)}\n className={cx(\"ui-accordion__panel\", className)}\n __css={css}\n >\n {resolvedChildren}\n </ui.div>\n </Collapse>\n )\n },\n)\n","import type { HTMLUIProps, ThemeProps, CSSUIObject } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\n\nexport type BadgeProps = HTMLUIProps<\"span\"> & ThemeProps<\"Badge\">\n\n/**\n * `Badge` is a component that emphasizes the status of an item to make it immediately recognizable.\n *\n * @see Docs https://yamada-ui.com/components/data-display/badge\n */\nexport const Badge = forwardRef<BadgeProps, \"span\">((props, ref) => {\n const [styles, mergedProps] = useComponentStyle(\"Badge\", props)\n const { className, ...rest } = omitThemeProps(mergedProps)\n\n const css: CSSUIObject = {\n display: \"inline-block\",\n whiteSpace: \"nowrap\",\n verticalAlign: \"middle\",\n ...styles,\n }\n\n return (\n <ui.span\n ref={ref}\n className={cx(\"ui-badge\", className)}\n __css={css}\n {...rest}\n />\n )\n})\n","import type {\n HTMLUIProps,\n ThemeProps,\n CSSUIObject,\n CSSUIProps,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useMultiComponentStyle,\n} from \"@yamada-ui/core\"\nimport { cx, createContext, getValidChildren } from \"@yamada-ui/utils\"\nimport { cloneElement } from \"react\"\n\nconst [BreadcrumbProvider, useBreadcrumb] = createContext<\n Record<string, CSSUIObject>\n>({\n name: `BreadcrumbContext`,\n errorMessage: `useBreadcrumb returned is 'undefined'. Seems you forgot to wrap the components in \"<Breadcrumb />\" `,\n})\n\ntype BreadcrumbOptions = {\n /**\n * The visual separator between each breadcrumb item.\n *\n * @default '/'\n */\n separator?: string | JSX.Element\n /**\n * The left and right margin applied to the separator.\n *\n * @default 'sm'\n */\n gap?: CSSUIProps[\"mx\"]\n /**\n * Props for ol element.\n */\n listProps?: HTMLUIProps<\"ol\">\n}\n\nexport type BreadcrumbProps = Omit<HTMLUIProps<\"nav\">, \"gap\"> &\n ThemeProps<\"Breadcrumb\"> &\n BreadcrumbOptions\n\n/**\n * `Breadcrumb` is a component that helps users understand the hierarchy of a website.\n *\n * @see Docs https://yamada-ui.com/components/navigation/breadcrumb\n */\nexport const Breadcrumb = forwardRef<BreadcrumbProps, \"nav\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Breadcrumb\", props)\n\n const {\n className,\n children,\n separator = \"/\",\n gap = \"0.5rem\",\n listProps,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const css: CSSUIObject = {\n display: \"flex\",\n alignItems: \"center\",\n ...styles.list,\n }\n\n const validChildren = getValidChildren(children)\n const count = validChildren.length\n\n const cloneChildren = validChildren.map((child, index) =>\n cloneElement(child, {\n separator,\n gap,\n isLastChild: count === index + 1,\n }),\n )\n\n return (\n <BreadcrumbProvider value={styles}>\n <ui.nav\n ref={ref}\n className={cx(\"ui-breadcrumb\", className)}\n __css={styles.container}\n {...rest}\n >\n <ui.ol className=\"ui-breadcrumb__list\" {...listProps} __css={css}>\n {cloneChildren}\n </ui.ol>\n </ui.nav>\n </BreadcrumbProvider>\n )\n})\n\ntype BreadcrumbItemOptions = Pick<BreadcrumbProps, \"separator\" | \"gap\"> & {\n /**\n * If `true`, change to span element.\n *\n * @default false\n */\n isCurrentPage?: boolean\n /**\n * If `true`, not show separator.\n *\n * @default false\n */\n isLastChild?: boolean\n}\n\nexport type BreadcrumbItemProps = HTMLUIProps<\"li\"> & BreadcrumbItemOptions\n\nexport const BreadcrumbItem = forwardRef<BreadcrumbItemOptions, \"li\">(\n (\n {\n className,\n children,\n separator,\n isCurrentPage,\n isLastChild,\n gap,\n ...rest\n },\n ref,\n ) => {\n const styles = useBreadcrumb()\n\n const validChildren = getValidChildren(children)\n\n const cloneChildren = validChildren.map((child) => {\n if (child.type === BreadcrumbLink) {\n return cloneElement(child, {\n isCurrentPage,\n })\n }\n\n if (child.type === BreadcrumbSeparator) {\n return cloneElement(child, {\n gap,\n children: child.props.children || separator,\n })\n }\n\n return child\n })\n\n const css: CSSUIObject = {\n display: \"inline-flex\",\n alignItems: \"center\",\n ...styles.item,\n }\n\n return (\n <ui.li\n ref={ref}\n className={cx(\"ui-breadcrumb__item\", className)}\n __css={css}\n {...rest}\n >\n {cloneChildren}\n\n {!isLastChild ? (\n <BreadcrumbSeparator gap={gap}>{separator}</BreadcrumbSeparator>\n ) : null}\n </ui.li>\n )\n },\n)\n\ntype BreadcrumbLinkOptions = {\n /**\n * If `true`, change to span element.\n *\n * @default false\n */\n isCurrentPage?: boolean\n}\n\nexport type BreadcrumbLinkProps = HTMLUIProps<\"a\"> & BreadcrumbLinkOptions\n\nexport const BreadcrumbLink = forwardRef<BreadcrumbLinkProps, \"a\">(\n ({ className, children, isCurrentPage, href, ...rest }, ref) => {\n const styles = useBreadcrumb()\n\n return (\n <ui.a\n ref={ref}\n as={!isCurrentPage ? \"a\" : \"span\"}\n href={!isCurrentPage ? href : undefined}\n aria-current={isCurrentPage ? \"page\" : undefined}\n className={cx(\"ui-breadcrumb__link\", className)}\n __css={styles.link}\n {...rest}\n >\n {children}\n </ui.a>\n )\n },\n)\n\ntype BreadcrumbSeparatorOptions = {\n /**\n * The CSS `margin-inline-start`, and `margin-inline-end` property.\n */\n gap?: CSSUIObject[\"mx\"]\n}\n\nexport type BreadcrumbSeparatorProps = HTMLUIProps<\"span\"> &\n BreadcrumbSeparatorOptions\n\nexport const BreadcrumbSeparator = forwardRef<BreadcrumbSeparatorProps, \"span\">(\n ({ children, gap: mx, ...rest }, ref) => {\n const styles = useBreadcrumb()\n const css: CSSUIObject = {\n mx,\n ...styles.separator,\n }\n\n return (\n <ui.span\n ref={ref}\n className=\"ui-breadcrumb__item__separator\"\n __css={css}\n {...rest}\n >\n {children}\n </ui.span>\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useMultiComponentStyle,\n} from \"@yamada-ui/core\"\nimport { createContext, cx } from \"@yamada-ui/utils\"\n\nconst [CardProvider, useCard] = createContext<Record<string, CSSUIObject>>({\n name: `CardContext`,\n errorMessage: `useCard returned is 'undefined'. Seems you forgot to wrap the components in \"<Card />\" `,\n})\n\ntype CardOptions = {\n /**\n * The CSS `flex-direction` property.\n */\n direction?: CSSUIObject[\"flexDirection\"]\n /**\n * The CSS `justify-content` property.\n */\n justify?: CSSUIObject[\"justifyContent\"]\n /**\n * The CSS `align-items` property.\n */\n align?: CSSUIObject[\"alignItems\"]\n}\n\nexport type CardProps = Omit<HTMLUIProps<\"article\">, \"direction\"> &\n ThemeProps<\"Card\"> &\n CardOptions\n\n/**\n * `Card` is a component that groups and displays related information. By default, it renders a `section` element.\n *\n * @see Docs https://yamada-ui.com/components/data-display/card\n */\nexport const Card = forwardRef<CardProps, \"article\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Card\", props)\n const {\n className,\n direction: flexDirection = \"column\",\n justify: justifyContent,\n align: alignItems,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const css: CSSUIObject = {\n display: \"flex\",\n flexDirection,\n justifyContent,\n alignItems,\n wordWrap: \"break-word\",\n ...styles.container,\n }\n\n return (\n <CardProvider value={styles}>\n <ui.section\n ref={ref}\n className={cx(\"ui-card\", className)}\n __css={css}\n {...rest}\n />\n </CardProvider>\n )\n})\n\nexport type CardHeaderProps = HTMLUIProps<\"header\">\n\nexport const CardHeader = forwardRef<CardHeaderProps, \"header\">(\n ({ className, ...rest }, ref) => {\n const styles = useCard()\n\n const css: CSSUIObject = {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n ...styles.header,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-card__header\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type CardBodyProps = HTMLUIProps<\"main\">\n\nexport const CardBody = forwardRef<CardBodyProps, \"main\">(\n ({ className, ...rest }, ref) => {\n const styles = useCard()\n\n const css: CSSUIObject = {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n ...styles.body,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-card__body\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type CardFooterProps = HTMLUIProps<\"footer\">\n\nexport const CardFooter = forwardRef<CardFooterProps, \"footer\">(\n ({ className, ...rest }, ref) => {\n const styles = useCard()\n\n const css: CSSUIObject = {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n ...styles.footer,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-card__footer\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type {\n HTMLUIProps,\n ThemeProps,\n ComponentArgs,\n UIPropGetter,\n} from \"@yamada-ui/core\"\nimport { ui, useMultiComponentStyle, omitThemeProps } from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport {\n useFormControl,\n useFormControlProps,\n getFormControlProperties,\n} from \"@yamada-ui/form-control\"\nimport type { SVGMotionProps } from \"@yamada-ui/motion\"\nimport { AnimatePresence, motion } from \"@yamada-ui/motion\"\nimport { trackFocusVisible } from \"@yamada-ui/use-focus-visible\"\nimport {\n cx,\n omitObject,\n pickObject,\n useCallbackRef,\n useSafeLayoutEffect,\n useUpdateEffect,\n handlerAll,\n dataAttr,\n mergeRefs,\n funcAll,\n} from \"@yamada-ui/utils\"\nimport type {\n ChangeEvent,\n ChangeEventHandler,\n CSSProperties,\n FC,\n FocusEventHandler,\n InputHTMLAttributes,\n KeyboardEvent,\n ReactElement,\n SyntheticEvent,\n ForwardedRef,\n Ref,\n} from \"react\"\nimport {\n cloneElement,\n useCallback,\n useEffect,\n useRef,\n useState,\n forwardRef,\n useId,\n} from \"react\"\nimport { useCheckboxGroupContext } from \"./checkbox-group\"\n\nexport type UseCheckboxProps<Y extends string | number = string> =\n FormControlOptions & {\n /**\n * id assigned to input.\n */\n id?: string\n /**\n * The HTML `name` attribute used for forms.\n */\n name?: string\n /**\n * The value to be used in the checkbox input.\n */\n value?: Y\n /**\n * If `true`, the checkbox will be initially checked.\n *\n * @default false\n */\n defaultIsChecked?: boolean\n /**\n * If `true`, the checkbox will be checked.\n *\n * @default false\n */\n isChecked?: boolean\n /**\n * If `true`, the checkbox will be indeterminate.\n *\n * @default false\n */\n isIndeterminate?: boolean\n /**\n * The callback invoked when the checked state changes.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>\n /**\n * The callback invoked when the checkbox is focused.\n */\n onFocus?: FocusEventHandler<HTMLInputElement>\n /**\n * The callback invoked when the checkbox is blurred.\n */\n onBlur?: FocusEventHandler<HTMLInputElement>\n /**\n * The tab-index property of the underlying input element.\n */\n tabIndex?: number\n }\n\nexport const useCheckbox = <Y extends string | number = string>(\n props: UseCheckboxProps<Y>,\n) => {\n const {\n name,\n value,\n defaultIsChecked,\n tabIndex,\n required,\n disabled,\n readOnly,\n isIndeterminate,\n ...rest\n } = useFormControlProps(props)\n const id = props.id || useId()\n\n const [isFocusVisible, setIsFocusVisible] = useState<boolean>(false)\n const [isFocused, setFocused] = useState<boolean>(false)\n const [isHovered, setHovered] = useState<boolean>(false)\n const [isActive, setActive] = useState<boolean>(false)\n\n const inputRef = useRef<HTMLInputElement>(null)\n const [isLabel, setIsLabel] = useState<boolean>(true)\n\n const [isChecked, setIsChecked] = useState<boolean>(!!defaultIsChecked)\n\n const isControlled = props.isChecked !== undefined\n const checked = isControlled ? (props.isChecked as boolean) : isChecked\n\n const onChange = useCallbackRef(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (readOnly || disabled) {\n ev.preventDefault()\n\n return\n }\n\n if (!isControlled)\n setIsChecked(!checked || isIndeterminate ? true : ev.target.checked)\n\n rest.onChange?.(ev)\n },\n [readOnly, disabled, isControlled, checked, isIndeterminate],\n )\n const onBlur = useCallbackRef(rest.onBlur)\n const onFocus = useCallbackRef(rest.onFocus)\n\n const onKeyDown = useCallback(\n ({ key }: KeyboardEvent<Element>) => {\n if (key === \" \") setActive(true)\n },\n [setActive],\n )\n\n const onKeyUp = useCallback(\n ({ key }: KeyboardEvent<Element>) => {\n if (key === \" \") setActive(false)\n },\n [setActive],\n )\n\n useEffect(() => {\n return trackFocusVisible(setIsFocusVisible)\n }, [])\n\n useSafeLayoutEffect(() => {\n if (inputRef.current)\n inputRef.current.indeterminate = Boolean(isIndeterminate)\n }, [isIndeterminate])\n\n useUpdateEffect(() => {\n if (disabled) setFocused(false)\n }, [disabled, setFocused])\n\n useSafeLayoutEffect(() => {\n if (!inputRef.current?.form) return\n\n inputRef.current.form.onreset = () => setIsChecked(!!defaultIsChecked)\n }, [])\n\n useSafeLayoutEffect(() => {\n if (!inputRef.current) return\n\n if (inputRef.current.checked !== checked)\n setIsChecked(inputRef.current.checked)\n }, [inputRef.current])\n\n const getContainerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n ),\n ...props,\n ref: mergeRefs(ref, (el: HTMLElement | undefined) => {\n if (el) setIsLabel(el.tagName === \"LABEL\")\n }),\n \"data-checked\": dataAttr(checked),\n onClick: handlerAll(props.onClick, () => {\n if (isLabel) return\n\n inputRef.current?.click()\n\n requestAnimationFrame(() => inputRef.current?.focus())\n }),\n }),\n [checked, isLabel, rest],\n )\n\n const getIconProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n ),\n ...props,\n ref,\n \"data-active\": dataAttr(isActive),\n \"data-hover\": dataAttr(isHovered),\n \"data-checked\": dataAttr(checked),\n \"data-focus\": dataAttr(isFocused),\n \"data-focus-visible\": dataAttr(isFocused && isFocusVisible),\n \"data-indeterminate\": dataAttr(isIndeterminate),\n \"aria-hidden\": true,\n onMouseDown: handlerAll(props.onMouseDown, (ev: React.MouseEvent) => {\n if (isFocused) ev.preventDefault()\n\n setActive(true)\n }),\n onMouseUp: handlerAll(props.onMouseUp, () => setActive(false)),\n onMouseEnter: handlerAll(props.onMouseEnter, () => setHovered(true)),\n onMouseLeave: handlerAll(props.onMouseLeave, () => setHovered(false)),\n }),\n [\n isActive,\n checked,\n isFocused,\n isHovered,\n isFocusVisible,\n isIndeterminate,\n rest,\n ],\n )\n\n const getInputProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n ),\n ...props,\n ref: mergeRefs(inputRef, ref),\n id,\n type: \"checkbox\",\n name,\n value,\n tabIndex,\n required,\n disabled,\n readOnly,\n checked,\n style: {\n border: \"0px\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n height: \"1px\",\n width: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\",\n },\n onChange: handlerAll(props.onChange, onChange),\n onBlur: handlerAll(props.onBlur, onBlur, () => setFocused(false)),\n onFocus: handlerAll(props.onFocus, onFocus, () => setFocused(true)),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n onKeyUp: handlerAll(props.onKeyUp, onKeyUp),\n }),\n [\n rest,\n id,\n name,\n value,\n tabIndex,\n required,\n disabled,\n readOnly,\n checked,\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n onKeyUp,\n ],\n )\n\n const getLabelProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n ),\n ...props,\n ref,\n \"data-checked\": dataAttr(checked),\n onMouseDown: handlerAll(props.onMouseDown, (ev: SyntheticEvent) => {\n ev.preventDefault()\n ev.stopPropagation()\n }),\n onTouchStart: handlerAll(props.onTouchStart, (ev: SyntheticEvent) => {\n ev.preventDefault()\n ev.stopPropagation()\n }),\n }),\n [checked, rest],\n )\n\n return {\n isFocusVisible,\n isFocused,\n isHovered,\n isActive,\n isChecked: checked,\n isIndeterminate,\n getContainerProps,\n getIconProps,\n getInputProps,\n getLabelProps,\n }\n}\n\nexport type UseCheckboxReturn = ReturnType<typeof useCheckbox>\n\ntype CheckboxOptions = {\n /**\n * Props for icon component.\n */\n iconProps?: Omit<HTMLUIProps<\"span\">, \"children\"> & { children: ReactElement }\n /**\n * Props for input element.\n */\n inputProps?: InputHTMLAttributes<HTMLInputElement>\n /**\n * Props for label element.\n */\n labelProps?: HTMLUIProps<\"span\">\n}\n\nexport type CheckboxProps<Y extends string | number = string> = Omit<\n HTMLUIProps<\"label\">,\n keyof UseCheckboxProps | \"checked\"\n> &\n ThemeProps<\"Checkbox\"> &\n UseCheckboxProps<Y> &\n CheckboxOptions\n\n/**\n * `Checkbox` is a component used for allowing users to select multiple values from multiple options.\n *\n * @see Docs https://yamada-ui.com/components/forms/checkbox\n */\nexport const Checkbox = forwardRef(\n <Y extends string | number = string>(\n props: CheckboxProps<Y>,\n ref: ForwardedRef<HTMLInputElement>,\n ) => {\n const group = useCheckboxGroupContext()\n const control = useFormControl(props)\n const [styles, mergedProps] = useMultiComponentStyle(\"Checkbox\", {\n ...(group ? omitObject(group, [\"value\"]) : {}),\n ...props,\n })\n const {\n className,\n gap = \"0.5rem\",\n isRequired = group?.isRequired ?? control.isRequired,\n isReadOnly = group?.isReadOnly ?? control.isReadOnly,\n isDisabled = group?.isDisabled ?? control.isDisabled,\n isInvalid = group?.isInvalid ?? control.isInvalid,\n iconProps,\n inputProps,\n labelProps,\n children,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const {\n isChecked,\n isIndeterminate,\n getContainerProps,\n getInputProps,\n getIconProps,\n getLabelProps,\n } = useCheckbox({\n ...rest,\n isRequired,\n isReadOnly,\n isDisabled,\n isInvalid,\n isChecked:\n group?.value && rest.value\n ? group.value.includes(rest.value)\n : rest.isChecked,\n onChange:\n group?.onChange && rest.value\n ? funcAll(group.onChange, rest.onChange)\n : rest.onChange,\n })\n\n const cloneIcon = cloneElement(iconProps?.children ?? <CheckboxIcon />, {\n __css: {\n opacity: isChecked || isIndeterminate ? 1 : 0,\n transform: isChecked || isIndeterminate ? \"scale(1)\" : \"scale(0.95)\",\n transitionProperty: \"transform\",\n transitionDuration: \"normal\",\n },\n isIndeterminate,\n isChecked,\n isRequired,\n isReadOnly,\n isDisabled,\n isInvalid,\n })\n\n return (\n <ui.label\n className={cx(\"ui-checkbox\", className)}\n {...getContainerProps()}\n __css={{\n cursor: \"pointer\",\n position: \"relative\",\n display: \"inline-flex\",\n alignItems: \"center\",\n verticalAlign: \"top\",\n gap,\n ...styles.container,\n }}\n {...omitObject(rest, [\n \"id\",\n \"name\",\n \"value\",\n \"defaultValue\",\n \"defaultIsChecked\",\n \"isChecked\",\n \"isIndeterminate\",\n \"onChange\",\n \"onBlur\",\n \"onFocus\",\n \"tabIndex\",\n ])}\n >\n <ui.input\n className=\"ui-checkbox__input\"\n {...getInputProps(inputProps, ref)}\n />\n\n <ui.span\n className=\"ui-checkbox__icon\"\n __css={{\n pointerEvents: isReadOnly ? \"none\" : undefined,\n position: \"relative\",\n display: \"inline-block\",\n userSelect: \"none\",\n ...styles.icon,\n }}\n {...getIconProps(\n omitObject(iconProps ?? { children: undefined }, [\"children\"]),\n )}\n >\n {cloneIcon}\n </ui.span>\n\n <ui.span\n className=\"ui-checkbox__label\"\n __css={{ ...styles.label }}\n {...getLabelProps(labelProps)}\n >\n {children}\n </ui.span>\n </ui.label>\n )\n },\n) as {\n <Y extends string | number = string>(\n props: CheckboxProps<Y> & { ref?: Ref<HTMLInputElement> },\n ): JSX.Element\n} & ComponentArgs\n\nCheckbox.displayName = \"Checkbox\"\n\nexport type CheckboxIconProps = HTMLUIProps<\"svg\"> &\n SVGMotionProps<SVGSVGElement> &\n FormControlOptions & {\n /**\n * If `true`, the icon will be indeterminate.\n *\n * @default false\n */\n isIndeterminate?: boolean\n /**\n * If `true`, the icon will be checked.\n *\n * @default false\n */\n isChecked?: boolean\n }\n\nexport const CheckboxIcon: FC<CheckboxIconProps> = ({\n isIndeterminate,\n isChecked,\n ...rest\n}) => {\n const iconProps = omitObject(rest, [\n \"isRequired\",\n \"isReadOnly\",\n \"isDisabled\",\n \"isInvalid\",\n ])\n\n return (\n <AnimatePresence initial={false}>\n {isIndeterminate || isChecked ? (\n <ui.div\n __css={{\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n }}\n >\n <ui.div\n as={motion.div}\n variants={{\n unchecked: { scale: 0.5 },\n checked: { scale: 1 },\n }}\n initial=\"unchecked\"\n animate=\"checked\"\n exit=\"unchecked\"\n style={\n {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n } as CSSProperties\n }\n >\n {isIndeterminate ? (\n <IndeterminateIcon {...iconProps} />\n ) : (\n <CheckIcon {...iconProps} />\n )}\n </ui.div>\n </ui.div>\n ) : null}\n </AnimatePresence>\n )\n}\n\nconst CheckIcon: FC<HTMLUIProps<\"svg\"> & SVGMotionProps<SVGSVGElement>> = (\n props,\n) => {\n return (\n <ui.svg\n as={motion.svg}\n width=\"1.2em\"\n viewBox=\"0 0 12 10\"\n variants={{\n unchecked: {\n opacity: 0,\n strokeDashoffset: 16,\n },\n checked: {\n opacity: 1,\n strokeDashoffset: 0,\n transition: { duration: 0.2 },\n },\n }}\n style={{\n fill: \"none\",\n strokeWidth: 2,\n stroke: \"currentColor\",\n strokeDasharray: 16,\n }}\n {...props}\n >\n <polyline points=\"1.5 6 4.5 9 10.5 1\" />\n </ui.svg>\n )\n}\n\nconst IndeterminateIcon: FC<\n HTMLUIProps<\"svg\"> & SVGMotionProps<SVGSVGElement>\n> = (props) => {\n return (\n <ui.svg\n as={motion.svg}\n width=\"1.2em\"\n viewBox=\"0 0 24 24\"\n variants={{\n unchecked: {\n scaleX: 0.65,\n opacity: 0,\n },\n checked: {\n scaleX: 1,\n opacity: 1,\n transition: {\n scaleX: { duration: 0 },\n opacity: { duration: 0.02 },\n },\n },\n }}\n style={{ stroke: \"currentColor\", strokeWidth: 4 }}\n {...props}\n >\n <line x1=\"21\" x2=\"3\" y1=\"12\" y2=\"12\" />\n </ui.svg>\n )\n}\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport type { Dict } from \"@yamada-ui/utils\"\nimport {\n createContext,\n cx,\n findChildren,\n getValidChildren,\n handlerAll,\n dataAttr,\n ariaAttr,\n} from \"@yamada-ui/utils\"\nimport type { ReactNode, FocusEventHandler } from \"react\"\nimport { useState, useId } from \"react\"\n\nexport type FormControlOptions = {\n /**\n * If `true`, the form control will be required.\n *\n * @default false\n */\n isRequired?: boolean\n /**\n * If `true`, the form control will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true`, the form control will be invalid.\n *\n * @default false\n */\n isInvalid?: boolean\n /**\n * If `true`, the form control will be readonly.\n *\n * @default false\n */\n isReadOnly?: boolean\n}\n\ntype FormControlAdditionalOptions = LabelOptions & {\n /**\n * If `true`, switch between helper message and error message using isInvalid.\n *\n * @default true\n */\n isReplace?: boolean\n /**\n * The form control label to use.\n */\n label?: ReactNode\n /**\n * The form control helper message to use.\n */\n helperMessage?: ReactNode\n /**\n * The form control error message to use.\n */\n errorMessage?: ReactNode\n}\n\nexport type FormControlProps = HTMLUIProps<\"div\"> &\n ThemeProps<\"FormControl\"> &\n FormControlOptions &\n FormControlAdditionalOptions\n\ntype FormControlContext = {\n id?: string\n isFocused: boolean\n isRequired: boolean\n isDisabled: boolean\n isInvalid: boolean\n isReadOnly: boolean\n isReplace: boolean\n onFocus: () => void\n onBlur: () => void\n}\n\nconst [FormControlContextProvider, useFormControlContext] = createContext<\n FormControlContext | undefined\n>({\n strict: false,\n name: \"FormControlContext\",\n})\n\ntype FormControlStylesContext = Record<string, CSSUIObject>\n\nconst [FormControlStylesProvider, useFormControlStyles] = createContext<\n FormControlStylesContext | undefined\n>({\n strict: false,\n name: \"FormControlStyleContext\",\n})\n\n/**\n * `FormControl` is a component used to group form elements with labels, help messages, error messages, etc.\n *\n * @see Docs https://yamada-ui.com/components/forms/form-control\n */\nexport const FormControl = forwardRef<FormControlProps, \"div\">(\n ({ id, ...props }, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"FormControl\", props)\n const {\n className,\n isRequired = false,\n isDisabled = false,\n isInvalid = false,\n isReadOnly = false,\n isReplace = true,\n label,\n helperMessage,\n errorMessage,\n children,\n requiredIndicator,\n optionalIndicator,\n ...rest\n } = omitThemeProps(mergedProps)\n\n id ??= useId()\n\n const [isFocused, setFocused] = useState<boolean>(false)\n\n const validChildren = getValidChildren(children)\n\n const [customLabel] = findChildren(validChildren, Label)\n const [customHelperMessage] = findChildren(validChildren, HelperMessage)\n const [customErrorMessage] = findChildren(validChildren, ErrorMessage)\n\n const isCustomLabel = !!customLabel\n const isCustomHelperMessage = !!customHelperMessage\n const isCustomErrorMessage = !!customErrorMessage\n\n const css: CSSUIObject = {\n ...styles.container,\n }\n\n return (\n <FormControlContextProvider\n value={{\n id,\n isFocused,\n isRequired,\n isDisabled,\n isInvalid,\n isReadOnly,\n isReplace,\n onFocus: () => setFocused(true),\n onBlur: () => setFocused(false),\n }}\n >\n <FormControlStylesProvider value={styles}>\n <ui.div\n ref={ref}\n className={cx(\"ui-form__control\", className)}\n role=\"group\"\n data-focus={dataAttr(isFocused)}\n data-disabled={dataAttr(isDisabled)}\n data-invalid={dataAttr(isInvalid)}\n data-readonly={dataAttr(isReadOnly)}\n __css={css}\n {...rest}\n >\n {!isCustomLabel && label ? (\n <Label\n requiredIndicator={requiredIndicator}\n optionalIndicator={optionalIndicator}\n >\n {label}\n </Label>\n ) : null}\n {children}\n {!isCustomHelperMessage && helperMessage ? (\n <HelperMessage>{helperMessage}</HelperMessage>\n ) : null}\n {!isCustomErrorMessage && errorMessage ? (\n <ErrorMessage>{errorMessage}</ErrorMessage>\n ) : null}\n </ui.div>\n </FormControlStylesProvider>\n </FormControlContextProvider>\n )\n },\n)\n\nexport const useFormControl = (\n props: FormControlOptions & {\n id?: string\n disabled?: boolean\n readOnly?: boolean\n required?: boolean\n },\n) => {\n const control = useFormControlContext()\n\n const id = props.id ?? control?.id\n const isDisabled = props.disabled ?? props.isDisabled ?? control?.isDisabled\n const isReadOnly = props.readOnly ?? props.isReadOnly ?? control?.isReadOnly\n const isRequired = props.required ?? props.isRequired ?? control?.isRequired\n const isInvalid = props.isInvalid ?? control?.isInvalid\n\n return {\n id,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n }\n}\n\nexport type UseFormControlProps<Y extends HTMLElement> = FormControlOptions & {\n id?: string\n onFocus?: FocusEventHandler<Y>\n onBlur?: FocusEventHandler<Y>\n disabled?: boolean\n readOnly?: boolean\n required?: boolean\n}\n\nexport const useFormControlProps = <Y extends HTMLElement, M extends Dict>({\n id,\n disabled,\n readOnly,\n required,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n onFocus,\n onBlur,\n ...rest\n}: UseFormControlProps<Y> & M) => {\n const control = useFormControlContext()\n\n disabled ??= isDisabled ?? control?.isDisabled\n required ??= isRequired ?? control?.isRequired\n readOnly ??= isReadOnly ?? control?.isReadOnly\n isInvalid ??= control?.isInvalid\n\n return {\n id: id ?? control?.id,\n disabled,\n required,\n readOnly,\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-readonly\": ariaAttr(readOnly),\n \"aria-required\": ariaAttr(required),\n \"aria-invalid\": ariaAttr(isInvalid),\n \"data-readonly\": dataAttr(readOnly),\n onFocus: handlerAll(control?.onFocus, onFocus),\n onBlur: handlerAll(control?.onBlur, onBlur),\n ...(disabled || readOnly\n ? {\n _hover: {},\n _active: {},\n _focus: {},\n _invalid: {},\n _focusVisible: {},\n }\n : {}),\n ...rest,\n }\n}\n\nexport const formControlBaseProperties = [\n \"disabled\",\n \"required\",\n \"readOnly\",\n \"aria-disabled\",\n \"aria-readonly\",\n \"aria-required\",\n \"aria-invalid\",\n \"data-readonly\",\n \"onFocus\",\n \"onBlur\",\n \"_hover\",\n \"_active\",\n \"_focus\",\n \"_invalid\",\n \"_focusVisible\",\n] as const\n\nexport const formControlProperties =\n formControlBaseProperties as unknown as any[]\n\nexport const getFormControlProperties = ({\n omit = [],\n pick = [],\n}: {\n omit?: (typeof formControlBaseProperties)[number][]\n pick?: (typeof formControlBaseProperties)[number][]\n}) => {\n let result = formControlProperties\n\n if (pick.length) {\n result = result.filter((property) => pick.includes(property))\n }\n\n if (omit.length) {\n result = result.filter((property) => !omit.includes(property))\n }\n\n return result\n}\n\ntype LabelOptions = {\n requiredIndicator?: ReactNode\n optionalIndicator?: ReactNode\n isRequired?: boolean\n}\n\nexport type LabelProps = HTMLUIProps<\"label\"> & LabelOptions\n\nexport const Label = forwardRef<LabelProps, \"label\">(\n (\n {\n className,\n htmlFor,\n isRequired: isResolveRequired,\n requiredIndicator = <RequiredIndicator />,\n optionalIndicator = null,\n children,\n ...rest\n },\n ref,\n ) => {\n const { id, isRequired, isFocused, isDisabled, isInvalid, isReadOnly } =\n useFormControlContext() ?? {}\n const styles = useFormControlStyles() ?? {}\n\n isResolveRequired ??= isRequired\n\n const css: CSSUIObject = {\n display: \"block\",\n pointerEvents: isReadOnly ? \"none\" : undefined,\n ...styles.label,\n }\n\n return (\n <ui.label\n ref={ref}\n className={cx(\"ui-form__label\", className)}\n data-focus={dataAttr(isFocused)}\n data-disabled={dataAttr(isDisabled)}\n data-readonly={dataAttr(isReadOnly)}\n data-invalid={dataAttr(isInvalid)}\n htmlFor={htmlFor ?? id}\n __css={css}\n style={{ cursor: isDisabled ? \"not-allowed\" : undefined }}\n {...rest}\n >\n {children}\n {isResolveRequired ? requiredIndicator : optionalIndicator}\n </ui.label>\n )\n },\n)\n\ntype RequiredIndicatorProps = HTMLUIProps<\"span\">\n\nconst RequiredIndicator = forwardRef<RequiredIndicatorProps, \"span\">(\n ({ className, ...rest }, ref) => {\n const styles = useFormControlStyles() ?? {}\n\n const css: CSSUIObject = { ...styles.requiredIndicator }\n\n return (\n <ui.span\n ref={ref}\n className={cx(\"ui-form__required-indicator\", className)}\n role=\"presentation\"\n aria-hidden={true}\n __css={css}\n {...rest}\n >\n *\n </ui.span>\n )\n },\n)\n\nexport type HelperMessageProps = HTMLUIProps<\"div\">\n\nexport const HelperMessage = forwardRef<HelperMessageProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const { isInvalid, isReplace } = useFormControlContext() ?? {}\n const styles = useFormControlStyles() ?? {}\n\n if (isReplace && isInvalid) return null\n\n const css: CSSUIObject = { ...styles.helperMessage }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-form__helper-message\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type ErrorMessageProps = HTMLUIProps<\"div\">\n\nexport const ErrorMessage = forwardRef<ErrorMessageProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const { isInvalid } = useFormControlContext() ?? {}\n const styles = useFormControlStyles() ?? {}\n\n if (!isInvalid) return null\n\n const css: CSSUIObject = { ...styles.errorMessage }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-form__error-message\", className)}\n aria-live=\"polite\"\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import { isMac } from \"@yamada-ui/utils\"\nimport { useEffect, useState } from \"react\"\n\ntype Modality = \"keyboard\" | \"pointer\" | \"virtual\"\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent\ntype Handler = (modality: Modality, e: HandlerEvent | null) => void\ntype FocusVisibleCallback = (isFocusVisible: boolean) => void\n\nlet hasSetup = false\nlet modality: Modality | null = null\nlet hasEventBeforeFocus = false\nlet hasBlurredWindowRecently = false\n\nconst handlers = new Set<Handler>()\n\nconst trigger = (modality: Modality, ev: HandlerEvent | null) =>\n handlers.forEach((handler) => handler(modality, ev))\n\nconst onValid = (e: KeyboardEvent) => {\n return !(\n e.metaKey ||\n (!isMac && e.altKey) ||\n e.ctrlKey ||\n e.key === \"Control\" ||\n e.key === \"Shift\" ||\n e.key === \"Meta\"\n )\n}\n\nconst onKeyboard = (ev: KeyboardEvent) => {\n hasEventBeforeFocus = true\n\n if (onValid(ev)) {\n modality = \"keyboard\"\n\n trigger(\"keyboard\", ev)\n }\n}\n\nconst onPointer = (ev: PointerEvent | MouseEvent) => {\n modality = \"pointer\"\n\n if (\n ev.type === \"mousedown\" ||\n ev.type === \"pointerdown\" ||\n ev.type === \"pointerup\"\n ) {\n hasEventBeforeFocus = true\n\n const target = ev.composedPath ? ev.composedPath()[0] : ev.target\n\n if ((target as HTMLElement).matches(\":focus-visible\")) return\n\n trigger(\"pointer\", ev)\n }\n}\n\nconst isVirtualClick = (ev: MouseEvent | PointerEvent): boolean => {\n if ((ev as any).mozInputSource === 0 && ev.isTrusted) return true\n\n return ev.detail === 0 && !(ev as PointerEvent).pointerType\n}\n\nconst onClick = (ev: MouseEvent) => {\n if (!isVirtualClick(ev)) return\n\n hasEventBeforeFocus = true\n\n modality = \"virtual\"\n}\n\nconst onFocus = (ev: FocusEvent) => {\n if (ev.target === window || ev.target === document) return\n\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n modality = \"virtual\"\n\n trigger(\"virtual\", ev)\n }\n\n hasEventBeforeFocus = false\n hasBlurredWindowRecently = false\n}\n\nconst onBlur = () => {\n hasEventBeforeFocus = false\n hasBlurredWindowRecently = true\n}\n\nconst isFocusVisible = () => modality !== \"pointer\"\n\nconst setGlobalFocusEvents = () => {\n if (typeof window === \"undefined\" || hasSetup) return\n\n const { focus } = HTMLElement.prototype\n\n HTMLElement.prototype.focus = function customFocus(...args) {\n hasEventBeforeFocus = true\n\n if (this) focus.apply(this, args)\n }\n\n document.addEventListener(\"keydown\", onKeyboard, true)\n document.addEventListener(\"keyup\", onKeyboard, true)\n document.addEventListener(\"click\", onClick, true)\n\n window.addEventListener(\"focus\", onFocus, true)\n window.addEventListener(\"blur\", onBlur, false)\n\n if (typeof PointerEvent !== \"undefined\") {\n document.addEventListener(\"pointerdown\", onPointer, true)\n document.addEventListener(\"pointermove\", onPointer, true)\n document.addEventListener(\"pointerup\", onPointer, true)\n } else {\n document.addEventListener(\"mousedown\", onPointer, true)\n document.addEventListener(\"mousemove\", onPointer, true)\n document.addEventListener(\"mouseup\", onPointer, true)\n }\n\n hasSetup = true\n}\n\nexport const trackFocusVisible = (func: FocusVisibleCallback) => {\n setGlobalFocusEvents()\n\n func(isFocusVisible())\n\n const handler = () => func(isFocusVisible())\n\n handlers.add(handler)\n\n return () => {\n handlers.delete(handler)\n }\n}\n\nexport const useFocusVisible = () => {\n const [focusVisible, setFocusVisible] = useState(false)\n const [focus, setFocus] = useState(false)\n\n useEffect(() => {\n return trackFocusVisible(setFocusVisible)\n }, [])\n\n return {\n focusVisible: focusVisible && focus,\n onFocus: () => setFocus(true),\n onBlur: () => setFocus(false),\n }\n}\n","import type { HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui } from \"@yamada-ui/core\"\n\nexport type BoxProps = HTMLUIProps<\"div\">\n\n/**\n * `Box` is the most abstract component on which all other components are built. By default, it renders a `div` element.\n *\n * @see Docs https://yamada-ui.com/components/layouts/box\n */\nexport const Box = ui(\"div\")\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\n\ntype FlexOptions = {\n /**\n * The CSS `flex-direction` property.\n */\n direction?: CSSUIObject[\"flexDirection\"]\n /**\n * The CSS `justify-content` property.\n */\n justify?: CSSUIObject[\"justifyContent\"]\n /**\n * The CSS `align-items` property.\n */\n align?: CSSUIObject[\"alignItems\"]\n /**\n * The CSS `flex-wrap` property.\n */\n wrap?: CSSUIObject[\"flexWrap\"]\n /**\n * The CSS `flex-basis` property.\n */\n basis?: CSSUIObject[\"flexBasis\"]\n /**\n * The CSS `flex-grow` property.\n */\n grow?: CSSUIObject[\"flexGrow\"]\n /**\n * The CSS `flex-shrink` property.\n */\n shrink?: CSSUIObject[\"flexShrink\"]\n}\n\nexport type FlexProps = Omit<HTMLUIProps<\"div\">, \"direction\"> & FlexOptions\n\n/**\n * `Flex` is a component that sets `flex` to `Box`. Also, convenient style shorthand is available.\n *\n * @see Docs https://yamada-ui.com/components/layouts/flex\n */\nexport const Flex = forwardRef<FlexProps, \"div\">(\n (\n {\n direction: flexDirection,\n justify: justifyContent,\n align: alignItems,\n wrap: flexWrap,\n basis: flexBasis,\n grow: flexGrow,\n shrink: flexShrink,\n ...rest\n },\n ref,\n ) => {\n const css: CSSUIObject = {\n display: \"flex\",\n flexDirection,\n justifyContent,\n alignItems,\n flexWrap,\n flexBasis,\n flexGrow,\n flexShrink,\n }\n\n return <ui.div ref={ref} __css={css} {...rest} />\n },\n)\n\n/**\n * `Wrap` is a component that has `wrap` set on `Flex`. It inherits convenient style shorthand from `Flex`.\n *\n * @see Docs https://yamada-ui.com/components/layouts/wrap\n */\nexport const Wrap = forwardRef<FlexProps, \"div\">((props, ref) => (\n <Flex ref={ref} wrap=\"wrap\" {...props} />\n))\n","import type { HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui } from \"@yamada-ui/core\"\n\nexport type CenterProps = HTMLUIProps<\"div\">\n\n/**\n * `Center` is a component that aligns the child elements in the center within the component.\n *\n * @see Docs https://yamada-ui.com/components/layouts/center\n */\nexport const Center = ui(\"div\", {\n baseStyle: {\n justifyContent: \"center\",\n display: \"flex\",\n alignItems: \"center\",\n },\n})\n","import type {\n HTMLUIProps,\n CSSUIObject,\n Token,\n StyledTheme,\n} from \"@yamada-ui/core\"\nimport { ui, forwardRef, useTheme, transforms } from \"@yamada-ui/core\"\nimport type { Dict } from \"@yamada-ui/utils\"\nimport { replaceObject, getMemoizedObject as get } from \"@yamada-ui/utils\"\ntype GridOptions = {\n /**\n * The CSS `grid-template-columns` property.\n */\n templateColumns?: CSSUIObject[\"gridTemplateColumns\"]\n /**\n * The CSS `grid-template-rows` property.\n */\n templateRows?: CSSUIObject[\"gridTemplateRows\"]\n /**\n * The CSS `grid-template-areas` property.\n */\n templateAreas?: CSSUIObject[\"gridTemplateAreas\"]\n /**\n * The CSS `grid-column` property.\n */\n column?: CSSUIObject[\"gridColumn\"]\n /**\n * The CSS `grid-row` property.\n */\n row?: CSSUIObject[\"gridRow\"]\n /**\n * The CSS `grid-area` property.\n */\n area?: CSSUIObject[\"gridArea\"]\n /**\n * The CSS `grid-auto-flow` property.\n */\n autoFlow?: CSSUIObject[\"gridAutoFlow\"]\n /**\n * The CSS `grid-auto-columns` property.\n */\n autoColumns?: CSSUIObject[\"gridAutoColumns\"]\n /**\n * The CSS `grid-auto-rows` property.\n */\n autoRows?: CSSUIObject[\"gridAutoRows\"]\n}\n\nexport type GridProps = HTMLUIProps<\"div\"> & GridOptions\n\n/**\n * `Grid` is a component for managing grid layouts. It also comes with handy style shorthand.\n *\n * @see Docs https://yamada-ui.com/components/layouts/grid\n */\nexport const Grid = forwardRef<GridProps, \"div\">(\n (\n {\n templateColumns: gridTemplateColumns,\n templateRows: gridTemplateRows,\n templateAreas: gridTemplateAreas,\n column: gridColumn,\n row: gridRow,\n area: gridArea,\n gap,\n rowGap,\n columnGap,\n autoFlow: gridAutoFlow,\n autoColumns: gridAutoColumns,\n autoRows: gridAutoRows,\n ...rest\n },\n ref,\n ) => {\n const css: CSSUIObject = {\n display: \"grid\",\n gridTemplateColumns,\n gridTemplateRows,\n gridTemplateAreas,\n gridColumn,\n gridRow,\n gridArea,\n gap,\n rowGap,\n columnGap,\n gridAutoFlow,\n gridAutoColumns,\n gridAutoRows,\n }\n\n return <ui.div ref={ref} __css={css} {...rest} />\n },\n)\n\nconst transformColumns =\n (columns: Token<number> | undefined, minWidth?: GridProps[\"minWidth\"]) =>\n (theme: StyledTheme<Dict>) => {\n if (minWidth) {\n return replaceObject(minWidth, (value) => {\n value = get(theme, `sizes.${value}`, transforms.px(value))\n\n return value != null\n ? `repeat(auto-fit, minmax(${value}, 1fr))`\n : undefined\n }) as CSSUIObject[\"gridTemplateColumns\"]\n } else {\n return replaceObject(columns, (value) =>\n value != null ? `repeat(${value}, minmax(0, 1fr))` : undefined,\n ) as CSSUIObject[\"gridTemplateColumns\"]\n }\n }\n\ntype SimpleGridOptions = {\n /**\n * The width at which child elements will break into columns.\n * Pass a number for pixel values or a string for any other valid CSS length.\n */\n minChildWidth?: GridProps[\"minWidth\"]\n /**\n * The number of columns.\n */\n columns?: Token<number>\n}\n\nexport type SimpleGridProps = GridProps & SimpleGridOptions\n\n/**\n * `SimpleGrid` is a component that makes `Grid` simpler and more user-friendly.\n *\n * @see Docs https://yamada-ui.com/components/layouts/simple-grid\n */\nexport const SimpleGrid = forwardRef<SimpleGridProps, \"div\">(\n ({ minChildWidth, columns, ...rest }, ref) => {\n const { theme } = useTheme()\n let templateColumns = transformColumns(columns, minChildWidth)(theme)\n\n return <Grid ref={ref} templateColumns={templateColumns} {...rest} />\n },\n)\n\ntype GridItemOptions = {\n /**\n * The CSS `grid-area` property.\n */\n area?: CSSUIObject[\"gridArea\"]\n /**\n * The number of columns the grid item should `span`.\n */\n colSpan?: Token<number>\n /**\n * The number of rows the grid item should `span`.\n */\n rowSpan?: Token<number>\n /**\n * The CSS `grid-column-start` property.\n */\n colStart?: CSSUIObject[\"gridColumnStart\"]\n /**\n * The CSS `grid-column-end` property.\n */\n colEnd?: CSSUIObject[\"gridColumnEnd\"]\n /**\n * The CSS `grid-row-start` property.\n */\n rowStart?: CSSUIObject[\"gridRowStart\"]\n /**\n * The CSS `grid-row-end` property.\n */\n rowEnd?: CSSUIObject[\"gridRowEnd\"]\n}\n\nexport type GridItemProps = HTMLUIProps<\"div\"> & GridItemOptions\n\nexport const GridItem = forwardRef<GridItemProps, \"div\">(\n (\n {\n area: gridArea,\n colSpan,\n rowSpan,\n colStart: gridColumnStart,\n colEnd: gridColumnEnd,\n rowStart: gridRowStart,\n rowEnd: gridRowEnd,\n ...rest\n },\n ref,\n ) => {\n const css: CSSUIObject = {\n gridColumn: replaceObject(colSpan, (value) =>\n value != null ? `span ${value}/span ${value}` : undefined,\n ),\n gridRow: replaceObject(rowSpan, (value) =>\n value != null ? `span ${value}/span ${value}` : undefined,\n ),\n gridColumnStart,\n gridColumnEnd,\n gridRowStart,\n gridRowEnd,\n gridArea,\n }\n\n return <ui.div ref={ref} __css={css} {...rest} />\n },\n)\n","import type { HTMLUIProps, ThemeProps, CSSUIObject } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useMemo } from \"react\"\n\ntype ContainerOptions = {\n /**\n * If `true`, container will center its children regardless of their width.\n *\n * @default false\n */\n centerContent?: boolean\n}\n\nexport type ContainerProps = HTMLUIProps<\"section\"> &\n ThemeProps<\"Container\"> &\n ContainerOptions\n\n/**\n * `Container` is a component used as a general division element. By default, it renders the `section` element.\n *\n * @see Docs https://yamada-ui.com/components/layouts/container\n */\nexport const Container = forwardRef<ContainerProps, \"section\">((props, ref) => {\n const [styles, mergedProps] = useComponentStyle(\"Container\", props)\n const { className, centerContent, ...rest } = omitThemeProps(mergedProps)\n\n const css: CSSUIObject = useMemo(\n () => ({\n alignItems: centerContent ? \"center\" : undefined,\n ...styles,\n }),\n [centerContent, styles],\n )\n\n return (\n <ui.section\n ref={ref}\n className={cx(\"ui-container\", className)}\n __css={css}\n {...rest}\n />\n )\n})\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport {\n getValidChildren,\n cx,\n replaceObject,\n mergeRefs,\n} from \"@yamada-ui/utils\"\nimport type { ReactElement, RefObject } from \"react\"\nimport {\n cloneElement,\n createRef,\n Fragment,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\"\n\ntype StackOptions = {\n /**\n * The CSS `flex-direction` property.\n */\n direction?: CSSUIObject[\"flexDirection\"]\n /**\n * The CSS `justify-content` property.\n */\n justify?: CSSUIObject[\"justifyContent\"]\n /**\n * The CSS `align-items` property.\n */\n align?: CSSUIObject[\"alignItems\"]\n /**\n * The CSS `flex-wrap` property.\n */\n wrap?: CSSUIObject[\"flexWrap\"]\n /**\n * If `true`, each stack item will show a divider.\n */\n divider?: ReactElement\n}\n\nexport type StackProps = Omit<HTMLUIProps<\"div\">, \"direction\"> & StackOptions\n\n/**\n * `Stack` is a component that groups elements and provides space between child elements.\n *\n * @see Docs https://yamada-ui.com/components/layouts/stack\n */\nexport const Stack = forwardRef<StackProps, \"div\">(\n (\n {\n direction: flexDirection = \"column\",\n justify: justifyContent,\n align: alignItems,\n wrap: flexWrap,\n gap = \"fallback(md, 1rem)\",\n divider,\n className,\n children,\n ...rest\n },\n ref,\n ) => {\n const isColumn = (value: any) =>\n value === \"column\" || value === \"column-reverse\"\n\n const dividerCSS = useMemo(\n () => ({\n w: replaceObject(flexDirection, (value) =>\n isColumn(value) ? \"100%\" : \"fix-content\",\n ),\n h: replaceObject(flexDirection, (value) =>\n isColumn(value) ? \"fix-content\" : \"100%\",\n ),\n borderLeftWidth: replaceObject(flexDirection, (value) =>\n isColumn(value) ? 0 : \"1px\",\n ),\n borderBottomWidth: replaceObject(flexDirection, (value) =>\n isColumn(value) ? \"1px\" : 0,\n ),\n }),\n [flexDirection],\n )\n\n const validChildren = getValidChildren(children)\n\n const cloneChildren = divider\n ? validChildren.map((child, index) => {\n const key = typeof child.key !== \"undefined\" ? child.key : index\n\n const cloneDivider = cloneElement(\n divider as React.ReactElement<any>,\n {\n __css: dividerCSS,\n },\n )\n\n return (\n <Fragment key={key}>\n {!!index ? cloneDivider : null}\n {child}\n </Fragment>\n )\n })\n : validChildren\n\n const css: CSSUIObject = useMemo(\n () => ({\n display: \"flex\",\n flexDirection,\n justifyContent,\n alignItems,\n flexWrap,\n gap,\n }),\n [alignItems, flexDirection, flexWrap, gap, justifyContent],\n )\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-stack\", className)}\n __css={css}\n {...rest}\n >\n {cloneChildren}\n </ui.div>\n )\n },\n)\n\n/**\n * `HStack` is a component that groups elements and provides space between child elements.\n *\n * @see Docs https://yamada-ui.com/components/layouts/stack\n */\nexport const HStack = forwardRef<StackProps, \"div\">(\n ({ className, ...rest }, ref) => (\n <Stack\n ref={ref}\n className={cx(\"ui-stack--horizontal\", className)}\n direction=\"row\"\n align=\"center\"\n {...rest}\n />\n ),\n)\n\n/**\n * `VStack` is a component that groups elements and provides space between child elements.\n *\n * @see Docs https://yamada-ui.com/components/layouts/stack\n */\nexport const VStack = forwardRef<StackProps, \"div\">(\n ({ className, ...rest }, ref) => (\n <Stack\n ref={ref}\n className={cx(\"ui-stack--vertical\", className)}\n direction=\"column\"\n align=\"stretch\"\n w=\"100%\"\n {...rest}\n />\n ),\n)\n\ntype ZStackOptions = {\n /**\n * If set the stack will start from the given index.\n *\n * @default 0\n */\n startIndex?: number\n /**\n * Stack in the specified direction.\n *\n * @default \"bottom\"\n */\n direction?:\n | \"top\"\n | \"right\"\n | \"bottom\"\n | \"left\"\n | \"top-left\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-right\"\n /**\n * If `true`, reverse direction.\n *\n * @default false\n */\n reverse?: boolean\n /**\n * If `true`, calculate the `width` and `height` of the element and assign container.\n *\n * @default true\n */\n fit?: boolean\n}\n\nexport type ZStackProps = Omit<HTMLUIProps<\"div\">, \"direction\"> & ZStackOptions\n\n/**\n * `ZStack` is a component that groups elements and provides space between child elements.\n *\n * @see Docs https://yamada-ui.com/components/layouts/stack\n */\nexport const ZStack = forwardRef<ZStackProps, \"div\">(\n (\n {\n className,\n direction = \"bottom\",\n startIndex = 0,\n gap = \"fallback(md, 1rem)\",\n reverse = false,\n fit = true,\n children,\n ...rest\n },\n ref,\n ) => {\n const refMap = useRef<Map<number, RefObject<HTMLDivElement>>>(new Map())\n const [rect, setRect] = useState<{ width: number; height: number }>({\n width: 0,\n height: 0,\n })\n\n const boxSize: CSSUIObject = {\n minWidth: `${rect.width}px`,\n minHeight: `${rect.height}px`,\n }\n\n const css: CSSUIObject = {\n position: \"relative\",\n overflow: \"hidden\",\n var: [{ __prefix: \"ui\", name: \"space\", token: \"spaces\", value: gap }],\n ...(fit ? boxSize : {}),\n }\n\n const vertical = useCallback(\n (space: string) => {\n if (direction.includes(\"top\")) {\n return { [!reverse ? \"bottom\" : \"top\"]: space }\n } else if (direction.includes(\"bottom\")) {\n return { [!reverse ? \"top\" : \"bottom\"]: space }\n } else {\n return { [!reverse ? \"top\" : \"bottom\"]: 0 }\n }\n },\n [direction, reverse],\n )\n\n const horizontal = useCallback(\n (space: string) => {\n if (direction.includes(\"left\")) {\n return { [!reverse ? \"right\" : \"left\"]: space }\n } else if (direction.includes(\"right\")) {\n return { [!reverse ? \"left\" : \"right\"]: space }\n } else {\n return { [!reverse ? \"left\" : \"right\"]: 0 }\n }\n },\n [direction, reverse],\n )\n\n const cloneChildren = useMemo(() => {\n const validChildren = getValidChildren(children) as (ReactElement & {\n ref: RefObject<any>\n })[]\n\n const clonedChildren = validChildren.map((child, index) => {\n const ref = createRef<HTMLDivElement>()\n\n refMap.current.set(index, ref)\n\n const key = child.key ?? index\n\n const zIndex = startIndex + index\n const space = `calc(var(--ui-space) * ${index})`\n\n let css: CSSUIObject = {}\n\n css = {\n ...css,\n position: \"absolute\",\n zIndex,\n }\n\n css = { ...css, ...vertical(space) }\n css = { ...css, ...horizontal(space) }\n\n const props = {\n ...child.props,\n ref: mergeRefs(child.ref, ref),\n __css: css,\n }\n\n const clonedChild = cloneElement(child, props)\n\n return <Fragment key={key}>{clonedChild}</Fragment>\n })\n\n return clonedChildren\n }, [children, startIndex, vertical, horizontal])\n\n useEffect(() => {\n if (!fit) return\n\n let isNegativeLeft = direction.includes(\"left\")\n let isNegativeTop = direction.includes(\"top\")\n let width = 0\n let height = 0\n\n if (reverse) {\n isNegativeLeft = !isNegativeLeft\n isNegativeTop = !isNegativeTop\n }\n\n for (const ref of refMap.current.values()) {\n if (!ref.current) continue\n\n let { offsetParent, offsetWidth, offsetHeight, offsetTop, offsetLeft } =\n ref.current\n\n if (isNegativeLeft) {\n offsetLeft =\n (offsetParent as HTMLDivElement).offsetWidth -\n offsetLeft -\n offsetWidth\n }\n\n if (isNegativeTop) {\n offsetTop =\n (offsetParent as HTMLDivElement).offsetHeight -\n offsetTop -\n offsetHeight\n }\n\n offsetWidth += offsetLeft\n offsetHeight += offsetTop\n\n if (offsetWidth > width) width = offsetWidth\n if (offsetHeight > height) height = offsetHeight\n }\n\n setRect({ width, height })\n }, [cloneChildren, direction, reverse, fit])\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-stack--depth\", className)}\n __css={css}\n {...rest}\n >\n {cloneChildren}\n </ui.div>\n )\n },\n)\n","import type { HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui } from \"@yamada-ui/core\"\n\nexport type SpacerProps = HTMLUIProps<\"div\">\n\nexport const Spacer = ui(\"div\", {\n baseStyle: {\n flex: 1,\n justifySelf: \"stretch\",\n alignSelf: \"stretch\",\n },\n})\n","import type { HTMLUIProps, ThemeProps, CSSUIObject } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useMemo } from \"react\"\n\ntype DividerOptions = {\n /**\n * The orientation of the divider.\n *\n * @default 'horizontal'\n */\n orientation?: \"horizontal\" | \"vertical\"\n}\n\nexport type DividerProps = HTMLUIProps<\"hr\"> &\n ThemeProps<\"Divider\"> &\n DividerOptions\n\n/**\n * `Divider` is a component that represents a division between elements.\n *\n * @see Docs https://yamada-ui.com/components/layouts/divider\n */\nexport const Divider = forwardRef<DividerProps, \"hr\">((props, ref) => {\n const [\n {\n borderRightWidth,\n borderLeftWidth,\n borderTopWidth,\n borderBottomWidth,\n borderWidth,\n borderStyle,\n borderColor,\n ...styles\n },\n mergedProps,\n ] = useComponentStyle(\"Divider\", props)\n const {\n className,\n orientation = \"horizontal\",\n __css,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const customStyles = useMemo(\n () => ({\n vertical: {\n border: \"0\",\n borderStyle,\n borderColor,\n borderLeftWidth:\n borderLeftWidth || borderRightWidth || borderWidth || \"1px\",\n height: \"100%\",\n },\n horizontal: {\n border: \"0\",\n borderStyle,\n borderColor,\n borderBottomWidth:\n borderBottomWidth || borderTopWidth || borderWidth || \"1px\",\n width: \"100%\",\n },\n }),\n [\n borderBottomWidth,\n borderColor,\n borderLeftWidth,\n borderRightWidth,\n borderStyle,\n borderTopWidth,\n borderWidth,\n ],\n )\n\n const dividerStyles = useMemo(\n () => customStyles[orientation],\n [customStyles, orientation],\n ) as CSSUIObject\n\n const css = {\n ...styles,\n ...dividerStyles,\n ...__css,\n }\n\n return (\n <ui.hr\n ref={ref}\n className={cx(\"ui-divider\", className)}\n __css={css}\n {...rest}\n />\n )\n})\n","import type { HTMLUIProps, CSSUIObject, Token } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx, replaceObject } from \"@yamada-ui/utils\"\nimport { Children } from \"react\"\n\ntype AspectRatioOptions = {\n /**\n * The aspect ratio of the Box.\n *\n * @default '4 / 3'\n */\n ratio?: Token<number>\n}\n\nexport type AspectRatioProps = HTMLUIProps<\"div\"> & AspectRatioOptions\n\n/**\n * `AspectRatio` is a component for embedding things like videos and maps while maintaining the aspect ratio.\n *\n * @see Docs https://yamada-ui.com/components/layouts/aspect-ratio\n */\nexport const AspectRatio = forwardRef<AspectRatioProps, \"div\">(\n ({ className, ratio = 4 / 3, children, ...rest }, ref) => {\n const child = Children.only(children)\n\n const css: CSSUIObject = {\n position: \"relative\",\n _before: {\n content: `\"\"`,\n display: \"block\",\n h: 0,\n pb: replaceObject(ratio, (r) => `${(1 / r) * 100}%`),\n },\n \"& > *:not(style)\": {\n overflow: \"hidden\",\n position: \"absolute\",\n top: \"0\",\n right: \"0\",\n bottom: \"0\",\n left: \"0\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n w: \"100%\",\n h: \"100%\",\n },\n \"& > img, & > video\": {\n objectFit: \"cover\",\n },\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-aspect-ratio\", className)}\n __css={css}\n {...rest}\n >\n {child}\n </ui.div>\n )\n },\n)\n","import type { ComponentArgs, ThemeProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport { useFormControl } from \"@yamada-ui/form-control\"\nimport type { FlexProps } from \"@yamada-ui/layouts\"\nimport { Flex } from \"@yamada-ui/layouts\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport {\n createContext,\n cx,\n isObject,\n omitObject,\n useCallbackRef,\n getValidChildren,\n} from \"@yamada-ui/utils\"\nimport type { ChangeEvent, ForwardedRef, ReactElement, Ref } from \"react\"\nimport { forwardRef, useCallback } from \"react\"\nimport type { CheckboxProps } from \"./checkbox\"\nimport { Checkbox } from \"./checkbox\"\n\nexport type CheckboxItem<Y extends string | number = string> =\n CheckboxProps<Y> & {\n label?: string\n }\n\nconst isEvent = (value: any): value is { target: HTMLInputElement } =>\n value && isObject(value) && isObject(value.target)\n\nexport type UseCheckboxGroupProps<Y extends string | number = string> = {\n /**\n * The value of the checkbox group.\n */\n value?: Y[]\n /**\n * The initial value of the checkbox group.\n */\n defaultValue?: Y[]\n /**\n * The callback fired when any children checkbox is checked or unchecked.\n */\n onChange?: (value: Y[]) => void\n /**\n * If `true`, input elements will receive `checked` attribute instead of `isChecked`.\n *\n * This assumes, you're using native radio inputs.\n *\n * @default false\n */\n isNative?: boolean\n}\n\nexport const useCheckboxGroup = <Y extends string | number = string>({\n isNative,\n ...props\n}: UseCheckboxGroupProps<Y>) => {\n props.onChange = useCallbackRef(props.onChange)\n\n const [value, setValue] = useControllableState({\n value: props.value,\n defaultValue: props.defaultValue || [],\n onChange: props.onChange,\n })\n\n const onChange = useCallback(\n (evOrValue: ChangeEvent<HTMLInputElement> | Y) => {\n const isChecked = isEvent(evOrValue)\n ? evOrValue.target.checked\n : !value.includes(evOrValue)\n\n const selectedValue = (\n isEvent(evOrValue) ? evOrValue.target.value : evOrValue\n ) as Y\n\n const nextValue = isChecked\n ? [...value, selectedValue]\n : value.filter((v) => String(v) !== String(selectedValue))\n\n setValue(nextValue)\n },\n [value, setValue],\n )\n\n const getCheckboxProps: UIPropGetter<\"input\", { value?: Y }, { value?: Y }> =\n useCallback(\n (props, ref = null) => ({\n ...props,\n ref,\n [isNative ? \"checked\" : \"isChecked\"]: value.some(\n (val) => String(props?.value) === String(val),\n ),\n onChange,\n }),\n [onChange, isNative, value],\n )\n\n return { value, setValue, onChange, getCheckboxProps }\n}\n\nexport type UseCheckboxGroupReturn<Y extends string | number = string> =\n ReturnType<typeof useCheckboxGroup<Y>>\n\nexport type CheckboxGroupProps<Y extends string | number = string> =\n ThemeProps<\"Checkbox\"> &\n Omit<FlexProps, \"onChange\"> &\n UseCheckboxGroupProps<Y> &\n FormControlOptions & {\n /**\n * If provided, generate checkboxes based on items.\n *\n * @default '[]'\n */\n items?: CheckboxItem<Y>[]\n }\n\ntype CheckboxContext = ThemeProps<\"Checkbox\"> &\n FormControlOptions & {\n value: (string | number)[]\n onChange: (\n evOrValue: ChangeEvent<HTMLInputElement> | string | number,\n ) => void\n }\n\nconst [CheckboxGroupProvider, useCheckboxGroupContext] = createContext<\n CheckboxContext | undefined\n>({\n strict: false,\n name: \"CheckboxGroupContext\",\n})\n\nexport { useCheckboxGroupContext }\n\nexport const CheckboxGroup = forwardRef(\n <Y extends string | number = string>(\n {\n className,\n size,\n variant,\n colorScheme,\n children,\n items = [],\n direction = \"column\",\n gap,\n ...props\n }: CheckboxGroupProps<Y>,\n ref: ForwardedRef<HTMLDivElement>,\n ) => {\n const { value, onChange } = useCheckboxGroup<Y>(props)\n const { isRequired, isReadOnly, isDisabled, isInvalid } =\n useFormControl(props)\n\n const validChildren = getValidChildren(children)\n let computedChildren: ReactElement[] = []\n\n if (!validChildren.length && items.length) {\n computedChildren = items.map(({ label, value, ...props }, i) => (\n <Checkbox key={i} value={value} {...props}>\n {label}\n </Checkbox>\n ))\n }\n\n return (\n <CheckboxGroupProvider\n value={\n {\n size,\n variant,\n colorScheme,\n isRequired,\n isReadOnly,\n isDisabled,\n isInvalid,\n value,\n onChange,\n } as CheckboxContext\n }\n >\n <Flex\n ref={ref}\n className={cx(\"ui-checkbox-group\", className)}\n role=\"group\"\n direction={direction}\n gap={gap ?? (direction === \"row\" ? \"1rem\" : undefined)}\n {...omitObject(props, [\n \"value\",\n \"defaultValue\",\n \"onChange\",\n \"isInvalid\",\n \"isDisabled\",\n \"isRequired\",\n \"isReadOnly\",\n ])}\n >\n {children ?? computedChildren}\n </Flex>\n </CheckboxGroupProvider>\n )\n },\n) as {\n <Y extends string | number = string>(\n props: CheckboxGroupProps<Y> & { ref?: Ref<HTMLDivElement> },\n ): JSX.Element\n} & ComponentArgs\n\nCheckboxGroup.displayName = \"CheckboxGroup\"\n","import type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n ColorModeToken,\n CSS,\n UIPropGetter,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport {\n formControlProperties,\n useFormControlProps,\n} from \"@yamada-ui/form-control\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { useFocusOnPointerDown } from \"@yamada-ui/use-focus\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport {\n createContext,\n cx,\n omitObject,\n runIfFunc,\n useCallbackRef,\n useSafeLayoutEffect,\n useUpdateEffect,\n isContains,\n handlerAll,\n mergeRefs,\n pickObject,\n} from \"@yamada-ui/utils\"\nimport type { ChangeEvent, FocusEvent, ReactNode, KeyboardEvent } from \"react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\n\nexport type UseEditableProps = FormControlOptions & {\n /**\n * The placeholder text when the value is empty.\n */\n placeholder?: string\n /**\n * The value of the Editable in both edit & preview mode.\n */\n value?: string\n /**\n * The initial value of the Editable in both edit & preview mode.\n */\n defaultValue?: string\n /**\n * If `true`, the Editable will start with edit mode by default.\n */\n startWithEditView?: boolean\n /**\n * If `true`, the read only view, has a `tabIndex` set to `0`\n * so it can receive focus via the keyboard or click.\n *\n * @default true\n */\n isPreviewFocusable?: boolean\n /**\n * If `true`, it'll update the value onBlur and turn off the edit mode.\n *\n * @default true\n */\n submitOnBlur?: boolean\n /**\n * If `true`, the input's text will be highlighted on focus.\n *\n * @default true\n */\n selectAllOnFocus?: boolean\n /**\n * A callback invoked when user changes input.\n */\n onChange?: (value: string) => void\n /**\n * Callback invoked when user cancels input with the `Esc` key.\n * It provides the last confirmed value as argument.\n */\n onCancel?: (preValue: string) => void\n /**\n * A callback invoked when user confirms value with `enter` key or by blurring input.\n */\n onSubmit?: (value: string) => void\n /**\n * A callback invoked once the user enters edit mode.\n */\n onEdit?: () => void\n}\n\nexport const useEditable = (props: UseEditableProps) => {\n const {\n id,\n placeholder,\n defaultValue,\n required,\n disabled,\n readOnly,\n startWithEditView,\n isPreviewFocusable = true,\n submitOnBlur = true,\n selectAllOnFocus = true,\n ...rest\n } = useFormControlProps(props)\n rest.onEdit = useCallbackRef(rest.onEdit)\n\n const [isEditing, setIsEditing] = useState<boolean>(\n !!startWithEditView && !disabled,\n )\n\n const [value, setValue] = useControllableState({\n defaultValue: defaultValue || \"\",\n value: rest.value,\n onChange: rest.onChange,\n })\n\n const isInteractive = !isEditing && !disabled\n const isValueEmpty = value.length === 0\n\n const [prevValue, setPrevValue] = useState(value)\n\n const inputRef = useRef<HTMLInputElement | HTMLTextAreaElement>(null)\n const previewRef = useRef<HTMLElement>(null)\n const editRef = useRef<HTMLButtonElement>(null)\n const cancelRef = useRef<HTMLButtonElement>(null)\n const submitRef = useRef<HTMLButtonElement>(null)\n\n useFocusOnPointerDown({\n ref: inputRef,\n enabled: isEditing,\n elements: [cancelRef, submitRef],\n })\n\n useSafeLayoutEffect(() => {\n if (!isEditing) return\n\n inputRef.current?.focus()\n\n if (selectAllOnFocus) inputRef.current?.select()\n }, [])\n\n useUpdateEffect(() => {\n if (!isEditing) {\n editRef.current?.focus()\n\n return\n }\n\n inputRef.current?.focus()\n\n if (selectAllOnFocus) inputRef.current?.select()\n\n rest.onEdit?.()\n }, [isEditing, rest.onEdit, selectAllOnFocus])\n\n useEffect(() => {\n if (isEditing) return\n\n const el = inputRef.current\n const activeEl = el?.ownerDocument.activeElement\n\n if (activeEl === el) el?.blur()\n }, [isEditing])\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) =>\n setValue(ev.currentTarget.value),\n [setValue],\n )\n\n const onUpdatePrevValue = useCallback(() => setPrevValue(value), [value])\n\n const onEdit = useCallback(() => {\n if (isInteractive) setIsEditing(true)\n }, [isInteractive])\n\n const onCancel = useCallback(() => {\n setIsEditing(false)\n setValue(prevValue)\n rest.onCancel?.(prevValue)\n }, [prevValue, rest, setValue])\n\n const onSubmit = useCallback(() => {\n setIsEditing(false)\n setPrevValue(value)\n rest.onSubmit?.(value)\n }, [rest, value])\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<Element>) => {\n if (ev.key !== \"Escape\" && ev.key !== \"Enter\") return\n\n ev.preventDefault()\n\n if (ev.key === \"Escape\") {\n onCancel()\n } else {\n const { shiftKey, metaKey } = ev\n\n if (!shiftKey && !metaKey) onSubmit()\n }\n },\n [onCancel, onSubmit],\n )\n\n const onKeyDownWithoutSubmit = useCallback(\n (ev: KeyboardEvent<Element>) => {\n if (ev.key !== \"Escape\") return\n\n ev.preventDefault()\n onCancel()\n },\n [onCancel],\n )\n\n const onBlur = useCallback(\n (ev: FocusEvent) => {\n if (!isEditing) return\n\n const ownerDocument = ev.currentTarget.ownerDocument\n const relatedTarget = (ev.relatedTarget ??\n ownerDocument.activeElement) as HTMLElement\n const targetIsCancel = isContains(cancelRef.current, relatedTarget)\n const targetIsSubmit = isContains(submitRef.current, relatedTarget)\n const isValidBlur = !targetIsCancel && !targetIsSubmit\n\n if (!isValidBlur) return\n\n if (submitOnBlur) {\n onSubmit()\n } else {\n onCancel()\n }\n },\n [isEditing, submitOnBlur, onSubmit, onCancel],\n )\n\n const getPreviewProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ref: mergeRefs(ref, previewRef),\n hidden: isEditing,\n tabIndex: isInteractive && isPreviewFocusable ? 0 : undefined,\n children: isValueEmpty ? placeholder : value,\n onFocus: handlerAll(props.onFocus, onEdit, onUpdatePrevValue),\n }),\n [\n isEditing,\n isInteractive,\n isPreviewFocusable,\n isValueEmpty,\n onEdit,\n onUpdatePrevValue,\n placeholder,\n value,\n ],\n )\n\n const getInputProps: UIPropGetter<\"input\"> = useCallback(\n (props = {}, ref = null) => ({\n ...pickObject(rest, formControlProperties),\n ...props,\n ref: mergeRefs(ref, inputRef),\n id,\n placeholder,\n hidden: !isEditing,\n value,\n required,\n disabled,\n readOnly,\n onBlur: handlerAll(props.onBlur, onBlur),\n onChange: handlerAll(props.onChange, onChange),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n onFocus: handlerAll(props.onFocus, onUpdatePrevValue),\n }),\n [\n disabled,\n id,\n isEditing,\n onBlur,\n onChange,\n onKeyDown,\n onUpdatePrevValue,\n placeholder,\n readOnly,\n required,\n rest,\n value,\n ],\n )\n\n const getTextareaProps: UIPropGetter<\"textarea\"> = useCallback(\n (props = {}, ref = null) => ({\n ...pickObject(rest, formControlProperties),\n ...props,\n ref: mergeRefs(ref, inputRef),\n id,\n placeholder,\n hidden: !isEditing,\n value,\n required,\n disabled,\n readOnly,\n onBlur: handlerAll(props.onBlur, onBlur),\n onChange: handlerAll(props.onChange, onChange),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDownWithoutSubmit),\n onFocus: handlerAll(props.onFocus, onUpdatePrevValue),\n }),\n [\n disabled,\n id,\n isEditing,\n onBlur,\n onChange,\n onKeyDownWithoutSubmit,\n onUpdatePrevValue,\n placeholder,\n readOnly,\n required,\n rest,\n value,\n ],\n )\n\n const getEditProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ...omitObject(rest, [\n \"value\",\n \"onChange\",\n \"onCancel\",\n \"onSubmit\",\n \"onEdit\",\n ]),\n ref: mergeRefs(ref, editRef),\n type: \"button\",\n disabled,\n readOnly,\n onClick: handlerAll(props.onClick, onEdit),\n }),\n [disabled, onEdit, readOnly, rest],\n )\n\n const getSubmitProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ...omitObject(rest, [\n \"value\",\n \"onChange\",\n \"onCancel\",\n \"onSubmit\",\n \"onEdit\",\n ]),\n ref: mergeRefs(submitRef, ref),\n type: \"button\",\n disabled,\n readOnly,\n onClick: handlerAll(props.onClick, onSubmit),\n }),\n [disabled, onSubmit, readOnly, rest],\n )\n\n const getCancelProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ...omitObject(rest, [\n \"value\",\n \"onChange\",\n \"onCancel\",\n \"onSubmit\",\n \"onEdit\",\n ]),\n ref: mergeRefs(cancelRef, ref),\n type: \"button\",\n disabled,\n readOnly,\n onClick: handlerAll(props.onClick, onCancel),\n }),\n [disabled, onCancel, readOnly, rest],\n )\n\n return {\n isEditing,\n value,\n onEdit,\n onCancel,\n onSubmit,\n getPreviewProps,\n getInputProps,\n getTextareaProps,\n getEditProps,\n getSubmitProps,\n getCancelProps,\n }\n}\n\nexport type UseEditableReturn = ReturnType<typeof useEditable>\n\nexport const useEditableControl = () => {\n const { isEditing, getEditProps, getCancelProps, getSubmitProps } =\n useEditableContext()\n\n return { isEditing, getEditProps, getCancelProps, getSubmitProps }\n}\n\ntype EditableContext = {\n isEditing: boolean\n getPreviewProps: UIPropGetter\n getInputProps: UIPropGetter<\"input\">\n getTextareaProps: UIPropGetter<\"textarea\">\n getEditProps: PropGetter\n getCancelProps: PropGetter\n getSubmitProps: PropGetter\n styles: Record<string, CSSUIObject>\n}\n\nconst [EditableProvider, useEditableContext] = createContext<EditableContext>({\n name: \"EditableContext\",\n errorMessage:\n \"useEditableContext: context is undefined. Seems you forgot to wrap the editable components in `<Editable />`\",\n})\n\ntype EditableOptions = {\n /**\n * The border color when the input is focused.\n */\n focusBorderColor?: ColorModeToken<CSS.Property.BorderColor, \"colors\">\n /**\n * The border color when the input is invalid.\n */\n errorBorderColor?: ColorModeToken<CSS.Property.BorderColor, \"colors\">\n children?:\n | ReactNode\n | ((\n props: Pick<\n UseEditableReturn,\n \"isEditing\" | \"onSubmit\" | \"onCancel\" | \"onEdit\"\n >,\n ) => ReactNode)\n}\n\nexport type EditableProps = Omit<\n HTMLUIProps<\"div\">,\n \"onChange\" | \"value\" | \"defaultValue\" | \"onSubmit\" | \"children\"\n> &\n ThemeProps<\"Editable\"> &\n UseEditableProps &\n EditableOptions\n\n/**\n * `Editable` is a component used to obtain inline editable text input.\n *\n * @see Docs https://yamada-ui.com/components/forms/editable\n */\nexport const Editable = forwardRef<EditableProps, \"div\">(\n ({ focusBorderColor, errorBorderColor, ...props }, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Editable\", {\n focusBorderColor,\n errorBorderColor,\n ...props,\n })\n const { className, children, ...rest } = omitThemeProps(mergedProps)\n const {\n isEditing,\n getPreviewProps,\n getInputProps,\n getTextareaProps,\n getEditProps,\n getCancelProps,\n getSubmitProps,\n onSubmit,\n onCancel,\n onEdit,\n } = useEditable(rest)\n\n const cloneChildren = runIfFunc(children, {\n isEditing,\n onSubmit,\n onCancel,\n onEdit,\n })\n\n const css: CSSUIObject = { ...styles.container }\n\n return (\n <EditableProvider\n value={{\n isEditing,\n getPreviewProps,\n getInputProps,\n getTextareaProps,\n getEditProps,\n getCancelProps,\n getSubmitProps,\n styles,\n }}\n >\n <ui.div\n ref={ref}\n className={cx(\"ui-editable\", className)}\n {...omitObject(rest, [\n \"placeholder\",\n \"value\",\n \"defaultValue\",\n \"isInvalid\",\n \"isReadOnly\",\n \"isRequired\",\n \"isDisabled\",\n \"startWithEditView\",\n \"isPreviewFocusable\",\n \"submitOnBlur\",\n \"selectAllOnFocus\",\n \"onChange\",\n \"onCancel\",\n \"onSubmit\",\n \"onEdit\",\n ])}\n __css={css}\n >\n {cloneChildren}\n </ui.div>\n </EditableProvider>\n )\n },\n)\n\nexport type EditablePreviewProps = HTMLUIProps<\"span\">\n\nexport const EditablePreview = forwardRef<EditablePreviewProps, \"span\">(\n ({ className, ...rest }, ref) => {\n const { styles, getPreviewProps } = useEditableContext()\n\n const css: CSSUIObject = {\n cursor: \"text\",\n display: \"inline-block\",\n fontSize: \"inherit\",\n fontWeight: \"inherit\",\n textAlign: \"inherit\",\n bg: \"transparent\",\n ...styles.preview,\n }\n\n return (\n <ui.span\n className={cx(\"ui-editable__preview\", className)}\n {...getPreviewProps(rest, ref)}\n __css={css}\n />\n )\n },\n)\n\nexport type EditableInputProps = HTMLUIProps<\"input\">\n\nexport const EditableInput = forwardRef<EditableInputProps, \"input\">(\n ({ className, ...rest }, ref) => {\n const { styles, getInputProps } = useEditableContext()\n\n const css: CSSUIObject = {\n outline: 0,\n fontSize: \"inherit\",\n fontWeight: \"inherit\",\n textAlign: \"inherit\",\n bg: \"transparent\",\n ...styles.input,\n }\n\n return (\n <ui.input\n className={cx(\"ui-editable__input\", className)}\n {...getInputProps(rest, ref)}\n __css={css}\n />\n )\n },\n)\n\nexport type EditableTextareaProps = HTMLUIProps<\"textarea\">\n\nexport const EditableTextarea = forwardRef<EditableTextareaProps, \"textarea\">(\n ({ className, ...rest }, ref) => {\n const { styles, getTextareaProps } = useEditableContext()\n\n const css: CSSUIObject = {\n outline: 0,\n fontSize: \"inherit\",\n fontWeight: \"inherit\",\n textAlign: \"inherit\",\n bg: \"transparent\",\n ...styles.textarea,\n }\n\n return (\n <ui.textarea\n className={cx(\"ui-editable__textarea\", className)}\n {...getTextareaProps(rest, ref)}\n __css={css}\n />\n )\n },\n)\n","import { useCallbackRef } from \"@yamada-ui/utils\"\nimport { useCallback, useEffect, useRef } from \"react\"\n\ntype Events =\n | keyof DocumentEventMap\n | keyof WindowEventMap\n | keyof GlobalEventHandlersEventMap\ntype Target = EventTarget | null | (() => EventTarget | null)\ntype Options = boolean | AddEventListenerOptions\ntype Handler<E extends Events> = E extends keyof DocumentEventMap\n ? (event: DocumentEventMap[E]) => void\n : E extends keyof WindowEventMap\n ? (event: WindowEventMap[E]) => void\n : E extends keyof GlobalEventHandlersEventMap\n ? (event: GlobalEventHandlersEventMap[E]) => void\n : ((event: Event) => void) | undefined\n\nexport const useEventListener = <E extends Events>(\n target: Target,\n event: E,\n handler: Handler<E>,\n options?: Options,\n) => {\n const listener = useCallbackRef(handler)\n\n useEffect(() => {\n const el = typeof target === \"function\" ? target() : target ?? document\n\n if (!handler || !el) return\n\n el.addEventListener(\n event,\n listener as EventListenerOrEventListenerObject,\n options,\n )\n\n return () => {\n el.removeEventListener(\n event,\n listener as EventListenerOrEventListenerObject,\n options,\n )\n }\n }, [event, target, options, listener, handler])\n\n return () => {\n const el = typeof target === \"function\" ? target() : target ?? document\n\n el?.removeEventListener(\n event,\n listener as EventListenerOrEventListenerObject,\n options,\n )\n }\n}\n\nexport const useEventListeners = () => {\n const listeners = useRef(new Map())\n const currentListeners = listeners.current\n\n const add = useCallback(\n <E extends Events>(\n el: EventTarget,\n event: E,\n listener: any,\n options: boolean | AddEventListenerOptions,\n ) => {\n listeners.current.set(listener, { event, el, options })\n\n el.addEventListener(\n event,\n listener as EventListenerOrEventListenerObject,\n options,\n )\n },\n [],\n )\n\n const remove = useCallback(\n <E extends Events>(\n el: EventTarget,\n event: E,\n listener: any,\n options: boolean | EventListenerOptions,\n ) => {\n el.removeEventListener(\n event,\n listener as EventListenerOrEventListenerObject,\n options,\n )\n\n listeners.current.delete(listener)\n },\n [],\n )\n\n useEffect(\n () => () => {\n currentListeners.forEach(({ el, event, options }, key) =>\n remove(el, event, key, options),\n )\n },\n [remove, currentListeners],\n )\n\n return { add, remove }\n}\n","import { useEventListener } from \"@yamada-ui/use-event-listener\"\nimport type { FocusableElement } from \"@yamada-ui/utils\"\nimport {\n getActiveElement,\n getAllFocusable,\n isRefObject,\n isTabbable,\n useSafeLayoutEffect,\n useUpdateEffect,\n isSafari,\n} from \"@yamada-ui/utils\"\nimport type { RefObject } from \"react\"\nimport { useCallback, useRef } from \"react\"\n\nexport type UseFocusOnHideProps = {\n focusRef: RefObject<FocusableElement>\n shouldFocus?: boolean\n visible?: boolean\n}\n\nconst preventReturnFocus = (containerRef: React.RefObject<HTMLElement>) => {\n const el = containerRef.current\n\n if (!el) return false\n\n const activeElement = getActiveElement(el)\n\n if (!activeElement) return false\n if (el.contains(activeElement)) return false\n if (isTabbable(activeElement)) return true\n\n return false\n}\n\nexport const useFocusOnHide = (\n containerRef: RefObject<HTMLElement>,\n { shouldFocus: shouldFocusProp, visible, focusRef }: UseFocusOnHideProps,\n) => {\n const shouldFocus = shouldFocusProp && !visible\n\n useUpdateEffect(() => {\n if (!shouldFocus) return\n\n if (preventReturnFocus(containerRef)) return\n\n const el = focusRef?.current || containerRef.current\n\n if (el) {\n requestAnimationFrame(() => {\n el.focus()\n })\n }\n }, [shouldFocus, containerRef, focusRef])\n}\n\nexport type UseFocusOnShowProps = {\n visible?: boolean\n shouldFocus?: boolean\n preventScroll?: boolean\n focusRef?: React.RefObject<FocusableElement>\n}\n\nexport const useFocusOnShow = <T extends HTMLElement>(\n target: React.RefObject<T> | T,\n { focusRef, preventScroll, shouldFocus, visible }: UseFocusOnShowProps = {\n preventScroll: true,\n shouldFocus: false,\n },\n) => {\n const element = isRefObject(target) ? target.current : target\n\n const autoFocusValue = shouldFocus && visible\n const autoFocusRef = useRef(autoFocusValue)\n const lastVisibleRef = useRef(visible)\n\n useSafeLayoutEffect(() => {\n if (!lastVisibleRef.current && visible)\n autoFocusRef.current = autoFocusValue\n\n lastVisibleRef.current = visible\n }, [visible, autoFocusValue])\n\n const onFocus = useCallback(() => {\n if (!visible || !element || !autoFocusRef.current) return\n\n autoFocusRef.current = false\n\n if (element.contains(document.activeElement as HTMLElement)) return\n\n if (focusRef?.current) {\n requestAnimationFrame(() => {\n focusRef.current?.focus({ preventScroll })\n })\n } else {\n const tabbableEls = getAllFocusable(element)\n\n if (tabbableEls.length > 0)\n requestAnimationFrame(() => {\n tabbableEls[0].focus({ preventScroll })\n })\n }\n }, [visible, preventScroll, element, focusRef])\n\n useUpdateEffect(() => {\n onFocus()\n }, [onFocus])\n\n useEventListener(element, \"transitionend\", onFocus)\n}\n\nexport type UseFocusOnMouseDownProps = {\n ref: React.RefObject<HTMLElement>\n enabled?: boolean\n elements?: Array<React.RefObject<HTMLElement> | HTMLElement | null>\n}\n\nexport const useFocusOnPointerDown = ({\n ref,\n elements,\n enabled,\n}: UseFocusOnMouseDownProps) => {\n const doc = () => ref.current?.ownerDocument ?? document\n\n useEventListener(doc, \"pointerdown\", (ev) => {\n if (!isSafari() || !enabled) return\n const target = ev.target as HTMLElement\n\n const els = elements ?? [ref]\n\n const isValidTarget = els.some((elementOrRef) => {\n const el = isRefObject(elementOrRef) ? elementOrRef.current : elementOrRef\n return el?.contains(target) || el === target\n })\n\n if (doc().activeElement !== target && isValidTarget) {\n ev.preventDefault()\n\n target.focus()\n }\n })\n}\n","import type { ButtonProps } from \"@yamada-ui/button\"\nimport { Button } from \"@yamada-ui/button\"\nimport type { ColorModeToken, CSS } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport {\n formControlProperties,\n useFormControlProps,\n} from \"@yamada-ui/form-control\"\nimport {\n assignRef,\n cx,\n handlerAll,\n isFunction,\n isNull,\n mergeRefs,\n omitObject,\n pickObject,\n} from \"@yamada-ui/utils\"\nimport type { ChangeEvent, ForwardedRef, ReactNode } from \"react\"\nimport { useCallback, useRef } from \"react\"\n\ntype Props = {\n onClick: () => void\n disabled?: boolean\n readOnly?: boolean\n required?: boolean\n} & FormControlOptions\n\ntype FileButtonOptions = {\n /**\n * The border color when the button is invalid.\n */\n errorBorderColor?: ColorModeToken<CSS.Property.BorderColor, \"colors\">\n /**\n * Function to be called when a file change event occurs.\n */\n onChange?: (files: File[] | undefined) => void\n children?: ReactNode | ((props: Props) => ReactNode)\n /**\n * Ref to a reset function.\n */\n resetRef?: ForwardedRef<() => void>\n}\n\ntype InputProps = Partial<Pick<HTMLInputElement, \"accept\" | \"multiple\">>\n\nexport type FileButtonProps = Omit<ButtonProps, \"onChange\" | \"children\"> &\n InputProps &\n FileButtonOptions &\n FormControlOptions\n\n/**\n * `FileButton` is a button component used for users to select files.\n *\n * @see Docs https://yamada-ui.com/components/forms/file-button\n */\nexport const FileButton = forwardRef<FileButtonProps, \"input\">(\n ({ className, resetRef, as: As, children, ...props }, ref) => {\n const { id, name, accept, multiple, form, ...rest } =\n useFormControlProps(props)\n\n const { disabled, readOnly, required, \"aria-invalid\": isInvalid } = rest\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const onClick = useCallback(() => {\n if (disabled || readOnly) return\n\n inputRef.current?.click()\n }, [disabled, readOnly])\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n const files = !isNull(ev.currentTarget.files)\n ? Array.from(ev.currentTarget.files)\n : undefined\n\n rest.onChange?.(files)\n },\n [rest],\n )\n\n const onReset = useCallback(() => {\n if (inputRef.current) inputRef.current.value = \"\"\n }, [])\n\n if (!isFunction(children)) {\n const Component = As || Button\n\n children = (\n <Component\n className={cx(\"ui-file-button\", className)}\n {...omitObject(rest, [\"onChange\", \"aria-readonly\"])}\n onClick={handlerAll(rest.onClick, onClick)}\n >\n {children}\n </Component>\n ) as ReactNode\n }\n\n assignRef(resetRef, onReset)\n\n return (\n <>\n <ui.input\n ref={mergeRefs(inputRef, ref)}\n type=\"file\"\n aria-hidden\n tabIndex={-1}\n id={id}\n name={name}\n form={form}\n accept={accept}\n multiple={multiple}\n style={{\n border: \"0px\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n height: \"1px\",\n width: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\",\n }}\n onChange={onChange}\n {...pickObject(rest, formControlProperties)}\n />\n\n {isFunction(children)\n ? children({\n onClick,\n disabled,\n readOnly,\n required,\n isDisabled: disabled,\n isReadOnly: readOnly,\n isRequired: required,\n isInvalid,\n })\n : children}\n </>\n )\n },\n)\n","/**\n * `Highlight` is a component that highlights specified strings within text. By default, it renders a `p` element.\n *\n * @see Docs https://yamada-ui.com/components/typography/highlight\n */\nimport type { HTMLUIProps, ThemeProps, CSSUIObject } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport type { TextProps } from \"@yamada-ui/typography\"\nimport { Text } from \"@yamada-ui/typography\"\nimport { cx, isArray } from \"@yamada-ui/utils\"\nimport type { FC, ReactNode } from \"react\"\nimport { Fragment, useMemo } from \"react\"\n\ntype Options = { text: string; query: string | string[] }\n\ntype Chunk = { text: string; match: boolean }\n\nconst escapeRegexp = (term: string): string =>\n term.replace(/[|\\\\{}()[\\]^$+*?.-]/g, (char: string) => `\\\\${char}`)\n\nconst buildRegex = (query: string[]): RegExp | undefined => {\n query = query.filter(Boolean).map((text) => escapeRegexp(text.trim()))\n\n if (query.length) return new RegExp(`(${query.join(\"|\")})`, \"ig\")\n}\n\nconst highlightWords = ({ text, query }: Options): Chunk[] => {\n const regex = buildRegex(isArray(query) ? query : [query])\n\n if (!regex) return [{ text, match: false }]\n\n return text\n .split(regex)\n .filter(Boolean)\n .map((text) => ({ text, match: regex.test(text) }))\n}\n\nexport const useHighlight = ({ text, query }: Options): Chunk[] =>\n useMemo(() => highlightWords({ text, query }), [text, query])\n\nexport type HighlightProps = TextProps & {\n /**\n * If `true`, `Fragment` is used for rendering.\n *\n * @default false\n */\n isFragment?: boolean\n /**\n * Can be a single string or an array of strings. These are the terms that are highlighted in the text.\n */\n query: string | string[]\n /**\n * Accepts a string or a function. If it's a function, it should return a `ReactNode` and accept an array of `Chunk` objects as its argument.\n */\n children: string | ((props: Chunk[]) => ReactNode)\n /**\n * Properties passed to the Mark component which is used to highlight the matched terms.\n */\n markProps?: MarkProps\n}\n\nexport const Highlight: FC<HighlightProps> = ({\n isFragment = false,\n query,\n children: text,\n markProps,\n lineHeight = \"tall\",\n ...rest\n}) => {\n if (typeof text !== \"string\")\n throw new Error(\"The children prop of Highlight must be a string\")\n\n const chunks = useHighlight({ query, text })\n\n const Component: FC = isFragment ? Fragment : Text\n\n return (\n <Component {...(!isFragment ? { lineHeight } : {})} {...rest}>\n {chunks.map(({ text, match }, i) =>\n match ? (\n <Mark key={i} {...markProps}>\n {text}\n </Mark>\n ) : (\n <Fragment key={i}>{text}</Fragment>\n ),\n )}\n </Component>\n )\n}\n\nexport type MarkProps = HTMLUIProps<\"mark\"> & ThemeProps<\"Mark\">\n\nexport const Mark = forwardRef<MarkProps, \"mark\">((props, ref) => {\n const [styles, mergedProps] = useComponentStyle(\"Mark\", props)\n const { className, ...rest } = omitThemeProps(mergedProps)\n\n const css: CSSUIObject = {\n bg: \"transparent\",\n whiteSpace: \"nowrap\",\n ...styles,\n }\n\n return (\n <ui.mark\n ref={ref}\n className={cx(\"ui-mark\", className)}\n __css={css}\n {...rest}\n />\n )\n})\n","import type { HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\n\nexport type HeadingProps = HTMLUIProps<\"h1\"> & ThemeProps<\"Heading\">\n\n/**\n * `Heading` is a component that represents section headings. By default, it renders an `h1` element.\n *\n * @see Docs https://yamada-ui.com/components/typography/heading\n */\nexport const Heading = forwardRef<HeadingProps, \"h1\">((props, ref) => {\n const [css, mergedProps] = useComponentStyle(\"Heading\", props)\n const { className, ...rest } = omitThemeProps(mergedProps)\n\n return (\n <ui.h1\n ref={ref}\n className={cx(\"ui-heading\", className)}\n __css={css}\n {...rest}\n />\n )\n})\n","import type { HTMLUIProps, ThemeProps, CSSUIProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { cx, filterUndefined } from \"@yamada-ui/utils\"\n\ntype TextOptions = {\n /**\n * The CSS `text-align` property.\n */\n align?: CSSUIProps[\"textAlign\"]\n /**\n * The CSS `text-decoration` property.\n */\n decoration?: CSSUIProps[\"textDecoration\"]\n /**\n * The CSS `text-transform` property.\n */\n casing?: CSSUIProps[\"textTransform\"]\n}\n\nexport type TextProps = HTMLUIProps<\"p\"> & ThemeProps<\"Text\"> & TextOptions\n\n/**\n * `Text` is a component that represents a paragraph of text. By default, it renders a `p` element.\n *\n * @see Docs https://yamada-ui.com/components/typography/text\n */\nexport const Text = forwardRef<TextProps, \"p\">((props, ref) => {\n const [css, mergedProps] = useComponentStyle(\"Text\", props)\n const {\n className,\n align: textAlign,\n decoration: textDecoration,\n casing: textTransform,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const textProps = filterUndefined({\n textAlign,\n textDecoration,\n textTransform,\n })\n\n return (\n <ui.p\n ref={ref}\n className={cx(\"ui-text\", className)}\n __css={css}\n {...textProps}\n {...rest}\n />\n )\n})\n","import type { HTMLUIProps, CSSUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx, omitObject } from \"@yamada-ui/utils\"\nimport type { ReactElement } from \"react\"\nimport { isValidElement, useMemo } from \"react\"\nimport type { UseImageProps } from \"./use-image\"\nimport { shouldShowFallbackImage, useImage } from \"./use-image\"\n\ntype ImageOptions = {\n /**\n * Fallback image `src` or element to show if image is loading or image fails.\n */\n fallback?: string | ReactElement\n /**\n * - beforeLoadOrError: loads the fallbackImage while loading the src.\n * - onError: loads the fallbackImage only if there is an error fetching the src.\n *\n * @default \"beforeLoadOrError\"\n */\n fallbackStrategy?: \"onError\" | \"beforeLoadOrError\"\n /**\n * The CSS `box-size` property.\n */\n size?: CSSUIProps[\"boxSize\"]\n /**\n * The CSS `object-fit` property.\n */\n fit?: CSSUIProps[\"objectFit\"]\n}\n\nexport type ImageProps = Omit<HTMLUIProps<\"img\">, keyof UseImageProps> &\n UseImageProps &\n ImageOptions\n\n/**\n * `Image` is a component that displays images with fallback support.\n *\n * @see Docs https://yamada-ui.com/components/media-and-icons/image\n */\nexport const Image = forwardRef<ImageProps, \"img\">((props, ref) => {\n let {\n fallback,\n src,\n srcSet,\n loading,\n ignoreFallback,\n crossOrigin,\n className,\n fallbackStrategy = \"beforeLoadOrError\",\n referrerPolicy,\n size: boxSize,\n fit: objectFit,\n ...rest\n } = props\n\n ignoreFallback = loading != null || ignoreFallback || !fallback\n\n const status = useImage({ ...props, crossOrigin, ignoreFallback })\n\n const css = useMemo(() => ({ boxSize, objectFit }), [boxSize, objectFit])\n\n const isFallbackImage = shouldShowFallbackImage(status, fallbackStrategy)\n\n if (isFallbackImage) {\n if (isValidElement(fallback)) {\n return fallback\n } else {\n return (\n <ui.img\n ref={ref}\n className={cx(\"ui-image--fallback\", className)}\n src={fallback as string | undefined}\n __css={css}\n {...(ignoreFallback ? rest : omitObject(rest, [\"onError\", \"onLoad\"]))}\n />\n )\n }\n }\n\n return (\n <ui.img\n ref={ref}\n src={src}\n srcSet={srcSet}\n crossOrigin={crossOrigin}\n loading={loading}\n referrerPolicy={referrerPolicy}\n className={cx(\"ui-image\", className)}\n __css={css}\n {...(ignoreFallback ? rest : omitObject(rest, [\"onError\", \"onLoad\"]))}\n />\n )\n})\n","import { useSafeLayoutEffect } from \"@yamada-ui/utils\"\nimport type { ImgHTMLAttributes, SyntheticEvent } from \"react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\n\ntype HTMLImageElementProps = ImgHTMLAttributes<HTMLImageElement>\n\nexport type UseImageProps = {\n /**\n * The image `src` attribute.\n */\n src?: string\n /**\n * The image `srcset` attribute.\n */\n srcSet?: string\n /**\n * The image `sizes` attribute.\n */\n sizes?: string\n /**\n * A callback for when the image `src` has been loaded.\n */\n onLoad?: HTMLImageElementProps[\"onLoad\"]\n /**\n * A callback for when there was an error loading the image `src`.\n */\n onError?: HTMLImageElementProps[\"onError\"]\n /**\n * If `true`, opt out of the `fallbackSrc` logic and use as `img`.\n *\n * @default false\n */\n ignoreFallback?: boolean\n /**\n * The key used to set the crossOrigin on the HTMLImageElement into which the image will be loaded.\n * This tells the browser to request cross-origin access when trying to download the image data.\n */\n crossOrigin?: HTMLImageElementProps[\"crossOrigin\"]\n /**\n * The image `loading` attribute.\n */\n loading?: HTMLImageElementProps[\"loading\"]\n}\n\ntype Status = \"loading\" | \"failed\" | \"pending\" | \"loaded\"\n\nexport const shouldShowFallbackImage = (\n status: Status,\n fallbackStrategy: \"onError\" | \"beforeLoadOrError\",\n) =>\n (status !== \"loaded\" && fallbackStrategy === \"beforeLoadOrError\") ||\n (status === \"failed\" && fallbackStrategy === \"onError\")\n\nexport const useImage = ({\n loading,\n src,\n srcSet,\n onLoad,\n onError,\n crossOrigin,\n sizes,\n ignoreFallback,\n}: UseImageProps) => {\n const [status, setStatus] = useState<Status>(\"pending\")\n\n useEffect(() => {\n setStatus(src ? \"loading\" : \"pending\")\n }, [src])\n\n const imageRef = useRef<HTMLImageElement | null>()\n\n const load = useCallback(() => {\n if (!src) return\n\n flush()\n\n const img = new Image()\n\n img.src = src\n\n if (crossOrigin) img.crossOrigin = crossOrigin\n if (srcSet) img.srcset = srcSet\n if (sizes) img.sizes = sizes\n if (loading) img.loading = loading\n\n img.onload = (ev) => {\n flush()\n\n setStatus(\"loaded\")\n\n onLoad?.(ev as unknown as SyntheticEvent<HTMLImageElement, Event>)\n }\n\n img.onerror = (error) => {\n flush()\n\n setStatus(\"failed\")\n\n onError?.(error as any)\n }\n\n imageRef.current = img\n }, [src, crossOrigin, srcSet, sizes, onLoad, onError, loading])\n\n const flush = () => {\n if (!imageRef.current) return\n\n imageRef.current.onload = null\n imageRef.current.onerror = null\n imageRef.current = null\n }\n\n useSafeLayoutEffect(() => {\n if (ignoreFallback) return\n\n if (status === \"loading\") load()\n\n return () => {\n flush()\n }\n }, [status, load, ignoreFallback])\n\n return ignoreFallback ? \"loaded\" : status\n}\n\nexport type UseImageReturn = ReturnType<typeof useImage>\n","import type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n ColorModeToken,\n CSS,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useMultiComponentStyle,\n} from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport { useFormControlProps } from \"@yamada-ui/form-control\"\nimport { cx } from \"@yamada-ui/utils\"\n\ntype InputOptions = {\n /**\n * The border color when the input is focused.\n */\n focusBorderColor?: ColorModeToken<CSS.Property.BorderColor, \"colors\">\n /**\n * The border color when the input is invalid.\n */\n errorBorderColor?: ColorModeToken<CSS.Property.BorderColor, \"colors\">\n /**\n * The native HTML `size` attribute to be passed to the `input`.\n */\n htmlSize?: number\n}\n\nexport type InputProps = Omit<\n HTMLUIProps<\"input\">,\n \"disabled\" | \"required\" | \"readOnly\" | \"size\"\n> &\n ThemeProps<\"Input\"> &\n InputOptions &\n FormControlOptions\n\n/**\n * `Input` is a component used to obtain text input from the user.\n *\n * @see Docs https://yamada-ui.com/components/forms/input\n */\nexport const Input = forwardRef<InputProps, \"input\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Input\", props)\n let { className, htmlSize, __css, ...rest } = omitThemeProps(mergedProps)\n\n rest = useFormControlProps(rest)\n\n const css: CSSUIObject = { ...styles.field, ...__css }\n\n return (\n <ui.input\n ref={ref}\n className={cx(\"ui-input\", className)}\n size={htmlSize}\n __css={css}\n {...rest}\n />\n )\n})\n","import type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n CSSUIProps,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { FileInput } from \"@yamada-ui/file-input\"\nimport { useToken } from \"@yamada-ui/use-token\"\nimport {\n createContext,\n cx,\n filterUndefined,\n getValidChildren,\n} from \"@yamada-ui/utils\"\nimport { cloneElement } from \"react\"\nimport {\n Input,\n InputRightElement,\n InputLeftElement,\n InputLeftAddon,\n InputRightAddon,\n} from \"./\"\n\nexport type InputGroupProps = HTMLUIProps<\"div\"> & ThemeProps<\"Input\">\n\ntype InputGroupContext = Record<string, CSSUIObject>\n\nconst [InputGroupProvider, useInputGroup] = createContext<InputGroupContext>({\n name: \"InputGroupContext\",\n errorMessage: `useInputGroup returned is 'undefined'. Seems you forgot to wrap the components in \"<InputGroup />\" `,\n})\n\nexport { useInputGroup }\n\nexport const InputGroup = forwardRef<InputGroupProps, \"div\">((props, ref) => {\n const [styles] = useMultiComponentStyle(\"Input\", props)\n const { className, children, ...rest } = omitThemeProps(props)\n\n const css: CSSUIObject = {\n width: \"100%\",\n display: \"flex\",\n position: \"relative\",\n ...styles.container,\n }\n const groupProps: CSSUIProps = {}\n const minHeight: any =\n useToken(\"sizes\", (styles.field?.minHeight ?? styles.field?.minH) as any) ??\n styles.field?.minHeight ??\n styles.field?.minH\n const height: any =\n useToken(\"sizes\", (styles.field?.height ?? styles.field?.h) as any) ??\n styles.field?.height ??\n styles.field?.h\n\n const validChildren = getValidChildren(children)\n\n validChildren.forEach((child: any) => {\n if ((minHeight || height) && child.type === InputLeftElement)\n groupProps.paddingStart = height ?? minHeight\n\n if ((minHeight || height) && child.type === InputRightElement)\n groupProps.paddingEnd = height ?? minHeight\n\n if (child.type === InputLeftAddon) groupProps.roundedLeft = 0\n\n if (child.type === InputRightAddon) groupProps.roundedRight = 0\n })\n\n const cloneChildren = validChildren.map((child) => {\n const childProps = filterUndefined({\n size: child.props?.size || props.size,\n variant: child.props?.variant || props.variant,\n ...child.props,\n })\n\n return child.type !== Input && child.type !== FileInput\n ? cloneElement(child, childProps)\n : cloneElement(child, Object.assign(childProps, groupProps))\n })\n\n return (\n <InputGroupProvider value={styles}>\n <ui.div\n ref={ref}\n className={cx(\"ui-input-group\", className)}\n role=\"group\"\n __css={css}\n {...rest}\n >\n {cloneChildren}\n </ui.div>\n </InputGroupProvider>\n )\n})\n","import type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n ColorModeToken,\n CSS,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useMultiComponentStyle,\n} from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport {\n useFormControlProps,\n formControlProperties,\n} from \"@yamada-ui/form-control\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport {\n assignRef,\n cx,\n dataAttr,\n handlerAll,\n isNull,\n mergeRefs,\n omitObject,\n pickObject,\n} from \"@yamada-ui/utils\"\nimport type {\n ChangeEvent,\n CSSProperties,\n FC,\n ForwardedRef,\n ReactElement,\n ReactNode,\n} from \"react\"\nimport { cloneElement, useCallback, useMemo, useRef } from \"react\"\n\ntype FileInputOptions = {\n /**\n * The border color when the input is focused.\n */\n focusBorderColor?: ColorModeToken<CSS.Property.BorderColor, \"colors\">\n /**\n * The border color when the input is invalid.\n */\n errorBorderColor?: ColorModeToken<CSS.Property.BorderColor, \"colors\">\n /**\n * The value of the file input.\n */\n value?: File[]\n /**\n * The initial value of the file input.\n */\n defaultValue?: File[]\n /**\n * Function to be called when a file change event occurs.\n */\n onChange?: (files: File[] | undefined) => void\n /**\n * The component that displays uploaded files.\n */\n component?: FC<{ value: File; index: number }>\n /**\n * A callback that formats the name of the uploaded file.\n */\n format?: (value: File, index: number) => string\n /**\n * The string to separate uploaded files.\n *\n * @default ','\n */\n separator?: string\n children?: (files: File[] | undefined) => ReactNode\n /**\n * Ref to a reset function.\n */\n resetRef?: ForwardedRef<() => void>\n}\n\ntype InputProps = Partial<Pick<HTMLInputElement, \"accept\" | \"multiple\">>\n\nexport type FileInputProps = Omit<HTMLUIProps<\"div\">, \"onChange\" | \"children\"> &\n ThemeProps<\"Input\"> &\n InputProps &\n FileInputOptions &\n FormControlOptions\n\nconst defaultFormat: (value: File, index: number) => string = ({ name }) => name\n\n/**\n * `FileInput` is a component used for users to select files.\n *\n * @see Docs https://yamada-ui.com/components/forms/file-input\n */\nexport const FileInput = forwardRef<FileInputProps, \"input\">(\n ({ children, ...props }, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"FileInput\", props)\n const {\n className,\n id,\n name,\n accept,\n multiple,\n form,\n placeholder,\n value,\n defaultValue,\n component,\n format = defaultFormat,\n lineClamp = 1,\n separator = \",\",\n resetRef,\n ...rest\n } = useFormControlProps(omitThemeProps(mergedProps))\n\n const { disabled, readOnly } = rest\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const [values, setValues] = useControllableState<File[] | undefined>({\n value,\n defaultValue,\n onChange: rest.onChange,\n })\n\n const onClick = useCallback(() => {\n if (disabled || readOnly) return\n\n inputRef.current?.click()\n }, [disabled, readOnly])\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n let files = !isNull(ev.currentTarget.files)\n ? Array.from(ev.currentTarget.files)\n : undefined\n\n if (!files?.length) files = undefined\n\n setValues(files)\n },\n [setValues],\n )\n\n const onReset = useCallback(() => {\n if (inputRef.current) inputRef.current.value = \"\"\n\n setValues(undefined)\n }, [setValues])\n\n assignRef(resetRef, onReset)\n\n const cloneChildren = useMemo(() => {\n if (!values?.length)\n return <ui.span lineClamp={lineClamp}>{placeholder}</ui.span>\n\n if (children) return children(values)\n\n if (component) {\n return (\n <ui.span lineClamp={lineClamp}>\n {values.map((value, index) => {\n const el = component({ value, index })\n\n const style: CSSProperties = {\n marginBlockStart: \"0.125rem\",\n marginBlockEnd: \"0.125rem\",\n marginInlineEnd: \"0.25rem\",\n }\n\n return el\n ? cloneElement(el as ReactElement, { style, key: index })\n : null\n })}\n </ui.span>\n )\n } else {\n return (\n <ui.span lineClamp={lineClamp}>\n {values.map((value, index) => {\n const isLast = values.length === index + 1\n\n return (\n <ui.span key={index} display=\"inline-block\" me=\"0.25rem\">\n {format(value, index)}\n {!isLast ? separator : null}\n </ui.span>\n )\n })}\n </ui.span>\n )\n }\n }, [children, format, lineClamp, placeholder, separator, component, values])\n\n const css: CSSUIObject = {\n display: \"flex\",\n alignItems: \"center\",\n cursor: !readOnly ? \"pointer\" : \"auto\",\n ...styles.field,\n }\n\n return (\n <>\n <ui.input\n ref={mergeRefs(inputRef, ref)}\n type=\"file\"\n aria-hidden\n aria-readonly\n tabIndex={-1}\n id={id}\n name={name}\n form={form}\n accept={accept}\n multiple={multiple}\n style={{\n border: \"0px\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n height: \"1px\",\n width: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\",\n }}\n onChange={onChange}\n {...pickObject(rest, formControlProperties)}\n />\n\n <ui.div\n ref={ref}\n className={cx(\"ui-file-input\", className)}\n py={values?.length && component ? \"0.125rem\" : undefined}\n {...omitObject(rest, [\"onChange\", \"aria-readonly\"])}\n __css={css}\n tabIndex={0}\n data-placeholder={dataAttr(!values?.length)}\n onClick={handlerAll(rest.onClick, onClick)}\n >\n {cloneChildren}\n </ui.div>\n </>\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useInputGroup } from \"./input-group\"\n\ntype InputAddonOptions = {\n /**\n * The placement of the element.\n *\n * @default 'left'\n */\n placement?: \"left\" | \"right\"\n}\n\nexport type InputAddonProps = HTMLUIProps<\"div\"> & InputAddonOptions\n\nconst InputAddon = forwardRef<InputAddonProps, \"div\">(\n ({ className, placement = \"left\", ...rest }, ref) => {\n const styles = useInputGroup()\n\n const placementStyles = {\n left: {\n me: \"-1px\",\n roundedRight: 0,\n borderEndColor: \"transparent\",\n },\n right: {\n ms: \"-1px\",\n roundedLeft: 0,\n borderStartColor: \"transparent\",\n },\n }\n\n const css: CSSUIObject = {\n flex: \"0 0 auto\",\n w: \"auto\",\n display: \"flex\",\n alignItems: \"center\",\n whiteSpace: \"nowrap\",\n ...styles.addon,\n ...placementStyles[placement],\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-input__addon\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport const InputLeftAddon = forwardRef<InputAddonProps, \"div\">(\n ({ className, ...rest }, ref) => {\n return (\n <InputAddon\n ref={ref}\n className={cx(\"ui-input__addon--left\", className)}\n placement=\"left\"\n {...rest}\n />\n )\n },\n)\n\nexport const InputRightAddon = forwardRef<InputAddonProps, \"div\">(\n ({ className, ...rest }, ref) => {\n return (\n <InputAddon\n ref={ref}\n className={cx(\"ui-input__addon--right\", className)}\n placement=\"right\"\n {...rest}\n />\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useInputGroup } from \"./input-group\"\n\ntype InputElementOptions = {\n /**\n * If `true`, the element clickable.\n *\n * @default false\n */\n isClick?: boolean\n /**\n * The placement of the element.\n *\n * @default 'left'\n */\n placement?: \"left\" | \"right\"\n}\n\nexport type InputElementProps = HTMLUIProps<\"div\"> & InputElementOptions\n\nconst InputElement = forwardRef<InputElementProps, \"div\">(\n ({ className, isClick = false, placement = \"left\", ...rest }, ref) => {\n const styles = useInputGroup()\n\n const css: CSSUIObject = {\n position: \"absolute\",\n top: \"0\",\n [placement === \"left\" ? \"insetStart\" : \"insetEnd\"]: \"0\",\n zIndex: \"fallback(kurillin, 9)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n w:\n styles.field?.height ??\n styles.field?.h ??\n styles.field?.minHeight ??\n styles.field?.minH,\n h: \"100%\",\n fontSize: styles.field?.fontSize,\n pointerEvents: isClick ? \"auto\" : \"none\",\n cursor: isClick ? \"pointer\" : \"auto\",\n ...styles.element,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-input__element\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport const InputLeftElement = forwardRef<InputElementProps, \"div\">(\n ({ className, ...rest }, ref) => {\n return (\n <InputElement\n ref={ref}\n className={cx(\"ui-input__element--left\", className)}\n placement=\"left\"\n {...rest}\n />\n )\n },\n)\n\nexport const InputRightElement = forwardRef<InputElementProps, \"div\">(\n ({ className, ...rest }, ref) => {\n return (\n <InputElement\n ref={ref}\n className={cx(\"ui-input__element--right\", className)}\n placement=\"right\"\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\n\nexport type KbdProps = HTMLUIProps<\"kbd\"> & ThemeProps<\"Kbd\">\n\n/**\n * `Kbd` is a component that represents keyboard input.\n *\n * @see Docs https://yamada-ui.com/components/data-display/kbd\n */\nexport const Kbd = forwardRef<KbdProps, \"kbd\">((props, ref) => {\n const [css, mergedProps] = useComponentStyle(\"Kbd\", props)\n const { className, ...rest } = omitThemeProps(mergedProps)\n\n return (\n <ui.kbd\n ref={ref}\n className={cx(\"ui-kbd\", className)}\n __css={css}\n {...rest}\n />\n )\n})\n","import type { HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\n\ntype LinkOptions = {\n /**\n * If `true`, the link will open in new tab.\n *\n * @default false\n */\n isExternal?: boolean\n}\n\nexport type LinkProps = HTMLUIProps<\"a\"> & ThemeProps<\"Link\"> & LinkOptions\n\n/**\n * `Link` is a component for creating hyperlinks to different web pages, locations within the same page, or other URLs.\n *\n * @see Docs https://yamada-ui.com/components/navigation/link\n */\nexport const Link = forwardRef<LinkProps, \"a\">((props, ref) => {\n const [css, mergedProps] = useComponentStyle(\"Link\", props)\n const { className, isExternal, ...rest } = omitThemeProps(mergedProps)\n\n return (\n <ui.a\n ref={ref}\n target={isExternal ? \"_blank\" : undefined}\n rel={isExternal ? \"noopener\" : undefined}\n className={cx(\"ui-link\", className)}\n __css={css}\n {...rest}\n />\n )\n})\n","import type { HTMLUIProps, ThemeProps, CSSUIObject } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\n\ntype LinkOverlayOptions = {\n /**\n * If `true`, the link will open in new tab.\n *\n * @default false\n */\n isExternal?: boolean\n}\n\nexport type LinkOverlayProps = HTMLUIProps<\"a\"> & LinkOverlayOptions\n\nexport const LinkOverlay = forwardRef<LinkOverlayProps, \"a\">(\n ({ className, isExternal, target, rel, href, children, ...rest }, ref) => {\n const css: CSSUIObject = {\n position: \"static\",\n _before: {\n content: '\"\"',\n cursor: \"inherit\",\n display: \"block\",\n position: \"absolute\",\n top: 0,\n left: 0,\n zIndex: 0,\n width: \"100%\",\n height: \"100%\",\n },\n }\n return (\n <ui.a\n ref={ref}\n target={isExternal ? \"_blank\" : target}\n rel={isExternal ? \"noopener\" : rel}\n className={cx(\"ui-link-box__overlay\", className)}\n href={href}\n __css={css}\n {...rest}\n >\n {children}\n </ui.a>\n )\n },\n)\n\nexport type LinkBoxProps = HTMLUIProps<\"div\"> & ThemeProps<\"LinkBox\">\n\n/**\n * `LinkBox` is a component that allows elements such as articles or cards to function as a single link.\n *\n * @see Docs https://yamada-ui.com/components/navigation/link-box\n */\nexport const LinkBox = forwardRef<LinkBoxProps, \"div\">((props, ref) => {\n const [styles, mergedProps] = useComponentStyle(\"LinkBox\", props)\n const { className, children, ...rest } = omitThemeProps(mergedProps)\n\n const css: CSSUIObject = {\n \"a[href]:not(.ui-link-box__overlay), abbr[title]\": {\n position: \"relative\",\n zIndex: \"fallback(yamcha, 1)\",\n },\n ...styles,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-link-box\", className)}\n __css={css}\n position=\"relative\"\n {...rest}\n >\n {children}\n </ui.div>\n )\n})\n","import type {\n HTMLUIProps,\n ThemeProps,\n CSSUIObject,\n CSSUIProps,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport { createContext, cx, getValidChildren } from \"@yamada-ui/utils\"\n\nconst [ListProvider, useList] = createContext<Record<string, CSSUIObject>>({\n name: `ListContext`,\n errorMessage: `useList returned is 'undefined'. Seems you forgot to wrap the components in \"<List />\" `,\n})\n\ntype ListOptions = {\n /**\n * The CSS `list-style-type` property.\n *\n * @default 'none'\n */\n styleType?: CSSUIProps[\"listStyleType\"]\n /**\n * The CSS `list-style-position` property.\n */\n stylePosition?: CSSUIProps[\"listStylePosition\"]\n /**\n * The CSS `gap` property.\n *\n * @default '2'\n */\n gap?: CSSUIObject[\"gap\"]\n}\n\nexport type ListProps = HTMLUIProps<\"ul\"> & ThemeProps<\"List\"> & ListOptions\n\n/**\n * `List` is a component for displaying lists. By default, it renders a `ul` element.\n *\n * @see Docs https://yamada-ui.com/components/data-display/list\n */\nexport const List = forwardRef<ListProps, \"ul\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"List\", props)\n const {\n className,\n children,\n styleType: listStyleType = \"none\",\n stylePosition: listStylePosition,\n gap = \"fallback(2, 0.5rem)\",\n ...rest\n } = omitThemeProps(mergedProps)\n\n const validChildren = getValidChildren(children)\n\n const css: CSSUIObject = {\n display: \"flex\",\n flexDirection: \"column\",\n gap,\n ms: listStyleType !== \"none\" ? \"1.4em\" : undefined,\n \"& > li\": { ps: listStyleType === \"decimal\" ? \"0.3em\" : undefined },\n ...styles.container,\n }\n\n return (\n <ListProvider value={styles}>\n <ui.ul\n ref={ref}\n listStyleType={listStyleType}\n listStylePosition={listStylePosition}\n role=\"list\"\n className={cx(\"ui-list\", className)}\n __css={css}\n {...rest}\n >\n {validChildren}\n </ui.ul>\n </ListProvider>\n )\n})\n\nexport const DiscList = forwardRef<ListProps, \"ul\">(({ ...rest }, ref) => {\n return <List ref={ref} as=\"ul\" styleType=\"disc\" {...rest} />\n})\n\nexport const DecimalList = forwardRef<ListProps, \"ol\">(({ ...rest }, ref) => {\n return <List ref={ref} as=\"ol\" styleType=\"decimal\" ms=\"1.2em\" {...rest} />\n})\n\nexport type ListItemProps = HTMLUIProps<\"li\">\n\nexport const ListItem = forwardRef<ListItemProps, \"li\">(\n ({ className, ...rest }, ref) => {\n const styles = useList()\n\n const css = { ...styles.item }\n\n return (\n <ui.li\n ref={ref}\n className={cx(\"ui-list-item\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type ListIconProps = IconProps\n\nexport const ListIcon = forwardRef<ListIconProps, \"svg\">(\n ({ className, ...rest }, ref) => {\n const styles = useList()\n\n const css = { ...styles.icon }\n\n return (\n <Icon\n ref={ref}\n className={cx(\"ui-list-icon\", className)}\n role=\"presentation\"\n __css={css}\n {...rest}\n />\n )\n },\n)\n","/**\n * `Menu` is a component that displays a common dropdown menu.\n *\n * @see Docs https://yamada-ui.com/components/overlay/menu\n */\nimport type { CSSUIObject, ThemeProps } from \"@yamada-ui/core\"\nimport { useMultiComponentStyle, omitThemeProps } from \"@yamada-ui/core\"\nimport type { PopoverProps } from \"@yamada-ui/popover\"\nimport { Popover } from \"@yamada-ui/popover\"\nimport { createDescendant } from \"@yamada-ui/use-descendant\"\nimport { useDisclosure } from \"@yamada-ui/use-disclosure\"\nimport {\n createContext,\n useUnmountEffect,\n useUpdateEffect,\n} from \"@yamada-ui/utils\"\nimport type { Dispatch, FC, RefObject, SetStateAction } from \"react\"\nimport { useCallback, useRef, useState } from \"react\"\n\nconst {\n DescendantsContextProvider,\n useDescendantsContext: useMenuDescendantsContext,\n useDescendants,\n useDescendant: useMenuDescendant,\n} = createDescendant<HTMLElement>()\n\nexport { useMenuDescendantsContext, useMenuDescendant }\n\ntype MenuContext = MenuOptions & {\n isOpen: boolean\n onOpen: () => void\n onClose: () => void\n onFocusFirstItem: () => void\n onFocusLastItem: () => void\n focusedIndex: number\n setFocusedIndex: Dispatch<SetStateAction<number>>\n menuRef: RefObject<HTMLDivElement>\n styles: Record<string, CSSUIObject>\n}\n\nconst [MenuProvider, useMenu] = createContext<MenuContext>({\n name: \"MenuContext\",\n errorMessage: `useMenu returned is 'undefined'. Seems you forgot to wrap the components in \"<Menu />\"`,\n})\n\nexport { useMenu }\n\ntype MenuOptions = {\n /**\n * If `true`, the list element will be closed when value is selected.\n *\n * @default true\n */\n closeOnSelect?: boolean\n}\n\nexport type MenuProps = ThemeProps<\"Menu\"> &\n Omit<PopoverProps, \"closeOnButton\"> &\n MenuOptions\n\nexport const Menu: FC<MenuProps> = (props) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Menu\", props)\n const {\n initialFocusRef,\n closeOnSelect = true,\n placement = \"bottom-start\",\n duration = 0.2,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const descendants = useDescendants()\n\n const [focusedIndex, setFocusedIndex] = useState<number>(-1)\n\n const menuRef = useRef<HTMLDivElement>(null)\n const timeoutIds = useRef<Set<any>>(new Set([]))\n\n const onFocusMenu = useCallback(() => {\n requestAnimationFrame(() =>\n menuRef.current?.focus({ preventScroll: false }),\n )\n }, [])\n\n const onFocusFirstItem = useCallback(() => {\n const id = setTimeout(() => {\n if (initialFocusRef) return\n\n const first = descendants.enabledFirstValue()\n\n if (first) setFocusedIndex(first.index)\n })\n\n timeoutIds.current.add(id)\n }, [descendants, initialFocusRef])\n\n const onFocusLastItem = useCallback(() => {\n const id = setTimeout(() => {\n if (initialFocusRef) return\n\n const last = descendants.enabledLastValue()\n\n if (last) setFocusedIndex(last.index)\n })\n\n timeoutIds.current.add(id)\n }, [descendants, initialFocusRef])\n\n const onOpenInternal = useCallback(() => {\n rest.onOpen?.()\n\n onFocusMenu()\n }, [onFocusMenu, rest])\n\n const { isOpen, onOpen, onClose } = useDisclosure({\n ...props,\n onOpen: onOpenInternal,\n })\n\n useUpdateEffect(() => {\n if (!isOpen) setFocusedIndex(-1)\n }, [isOpen])\n\n useUnmountEffect(() => {\n timeoutIds.current.forEach((id) => clearTimeout(id))\n timeoutIds.current.clear()\n })\n\n return (\n <DescendantsContextProvider value={descendants}>\n <MenuProvider\n value={{\n isOpen,\n onOpen,\n onClose,\n onFocusFirstItem,\n onFocusLastItem,\n closeOnSelect,\n focusedIndex,\n setFocusedIndex,\n menuRef,\n styles,\n }}\n >\n <Popover\n {...{\n ...rest,\n isOpen,\n onOpen,\n onClose,\n placement,\n duration,\n initialFocusRef,\n closeOnButton: false,\n }}\n />\n </MenuProvider>\n </DescendantsContextProvider>\n )\n}\n","/**\n * `Popover` is a component that floats around an element to display information.\n *\n * @see Docs https://yamada-ui.com/components/overlay/popover\n */\nimport type { CSSUIObject, ThemeProps } from \"@yamada-ui/core\"\nimport { useMultiComponentStyle, omitThemeProps } from \"@yamada-ui/core\"\nimport type {\n MotionUIPropGetter,\n MotionProps,\n MotionTransitionProperties,\n} from \"@yamada-ui/motion\"\nimport { useAnimationObserver } from \"@yamada-ui/use-animation\"\nimport type { LazyMode } from \"@yamada-ui/use-disclosure\"\nimport { useDisclosure, useLazyDisclosure } from \"@yamada-ui/use-disclosure\"\nimport {\n useFocusOnHide,\n useFocusOnShow,\n useFocusOnPointerDown,\n} from \"@yamada-ui/use-focus\"\nimport type { UsePopperProps } from \"@yamada-ui/use-popper\"\nimport { usePopper, popperProperties } from \"@yamada-ui/use-popper\"\nimport type { DOMAttributes, PropGetter } from \"@yamada-ui/utils\"\nimport {\n createContext,\n getEventRelatedTarget,\n handlerAll,\n isContains,\n mergeRefs,\n runIfFunc,\n} from \"@yamada-ui/utils\"\nimport type { FC, PropsWithChildren, RefAttributes, RefObject } from \"react\"\nimport { useCallback, useEffect, useRef } from \"react\"\n\nexport const popoverProperties: any[] = [\n ...popperProperties,\n \"isOpen\",\n \"defaultIsOpen\",\n \"onOpen\",\n \"onClose\",\n \"initialFocusRef\",\n \"restoreFocus\",\n \"autoFocus\",\n \"closeOnBlur\",\n \"closeOnEsc\",\n \"closeOnButton\",\n \"trigger\",\n \"openDelay\",\n \"closeDelay\",\n \"isLazy\",\n \"lazyBehavior\",\n \"animation\",\n \"duration\",\n]\n\ntype PopoverOptions = {\n /**\n * If `true`, the popover will be opened.\n */\n isOpen?: boolean\n /**\n * If `true`, the popover will be initially opened.\n */\n defaultIsOpen?: boolean\n /**\n * Callback fired when the popover opens.\n */\n onOpen?: () => void\n /**\n * Callback fired when the popover closes.\n */\n onClose?: () => void\n /**\n * The `ref` of the element that should receive focus when the popover opens.\n */\n initialFocusRef?: RefObject<{ focus(): void }>\n /**\n * If `true`, focus will be returned to the element that triggers the popover when it closes.\n *\n * @default true\n */\n restoreFocus?: boolean\n /**\n * If `true`, focus will be transferred to the first interactive element when the popover opens.\n *\n * @default true\n */\n autoFocus?: boolean\n /**\n * If `true`, the popover will close when you blur out it by clicking outside or tabbing out.\n *\n * @default true\n */\n closeOnBlur?: boolean\n /**\n * If `true`, the popover will close when you hit the `Esc` key.\n *\n * @default true\n */\n closeOnEsc?: boolean\n /**\n * If `true`, display the popover close button.\n *\n * @default true\n */\n closeOnButton?: boolean\n /**\n * The interaction that triggers the popover.\n *\n * - `hover`: means the popover will open when you hover with mouse or focus with keyboard on the popover trigger.\n * - `click`: means the popover will open on click or press `Enter` to `Space` on keyboard.\n *\n * @default 'click'\n */\n trigger?: \"click\" | \"hover\" | \"never\"\n /**\n * The number of delay time to open.\n *\n * @default 200\n */\n openDelay?: number\n /**\n * The number of delay time to close.\n *\n * @default 200\n */\n closeDelay?: number\n /**\n * If `true`, the PopoverContent rendering will be deferred until the popover is open.\n *\n * @default false\n */\n isLazy?: boolean\n /**\n * The lazy behavior of popover's content when not visible. Only works when `isLazy={true}`\n *\n * - `unmount`: The popover's content is always unmounted when not open.\n * - `keepMounted`: The popover's content initially unmounted, but stays mounted when popover is open.\n *\n * @default 'unmount'\n */\n lazyBehavior?: LazyMode\n /**\n * The animation of the popover.\n *\n * @default 'scale'\n */\n animation?: \"scale\" | \"top\" | \"right\" | \"left\" | \"bottom\" | \"none\"\n /**\n * The animation duration.\n */\n duration?: MotionTransitionProperties[\"duration\"]\n}\n\nexport type PopoverProps = ThemeProps<\"Popover\"> &\n Omit<UsePopperProps, \"enabled\"> &\n PropsWithChildren<PopoverOptions>\n\ntype PopoverContext = Pick<\n PopoverOptions,\n \"isOpen\" | \"onClose\" | \"closeOnButton\" | \"animation\" | \"duration\"\n> & {\n onAnimationComplete: () => void\n forceUpdate: () => void | undefined\n getTriggerProps: PropGetter\n getAnchorProps: PropGetter\n getPopperProps: PropGetter\n getPopoverProps: MotionUIPropGetter\n styles: Record<string, CSSUIObject>\n}\n\nconst [PopoverProvider, usePopover] = createContext<PopoverContext>({\n strict: false,\n name: \"PopoverContext\",\n})\n\nexport { usePopover }\n\nexport const Popover: FC<PopoverProps> = (props) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Popover\", props)\n const {\n children,\n initialFocusRef,\n restoreFocus = true,\n autoFocus = true,\n closeOnBlur = true,\n closeOnEsc = true,\n closeOnButton = true,\n trigger = \"click\",\n openDelay = 200,\n closeDelay = 200,\n isLazy,\n lazyBehavior = \"unmount\",\n animation = \"scale\",\n duration,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const { isOpen, onOpen, onClose, onToggle } = useDisclosure(mergedProps)\n\n const anchorRef = useRef<HTMLElement>(null)\n const triggerRef = useRef<HTMLElement>(null)\n const popoverRef = useRef<HTMLElement>(null)\n\n const { present, onAnimationComplete } = useAnimationObserver({\n isOpen,\n ref: popoverRef,\n })\n\n const openTimeout = useRef<number | undefined>(undefined)\n const closeTimeout = useRef<number | undefined>(undefined)\n\n const isHoveringRef = useRef(false)\n\n const hasBeenOpened = useRef(false)\n\n if (isOpen) hasBeenOpened.current = true\n\n const { referenceRef, getPopperProps, forceUpdate, transformOrigin } =\n usePopper({\n ...rest,\n enabled: isOpen,\n })\n\n useEffect(() => {\n return () => {\n if (openTimeout.current) clearTimeout(openTimeout.current)\n\n if (closeTimeout.current) clearTimeout(closeTimeout.current)\n }\n }, [])\n\n useFocusOnPointerDown({\n enabled: isOpen,\n ref: triggerRef,\n })\n\n useFocusOnHide(popoverRef, {\n focusRef: triggerRef,\n visible: isOpen,\n shouldFocus: restoreFocus && trigger === \"click\",\n })\n\n useFocusOnShow(popoverRef, {\n focusRef: initialFocusRef,\n visible: isOpen,\n shouldFocus: autoFocus && trigger === \"click\",\n })\n\n const shouldRenderChildren = useLazyDisclosure({\n wasSelected: hasBeenOpened.current,\n enabled: isLazy,\n mode: lazyBehavior,\n isSelected: present,\n })\n\n const getPopoverProps: MotionUIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const popoverProps: MotionProps<\"div\"> & RefAttributes<any> = {\n ...props,\n style: {\n ...props.style,\n transformOrigin,\n },\n ref: mergeRefs(popoverRef, ref),\n children: shouldRenderChildren ? props.children : null,\n tabIndex: -1,\n onKeyDown: handlerAll(props.onKeyDown, (ev) => {\n if (closeOnEsc && ev.key === \"Escape\") onClose()\n }),\n onBlur: handlerAll(props.onBlur, (ev) => {\n const relatedTarget = getEventRelatedTarget(ev)\n const targetIsPopover = isContains(popoverRef.current, relatedTarget)\n const targetIsTrigger = isContains(triggerRef.current, relatedTarget)\n\n const isValidBlur = !targetIsPopover && !targetIsTrigger\n\n if (isOpen && closeOnBlur && isValidBlur) onClose()\n }),\n }\n\n if (trigger === \"hover\") {\n popoverProps.onMouseEnter = handlerAll(props.onMouseEnter, () => {\n isHoveringRef.current = true\n })\n\n popoverProps.onMouseLeave = handlerAll(props.onMouseLeave, (ev) => {\n if (ev.nativeEvent.relatedTarget === null) return\n\n isHoveringRef.current = false\n setTimeout(onClose, closeDelay)\n })\n }\n\n return popoverProps\n },\n [\n closeDelay,\n closeOnBlur,\n closeOnEsc,\n isOpen,\n onClose,\n shouldRenderChildren,\n transformOrigin,\n trigger,\n ],\n )\n\n const maybeReferenceRef = useCallback(\n (node: Element) => {\n if (anchorRef.current == null) referenceRef(node)\n },\n [referenceRef],\n )\n\n const getTriggerProps: PropGetter = useCallback(\n (props = {}, ref = null) => {\n const triggerProps: RefAttributes<any> & DOMAttributes = {\n ...props,\n ref: mergeRefs(triggerRef, ref, maybeReferenceRef),\n }\n\n if (trigger === \"click\") {\n triggerProps.onClick = handlerAll(props.onClick, onToggle)\n triggerProps.onBlur = handlerAll(props.onBlur, (ev) => {\n const relatedTarget = getEventRelatedTarget(ev)\n const isValidBlur = !isContains(popoverRef.current, relatedTarget)\n\n if (isOpen && closeOnBlur && isValidBlur) onClose()\n })\n }\n\n if (trigger === \"hover\") {\n triggerProps.onFocus = handlerAll(props.onFocus, () => {\n if (openTimeout.current === undefined) onOpen()\n })\n\n triggerProps.onBlur = handlerAll(props.onBlur, (ev) => {\n const relatedTarget = getEventRelatedTarget(ev)\n const isValidBlur = !isContains(popoverRef.current, relatedTarget)\n\n if (isOpen && closeOnBlur && isValidBlur) onClose()\n })\n\n triggerProps.onKeyDown = handlerAll(props.onKeyDown, (ev) => {\n if (ev.key === \"Escape\") onClose()\n })\n\n triggerProps.onMouseEnter = handlerAll(props.onMouseEnter, () => {\n isHoveringRef.current = true\n openTimeout.current = window.setTimeout(onOpen, openDelay)\n })\n\n triggerProps.onMouseLeave = handlerAll(props.onMouseLeave, () => {\n isHoveringRef.current = false\n\n if (openTimeout.current) {\n clearTimeout(openTimeout.current)\n openTimeout.current = undefined\n }\n\n closeTimeout.current = window.setTimeout(() => {\n if (isHoveringRef.current === false) onClose()\n }, closeDelay)\n })\n }\n\n return triggerProps\n },\n [\n closeDelay,\n closeOnBlur,\n isOpen,\n maybeReferenceRef,\n onClose,\n onOpen,\n onToggle,\n openDelay,\n trigger,\n ],\n )\n\n const getAnchorProps: PropGetter = useCallback(\n (props = {}, ref = null) => {\n return {\n ...props,\n ref: mergeRefs(ref, anchorRef, referenceRef),\n }\n },\n [anchorRef, referenceRef],\n )\n\n return (\n <PopoverProvider\n value={{\n isOpen,\n onClose,\n closeOnButton,\n onAnimationComplete,\n forceUpdate,\n getTriggerProps,\n getAnchorProps,\n getPopperProps,\n getPopoverProps,\n animation,\n duration,\n styles,\n }}\n >\n {runIfFunc(children, {\n isOpen,\n onClose,\n forceUpdate,\n })}\n </PopoverProvider>\n )\n}\n","import type { AnimationStyle, Theme } from \"@yamada-ui/core\"\nimport { useTheme, generateAnimation } from \"@yamada-ui/core\"\nimport { useBoolean } from \"@yamada-ui/use-boolean\"\nimport { useEventListener } from \"@yamada-ui/use-event-listener\"\nimport {\n isArray,\n isUndefined,\n runIfFunc,\n getOwnerWindow,\n} from \"@yamada-ui/utils\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\n\ntype Styles =\n | AnimationStyle\n | Theme[\"animations\"]\n | (AnimationStyle | Theme[\"animations\"])[]\n\n/**\n * `useAnimation` is a custom hook that implements animations similar to CSS `keyframes`.\n *\n * @see Docs https://yamada-ui.com/hooks/use-animation\n */\nexport const useAnimation = (styles: Styles): string => {\n const { theme } = useTheme()\n\n if (isArray(styles)) {\n return styles.map((style) => generateAnimation(style, theme)).join(\", \")\n } else {\n return generateAnimation(styles, theme)\n }\n}\n\n/**\n * `useDynamicAnimation` is a custom hook used to switch animations.\n *\n * @see Docs https://yamada-ui.com/hooks/use-dynamic-animation\n */\nexport const useDynamicAnimation = <\n T extends (AnimationStyle | Theme[\"animations\"])[] | Record<string, Styles>,\n>(\n arrayOrObj: T,\n init?: keyof T | (keyof T)[],\n): [\n string | undefined,\n (\n key:\n | keyof T\n | (keyof T)[]\n | ((key: keyof T | (keyof T)[] | undefined) => keyof T | (keyof T)[]),\n ) => void,\n] => {\n const { theme } = useTheme()\n\n const keys = useRef<string | string[] | undefined>(\n !isUndefined(init)\n ? isArray(init)\n ? init.map(String)\n : String(init)\n : undefined,\n )\n const cache = useRef<Map<string, string>>(new Map<string, string>())\n\n const [animations, setAnimations] = useState<string | undefined>(() => {\n for (const [key, styles] of Object.entries(arrayOrObj)) {\n if (cache.current.has(key)) return\n\n if (isArray(styles)) {\n cache.current.set(\n key,\n styles.map((style) => generateAnimation(style, theme)).join(\", \"),\n )\n } else {\n cache.current.set(key, generateAnimation(styles, theme))\n }\n }\n\n if (isArray(keys.current)) {\n return keys.current.map((key) => cache.current.get(key)).join(\", \")\n } else {\n return cache.current.get(keys.current ?? \"\")\n }\n })\n\n const setAnimation = useCallback(\n (\n keysOrFunc:\n | keyof T\n | (keyof T)[]\n | ((key: keyof T | (keyof T)[] | undefined) => keyof T | (keyof T)[]),\n ) => {\n const args = (() => {\n if (!isUndefined(keys.current) && isArray(arrayOrObj)) {\n return isArray(keys.current)\n ? keys.current.map(Number)\n : Number(keys.current)\n } else {\n return keys.current\n }\n })() as keyof T | (keyof T)[] | undefined\n\n const keyOrArray = runIfFunc(keysOrFunc, args)\n\n keys.current = isArray(keyOrArray)\n ? keyOrArray.map(String)\n : String(keyOrArray)\n\n if (isArray(keys.current)) {\n setAnimations(\n keys.current.map((key) => cache.current.get(key)).join(\", \"),\n )\n } else {\n setAnimations(cache.current.get(keys.current ?? \"\"))\n }\n },\n [arrayOrObj],\n )\n\n return [animations, setAnimation]\n}\n\nexport type UseAnimationObserverProps = {\n isOpen: boolean\n ref: React.RefObject<HTMLElement>\n}\n\nexport const useAnimationObserver = ({\n isOpen,\n ref,\n}: UseAnimationObserverProps) => {\n const [mounted, setMounted] = useState(isOpen)\n const [flg, { on }] = useBoolean()\n\n useEffect(() => {\n if (flg) return\n\n setMounted(isOpen)\n on()\n }, [isOpen, flg, on])\n\n useEventListener(\n () => ref.current,\n \"animationend\",\n () => setMounted(isOpen),\n )\n\n const hidden = isOpen ? false : !mounted\n\n return {\n present: !hidden,\n onAnimationComplete() {\n const ownerWindow = getOwnerWindow(ref.current)\n const ev = new ownerWindow.CustomEvent(\"animationend\", {\n bubbles: true,\n })\n\n ref.current?.dispatchEvent(ev)\n },\n }\n}\n\nexport type ReturnUseAnimationObserver = ReturnType<typeof useAnimationObserver>\n","import { useCallback, useState } from \"react\"\n\n/**\n * `useBoolean` is a custom hook used to manage boolean values using `on`, `off`, and `toggle` functions.\n *\n * @see Docs https://yamada-ui.com/hooks/use-boolean\n */\nexport const useBoolean = (init: boolean = false): UseBooleanReturn => {\n const [flg, setFlg] = useState<boolean>(init)\n\n const on = useCallback(() => setFlg(true), [])\n\n const off = useCallback(() => setFlg(false), [])\n\n const toggle = useCallback(() => setFlg((prev) => !prev), [])\n\n return [flg, { on, off, toggle }]\n}\n\nexport type UseBooleanReturn = [\n flg: boolean,\n setFlg: { on: () => void; off: () => void; toggle: () => void },\n]\n","import { useCallbackRef } from \"@yamada-ui/utils\"\nimport { useCallback, useRef, useState } from \"react\"\n\nexport type UseDisclosureProps<\n T extends (...args: any[]) => any = () => void,\n K extends (...args: any[]) => any = () => void,\n> = {\n isOpen?: boolean\n defaultIsOpen?: boolean\n onOpen?: T\n onClose?: K\n timing?: \"before\" | \"after\"\n}\n\n/**\n * `useDisclosure` is a custom hook that helps handle common open/close or toggle scenarios.\n * It can be used to control components such as `Modal`, `Dialog`, `Drawer`, etc.\n *\n * @see Docs https://yamada-ui.com/hooks/use-disclosure\n */\nexport const useDisclosure = <\n T extends (...args: any[]) => any = () => void,\n K extends (...args: any[]) => any = () => void,\n>(\n props: UseDisclosureProps<T, K> = {},\n) => {\n const [defaultIsOpen, setIsOpen] = useState<boolean>(\n props.defaultIsOpen ?? false,\n )\n\n const timingRef = useRef(props.timing ?? \"after\")\n const handleOpen = useCallbackRef(props.onOpen)\n const handleClose = useCallbackRef(props.onClose)\n\n const isControlled = props.isOpen !== undefined\n const isOpen = props.isOpen !== undefined ? props.isOpen : defaultIsOpen\n\n const onOpen = useCallback(\n async (...args: any) => {\n if (timingRef.current === \"before\") await handleOpen?.(...args)\n\n if (!isControlled) setIsOpen(true)\n\n if (timingRef.current === \"after\") await handleOpen?.(...args)\n },\n [isControlled, handleOpen, timingRef],\n ) as unknown as T\n\n const onClose = useCallback(\n async (...args: any) => {\n if (timingRef.current === \"before\") await handleClose?.(...args)\n\n if (!isControlled) setIsOpen(false)\n\n if (timingRef.current === \"after\") await handleClose?.(...args)\n },\n [isControlled, handleClose, timingRef],\n ) as unknown as K\n\n const onToggle = useCallback(\n (...args: any) => (!isOpen ? onOpen(...args) : onClose(...args)),\n [isOpen, onOpen, onClose],\n ) as unknown as T | K\n\n return { isOpen, onOpen, onClose, onToggle }\n}\n\nexport type UseDisclosureReturn = ReturnType<typeof useDisclosure>\n\nexport type LazyMode = \"unmount\" | \"keepMounted\"\n\nexport type UseLazyDisclosureProps = {\n enabled?: boolean\n isSelected?: boolean\n wasSelected?: boolean\n mode?: LazyMode\n}\n\nexport const useLazyDisclosure = ({\n wasSelected,\n enabled,\n isSelected,\n mode = \"unmount\",\n}: UseLazyDisclosureProps) => {\n if (!enabled) return true\n\n if (isSelected) return true\n\n if (mode === \"keepMounted\" && wasSelected) return true\n\n return false\n}\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import type {\n Instance,\n Modifier,\n VirtualElement,\n Placement,\n} from \"@popperjs/core\"\nimport { createPopper } from \"@popperjs/core\"\nimport type { Token } from \"@yamada-ui/core\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport { mergeRefs } from \"@yamada-ui/utils\"\nimport { useCallback, useEffect, useRef } from \"react\"\n\nexport const popperProperties: any[] = [\n \"enabled\",\n \"offset\",\n \"gutter\",\n \"preventOverflow\",\n \"flip\",\n \"matchWidth\",\n \"boundary\",\n \"eventListeners\",\n \"strategy\",\n \"placement\",\n \"modifiers\",\n]\n\nexport type UsePopperProps = {\n /**\n * Whether the popper.js should be enabled.\n *\n * @default true\n */\n enabled?: boolean\n /**\n * The main and cross-axis offset to displace popper element from its reference element.\n */\n offset?: [number, number]\n /**\n * The distance or margin between the reference and popper.\n * It is used internally to create an `offset` modifier.\n *\n * @default 8\n */\n gutter?: Token<number>\n /**\n * If `true`, will prevent the popper from being cut off and ensure it's visible within the boundary area.\n *\n * @default true\n */\n preventOverflow?: boolean\n /**\n * If `true`, the popper will change its placement and flip when it's about to overflow its boundary area.\n *\n * @default true\n */\n flip?: boolean\n /**\n * If `true`, the popper will match the width of the reference at all times.\n * It's useful for `autocomplete`, `date-picker` and `select` patterns.\n *\n * @default false\n */\n matchWidth?: boolean\n /**\n * The boundary area for the popper. Used within the `preventOverflow` modifier.\n *\n * @default 'clippingParents'\n */\n boundary?: \"clippingParents\" | \"scrollParent\" | HTMLElement\n /**\n * If provided, determines whether the popper will reposition itself on `scroll` and `resize` of the window.\n *\n * @default true\n */\n eventListeners?: boolean | { scroll?: boolean; resize?: boolean }\n /**\n * The CSS positioning strategy to use.\n *\n * @default 'absolute'\n */\n strategy?: \"absolute\" | \"fixed\"\n /**\n * The placement of the popper relative to its reference.\n *\n * @default 'bottom'\n */\n placement?: Token<Placement>\n /**\n * Array of popper.js modifiers.\n * Check the docs to see the list of possible modifiers you can pass.\n *\n * @see Docs https://popper.js.org/docs/v2/modifiers/\n */\n modifiers?: Array<Partial<Modifier<string, any>>>\n}\n\nconst defaultEventListeners = {\n scroll: true,\n resize: true,\n}\n\nconst transforms: Record<string, string> = {\n top: \"bottom center\",\n \"top-start\": \"bottom left\",\n \"top-end\": \"bottom right\",\n\n bottom: \"top center\",\n \"bottom-start\": \"top left\",\n \"bottom-end\": \"top right\",\n\n left: \"right center\",\n \"left-start\": \"right top\",\n \"left-end\": \"right bottom\",\n\n right: \"left center\",\n \"right-start\": \"left top\",\n \"right-end\": \"left bottom\",\n}\n\nexport const usePopper = ({\n enabled = true,\n eventListeners = true,\n matchWidth,\n offset,\n gutter: _gutter = 8,\n flip = true,\n preventOverflow = true,\n boundary = \"clippingParents\",\n strategy = \"absolute\",\n placement: _placement = \"bottom\",\n modifiers,\n}: UsePopperProps = {}) => {\n const reference = useRef<Element | VirtualElement | null>(null)\n const popper = useRef<HTMLElement | null>(null)\n const instance = useRef<Instance | null>(null)\n\n const gutter = useValue(_gutter)\n const placement = useValue(_placement)\n\n const cleanup = useRef(() => {})\n\n const setupPopper = useCallback(() => {\n if (!enabled || !reference.current || !popper.current) return\n\n cleanup.current?.()\n\n const modifierTransformOrigin: Modifier<\"transformOrigin\", any> = {\n name: \"transformOrigin\",\n enabled: true,\n phase: \"write\",\n fn: ({ state }) => {\n state.elements.popper.style.setProperty(\n \"--popper-transform-origin\",\n transforms[state.placement],\n )\n },\n effect:\n ({ state }) =>\n () => {\n state.elements.popper.style.setProperty(\n \"--popper-transform-origin\",\n transforms[state.placement],\n )\n },\n }\n\n const modifierEventListeners = {\n name: \"eventListeners\",\n ...(typeof eventListeners === \"object\"\n ? {\n enabled: true,\n options: { ...defaultEventListeners, ...eventListeners },\n }\n : {\n enabled: eventListeners,\n options: defaultEventListeners,\n }),\n }\n\n const modifierOffset = {\n name: \"offset\",\n options: { offset: offset ?? [0, gutter] },\n }\n\n const modifierFlip = {\n name: \"flip\",\n enabled: !!flip,\n options: { padding: 8 },\n }\n\n const modifierPreventOverflow = {\n name: \"preventOverflow\",\n enabled: !!preventOverflow,\n options: { boundary },\n }\n\n const modifierMatchWidth: Modifier<\"matchWidth\", any> = {\n name: \"matchWidth\",\n enabled: !!matchWidth,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`\n },\n effect:\n ({ state }) =>\n () => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`\n },\n }\n\n instance.current = createPopper(reference.current, popper.current, {\n placement,\n modifiers: [\n modifierTransformOrigin,\n modifierMatchWidth,\n modifierEventListeners,\n modifierOffset,\n modifierFlip,\n modifierPreventOverflow,\n ...(modifiers ?? []),\n ],\n strategy,\n })\n\n instance.current.forceUpdate()\n\n cleanup.current = instance.current.destroy\n }, [\n placement,\n enabled,\n modifiers,\n matchWidth,\n eventListeners,\n offset,\n gutter,\n flip,\n preventOverflow,\n boundary,\n strategy,\n ])\n\n useEffect(() => {\n return () => {\n if (reference.current || popper.current) return\n\n instance.current?.destroy()\n instance.current = null\n }\n }, [])\n\n const referenceRef = useCallback(\n <T extends Element | VirtualElement>(el: T | null) => {\n reference.current = el\n\n setupPopper()\n },\n [setupPopper],\n )\n\n const getReferenceProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ref: mergeRefs(referenceRef, ref),\n }),\n [referenceRef],\n )\n\n const popperRef = useCallback(\n <T extends HTMLElement>(el: T | null) => {\n popper.current = el\n\n setupPopper()\n },\n [setupPopper],\n )\n\n const getPopperProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ref: mergeRefs(popperRef, ref),\n style: {\n ...props.style,\n position: strategy,\n minWidth: matchWidth ? undefined : \"max-content\",\n inset: \"0 auto auto 0\",\n },\n }),\n [strategy, popperRef, matchWidth],\n )\n\n return {\n update: () => instance.current?.update(),\n forceUpdate: () => instance.current?.forceUpdate(),\n transformOrigin: \"var(--popper-transform-origin)\",\n referenceRef,\n popperRef,\n getPopperProps,\n getReferenceProps,\n }\n}\n\nexport type UsePopperReturn = ReturnType<typeof usePopper>\n","import type { FC, PropsWithChildren, ReactElement, RefObject } from \"react\"\nimport { Children, cloneElement } from \"react\"\nimport { usePopover } from \"./popover\"\n\nexport const PopoverTrigger: FC<PropsWithChildren<{}>> = ({ children }) => {\n const child = Children.only(children) as ReactElement & {\n ref: RefObject<any>\n }\n const { getTriggerProps } = usePopover()\n\n return cloneElement(child, getTriggerProps(child.props, child.ref))\n}\n","import type { FC, PropsWithChildren, ReactElement, RefObject } from \"react\"\nimport { Children, cloneElement } from \"react\"\nimport { usePopover } from \"./popover\"\n\nexport const PopoverAnchor: FC<PropsWithChildren<{}>> = ({ children }) => {\n const child = Children.only(children) as ReactElement & {\n ref: RefObject<any>\n }\n const { getAnchorProps } = usePopover()\n\n return cloneElement(child, getAnchorProps(child.props, child.ref))\n}\n","import type { CloseButtonProps } from \"@yamada-ui/close-button\"\nimport { CloseButton } from \"@yamada-ui/close-button\"\nimport type { CSSUIObject } from \"@yamada-ui/core\"\nimport { forwardRef } from \"@yamada-ui/core\"\nimport { cx, handlerAll } from \"@yamada-ui/utils\"\nimport { usePopover } from \"./popover\"\n\nexport type PopoverCloseButtonProps = CloseButtonProps\n\nexport const PopoverCloseButton = forwardRef<PopoverCloseButtonProps, \"button\">(\n ({ onClick, ...rest }, ref) => {\n const { styles, onClose } = usePopover()\n\n const css: CSSUIObject = {\n position: \"absolute\",\n ...styles.closeButton,\n }\n\n return (\n <CloseButton\n ref={ref}\n className={cx(\"ui-popover__close-button\")}\n __css={css}\n onClick={handlerAll(onClick, (ev) => {\n ev.stopPropagation()\n onClose?.()\n })}\n size=\"sm\"\n {...rest}\n />\n )\n },\n)\n","import type { CSSUIObject, CSSUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { MotionProps } from \"@yamada-ui/motion\"\nimport { motion } from \"@yamada-ui/motion\"\nimport { scaleFadeProps, slideFadeProps } from \"@yamada-ui/transitions\"\nimport type { DOMAttributes } from \"@yamada-ui/utils\"\nimport {\n cx,\n findChildren,\n funcAll,\n getValidChildren,\n omitObject,\n} from \"@yamada-ui/utils\"\nimport type { ReactNode, RefAttributes } from \"react\"\nimport { usePopover } from \"./popover\"\nimport type { PopoverProps } from \".\"\nimport { PopoverCloseButton } from \".\"\n\nexport type PopoverContentProps = MotionProps<\"section\">\n\nconst getPopoverContentProps = (\n animation: PopoverProps[\"animation\"] = \"scale\",\n duration?: PopoverProps[\"duration\"],\n) => {\n const custom = {\n reverse: true,\n duration,\n enter: { visibility: \"visible\" },\n transitionEnd: { exit: { visibility: \"hidden\" } },\n }\n\n switch (animation) {\n case \"scale\":\n return {\n ...scaleFadeProps,\n custom: { ...custom, scale: 0.95 },\n }\n case \"top\":\n return {\n ...slideFadeProps,\n custom: { ...custom, offsetX: 0, offsetY: -16 },\n }\n case \"right\":\n return {\n ...slideFadeProps,\n custom: { ...custom, offsetX: 16, offsetY: 0 },\n }\n case \"left\":\n return {\n ...slideFadeProps,\n custom: { ...custom, offsetX: -16, offsetY: 0 },\n }\n case \"bottom\":\n return {\n ...slideFadeProps,\n custom: { ...custom, offsetX: 0, offsetY: 16 },\n }\n }\n}\n\nexport const PopoverContent = forwardRef<PopoverContentProps, \"section\">(\n (\n {\n as = \"section\",\n className,\n children,\n w,\n width,\n minW,\n minWidth,\n zIndex,\n __css,\n ...rest\n },\n ref,\n ) => {\n const {\n isOpen,\n closeOnButton,\n getPopperProps,\n getPopoverProps,\n onAnimationComplete,\n animation,\n duration,\n styles,\n } = usePopover()\n\n const validChildren = getValidChildren(children)\n const [customPopoverCloseButton, ...cloneChildren] = findChildren(\n validChildren,\n PopoverCloseButton,\n )\n\n const resolvedChildren = (): ReactNode => {\n return (\n <>\n {customPopoverCloseButton ??\n (closeOnButton ? <PopoverCloseButton /> : null)}\n\n {cloneChildren}\n </>\n )\n }\n\n const css: CSSUIObject = {\n position: \"relative\",\n w: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n outline: 0,\n ...omitObject(__css ?? styles.container, [\"zIndex\"]),\n }\n\n w =\n w ??\n width ??\n ((styles.container?.w ?? styles.container?.width) as CSSUIProps[\"w\"])\n minW =\n minW ??\n minWidth ??\n ((styles.container?.minW ??\n styles.container?.minWidth) as CSSUIProps[\"minW\"])\n zIndex = (zIndex ?? styles.container?.zIndex) as CSSUIProps[\"zIndex\"]\n\n return (\n <ui.div\n {...getPopperProps({\n style: { visibility: isOpen ? \"visible\" : \"hidden\" },\n })}\n className=\"ui-popover\"\n w={w}\n minW={minW}\n zIndex={zIndex}\n >\n <ui.section\n as={motion[as as keyof typeof motion]}\n className={cx(\"ui-popover__content\", className)}\n {...(animation !== \"none\"\n ? getPopoverContentProps(animation, duration)\n : {})}\n {...(getPopoverProps(\n {\n ...rest,\n children: resolvedChildren(),\n },\n ref,\n ) as Omit<DOMAttributes & RefAttributes<any>, \"onDrag\">)}\n initial=\"exit\"\n animate={isOpen ? \"enter\" : \"exit\"}\n exit=\"exit\"\n onAnimationComplete={funcAll(\n onAnimationComplete,\n rest.onAnimationComplete,\n )}\n __css={css}\n />\n </ui.div>\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { usePopover } from \"./popover\"\n\nexport type PopoverHeaderProps = HTMLUIProps<\"header\">\n\nexport const PopoverHeader = forwardRef<PopoverHeaderProps, \"header\">(\n ({ className, ...rest }, ref) => {\n const { styles } = usePopover()\n\n const css: CSSUIObject = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n ...styles.header,\n }\n\n return (\n <ui.header\n ref={ref}\n className={cx(\"ui-popover__header\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { usePopover } from \"./popover\"\n\nexport type PopoverBodyProps = HTMLUIProps<\"main\">\n\nexport const PopoverBody = forwardRef<PopoverBodyProps, \"main\">(\n ({ className, ...rest }, ref) => {\n const { styles } = usePopover()\n\n const css: CSSUIObject = {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n ...styles.body,\n }\n\n return (\n <ui.main\n ref={ref}\n className={cx(\"ui-popover__body\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { usePopover } from \"./popover\"\n\nexport type PopoverFooterProps = HTMLUIProps<\"footer\">\n\nexport const PopoverFooter = forwardRef<PopoverFooterProps, \"footer\">(\n ({ className, ...rest }, ref) => {\n const { styles } = usePopover()\n\n const css: CSSUIObject = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n ...styles.footer,\n }\n\n return (\n <ui.footer\n ref={ref}\n className={cx(\"ui-popover__footer\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { PopoverTrigger } from \"@yamada-ui/popover\"\nimport { ariaAttr, cx, dataAttr, funcAll, handlerAll } from \"@yamada-ui/utils\"\nimport type { KeyboardEvent } from \"react\"\nimport { useCallback } from \"react\"\nimport { useMenu } from \"./menu\"\n\nexport type MenuButtonProps = HTMLUIProps<\"button\">\n\nexport const MenuButton = forwardRef<MenuButtonProps, \"button\">(\n ({ className, children, as: As, ...rest }, ref) => {\n const { isOpen, onOpen, onFocusFirstItem, onFocusLastItem } = useMenu()\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent) => {\n const actions: Record<string, Function> = {\n Enter: funcAll(onOpen, onFocusFirstItem),\n ArrowDown: funcAll(onOpen, onFocusFirstItem),\n ArrowUp: funcAll(onOpen, onFocusLastItem),\n }\n\n const action = actions[ev.key]\n\n if (!action) return\n\n ev.preventDefault()\n ev.stopPropagation()\n action()\n },\n [onFocusFirstItem, onFocusLastItem, onOpen],\n )\n\n const Component = As || Button\n\n return (\n <PopoverTrigger>\n <Component\n ref={ref}\n className={cx(\"ui-menu\", className)}\n {...rest}\n data-active={dataAttr(isOpen)}\n aria-expanded={ariaAttr(isOpen)}\n onKeyDown={handlerAll(rest.onKeyDown, onKeyDown)}\n >\n <ui.span __css={{ pointerEvents: \"none\", flex: \"1 1 auto\", minW: 0 }}>\n {children}\n </ui.span>\n </Component>\n </PopoverTrigger>\n )\n },\n)\n\nconst Button = forwardRef<MenuButtonProps, \"button\">((rest, ref) => {\n const { styles } = useMenu()\n\n const css: CSSUIObject = {\n display: \"inline-flex\",\n appearance: \"none\",\n alignItems: \"center\",\n outline: 0,\n ...styles.button,\n }\n\n return <ui.button ref={ref} __css={css} {...rest} />\n})\n","import type { CSSUIObject } from \"@yamada-ui/core\"\nimport { forwardRef } from \"@yamada-ui/core\"\nimport type { MotionProps } from \"@yamada-ui/motion\"\nimport { PopoverContent } from \"@yamada-ui/popover\"\nimport { cx, handlerAll, mergeRefs } from \"@yamada-ui/utils\"\nimport type { KeyboardEvent, KeyboardEventHandler } from \"react\"\nimport { useCallback } from \"react\"\nimport { useMenu, useMenuDescendantsContext } from \"./menu\"\n\nexport type MenuListProps = MotionProps<\"ul\">\n\nexport const MenuList = forwardRef<MenuListProps, \"ul\">(\n ({ className, ...rest }, ref) => {\n const { menuRef, focusedIndex, setFocusedIndex, onClose, styles } =\n useMenu()\n\n const descendants = useMenuDescendantsContext()\n\n const onNext = useCallback(() => {\n const next = descendants.enabledNextValue(focusedIndex)\n\n if (next) setFocusedIndex(next.index)\n }, [descendants, focusedIndex, setFocusedIndex])\n\n const onPrev = useCallback(() => {\n const prev = descendants.enabledPrevValue(focusedIndex)\n\n if (prev) setFocusedIndex(prev.index)\n }, [descendants, focusedIndex, setFocusedIndex])\n\n const onFirst = useCallback(() => {\n const first = descendants.enabledFirstValue()\n\n if (first) setFocusedIndex(first.index)\n }, [descendants, setFocusedIndex])\n\n const onLast = useCallback(() => {\n const last = descendants.enabledLastValue()\n\n if (last) setFocusedIndex(last.index)\n }, [descendants, setFocusedIndex])\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent) => {\n const actions: Record<string, KeyboardEventHandler> = {\n Tab: (ev) => ev.preventDefault(),\n Escape: onClose,\n ArrowDown: focusedIndex === -1 ? onFirst : onNext,\n ArrowUp: focusedIndex === -1 ? onLast : onPrev,\n Home: onFirst,\n End: onLast,\n }\n\n const action = actions[ev.key]\n\n if (!action) return\n\n ev.preventDefault()\n action(ev)\n },\n [focusedIndex, onClose, onFirst, onLast, onNext, onPrev],\n )\n\n const css: CSSUIObject = { ...styles.list }\n\n return (\n <PopoverContent\n as=\"ul\"\n ref={mergeRefs(menuRef, ref)}\n className={cx(\"ui-menu__list\", className)}\n role=\"menu\"\n tabIndex={-1}\n __css={css}\n {...rest}\n onKeyDown={handlerAll(rest.onKeyDown, onKeyDown)}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { useClickable } from \"@yamada-ui/use-clickable\"\nimport {\n ariaAttr,\n cx,\n isActiveElement,\n isHTMLElement,\n mergeRefs,\n useUpdateEffect,\n} from \"@yamada-ui/utils\"\nimport type { FC, FocusEvent, MouseEvent, ReactElement } from \"react\"\nimport { useCallback, useRef } from \"react\"\nimport { useMenu, useMenuDescendant } from \"./menu\"\n\nconst isTargetMenuItem = (target: EventTarget | null) => {\n return (\n isHTMLElement(target) &&\n !!target?.getAttribute(\"role\")?.startsWith(\"menu-item\")\n )\n}\n\ntype MenuItemOptions = {\n /**\n * If `true`, the menu item will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true`, the menu item will be focusable.\n *\n * @default false\n */\n isFocusable?: boolean\n /**\n * If `true`, the list element will be closed when selected.\n *\n * @default false\n */\n closeOnSelect?: boolean\n /**\n * The menu item icon to use.\n */\n icon?: ReactElement\n /**\n * Right-aligned label text content, useful for displaying hotkeys.\n */\n command?: string\n}\n\nexport type MenuItemProps = HTMLUIProps<\"button\"> & MenuItemOptions\n\nexport const MenuItem = forwardRef<MenuItemProps, \"button\">(\n (\n {\n as,\n className,\n type,\n isDisabled,\n isFocusable,\n closeOnSelect: customCloseOnSelect,\n icon,\n command,\n children,\n ...props\n },\n ref,\n ) => {\n const {\n focusedIndex,\n setFocusedIndex,\n isOpen,\n onClose,\n closeOnSelect: generalCloseOnSelect,\n menuRef,\n styles,\n } = useMenu()\n\n const trulyDisabled = isDisabled && !isFocusable\n\n const buttonRef = useRef<HTMLButtonElement>(null)\n const { index, register } = useMenuDescendant({ disabled: trulyDisabled })\n\n const isFocused = index === focusedIndex\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLButtonElement>) => {\n props.onClick?.(ev)\n if (!isTargetMenuItem(ev.currentTarget)) return\n\n if (customCloseOnSelect ?? generalCloseOnSelect) onClose()\n },\n [props, customCloseOnSelect, generalCloseOnSelect, onClose],\n )\n\n const onFocus = useCallback(\n (ev: FocusEvent<HTMLButtonElement>) => {\n props.onFocus?.(ev)\n setFocusedIndex(index)\n },\n [props, setFocusedIndex, index],\n )\n\n const rest = useClickable({\n onClick,\n onFocus,\n ref: mergeRefs(register, buttonRef, ref),\n isDisabled,\n isFocusable,\n })\n\n useUpdateEffect(() => {\n if (!isOpen) return\n\n if (isFocused && !trulyDisabled && buttonRef.current) {\n requestAnimationFrame(() => buttonRef.current?.focus())\n } else if (menuRef.current && !isActiveElement(menuRef.current)) {\n menuRef.current.focus()\n }\n }, [isFocused, trulyDisabled, menuRef, isOpen])\n\n type = as || type ? type ?? undefined : \"button\"\n\n children =\n icon || command ? (\n <ui.span style={{ pointerEvents: \"none\", flex: 1 }}>{children}</ui.span>\n ) : (\n children\n )\n\n const css: CSSUIObject = {\n textDecoration: \"none\",\n color: \"inherit\",\n userSelect: \"none\",\n display: \"flex\",\n width: \"100%\",\n alignItems: \"center\",\n textAlign: \"start\",\n flex: \"0 0 auto\",\n outline: 0,\n gap: \"0.75rem\",\n ...styles.item,\n }\n\n return (\n <ui.li\n {...props}\n {...rest}\n as={as}\n type={type}\n role=\"menu-item\"\n tabIndex={isFocused ? 0 : -1}\n className={cx(\"ui-menu__item\", className)}\n __css={css}\n >\n {icon ? <MenuIcon>{icon}</MenuIcon> : null}\n {children}\n {command ? <MenuCommand>{command}</MenuCommand> : null}\n </ui.li>\n )\n },\n)\n\ntype MenuOptionItemOptions = {\n /**\n * The menu option item icon to use.\n */\n icon?: ReactElement | null\n /**\n * The value of the menu option item.\n */\n value?: string\n /**\n * If `true`, the checkbox or radio will be checked.\n *\n * @default false\n */\n isChecked?: boolean\n /**\n * The type of the menu option item.\n */\n type?: \"radio\" | \"checkbox\"\n}\n\nexport type MenuOptionItemProps = Omit<MenuItemProps, \"icon\" | \"command\"> &\n MenuOptionItemOptions\n\nexport const MenuOptionItem = forwardRef<MenuOptionItemProps, \"button\">(\n (\n { className, icon, isChecked, closeOnSelect = false, children, ...rest },\n ref,\n ) => {\n return (\n <MenuItem\n ref={ref}\n className={cx(\"ui-menu__item--option\", className)}\n aria-checked={ariaAttr(isChecked)}\n closeOnSelect={closeOnSelect}\n {...rest}\n >\n {icon !== null ? (\n <MenuIcon opacity={isChecked ? 1 : 0}>\n {icon || <CheckIcon />}\n </MenuIcon>\n ) : null}\n {children}\n </MenuItem>\n )\n },\n)\n\ntype MenuIconProps = HTMLUIProps<\"span\">\n\nconst MenuIcon = forwardRef<MenuIconProps, \"span\">(\n ({ className, ...rest }, ref) => {\n const { styles } = useMenu()\n\n const css: CSSUIObject = {\n flexShrink: 0,\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n fontSize: \"0.85em\",\n ...styles.icon,\n }\n\n return (\n <ui.span\n ref={ref}\n className={cx(\"ui-menu__item__icon\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\ntype MenuCommandProps = HTMLUIProps<\"span\">\n\nconst MenuCommand = forwardRef<MenuCommandProps, \"span\">(\n ({ className, ...rest }, ref) => {\n const { styles } = useMenu()\n\n const css: CSSUIObject = { ...styles.command }\n\n return (\n <ui.span\n ref={ref}\n className={cx(\"ui-menu__item__command\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nconst CheckIcon: FC = () => (\n <svg viewBox=\"0 0 14 14\" width=\"1em\" height=\"1em\">\n <polygon\n fill=\"currentColor\"\n points=\"5.5 11.9993304 14 3.49933039 12.5 2 5.5 8.99933039 1.5 4.9968652 0 6.49933039\"\n />\n </svg>\n)\n","import { useEventListeners } from \"@yamada-ui/use-event-listener\"\nimport { dataAttr, mergeRefs } from \"@yamada-ui/utils\"\nimport type { HTMLAttributes, KeyboardEvent, MouseEvent, Ref } from \"react\"\nimport { useCallback, useState } from \"react\"\n\nexport type UseClickableProps = HTMLAttributes<HTMLElement> & {\n /**\n * If `true`, the element will be disabled. It will set the `disabled` HTML attribute.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true` and isDisabled, the element will have only `aria-disabled` set to `true`.\n *\n * @default false\n */\n isFocusable?: boolean\n /**\n * Whether or not trigger click on pressing `Enter`.\n *\n * @default true\n */\n clickOnEnter?: boolean\n /**\n * Whether or not trigger click on pressing `Space`.\n *\n * @default true\n */\n clickOnSpace?: boolean\n /**\n * The ref for the element.\n */\n ref?: Ref<HTMLElement>\n}\n\nconst isValidElement = (\n ev: KeyboardEvent | KeyboardEvent[\"nativeEvent\"],\n): boolean => {\n const { tagName, isContentEditable } = ev.target as HTMLElement\n\n return (\n tagName !== \"INPUT\" && tagName !== \"TEXTAREA\" && isContentEditable !== true\n )\n}\n\nexport const useClickable = ({\n ref,\n isDisabled,\n isFocusable,\n clickOnEnter = true,\n clickOnSpace = true,\n onMouseDown,\n onMouseUp,\n onClick,\n onKeyDown,\n onKeyUp,\n tabIndex: _tabIndex,\n onMouseOver,\n onMouseLeave,\n ...props\n}: UseClickableProps = {}) => {\n const [isButton, setIsButton] = useState<boolean>(true)\n const [isPressed, setIsPressed] = useState<boolean>(false)\n\n const listeners = useEventListeners()\n\n const tabIndex = isButton ? _tabIndex : _tabIndex || 0\n const trulyDisabled = isDisabled && !isFocusable\n\n const refCb = (node: any) => {\n if (!node) return\n\n if (node.tagName !== \"BUTTON\") setIsButton(false)\n }\n\n const handleClick = useCallback(\n (ev: MouseEvent<HTMLElement>) => {\n if (isDisabled) {\n ev.stopPropagation()\n ev.preventDefault()\n\n return\n }\n\n ev.currentTarget.focus()\n onClick?.(ev)\n },\n [isDisabled, onClick],\n )\n\n const onDocumentKeyUp = useCallback(\n (ev: KeyboardEvent) => {\n if (isPressed && isValidElement(ev)) {\n ev.preventDefault()\n ev.stopPropagation()\n\n setIsPressed(false)\n\n listeners.remove(document, \"keyup\", onDocumentKeyUp, false)\n }\n },\n [isPressed, listeners],\n )\n\n const handleKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLElement>) => {\n onKeyDown?.(ev)\n\n if (isDisabled || ev.defaultPrevented || ev.metaKey) return\n\n if (!isValidElement(ev.nativeEvent) || isButton) return\n\n if (clickOnSpace && ev.key === \" \") {\n ev.preventDefault()\n setIsPressed(true)\n }\n\n if (clickOnEnter && ev.key === \"Enter\") {\n ev.preventDefault()\n ev.currentTarget.click()\n }\n\n listeners.add(document, \"keyup\", onDocumentKeyUp, false)\n },\n [\n isDisabled,\n isButton,\n onKeyDown,\n clickOnEnter,\n clickOnSpace,\n listeners,\n onDocumentKeyUp,\n ],\n )\n\n const handleKeyUp = useCallback(\n (ev: KeyboardEvent<HTMLElement>) => {\n onKeyUp?.(ev)\n\n if (isDisabled || ev.defaultPrevented || ev.metaKey) return\n\n if (!isValidElement(ev.nativeEvent) || isButton) return\n\n if (clickOnSpace && ev.key === \" \") {\n ev.preventDefault()\n setIsPressed(false)\n\n ev.currentTarget.click()\n }\n },\n [clickOnSpace, isButton, isDisabled, onKeyUp],\n )\n\n const onDocumentMouseUp = useCallback(\n (ev: MouseEvent) => {\n if (ev.button !== 0) return\n\n setIsPressed(false)\n\n listeners.remove(document, \"mouseup\", onDocumentMouseUp, false)\n },\n [listeners],\n )\n\n const handleMouseDown = useCallback(\n (ev: MouseEvent<HTMLElement>) => {\n if (ev.button !== 0) return\n\n if (isDisabled) {\n ev.stopPropagation()\n ev.preventDefault()\n\n return\n }\n\n if (!isButton) setIsPressed(true)\n\n ev.currentTarget.focus({ preventScroll: true })\n\n listeners.add(document, \"mouseup\", onDocumentMouseUp, false)\n\n onMouseDown?.(ev)\n },\n [isDisabled, isButton, onMouseDown, listeners, onDocumentMouseUp],\n )\n\n const handleMouseUp = useCallback(\n (ev: MouseEvent<HTMLElement>) => {\n if (ev.button !== 0) return\n\n if (!isButton) setIsPressed(false)\n\n onMouseUp?.(ev)\n },\n [onMouseUp, isButton],\n )\n\n const handleMouseOver = useCallback(\n (ev: MouseEvent<HTMLElement>) => {\n if (isDisabled) {\n ev.preventDefault()\n\n return\n }\n\n onMouseOver?.(ev)\n },\n [isDisabled, onMouseOver],\n )\n\n const handleMouseLeave = useCallback(\n (ev: MouseEvent<HTMLElement>) => {\n if (isPressed) {\n ev.preventDefault()\n\n setIsPressed(false)\n }\n\n onMouseLeave?.(ev)\n },\n [isPressed, onMouseLeave],\n )\n\n if (isButton) {\n return {\n ...props,\n ref: mergeRefs(ref, refCb),\n type: \"button\",\n \"aria-disabled\": trulyDisabled ? undefined : isDisabled,\n disabled: trulyDisabled,\n onClick: handleClick,\n onMouseDown,\n onMouseUp,\n onKeyUp,\n onKeyDown,\n onMouseOver,\n onMouseLeave,\n }\n } else {\n return {\n ...props,\n ref: mergeRefs(ref, refCb),\n role: \"button\",\n \"data-active\": dataAttr(isPressed),\n \"aria-disabled\": isDisabled ? (\"true\" as const) : undefined,\n tabIndex: trulyDisabled ? undefined : tabIndex,\n onClick: handleClick,\n onMouseDown: handleMouseDown,\n onMouseUp: handleMouseUp,\n onKeyUp: handleKeyUp,\n onKeyDown: handleKeyDown,\n onMouseOver: handleMouseOver,\n onMouseLeave: handleMouseLeave,\n }\n }\n}\n\nexport type UseClickableReturn = ReturnType<typeof useClickable>\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useMenu } from \"./menu\"\n\nexport type MenuGroupProps = HTMLUIProps<\"div\"> & {\n /**\n * The label of the group.\n */\n label?: string\n}\n\nexport const MenuGroup = forwardRef<MenuGroupProps, \"div\">(\n ({ className, label, children, ...rest }, ref) => {\n const { styles } = useMenu()\n\n const css: CSSUIObject = { ...styles.group }\n\n return (\n <ui.li\n ref={ref}\n className={cx(\"ui-menu__item\", \"ui-menu__item--group\", className)}\n role=\"group\"\n __css={css}\n {...rest}\n >\n {label ? (\n <ui.span\n className={cx(\"ui-menu__item--group-label\")}\n __css={styles.groupLabel}\n >\n {label}\n </ui.span>\n ) : null}\n\n <ui.ul className=\"ui-menu__item__group\">{children}</ui.ul>\n </ui.li>\n )\n },\n)\n","import type { ComponentArgs, HTMLUIProps } from \"@yamada-ui/core\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { cx, getValidChildren, omitObject, isArray } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, Ref } from \"react\"\nimport { cloneElement, forwardRef, useCallback } from \"react\"\nimport { MenuGroup } from \"./menu-group\"\nimport { MenuOptionItem } from \"./menu-item\"\n\ntype MenuOptionGroupOptions<Y extends string | string[] = string> = {\n /**\n * The label of the option group.\n */\n label?: string\n /**\n * The value of the menu item group.\n */\n value?: Y\n /**\n * The initial value of the menu item group.\n */\n defaultValue?: Y\n /**\n * The type of the menu option group.\n *\n * @default 'checkbox'\n */\n type?: \"radio\" | \"checkbox\"\n /**\n * The callback fired when any children checkbox is checked or unchecked.\n */\n onChange?: (value: Y) => void\n}\n\nexport type MenuOptionGroupProps<Y extends string | string[] = string> = Omit<\n HTMLUIProps<\"div\">,\n keyof MenuOptionGroupOptions\n> &\n MenuOptionGroupOptions<Y>\n\nexport const MenuOptionGroup = forwardRef(\n <Y extends string | string[] = string>(\n {\n className,\n defaultValue,\n type,\n children,\n ...rest\n }: MenuOptionGroupProps<Y>,\n ref: ForwardedRef<HTMLDivElement>,\n ) => {\n const isRadio = type === \"radio\"\n\n defaultValue = (isRadio ? \"\" : []) as Y\n\n const [value, setValue] = useControllableState({\n ...rest,\n defaultValue,\n })\n\n const onChange = useCallback(\n (selectedValue: string) => {\n if (isRadio && typeof value === \"string\") setValue(selectedValue as Y)\n\n if (!isRadio && isArray(value)) {\n const nextValue = value.includes(selectedValue)\n ? value.filter((item) => item !== selectedValue)\n : value.concat(selectedValue)\n\n setValue(nextValue as Y)\n }\n },\n [isRadio, value, setValue],\n )\n\n const validChildren = getValidChildren(children)\n\n const cloneChildren = validChildren.map((child) => {\n if (child.type !== MenuOptionItem) return child\n\n const onClick = (ev: MouseEvent) => {\n onChange(child.props.value)\n child.props.onClick?.(ev)\n }\n\n const isChecked =\n !isRadio && isArray(value)\n ? value.includes(child.props.value)\n : child.props.value === value\n\n return cloneElement(child, { type, onClick, isChecked })\n })\n\n return (\n <MenuGroup\n ref={ref}\n className={cx(\"ui-menu__item--group--option\", className)}\n {...omitObject(rest, [\"value\", \"onChange\"])}\n >\n {cloneChildren}\n </MenuGroup>\n )\n },\n) as {\n <Y extends string | string[] = string>(\n props: MenuOptionGroupProps<Y> & { ref?: Ref<HTMLDivElement> },\n ): JSX.Element\n} & ComponentArgs\n\nMenuOptionGroup.displayName = \"MenuOptionGroup\"\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useMenu } from \"./menu\"\n\nexport type MenuDividerProps = HTMLUIProps<\"hr\">\n\nexport const MenuDivider = forwardRef(({ className, ...rest }, ref) => {\n const { styles } = useMenu()\n\n const css: CSSUIObject = { ...styles.divider }\n\n return (\n <ui.hr\n ref={ref}\n className={cx(\"ui-menu__divider\", className)}\n __css={css}\n {...rest}\n />\n )\n})\n","import type {\n ThemeProps,\n CSSUIObject,\n CSSUIProps,\n Token,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useMultiComponentStyle,\n} from \"@yamada-ui/core\"\nimport type { FocusLockProps } from \"@yamada-ui/focus-lock\"\nimport { FocusLock } from \"@yamada-ui/focus-lock\"\nimport type { MotionProps, MotionTransitionProperties } from \"@yamada-ui/motion\"\nimport { AnimatePresence, Motion } from \"@yamada-ui/motion\"\nimport type { PortalProps } from \"@yamada-ui/portal\"\nimport { Portal } from \"@yamada-ui/portal\"\nimport { scaleFadeProps, slideFadeProps } from \"@yamada-ui/transitions\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport {\n cx,\n createContext,\n getValidChildren,\n findChildren,\n} from \"@yamada-ui/utils\"\nimport type { KeyboardEvent } from \"react\"\nimport { cloneElement, useCallback } from \"react\"\nimport { RemoveScroll } from \"react-remove-scroll\"\nimport { DrawerContent } from \"./drawer\"\nimport {\n DrawerOverlay,\n DialogOverlay,\n DialogCloseButton,\n ModalOverlay,\n ModalCloseButton,\n} from \"./\"\n\ntype ModalContext = ModalOptions & {\n styles: Record<string, CSSUIObject>\n}\n\nconst [ModalProvider, useModal] = createContext<ModalContext>({\n name: `ModalContext`,\n errorMessage: `useModal returned is 'undefined'. Seems you forgot to wrap the components in \"<Modal />\" `,\n})\n\nexport { useModal }\n\ntype ModalOptions = Pick<\n FocusLockProps,\n | \"autoFocus\"\n | \"initialFocusRef\"\n | \"finalFocusRef\"\n | \"restoreFocus\"\n | \"lockFocusAcrossFrames\"\n> & {\n /**\n * If `true`, the open will be opened.\n */\n isOpen: boolean\n /**\n * Callback invoked to close the modal.\n */\n onClose?: () => void\n /**\n * Callback fired when the overlay is clicked.\n */\n onOverlayClick?: () => void\n /**\n * Callback fired when the escape key is pressed and focus is within modal.\n */\n onEsc?(): void\n /**\n * Callback function to run side effects after the modal has closed.\n */\n onCloseComplete?: () => void\n /**\n * The placement of the modal.\n *\n * @default 'center'\n */\n placement?: Token<\n | \"center\"\n | \"top\"\n | \"right\"\n | \"bottom\"\n | \"left\"\n | \"top-left\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-right\"\n >\n /**\n * The CSS `padding` property.\n */\n outside?: CSSUIProps[\"p\"]\n /**\n * If `true`, display the modal close button.\n *\n * @default true\n */\n withCloseButton?: boolean\n /**\n * If `true`, display the modal overlay.\n *\n * @default true\n */\n withOverlay?: boolean\n /**\n * Handle zoom or pinch gestures on iOS devices when scroll locking is enabled.\n *\n * @default false.\n */\n allowPinchZoom?: boolean\n /**\n * Where scroll behavior should originate.\n *\n * - `inside`: scroll only occurs within the `ModalBody`.\n * - `outside`: the entire `ModalContent` will scroll within the viewport.\n *\n * @default 'inside'\n */\n scrollBehavior?: \"inside\" | \"outside\"\n /**\n * If `true`, scrolling will be disabled on the `body` when the modal opens.\n *\n * @default true\n */\n blockScrollOnMount?: boolean\n /**\n * If `true`, the modal will close when the overlay is clicked.\n *\n * @default true\n */\n closeOnOverlay?: boolean\n /**\n * If `true`, the modal will close when the `Esc` key is pressed.\n *\n * @default true\n */\n closeOnEsc?: boolean\n /**\n * The animation of the tooltip.\n *\n * @default 'scale'\n */\n animation?: \"scale\" | \"top\" | \"right\" | \"left\" | \"bottom\" | \"none\"\n /**\n * The animation duration.\n */\n duration?: MotionTransitionProperties[\"duration\"]\n /**\n * Props to be forwarded to the portal component.\n */\n portalProps?: Omit<PortalProps, \"children\">\n}\n\nexport type ModalProps = Omit<\n MotionProps<\"section\">,\n \"scrollBehavior\" | \"animation\" | \"color\" | \"transition\"\n> &\n ThemeProps<\"Modal\"> &\n ModalOptions\n\n/**\n * `Modal` is a component that is displayed over the main content to focus the user's attention solely on the information.\n *\n * @see Docs https://yamada-ui.com/components/overlay/modal\n */\nexport const Modal = forwardRef<ModalProps, \"section\">(\n ({ size, ...props }, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Modal\", {\n size,\n ...props,\n })\n const {\n className,\n children,\n isOpen,\n onClose,\n onOverlayClick,\n onEsc,\n onCloseComplete,\n placement: _placement = \"center\",\n outside = \"fallback(4, 1rem)\",\n withCloseButton = true,\n withOverlay = true,\n allowPinchZoom = false,\n scrollBehavior = \"inside\",\n autoFocus,\n restoreFocus,\n initialFocusRef,\n finalFocusRef,\n blockScrollOnMount = true,\n closeOnOverlay = true,\n closeOnEsc = true,\n lockFocusAcrossFrames = true,\n animation = \"scale\",\n duration,\n portalProps,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent) => {\n if (ev.key !== \"Escape\") return\n\n ev.stopPropagation()\n\n if (closeOnEsc) onClose?.()\n\n onEsc?.()\n },\n [closeOnEsc, onClose, onEsc],\n )\n\n const validChildren = getValidChildren(children)\n\n const [customModalOverlay, ...cloneChildren] = findChildren(\n validChildren,\n ModalOverlay,\n DialogOverlay,\n DrawerOverlay,\n )\n\n let [drawerContent] = findChildren(validChildren, DrawerContent)\n\n if (drawerContent)\n drawerContent = cloneElement(drawerContent, { onKeyDown })\n\n const placement = useValue(_placement)\n\n const css: CSSUIObject = {\n position: \"fixed\",\n top: 0,\n left: 0,\n zIndex: \"fallback(jeice, 110)\",\n w: \"100vw\",\n h: \"100dvh\",\n p: size !== \"full\" ? outside : undefined,\n display: \"flex\",\n justifyContent: placement.includes(\"left\")\n ? \"flex-start\"\n : placement.includes(\"right\")\n ? \"flex-end\"\n : \"center\",\n alignItems: placement.includes(\"top\")\n ? \"flex-start\"\n : placement.includes(\"bottom\")\n ? \"flex-end\"\n : \"center\",\n }\n\n return (\n <ModalProvider\n value={{\n isOpen,\n onClose,\n onOverlayClick,\n withCloseButton,\n scrollBehavior,\n closeOnOverlay,\n animation,\n duration,\n styles,\n }}\n >\n <AnimatePresence onExitComplete={onCloseComplete}>\n {isOpen ? (\n <Portal {...portalProps}>\n <FocusLock\n autoFocus={autoFocus}\n initialFocusRef={initialFocusRef}\n finalFocusRef={finalFocusRef}\n restoreFocus={restoreFocus}\n lockFocusAcrossFrames={lockFocusAcrossFrames}\n >\n <RemoveScroll\n allowPinchZoom={allowPinchZoom}\n enabled={blockScrollOnMount}\n forwardProps\n >\n <ui.div __css={css}>\n {customModalOverlay ??\n (withOverlay && size !== \"full\" ? (\n <ModalOverlay />\n ) : null)}\n\n {drawerContent ?? (\n <ModalContent\n ref={ref}\n className={className}\n onKeyDown={onKeyDown}\n {...rest}\n >\n {cloneChildren}\n </ModalContent>\n )}\n </ui.div>\n </RemoveScroll>\n </FocusLock>\n </Portal>\n ) : null}\n </AnimatePresence>\n </ModalProvider>\n )\n },\n)\n\ntype ModalContentProps = Omit<\n MotionProps<\"section\">,\n \"scrollBehavior\" | \"animation\" | \"color\" | \"transition\"\n>\n\nconst getModalContentProps = (\n animation: ModalProps[\"animation\"] = \"scale\",\n duration?: MotionTransitionProperties[\"duration\"],\n) => {\n switch (animation) {\n case \"scale\":\n return {\n ...scaleFadeProps,\n custom: { scale: 0.95, reverse: true, duration },\n }\n case \"top\":\n return {\n ...slideFadeProps,\n custom: { offsetY: -16, reverse: true, duration },\n }\n case \"right\":\n return {\n ...slideFadeProps,\n custom: { offsetX: 16, reverse: true, duration },\n }\n case \"left\":\n return {\n ...slideFadeProps,\n custom: { offsetX: -16, reverse: true, duration },\n }\n case \"bottom\":\n return {\n ...slideFadeProps,\n custom: { offsetY: 16, reverse: true, duration },\n }\n }\n}\n\nconst ModalContent = forwardRef<ModalContentProps, \"section\", false>(\n ({ className, children, __css, ...rest }, ref) => {\n const {\n styles,\n scrollBehavior,\n withCloseButton,\n onClose,\n animation,\n duration,\n } = useModal()\n\n const validChildren = getValidChildren(children)\n\n const [customModalCloseButton, ...cloneChildren] = findChildren(\n validChildren,\n ModalCloseButton,\n DialogCloseButton,\n )\n\n const props =\n animation !== \"none\" ? getModalContentProps(animation, duration) : {}\n\n const css: CSSUIObject = {\n position: \"relative\",\n maxH: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n overflow: scrollBehavior === \"inside\" ? \"hidden\" : \"auto\",\n outline: 0,\n ...(__css ? __css : styles.container),\n }\n\n return (\n <Motion\n as=\"section\"\n ref={ref}\n className={cx(\"ui-modal\", className)}\n tabIndex={-1}\n __css={css}\n {...props}\n {...rest}\n >\n {customModalCloseButton ??\n (withCloseButton && onClose ? <ModalCloseButton /> : null)}\n\n {cloneChildren}\n </Motion>\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { HTMLMotionProps } from \"@yamada-ui/motion\"\nimport { motion } from \"@yamada-ui/motion\"\nimport { fadeProps } from \"@yamada-ui/transitions\"\nimport { cx, handlerAll } from \"@yamada-ui/utils\"\nimport { useModal } from \"./modal\"\n\nexport type ModalOverlayProps = HTMLUIProps<\"div\"> &\n Omit<HTMLMotionProps<\"div\">, \"color\" | \"transition\">\n\nexport const ModalOverlay = forwardRef<ModalOverlayProps, \"div\">(\n ({ className, __css, onClick, ...rest }, ref) => {\n const {\n styles,\n closeOnOverlay,\n onOverlayClick,\n onClose,\n animation,\n duration,\n } = useModal()\n\n const css: CSSUIObject = {\n position: \"fixed\",\n top: 0,\n left: 0,\n w: \"100vw\",\n h: \"100vh\",\n ...(__css ? __css : styles.overlay),\n }\n\n const props = animation !== \"none\" ? fadeProps : {}\n\n return (\n <ui.div\n as={motion.div}\n ref={ref}\n className={cx(\"ui-modal__overlay\", className)}\n custom={{ duration }}\n __css={css}\n onClick={handlerAll(onClick, onOverlayClick, (ev) => {\n ev.stopPropagation()\n if (closeOnOverlay) onClose?.()\n })}\n {...props}\n {...rest}\n />\n )\n },\n)\n","import type { CloseButtonProps } from \"@yamada-ui/close-button\"\nimport { CloseButton } from \"@yamada-ui/close-button\"\nimport type { CSSUIObject } from \"@yamada-ui/core\"\nimport { forwardRef } from \"@yamada-ui/core\"\nimport { cx, handlerAll } from \"@yamada-ui/utils\"\nimport { useModal } from \"./modal\"\n\nexport type ModalCloseButtonProps = CloseButtonProps\n\nexport const ModalCloseButton = forwardRef<ModalCloseButtonProps, \"button\">(\n ({ onClick, __css, ...rest }, ref) => {\n const { styles, onClose } = useModal()\n\n const css: CSSUIObject = {\n position: \"absolute\",\n ...(__css ? __css : styles.closeButton),\n }\n\n return (\n <CloseButton\n ref={ref}\n className={cx(\"ui-modal__close-button\")}\n __css={css}\n onClick={handlerAll(onClick, (ev) => {\n ev.stopPropagation()\n onClose?.()\n })}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useModal } from \"./modal\"\n\nexport type ModalHeaderProps = HTMLUIProps<\"header\">\n\nexport const ModalHeader = forwardRef<ModalHeaderProps, \"header\">(\n ({ className, __css, ...rest }, ref) => {\n const { styles } = useModal()\n\n const css: CSSUIObject = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n ...(__css ? __css : styles.header),\n }\n\n return (\n <ui.header\n ref={ref}\n className={cx(\"ui-modal__header\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useModal } from \"./modal\"\n\nexport type ModalBodyProps = HTMLUIProps<\"main\">\n\nexport const ModalBody = forwardRef<ModalBodyProps, \"main\">(\n ({ className, __css, ...rest }, ref) => {\n const { styles, scrollBehavior } = useModal()\n\n const css: CSSUIObject = {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n overflow: scrollBehavior === \"inside\" ? \"auto\" : undefined,\n ...(__css ? __css : styles.body),\n }\n\n return (\n <ui.main\n ref={ref}\n className={cx(\"ui-modal__body\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useModal } from \"./modal\"\n\nexport type ModalFooterProps = HTMLUIProps<\"footer\">\n\nexport const ModalFooter = forwardRef<ModalFooterProps, \"footer\">(\n ({ className, __css, ...rest }, ref) => {\n const { styles } = useModal()\n\n const css: CSSUIObject = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n ...(__css ? __css : styles.footer),\n }\n\n return (\n <ui.footer\n ref={ref}\n className={cx(\"ui-modal__footer\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { ButtonProps } from \"@yamada-ui/button\"\nimport { Button } from \"@yamada-ui/button\"\nimport type { CloseButtonProps } from \"@yamada-ui/close-button\"\nimport type { CSSUIObject, ThemeProps } from \"@yamada-ui/core\"\nimport {\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport {\n createContext,\n getValidChildren,\n findChildren,\n omitChildren,\n isValidElement,\n isEmpty,\n cx,\n} from \"@yamada-ui/utils\"\nimport type { ReactNode } from \"react\"\nimport type {\n ModalProps,\n ModalOverlayProps,\n ModalHeaderProps,\n ModalBodyProps,\n ModalFooterProps,\n} from \"./\"\nimport {\n Modal,\n ModalOverlay,\n ModalCloseButton,\n ModalHeader,\n ModalBody,\n ModalFooter,\n} from \"./\"\n\ntype DialogOptions = {\n /**\n * The dialog header to use.\n */\n header?: ReactNode\n /**\n * The dialog footer to use.\n */\n footer?: ReactNode\n /**\n * The dialog cancel to use.\n */\n cancel?: ReactNode | ButtonProps\n /**\n * The dialog other to use.\n */\n other?: ReactNode | ButtonProps\n /**\n * The dialog success to use.\n */\n success?: ReactNode | ButtonProps\n /**\n * The callback invoked when cancel button clicked.\n */\n onCancel?: (onClose: (() => void) | undefined) => void\n /**\n * The callback invoked when other button clicked.\n */\n onOther?: (onClose: (() => void) | undefined) => void\n /**\n * The callback invoked when success button clicked.\n */\n onSuccess?: (onClose: (() => void) | undefined) => void\n}\n\nexport type DialogProps = Omit<ModalProps, keyof ThemeProps> &\n ThemeProps<\"Dialog\"> &\n DialogOptions\n\ntype DialogContext = Record<string, CSSUIObject>\n\nconst [DialogProvider, useDialog] = createContext<DialogContext>({\n name: `DialogContext`,\n errorMessage: `useDialog returned is 'undefined'. Seems you forgot to wrap the components in \"<Dialog />\" `,\n})\n\n/**\n * `Dialog` is a component used to confirm or interrupt user actions.\n *\n * @see Docs https://yamada-ui.com/components/overlay/dialog\n */\nexport const Dialog = forwardRef<DialogProps, \"section\", false>(\n ({ size, ...props }, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Dialog\", {\n size,\n ...props,\n })\n const {\n className,\n children,\n withOverlay = true,\n withCloseButton = true,\n header,\n footer,\n cancel,\n other,\n success,\n onClose,\n onCancel,\n onOther,\n onSuccess,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const validChildren = getValidChildren(children)\n\n const [customDialogOverlay] = findChildren(validChildren, DialogOverlay)\n const [customDialogCloseButton] = findChildren(\n validChildren,\n DialogCloseButton,\n )\n const [customDialogHeader] = findChildren(validChildren, DialogHeader)\n const [customDialogBody] = findChildren(validChildren, DialogBody)\n const [customDialogFooter] = findChildren(validChildren, DialogFooter)\n\n const cloneChildren = !isEmpty(validChildren)\n ? omitChildren(\n validChildren,\n DialogOverlay,\n DialogCloseButton,\n DialogHeader,\n DialogBody,\n DialogFooter,\n )\n : children\n\n const css: CSSUIObject = { ...styles.container }\n\n const cancelButtonProps: ButtonProps = isValidElement(cancel)\n ? { children: cancel }\n : cancel\n const otherButtonProps: ButtonProps = isValidElement(other)\n ? { children: other }\n : other\n const successButtonProps: ButtonProps = isValidElement(success)\n ? { children: success }\n : success\n\n if (cancelButtonProps && !cancelButtonProps.variant)\n cancelButtonProps.variant = \"ghost\"\n if (otherButtonProps && !otherButtonProps.colorScheme)\n otherButtonProps.colorScheme = \"secondary\"\n if (successButtonProps && !successButtonProps.colorScheme)\n successButtonProps.colorScheme = \"primary\"\n\n return (\n <DialogProvider value={styles}>\n <Modal\n ref={ref}\n className={cx(\"ui-dialog\", className)}\n __css={css}\n {...{\n size,\n onClose,\n withOverlay: false,\n withCloseButton: false,\n ...rest,\n }}\n >\n {customDialogOverlay ??\n (withOverlay && size !== \"full\" ? <DialogOverlay /> : null)}\n {customDialogCloseButton ??\n (withCloseButton && onClose ? <DialogCloseButton /> : null)}\n {customDialogHeader ??\n (header ? <DialogHeader>{header}</DialogHeader> : null)}\n {customDialogBody ??\n (cloneChildren ? <DialogBody>{cloneChildren}</DialogBody> : null)}\n {customDialogFooter ??\n (footer ||\n cancelButtonProps ||\n otherButtonProps ||\n successButtonProps ? (\n <DialogFooter>\n {footer ?? (\n <>\n {cancelButtonProps ? (\n <Button\n onClick={() => onCancel?.(onClose)}\n {...cancelButtonProps}\n />\n ) : null}\n {otherButtonProps ? (\n <Button\n onClick={() => onOther?.(onClose)}\n {...otherButtonProps}\n />\n ) : null}\n {successButtonProps ? (\n <Button\n onClick={() => onSuccess?.(onClose)}\n {...successButtonProps}\n />\n ) : null}\n </>\n )}\n </DialogFooter>\n ) : null)}\n </Modal>\n </DialogProvider>\n )\n },\n)\n\nexport type DialogOverlayProps = ModalOverlayProps\n\nexport const DialogOverlay = forwardRef<DialogOverlayProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const styles = useDialog()\n\n const css: CSSUIObject = { ...styles.overlay }\n\n return (\n <ModalOverlay\n ref={ref}\n className={cx(\"ui-dialog__overlay\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DialogCloseButtonProps = CloseButtonProps\n\nexport const DialogCloseButton = forwardRef<DialogCloseButtonProps, \"button\">(\n ({ className, ...rest }, ref) => {\n const styles = useDialog()\n\n const css: CSSUIObject = { ...styles.closeButton }\n\n return (\n <ModalCloseButton\n ref={ref}\n className={cx(\"ui-dialog__close-button\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DialogHeaderProps = ModalHeaderProps\n\nexport const DialogHeader = forwardRef<DialogHeaderProps, \"header\">(\n ({ className, ...rest }, ref) => {\n const styles = useDialog()\n\n const css: CSSUIObject = { ...styles.header }\n\n return (\n <ModalHeader\n ref={ref}\n className={cx(\"ui-dialog__header\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DialogBodyProps = ModalBodyProps\n\nexport const DialogBody = forwardRef<DialogBodyProps, \"main\">(\n ({ className, ...rest }, ref) => {\n const styles = useDialog()\n\n const css: CSSUIObject = { ...styles.body }\n\n return (\n <ModalBody\n ref={ref}\n className={cx(\"ui-dialog__body\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DialogFooterProps = ModalFooterProps\n\nexport const DialogFooter = forwardRef<DialogFooterProps, \"footer\">(\n ({ className, ...rest }, ref) => {\n const styles = useDialog()\n\n const css: CSSUIObject = { ...styles.footer }\n\n return (\n <ModalFooter\n ref={ref}\n className={cx(\"ui-dialog__footer\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n layoutStyleProperties,\n} from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport {\n useFormControlProps,\n getFormControlProperties,\n} from \"@yamada-ui/form-control\"\nimport { ChevronIcon } from \"@yamada-ui/icon\"\nimport {\n createContext,\n cx,\n splitObject,\n getValidChildren,\n isValidElement,\n pickObject,\n omitObject,\n} from \"@yamada-ui/utils\"\nimport type {\n DetailedHTMLProps,\n FC,\n OptionHTMLAttributes,\n ReactElement,\n} from \"react\"\nimport { cloneElement } from \"react\"\n\ntype NativeSelectBaseItem = Omit<\n DetailedHTMLProps<OptionHTMLAttributes<HTMLOptionElement>, HTMLOptionElement>,\n \"label\" | \"children\" | \"value\"\n> & { label?: string }\n\ntype Value = DetailedHTMLProps<\n OptionHTMLAttributes<HTMLOptionElement>,\n HTMLOptionElement\n>[\"value\"]\n\ntype NativeSelectItemWithValue = NativeSelectBaseItem & { value?: Value }\n\ntype NativeSelectItemWithItems = NativeSelectBaseItem & {\n items?: NativeSelectItemWithValue[]\n}\n\nexport type NativeSelectItem = NativeSelectItemWithValue &\n NativeSelectItemWithItems\n\ntype NativeSelectContext = Record<string, CSSUIObject>\n\nconst [NativeSelectProvider, useNativeSelect] =\n createContext<NativeSelectContext>({\n name: \"NativeSelectContext\",\n errorMessage: `useNativeSelect returned is 'undefined'. Seems you forgot to wrap the components in \"<NativeSelect />\"`,\n })\n\ntype NativeSelectOptions = {\n /**\n * If provided, generate options based on items.\n *\n * @default '[]'\n */\n items?: NativeSelectItem[]\n /**\n * The placeholder for select.\n */\n placeholder?: string\n /**\n * If `true`, include placeholders in options.\n *\n * @default true\n */\n placeholderInOptions?: boolean\n /**\n * The border color when the input is focused.\n */\n focusBorderColor?: string\n /**\n * The border color when the input is invalid.\n */\n errorBorderColor?: string\n /**\n * Props for container element.\n */\n containerProps?: Omit<HTMLUIProps<\"div\">, \"children\">\n /**\n * Props for icon element.\n */\n iconProps?: HTMLUIProps<\"div\">\n}\n\nexport type NativeSelectProps = Omit<HTMLUIProps<\"select\">, \"size\"> &\n ThemeProps<\"NativeSelect\"> &\n NativeSelectOptions &\n FormControlOptions\n\n/**\n * `NativeSelect` is a component used for allowing users to select one option from a list. It displays a native dropdown list provided by the browser (user agent).\n *\n * @see Docs https://yamada-ui.com/components/forms/native-select\n */\nexport const NativeSelect = forwardRef<NativeSelectProps, \"select\">(\n (props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"NativeSelect\", props)\n let {\n className,\n children,\n placeholderInOptions = true,\n color,\n h,\n height,\n minH,\n minHeight,\n items = [],\n placeholder,\n containerProps,\n iconProps,\n ...rest\n } = omitThemeProps(mergedProps)\n\n rest = useFormControlProps(rest)\n\n const formControlProps = pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n )\n const [layoutProps, selectProps] = splitObject(\n omitObject(rest, [\"aria-readonly\"]),\n layoutStyleProperties,\n )\n\n let computedChildren: ReactElement[] = []\n\n if (!children && items.length) {\n computedChildren = items\n .map((item, i) => {\n if (\"value\" in item) {\n const { label, value, ...props } = item\n\n return (\n <NativeOption key={i} value={value} {...props}>\n {label}\n </NativeOption>\n )\n } else if (\"items\" in item) {\n const { label, items = [], ...props } = item\n\n return (\n <NativeOptionGroup key={i} label={label} {...props}>\n {items.map(({ label, value, ...props }, i) => (\n <NativeOption key={i} value={value} {...props}>\n {label}\n </NativeOption>\n ))}\n </NativeOptionGroup>\n )\n }\n })\n .filter(Boolean) as ReactElement[]\n }\n\n return (\n <NativeSelectProvider value={styles}>\n <ui.div\n className=\"ui-select\"\n __css={{\n position: \"relative\",\n w: \"100%\",\n h: \"fit-content\",\n color,\n ...styles.container,\n }}\n {...layoutProps}\n {...containerProps}\n {...formControlProps}\n >\n <ui.select\n ref={ref}\n className={cx(\"ui-select__field\", className)}\n __css={{\n pe: \"2rem\",\n h: h ?? height,\n minH: minH ?? minHeight,\n ...styles.field,\n }}\n {...selectProps}\n >\n {placeholder ? (\n <NativeOption value=\"\" hidden={!placeholderInOptions}>\n {placeholder}\n </NativeOption>\n ) : null}\n {children ?? computedChildren}\n </ui.select>\n\n <NativeSelectIcon {...iconProps} {...formControlProps} />\n </ui.div>\n </NativeSelectProvider>\n )\n },\n)\n\ntype NativeSelectIconProps = HTMLUIProps<\"div\">\n\nconst NativeSelectIcon: FC<NativeSelectIconProps> = ({\n className,\n children,\n ...rest\n}) => {\n const styles = useNativeSelect()\n\n const css: CSSUIObject = {\n position: \"absolute\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n pointerEvents: \"none\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n ...styles.icon,\n }\n\n const validChildren = getValidChildren(children)\n\n const cloneChildren = validChildren.map((child) =>\n cloneElement(child, {\n focusable: false,\n \"aria-hidden\": true,\n style: {\n width: \"1em\",\n height: \"1em\",\n color: \"currentColor\",\n },\n }),\n )\n\n return (\n <ui.div className={cx(\"ui-select__icon\", className)} __css={css} {...rest}>\n {isValidElement(children) ? cloneChildren : <ChevronIcon />}\n </ui.div>\n )\n}\n\nexport type NativeOptionGroupProps = HTMLUIProps<\"optgroup\">\n\nexport const NativeOptionGroup = forwardRef<NativeOptionGroupProps, \"optgroup\">(\n (props, ref) => <ui.optgroup ref={ref} {...props} />,\n)\n\nexport type NativeOptionProps = Omit<HTMLUIProps<\"option\">, \"children\"> & {\n children?: string\n}\n\nexport const NativeOption = forwardRef<NativeOptionProps, \"option\">(\n (props, ref) => <ui.option ref={ref} {...props} />,\n)\n","import type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n ColorModeToken,\n CSS,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport type { UseFormControlProps } from \"@yamada-ui/form-control\"\nimport {\n useFormControlProps,\n formControlProperties,\n} from \"@yamada-ui/form-control\"\nimport { ChevronIcon } from \"@yamada-ui/icon\"\nimport type { UseCounterProps } from \"@yamada-ui/use-counter\"\nimport { useCounter } from \"@yamada-ui/use-counter\"\nimport { useEventListener } from \"@yamada-ui/use-event-listener\"\nimport { useInterval } from \"@yamada-ui/use-interval\"\nimport type { DOMAttributes, PropGetter } from \"@yamada-ui/utils\"\nimport {\n ariaAttr,\n createContext,\n cx,\n handlerAll,\n mergeRefs,\n omitObject,\n pickObject,\n useCallbackRef,\n useSafeLayoutEffect,\n useUpdateEffect,\n} from \"@yamada-ui/utils\"\nimport type {\n ChangeEvent,\n InputHTMLAttributes,\n KeyboardEvent,\n KeyboardEventHandler,\n} from \"react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\n\nconst isDefaultValidCharacter = (character: string) =>\n /^[Ee0-9+\\-.]$/.test(character)\n\nconst isValidNumericKeyboardEvent = (\n { key, ctrlKey, altKey, metaKey }: KeyboardEvent,\n isValid: (key: string) => boolean,\n) => {\n if (key == null) return true\n\n const isModifierKey = ctrlKey || altKey || metaKey\n const isSingleCharacterKey = key.length === 1\n\n if (!isSingleCharacterKey || isModifierKey) return true\n\n return isValid(key)\n}\n\nconst getStep = <Y extends KeyboardEvent | WheelEvent>({\n ctrlKey,\n shiftKey,\n metaKey,\n}: Y) => {\n let ratio = 1\n\n if (metaKey || ctrlKey) ratio = 0.1\n\n if (shiftKey) ratio = 10\n\n return ratio\n}\n\ntype ValidityState = \"rangeUnderflow\" | \"rangeOverflow\"\n\nexport type UseNumberInputProps = UseFormControlProps<HTMLInputElement> &\n UseCounterProps & {\n /**\n * The HTML `name` attribute used for forms.\n */\n name?: string\n /**\n * Hints at the type of data that might be entered by the user.\n * It also determines the type of keyboard shown to the user on mobile devices.\n *\n * @default 'decimal'\n */\n inputMode?: InputHTMLAttributes<any>[\"inputMode\"]\n /**\n * The pattern used to check the <input> element's value against on form submission.\n *\n * @default '[0-9]*(.[0-9]+)?'\n */\n pattern?: InputHTMLAttributes<any>[\"pattern\"]\n /**\n * If `true`, the input will be focused as you increment or decrement the value with the stepper.\n *\n * @default true\n */\n focusInputOnChange?: boolean\n /**\n * This controls the value update when you blur out of the input.\n * - If `true` and the value is greater than `max`, the value will be reset to `max`.\n * - Else, the value remains the same.\n *\n * @default true\n */\n clampValueOnBlur?: boolean\n /**\n * If `true`, the input's value will change based on mouse wheel.\n *\n * @default false\n */\n allowMouseWheel?: boolean\n /**\n * The callback invoked when invalid number is entered.\n */\n onInvalid?: (\n message: ValidityState,\n value: string,\n valueAsNumber: number,\n ) => void\n /**\n * This is used to format the value so that screen readers\n * can speak out a more human-friendly value.\n *\n * It is used to set the `aria-valuetext` property of the input.\n */\n getAriaValueText?: (value: string | number) => string\n /**\n * Whether the pressed key should be allowed in the input.\n * The default behavior is to allow DOM floating point characters defined by /^[Ee0-9+\\-.]$/.\n */\n isValidCharacter?: (value: string) => boolean\n /**\n * If using a custom display format, this converts the custom format to a format `parseFloat` understands.\n */\n parse?: (value: string) => string\n /**\n * If using a custom display format, this converts the default format to the custom format.\n */\n format?: (value: string | number) => string | number\n }\n\nexport const useNumberInput = (props: UseNumberInputProps = {}) => {\n const {\n id,\n name,\n inputMode = \"decimal\",\n pattern = \"[0-9]*(.[0-9]+)?\",\n required,\n disabled,\n readOnly,\n focusInputOnChange = true,\n clampValueOnBlur = true,\n keepWithinRange = true,\n allowMouseWheel,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n precision,\n \"aria-invalid\": isInvalid,\n ...rest\n } = useFormControlProps(props)\n\n const isRequired = required\n const isReadOnly = readOnly\n const isDisabled = disabled\n\n const [isFocused, setFocused] = useState(false)\n const isInteractive = !(readOnly || disabled)\n\n const inputRef = useRef<HTMLInputElement>(null)\n const inputSelectionRef = useRef<{\n start: number | null\n end: number | null\n } | null>(null)\n const incrementRef = useRef<HTMLButtonElement>(null)\n const decrementRef = useRef<HTMLButtonElement>(null)\n\n const onFocus = useCallbackRef(\n handlerAll(rest.onFocus, (ev) => {\n setFocused(true)\n\n if (!inputSelectionRef.current) return\n\n ev.target.selectionStart =\n inputSelectionRef.current.start ?? ev.currentTarget.value?.length\n ev.currentTarget.selectionEnd =\n inputSelectionRef.current.end ?? ev.currentTarget.selectionStart\n }),\n )\n const onBlur = useCallbackRef(\n handlerAll(rest.onBlur, () => {\n setFocused(false)\n\n if (clampValueOnBlur) validateAndClamp()\n }),\n )\n const onInvalid = useCallbackRef(rest.onInvalid)\n const isValidCharacter = useCallbackRef(\n rest.isValidCharacter ?? isDefaultValidCharacter,\n )\n\n const {\n isMin,\n isMax,\n isOut,\n value,\n valueAsNumber,\n setValue,\n update,\n cast,\n ...counter\n } = useCounter({\n min,\n max,\n precision,\n keepWithinRange,\n ...rest,\n })\n\n const sanitize = useCallback(\n (value: string) => value.split(\"\").filter(isValidCharacter).join(\"\"),\n [isValidCharacter],\n )\n\n const parse = useCallback(\n (value: string) => rest.parse?.(value) ?? value,\n [rest],\n )\n\n const format = useCallback(\n (value: string | number) => (rest.format?.(value) ?? value).toString(),\n [rest],\n )\n\n const increment = useCallback(\n (step = rest.step ?? 1) => {\n if (isInteractive) counter.increment(step)\n },\n [isInteractive, counter, rest.step],\n )\n\n const decrement = useCallback(\n (step = rest.step ?? 1) => {\n if (isInteractive) counter.decrement(step)\n },\n [isInteractive, counter, rest.step],\n )\n\n const validateAndClamp = useCallback(() => {\n let next = value as string | number\n\n if (value === \"\") return\n\n const valueStartsWithE = /^[eE]/.test(value.toString())\n\n if (valueStartsWithE) {\n setValue(\"\")\n } else {\n if (valueAsNumber < min) next = min\n\n if (valueAsNumber > max) next = max\n\n cast(next)\n }\n }, [cast, max, min, setValue, value, valueAsNumber])\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if ((ev.nativeEvent as InputEvent).isComposing) return\n\n const parsedInput = parse(ev.currentTarget.value)\n\n update(sanitize(parsedInput))\n\n inputSelectionRef.current = {\n start: ev.currentTarget.selectionStart,\n end: ev.currentTarget.selectionEnd,\n }\n },\n [parse, update, sanitize],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent) => {\n if (ev.nativeEvent.isComposing) return\n\n if (!isValidNumericKeyboardEvent(ev, isValidCharacter))\n ev.preventDefault()\n\n const step = getStep(ev) * (rest.step ?? 1)\n\n const keyMap: Record<string, KeyboardEventHandler> = {\n ArrowUp: () => increment(step),\n ArrowDown: () => decrement(step),\n Home: () => update(min),\n End: () => update(max),\n }\n\n const action = keyMap[ev.key]\n\n if (!action) return\n\n ev.preventDefault()\n action(ev)\n },\n [decrement, increment, isValidCharacter, max, min, rest.step, update],\n )\n\n const { up, down, stop, isSpinning } = useSpinner(increment, decrement)\n\n useAttributeObserver(incrementRef, [\"disabled\"], isSpinning, stop)\n useAttributeObserver(decrementRef, [\"disabled\"], isSpinning, stop)\n\n const focusInput = useCallback(() => {\n if (focusInputOnChange)\n requestAnimationFrame(() => {\n inputRef.current?.focus()\n })\n }, [focusInputOnChange])\n\n const eventUp = useCallback(\n (ev: any) => {\n ev.preventDefault()\n up()\n focusInput()\n },\n [focusInput, up],\n )\n\n const eventDown = useCallback(\n (ev: any) => {\n ev.preventDefault()\n down()\n focusInput()\n },\n [focusInput, down],\n )\n\n useUpdateEffect(() => {\n if (valueAsNumber > max) {\n onInvalid?.(\"rangeOverflow\", format(value), valueAsNumber)\n } else if (valueAsNumber < min) {\n onInvalid?.(\"rangeOverflow\", format(value), valueAsNumber)\n }\n }, [valueAsNumber, value, format, onInvalid])\n\n useSafeLayoutEffect(() => {\n if (!inputRef.current) return\n\n const notInSync = inputRef.current.value != value\n\n if (!notInSync) return\n\n const parsedInput = parse(inputRef.current.value)\n\n setValue(sanitize(parsedInput))\n }, [parse, sanitize])\n\n useEventListener(\n () => inputRef.current,\n \"wheel\",\n (ev) => {\n const ownerDocument = inputRef.current?.ownerDocument ?? document\n const isFocused = ownerDocument.activeElement === inputRef.current\n\n if (!allowMouseWheel || !isFocused) return\n\n ev.preventDefault()\n\n const step = getStep(ev as any) * (rest.step ?? 1)\n const direction = Math.sign(ev.deltaY)\n\n if (direction === -1) {\n increment(step)\n } else if (direction === 1) {\n decrement(step)\n }\n },\n { passive: false },\n )\n\n const getInputProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n id,\n name,\n type: \"text\",\n inputMode,\n pattern,\n required,\n disabled,\n readOnly,\n ...pickObject(rest, formControlProperties),\n ...omitObject(props, [\"defaultValue\"]),\n ref: mergeRefs(inputRef, ref),\n value: format(value),\n \"aria-invalid\": ariaAttr(isInvalid ?? isOut),\n autoComplete: \"off\",\n autoCorrect: \"off\",\n onChange: handlerAll(props.onChange, onChange),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n onFocus: handlerAll(props.onFocus, onFocus),\n onBlur: handlerAll(props.onBlur, onBlur),\n }),\n [\n id,\n name,\n inputMode,\n pattern,\n required,\n disabled,\n readOnly,\n rest,\n format,\n value,\n isInvalid,\n isOut,\n onChange,\n onKeyDown,\n onFocus,\n onBlur,\n ],\n )\n\n const getIncrementProps: PropGetter = useCallback(\n (props = {}, ref = null) => {\n const trulyDisabled = disabled || (keepWithinRange && isMax)\n\n return {\n required,\n readOnly,\n disabled: trulyDisabled,\n ...pickObject(rest, formControlProperties),\n ...props,\n style: {\n ...props.style,\n cursor: readOnly ? \"not-allowed\" : props.style?.cursor,\n },\n ref: mergeRefs(ref, incrementRef),\n role: \"button\",\n tabIndex: -1,\n onPointerDown: handlerAll(props.onPointerDown, (ev) => {\n if (ev.button === 0 && !trulyDisabled) eventUp(ev)\n }),\n onPointerLeave: handlerAll(props.onPointerLeave, stop),\n onPointerUp: handlerAll(props.onPointerUp, stop),\n }\n },\n [keepWithinRange, isMax, disabled, required, readOnly, rest, stop, eventUp],\n )\n\n const getDecrementProps: PropGetter = useCallback(\n (props = {}, ref = null) => {\n const trulyDisabled = disabled || (keepWithinRange && isMin)\n\n return {\n required,\n readOnly,\n disabled: trulyDisabled,\n ...pickObject(rest, formControlProperties),\n ...props,\n style: {\n ...props.style,\n cursor: readOnly ? \"not-allowed\" : props.style?.cursor,\n },\n ref: mergeRefs(ref, decrementRef),\n role: \"button\",\n tabIndex: -1,\n onPointerDown: handlerAll(props.onPointerDown, (ev) => {\n if (ev.button === 0 && !trulyDisabled) eventDown(ev)\n }),\n onPointerLeave: handlerAll(props.onPointerLeave, stop),\n onPointerUp: handlerAll(props.onPointerUp, stop),\n }\n },\n [\n keepWithinRange,\n isMin,\n disabled,\n required,\n readOnly,\n rest,\n stop,\n eventDown,\n ],\n )\n\n return {\n value: format(value),\n valueAsNumber,\n isFocused,\n isRequired,\n isReadOnly,\n isDisabled,\n getInputProps,\n getIncrementProps,\n getDecrementProps,\n }\n}\n\nexport type UseNumberInputReturn = ReturnType<typeof useNumberInput>\n\nconst INTERVAL = 50\n\nconst DELAY = 300\n\ntype Action = \"increment\" | \"decrement\"\n\nconst useSpinner = (increment: Function, decrement: Function) => {\n const [isSpinning, setIsSpinning] = useState(false)\n const [action, setAction] = useState<Action | null>(null)\n const [isOnce, setIsOnce] = useState(true)\n const timeoutRef = useRef<any>(null)\n\n const removeTimeout = () => clearTimeout(timeoutRef.current)\n\n useInterval(\n () => {\n if (action === \"increment\") increment()\n\n if (action === \"decrement\") decrement()\n },\n isSpinning ? INTERVAL : null,\n )\n\n const up = useCallback(() => {\n if (isOnce) increment()\n\n timeoutRef.current = setTimeout(() => {\n setIsOnce(false)\n setIsSpinning(true)\n setAction(\"increment\")\n }, DELAY)\n }, [increment, isOnce])\n\n const down = useCallback(() => {\n if (isOnce) decrement()\n\n timeoutRef.current = setTimeout(() => {\n setIsOnce(false)\n setIsSpinning(true)\n setAction(\"decrement\")\n }, DELAY)\n }, [decrement, isOnce])\n\n const stop = useCallback(() => {\n setIsOnce(true)\n setIsSpinning(false)\n removeTimeout()\n }, [])\n\n useEffect(() => {\n return () => removeTimeout()\n }, [])\n\n return { up, down, stop, isSpinning }\n}\n\nconst useAttributeObserver = (\n ref: React.RefObject<HTMLElement | null>,\n attributeFilter: string[],\n enabled: boolean,\n func: () => void,\n) => {\n useEffect(() => {\n if (!ref.current || !enabled) return\n\n const ownerDocument = ref.current.ownerDocument.defaultView ?? window\n\n const observer = new ownerDocument.MutationObserver((changes) => {\n for (const { type, attributeName } of changes) {\n if (\n type === \"attributes\" &&\n attributeName &&\n attributeFilter.includes(attributeName)\n )\n func()\n }\n })\n\n observer.observe(ref.current, { attributes: true, attributeFilter })\n\n return () => observer.disconnect()\n })\n}\n\ntype NumberInputOptions = {\n /**\n * If `true`, display the addon for the number input.\n */\n isStepper?: boolean\n /**\n * Props for container element.\n */\n containerProps?: HTMLUIProps<\"div\">\n /**\n * Props for addon component.\n */\n addonProps?: HTMLUIProps<\"div\">\n /**\n * Props for increment component.\n */\n incrementProps?: NumberIncrementStepperProps\n /**\n * Props for decrement component.\n */\n decrementProps?: NumberDecrementStepperProps\n /**\n * The border color when the input is focused.\n */\n focusBorderColor?: ColorModeToken<CSS.Property.BorderColor, \"colors\">\n /**\n * The border color when the input is invalid.\n */\n errorBorderColor?: ColorModeToken<CSS.Property.BorderColor, \"colors\">\n}\n\nexport type NumberInputProps = Omit<\n HTMLUIProps<\"input\">,\n \"disabled\" | \"required\" | \"readOnly\" | \"size\" | \"onChange\"\n> &\n ThemeProps<\"NumberInput\"> &\n Omit<UseNumberInputProps, \"disabled\" | \"required\" | \"readOnly\"> &\n NumberInputOptions\n\ntype NumberInputContext = {\n getInputProps: PropGetter\n getIncrementProps: PropGetter\n getDecrementProps: PropGetter\n styles: Record<string, CSSUIObject>\n}\n\nconst [NumberInputContextProvider, useNumberInputContext] =\n createContext<NumberInputContext>({\n strict: false,\n name: \"NumberInputContext\",\n })\n\n/**\n * `NumberInput` is a component used to obtain numeric input from the user.\n *\n * @see Docs https://yamada-ui.com/components/forms/number-input\n */\nexport const NumberInput = forwardRef<NumberInputProps, \"input\">(\n (props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"NumberInput\", props)\n const {\n className,\n isStepper = true,\n containerProps,\n addonProps,\n incrementProps,\n decrementProps,\n onChange,\n ...rest\n } = omitThemeProps(mergedProps)\n const { getInputProps, getIncrementProps, getDecrementProps } =\n useNumberInput({\n onChange,\n ...rest,\n })\n\n const css: CSSUIObject = {\n position: \"relative\",\n zIndex: 0,\n ...styles.container,\n }\n\n return (\n <NumberInputContextProvider\n value={{ getInputProps, getIncrementProps, getDecrementProps, styles }}\n >\n <ui.div\n className={cx(\"ui-number-input\", className)}\n __css={css}\n {...containerProps}\n >\n <NumberInputField\n {...getInputProps(\n omitObject(rest, [\n \"keepWithinRange\",\n \"clampValueOnBlur\",\n \"isDisabled\",\n \"isReadOnly\",\n \"isRequired\",\n \"isInvalid\",\n \"allowMouseWheel\",\n \"onInvalid\",\n \"getAriaValueText\",\n \"isValidCharacter\",\n \"parse\",\n \"format\",\n ]) as DOMAttributes<HTMLElement>,\n ref,\n )}\n />\n\n {isStepper ? (\n <NumberInputAddon {...addonProps}>\n <NumberIncrementStepper {...incrementProps} />\n <NumberDecrementStepper {...decrementProps} />\n </NumberInputAddon>\n ) : null}\n </ui.div>\n </NumberInputContextProvider>\n )\n },\n)\n\ntype NumberInputFieldProps = Omit<\n HTMLUIProps<\"input\">,\n \"disabled\" | \"required\" | \"readOnly\" | \"size\"\n>\n\nconst NumberInputField = forwardRef<NumberInputFieldProps, \"input\">(\n ({ className, ...rest }, ref) => {\n const { styles } = useNumberInputContext()\n\n const css: CSSUIObject = {\n width: \"100%\",\n ...styles.field,\n }\n\n return (\n <ui.input\n ref={ref}\n className={cx(\"ui-number-input__field\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\ntype NumberInputAddonProps = HTMLUIProps<\"div\">\n\nconst NumberInputAddon = forwardRef<NumberInputAddonProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const { styles } = useNumberInputContext()\n\n const css: CSSUIObject = {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"absolute\",\n top: \"0\",\n insetEnd: \"0px\",\n margin: \"1px\",\n height: \"calc(100% - 2px)\",\n zIndex: \"1\",\n ...styles.addon,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-number-input__addon\", className)}\n aria-hidden\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nconst Stepper = ui(\"div\", {\n baseStyle: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flex: 1,\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n userSelect: \"none\",\n cursor: \"pointer\",\n lineHeight: \"normal\",\n },\n})\n\ntype NumberIncrementStepperProps = HTMLUIProps<\"div\">\n\nconst NumberIncrementStepper = forwardRef<NumberIncrementStepperProps, \"div\">(\n ({ className, children, ...rest }, ref) => {\n const { getIncrementProps, styles } = useNumberInputContext()\n\n const css: CSSUIObject = { ...styles.stepper }\n\n return (\n <Stepper\n className={cx(\"ui-number-input__stepper--up\", className)}\n {...getIncrementProps(rest as DOMAttributes<HTMLElement>, ref)}\n __css={css}\n >\n {children ?? <ChevronIcon __css={{ transform: \"rotate(180deg)\" }} />}\n </Stepper>\n )\n },\n)\n\ntype NumberDecrementStepperProps = HTMLUIProps<\"div\">\n\nconst NumberDecrementStepper = forwardRef<NumberDecrementStepperProps, \"div\">(\n ({ className, children, ...rest }, ref) => {\n const { getDecrementProps, styles } = useNumberInputContext()\n\n const css: CSSUIObject = { ...styles.stepper }\n\n return (\n <Stepper\n className={cx(\"ui-number-input__stepper--down\", className)}\n {...getDecrementProps(rest as DOMAttributes<HTMLElement>, ref)}\n __css={css}\n >\n {children ?? <ChevronIcon />}\n </Stepper>\n )\n },\n)\n","import {\n clampNumber,\n countDecimal,\n toPrecision,\n useCallbackRef,\n} from \"@yamada-ui/utils\"\nimport { useCallback, useState } from \"react\"\n\nexport type UseCounterProps = {\n /**\n * The value of the counter.\n * Should be less than `max` and greater than `min`.\n */\n value?: string | number\n /**\n * The initial value of the counter.\n * Should be less than `max` and greater than `min`.\n */\n defaultValue?: string | number\n /**\n * The step used to increment or decrement the value.\n *\n * @default 1\n */\n step?: number\n /**\n * The minimum value of the counter\n *\n * @default Number.MIN_SAFE_INTEGER\n */\n min?: number\n /**\n * The maximum value of the counter\n *\n * @default Number.MAX_SAFE_INTEGER\n */\n max?: number\n /**\n * The number of decimal points used to round the value.\n */\n precision?: number\n /**\n * This controls the value update behavior in general.\n *\n * - If `true` and you use the stepper or up/down arrow keys,\n * the value will not exceed the `max` or go lower than `min`.\n *\n * - If `false`, the value will be allowed to go out of range.\n *\n * @default true\n */\n keepWithinRange?: boolean\n /**\n * The callback fired when the value changes.\n */\n onChange?: (valueAsString: string, valueAsNumber: number) => void\n}\n\nexport const useCounter = ({\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n keepWithinRange = true,\n ...props\n}: UseCounterProps = {}) => {\n const onChange = useCallbackRef(props.onChange)\n\n const [defaultValue, setValue] = useState<string | number>(() => {\n if (props.defaultValue == null) return \"\"\n\n return casting(props.defaultValue, props.step ?? 1, props.precision) ?? \"\"\n })\n\n const isControlled = typeof props.value !== \"undefined\"\n const value = isControlled ? (props.value as string | number) : defaultValue\n\n const countDecimal = getCountDecimal(parse(value), props.step ?? 1)\n\n const precision = props.precision ?? countDecimal\n\n const update = useCallback(\n (next: string | number) => {\n if (next === value) return\n\n if (!isControlled) setValue(next.toString())\n\n onChange(next.toString(), parse(next))\n },\n [onChange, isControlled, value],\n )\n\n const clamp = useCallback(\n (value: number) => {\n let nextValue = value\n\n if (keepWithinRange) nextValue = clampNumber(nextValue, min, max)\n\n return toPrecision(nextValue, precision)\n },\n [precision, keepWithinRange, max, min],\n )\n\n const increment = useCallback(\n (step = props.step ?? 1) => {\n let next: string | number\n\n if (value === \"\") {\n next = parse(step)\n } else {\n next = parse(value) + step\n }\n\n next = clamp(next as number)\n\n update(next)\n },\n [clamp, props.step, update, value],\n )\n\n const decrement = useCallback(\n (step = props.step ?? 1) => {\n let next: string | number\n\n if (value === \"\") {\n next = parse(-step)\n } else {\n next = parse(value) - step\n }\n\n next = clamp(next as number)\n\n update(next)\n },\n [clamp, props.step, update, value],\n )\n\n const reset = useCallback(() => {\n let next: string | number\n\n if (defaultValue == null) {\n next = \"\"\n } else {\n next = casting(defaultValue, props.step ?? 1, props.precision) ?? min\n }\n\n update(next)\n }, [defaultValue, props.precision, props.step, update, min])\n\n const cast = useCallback(\n (value: string | number) => {\n const nextValue = casting(value, props.step ?? 1, precision) ?? min\n\n update(nextValue)\n },\n [precision, props.step, update, min],\n )\n\n const valueAsNumber = parse(value)\n\n const isOut = valueAsNumber < min || max < valueAsNumber\n const isMax = valueAsNumber === max\n const isMin = valueAsNumber === min\n\n return {\n isOut,\n isMax,\n isMin,\n precision,\n value,\n valueAsNumber,\n update,\n reset,\n increment,\n decrement,\n clamp,\n cast,\n setValue,\n }\n}\n\nexport type UseCounterReturn = ReturnType<typeof useCounter>\n\nconst parse = (value: string | number): number =>\n parseFloat(value.toString().replace(/[^\\w.-]+/g, \"\"))\n\nconst getCountDecimal = (value: number, step: number): number =>\n Math.max(countDecimal(step), countDecimal(value))\n\nconst casting = (\n value: string | number,\n step: number,\n precision?: number,\n): string | undefined => {\n value = parse(value)\n\n return !Number.isNaN(value)\n ? toPrecision(value, precision ?? getCountDecimal(value, step))\n : undefined\n}\n","import { useCallbackRef } from \"@yamada-ui/utils\"\nimport { useEffect } from \"react\"\n\n/**\n * `useInterval` is a custom hook that runs a function at a specified interval.\n *\n * @see Docs https://yamada-ui.com/hooks/use-interval\n */\nexport const useInterval = (callback: () => void, delay: number | null) => {\n const func = useCallbackRef(callback)\n\n useEffect(() => {\n let timeoutId: number | null = null\n\n if (delay !== null) timeoutId = window.setInterval(() => func(), delay)\n\n return () => {\n if (timeoutId) window.clearInterval(timeoutId)\n }\n }, [delay, func])\n}\n","import type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n ColorModeToken,\n CSS,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport {\n getFormControlProperties,\n useFormControlProps,\n} from \"@yamada-ui/form-control\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { createDescendant } from \"@yamada-ui/use-descendant\"\nimport {\n createContext,\n cx,\n handlerAll,\n mergeRefs,\n pickObject,\n filterUndefined,\n getValidChildren,\n} from \"@yamada-ui/utils\"\nimport type { ChangeEvent, KeyboardEvent, Ref } from \"react\"\nimport { useCallback, useEffect, useId, useState } from \"react\"\n\nconst toArray = (value?: string) => value?.split(\"\")\n\nconst validate = (value: string, type: PinInputProps[\"type\"]) => {\n const NUMERIC_REGEX = /^[0-9]+$/\n const ALPHA_NUMERIC_REGEX = /^[a-zA-Z0-9]+$/i\n\n const regex = type === \"alphanumeric\" ? ALPHA_NUMERIC_REGEX : NUMERIC_REGEX\n\n return regex.test(value)\n}\n\ntype PinInputContext = {\n getInputProps: (\n props: PinInputFieldProps & {\n index: number\n ref?: Ref<HTMLInputElement>\n },\n ) => PinInputFieldProps\n styles: Record<string, CSSUIObject>\n}\n\nconst [PinInputProvider, usePinInputContext] = createContext<PinInputContext>({\n strict: false,\n name: \"PinInputContext\",\n})\n\nconst { DescendantsContextProvider, useDescendants, useDescendant } =\n createDescendant<HTMLInputElement>()\n\ntype PinInputOptions = {\n /**\n * The top-level id string that will be applied to the input fields.\n * The index of the input will be appended to this top-level id.\n */\n id?: string\n /**\n * The type of values the pin-input should allow.\n *\n * @default 'number'\n */\n type?: \"alphanumeric\" | \"number\"\n /**\n * The placeholder for the pin input.\n *\n * @default '○'\n */\n placeholder?: string\n /**\n * The value of the pin input.\n */\n value?: string\n /**\n * The initial value of the pin input.\n */\n defaultValue?: string\n /**\n * If `true`, the pin input receives focus on mount.\n *\n * @default false\n */\n autoFocus?: boolean\n /**\n * If `true`, focus will move automatically to the next input once filled.\n *\n * @default true\n */\n manageFocus?: boolean\n /**\n * If `true`, the pin input component signals to its fields that they should.\n */\n otp?: boolean\n /**\n * If `true`, the input's value will be masked just like `type=password`.\n */\n mask?: boolean\n /**\n * Function called on input change.\n */\n onChange?: (value: string) => void\n /**\n * Function called when all inputs have valid values.\n */\n onComplete?: (value: string) => void\n /**\n * The number of inputs to display.\n *\n * @default 4\n */\n items?: number\n /**\n * The border color when the input is focused.\n */\n focusBorderColor?: ColorModeToken<CSS.Property.BorderColor, \"colors\">\n /**\n * The border color when the input is invalid.\n */\n errorBorderColor?: ColorModeToken<CSS.Property.BorderColor, \"colors\">\n}\n\nexport type PinInputProps = Omit<HTMLUIProps<\"div\">, \"onChange\" | \"mask\"> &\n ThemeProps<\"PinInput\"> &\n FormControlOptions &\n PinInputOptions\n\n/**\n * `PinInput` is a component used to capture pin codes or OTP (One-Time Password) inputs.\n *\n * @see Docs https://yamada-ui.com/components/forms/pin-input\n */\nexport const PinInput = forwardRef<PinInputProps, \"div\">(\n ({ focusBorderColor, errorBorderColor, ...props }, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"PinInput\", {\n focusBorderColor,\n errorBorderColor,\n ...props,\n })\n let {\n id,\n className,\n type = \"number\",\n placeholder = \"○\",\n value,\n defaultValue,\n autoFocus,\n manageFocus = true,\n otp = false,\n mask,\n onChange,\n onComplete,\n items = 4,\n children,\n ...rest\n } = useFormControlProps(omitThemeProps(mergedProps))\n\n id ??= useId()\n\n const descendants = useDescendants()\n\n const [moveFocus, setMoveFocus] = useState<boolean>(true)\n const [focusedIndex, setFocusedIndex] = useState<number>(-1)\n\n useEffect(() => {\n if (!autoFocus) return\n\n const firstValue = descendants.firstValue()\n\n if (!firstValue) return\n\n requestAnimationFrame(() => firstValue.node.focus())\n }, [autoFocus, descendants])\n\n const [values, setValues] = useControllableState<string[]>({\n value: toArray(value),\n defaultValue: toArray(defaultValue) || [],\n onChange: (values) => onChange?.(values.join(\"\")),\n })\n\n const focusNext = useCallback(\n (index: number) => {\n if (!moveFocus || !manageFocus) return\n\n const next = descendants.nextValue(index, undefined, false)\n\n if (!next) return\n\n requestAnimationFrame(() => next.node.focus())\n },\n [descendants, moveFocus, manageFocus],\n )\n\n const setValue = useCallback(\n (value: string, index: number, isFocus: boolean = true) => {\n let nextValues = [...values]\n\n nextValues[index] = value\n\n setValues(nextValues)\n\n nextValues = nextValues.filter(Boolean)\n\n const isComplete =\n value !== \"\" &&\n nextValues.length === descendants.count() &&\n nextValues.every((value) => value != null && value !== \"\")\n\n if (isComplete) {\n onComplete?.(nextValues.join(\"\"))\n descendants.value(index)?.node.blur()\n } else if (isFocus) {\n focusNext(index)\n }\n },\n [values, setValues, descendants, onComplete, focusNext],\n )\n\n const getNextValue = useCallback(\n (value: string | undefined, eventValue: string) => {\n let nextValue = eventValue\n\n if (!value?.length) return nextValue\n\n if (value[0] === eventValue.charAt(0)) {\n nextValue = eventValue.charAt(1)\n } else if (value[0] === eventValue.charAt(1)) {\n nextValue = eventValue.charAt(0)\n }\n\n return nextValue\n },\n [],\n )\n\n const getInputProps = useCallback(\n ({\n index,\n ...props\n }: PinInputFieldProps & {\n index: number\n ref?: Ref<HTMLInputElement>\n }): PinInputFieldProps => {\n const onChange = ({ target }: ChangeEvent<HTMLInputElement>) => {\n const eventValue = target.value\n const currentValue = values[index]\n const nextValue = getNextValue(currentValue, eventValue)\n\n if (nextValue === \"\") {\n setValue(\"\", index)\n\n return\n }\n\n if (eventValue.length > 2) {\n if (!validate(eventValue, type)) return\n\n const nextValue = eventValue\n .split(\"\")\n .filter((_, index) => index < descendants.count())\n\n setValues(nextValue)\n\n if (nextValue.length === descendants.count()) {\n onComplete?.(nextValue.join(\"\"))\n descendants.value(index)?.node.blur()\n }\n } else {\n if (validate(nextValue, type)) setValue(nextValue, index)\n\n setMoveFocus(true)\n }\n }\n\n const onKeyDown = ({\n key,\n target,\n }: KeyboardEvent<HTMLInputElement>) => {\n if (key !== \"Backspace\" || !manageFocus) return\n\n if ((target as HTMLInputElement).value === \"\") {\n const prevInput = descendants.prevValue(index, undefined, false)\n\n if (!prevInput) return\n\n setValue(\"\", index - 1, false)\n prevInput.node?.focus()\n setMoveFocus(true)\n } else {\n setMoveFocus(false)\n }\n }\n\n const onFocus = () => setFocusedIndex(index)\n\n const onBlur = () => setFocusedIndex(-1)\n\n return {\n inputMode: type === \"number\" ? \"numeric\" : \"text\",\n type: mask ? \"password\" : type === \"number\" ? \"tel\" : \"text\",\n ...pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n ),\n ...filterUndefined(props),\n id: `${id}-${index}`,\n value: values[index] || \"\",\n onChange: handlerAll(props.onChange, onChange),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n onFocus: handlerAll(props.onFocus, onFocus),\n onBlur: handlerAll(props.onBlur, onBlur),\n autoComplete: otp ? \"one-time-code\" : \"off\",\n placeholder:\n focusedIndex === index && !rest.readOnly && !props.readOnly\n ? \"\"\n : placeholder,\n }\n },\n [\n descendants,\n focusedIndex,\n getNextValue,\n id,\n manageFocus,\n mask,\n onComplete,\n otp,\n placeholder,\n rest,\n setValue,\n setValues,\n type,\n values,\n ],\n )\n\n const css: CSSUIObject = {\n display: \"flex\",\n alignItems: \"center\",\n ...styles.container,\n }\n\n let cloneChildren = getValidChildren(children)\n\n if (!cloneChildren.length)\n for (let i = 0; i < items; i++) {\n cloneChildren.push(<PinInputField key={i} />)\n }\n\n return (\n <DescendantsContextProvider value={descendants}>\n <PinInputProvider value={{ getInputProps, styles }}>\n <ui.div\n ref={ref}\n className={cx(\"ui-pin-input\", className)}\n {...rest}\n __css={css}\n >\n {cloneChildren}\n </ui.div>\n </PinInputProvider>\n </DescendantsContextProvider>\n )\n },\n)\n\nexport type PinInputFieldProps = HTMLUIProps<\"input\"> & FormControlOptions\n\nexport const PinInputField = forwardRef<PinInputFieldProps, \"input\">(\n ({ className, ...rest }, ref) => {\n const { getInputProps, styles } = usePinInputContext()\n const { index, register } = useDescendant()\n\n rest = useFormControlProps(rest)\n\n const css: CSSUIObject = { ...styles.field }\n\n return (\n <ui.input\n className={cx(\"ui-pin-input__field\", className)}\n {...getInputProps({ ...rest, ref: mergeRefs(register, ref), index })}\n __css={css}\n />\n )\n },\n)\n","import type {\n HTMLUIProps,\n ThemeProps,\n CSSUIObject,\n Interpolation,\n ColorModeToken,\n CSS,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { useAnimation } from \"@yamada-ui/use-animation\"\nimport { createContext, cx, omitObject, valueToPercent } from \"@yamada-ui/utils\"\nimport type { FC } from \"react\"\n\nconst [ProgressProvider, useProgress] = createContext<\n Record<string, CSSUIObject>\n>({\n name: `ProgressStylesContext`,\n errorMessage: `useProgress returned is 'undefined'. Seems you forgot to wrap the components in \"<Progress />\" `,\n})\n\ntype ProgressOptions = {\n /**\n * The value of the progress.\n *\n * @default 0\n */\n value?: number\n /**\n * The minimum value of the progress.\n *\n * @default 0\n */\n min?: number\n /**\n * The maximum value of the progress.\n *\n * @default 100\n */\n max?: number\n /**\n * If `true`, the progress bar will show stripe.\n *\n * @default false\n */\n hasStripe?: boolean\n /**\n * If `true`, and hasStripe is `true`, the stripes will be animated.\n *\n * @default false\n */\n isStripeAnimation?: boolean\n /**\n * If `true`, the progress will be indeterminate and the `value` prop will be ignored.\n *\n * @default false\n */\n isAnimation?: boolean\n /**\n * The animation speed in seconds.\n *\n * @default '1.4s'\n */\n speed?: string | number\n /**\n * The CSS `color` property.\n */\n filledTrackColor?: ColorModeToken<CSS.Property.Color, \"colors\">\n}\n\nexport type ProgressProps = HTMLUIProps<\"div\"> &\n ThemeProps<\"Progress\"> &\n ProgressOptions\n\n/**\n * `Progress` is a component for visually indicating progress.\n *\n * @see Docs https://yamada-ui.com/components/feedback/progress\n */\nexport const Progress = forwardRef<ProgressProps, \"div\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Progress\", props)\n const {\n className,\n children,\n value,\n min,\n max,\n hasStripe,\n isStripeAnimation,\n isAnimation,\n speed,\n borderRadius: _borderRadius,\n rounded,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const borderRadius =\n _borderRadius ?? rounded ?? (styles.track.borderRadius as string | number)\n\n const css: CSSUIObject = {\n w: \"100%\",\n overflow: \"hidden\",\n pos: \"relative\",\n ...styles.track,\n }\n\n return (\n <ProgressProvider value={styles}>\n <ui.div\n ref={ref}\n className={cx(\"ui-progress\", className)}\n __css={css}\n borderRadius={borderRadius}\n {...omitObject(rest, [\"filledTrackColor\"])}\n >\n <ProgressFilledTrack\n min={min}\n max={max}\n value={value}\n hasStripe={hasStripe}\n isStripeAnimation={isStripeAnimation}\n isAnimation={isAnimation}\n speed={speed}\n borderRadius={borderRadius}\n />\n {children}\n </ui.div>\n </ProgressProvider>\n )\n})\n\ntype ProgressFilledTrackProps = HTMLUIProps<\"div\"> & ProgressProps\n\nconst ProgressFilledTrack: FC<ProgressFilledTrackProps> = ({\n value = 0,\n min = 0,\n max = 100,\n hasStripe,\n isStripeAnimation,\n isAnimation,\n speed = \"1.4s\",\n ...rest\n}) => {\n const percent = valueToPercent(value, min, max)\n\n const styles = useProgress()\n\n const stripeAnimation = useAnimation({\n keyframes: {\n \"0%\": { bgPosition: \"1rem 0\" },\n \"100%\": { bgPosition: \"0 0\" },\n },\n duration: typeof speed === \"string\" ? speed : `${speed}s`,\n iterationCount: \"infinite\",\n timingFunction: \"linear\",\n })\n\n const interpolationAnimation = useAnimation({\n keyframes: {\n \"0%\": { left: \"-40%\" },\n \"100%\": { left: \"100%\" },\n },\n duration: typeof speed === \"string\" ? speed : `${speed}s`,\n iterationCount: \"infinite\",\n timingFunction: \"ease\",\n })\n\n isStripeAnimation = !isAnimation && hasStripe && isStripeAnimation\n\n const css: Interpolation<{}> = {\n ...(isStripeAnimation\n ? {\n animation: stripeAnimation,\n }\n : {}),\n ...(isAnimation\n ? {\n position: \"absolute\",\n willChange: \"left\",\n minWidth: \"50%\",\n animation: interpolationAnimation,\n }\n : {}),\n }\n\n const __css: CSSUIObject = {\n w: `${percent}%`,\n h: \"100%\",\n ...styles.filledTrack,\n }\n\n return <ui.div css={css} __css={__css} {...rest} />\n}\n","import type { HTMLUIProps, CSSUIObject, CSSUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { useAnimation } from \"@yamada-ui/use-animation\"\nimport { useToken } from \"@yamada-ui/use-token\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx, valueToPercent } from \"@yamada-ui/utils\"\nimport type { FC } from \"react\"\n\ntype CircleProgressOptions = {\n /**\n * The CSS `box-size` property.\n *\n * @default '6rem'\n */\n size?: CSSUIProps[\"boxSize\"]\n /**\n * The CSS `width` property.\n *\n * @default '0.625ewm'\n */\n thickness?: CSSUIProps[\"width\"]\n /**\n * The CSS `color` property.\n *\n * @default 'primary'\n */\n color?: CSSUIProps[\"color\"]\n /**\n * The CSS `color` property.\n *\n * @default 'border'\n */\n trackColor?: CSSUIProps[\"color\"]\n /**\n * The value of the progress.\n *\n * @default 0\n */\n value?: number\n /**\n * The minimum value of the progress.\n *\n * @default 0\n */\n min?: number\n /**\n * The maximum value of the progress.\n *\n * @default 100\n */\n max?: number\n /**\n * If `true`, the cap of the progress indicator will be rounded.\n *\n * @default false\n */\n isRounded?: boolean\n /**\n * If `true`, the progress will be indeterminate and the `value` prop will be ignored.\n *\n * @default false\n */\n isAnimation?: boolean\n /**\n * The animation speed in seconds.\n *\n * @default '[1.4s, 2s]'\n */\n speed?: [string | number, string | number]\n}\n\nexport type CircleProgressProps = Omit<HTMLUIProps<\"div\">, \"color\"> &\n CircleProgressOptions\n\n/**\n * `CircleProgress` is a component that displays progress in a circular progress bar.\n *\n * @see Docs https://yamada-ui.com/components/feedback/circle-progress\n */\nexport const CircleProgress = forwardRef<CircleProgressProps, \"div\">(\n (\n {\n className,\n children,\n size = \"6rem\",\n thickness = \"0.625rem\",\n color = \"primary\",\n trackColor = \"border\",\n value = 0,\n min = 0,\n max = 100,\n isAnimation = false,\n isRounded,\n speed = [\"1.4s\", \"2s\"],\n ...rest\n },\n ref,\n ) => {\n size = (useToken(\"sizes\", useValue(size)) ?? size) as string | number\n thickness = (useToken(\"sizes\", useValue(thickness)) ?? thickness) as\n | string\n | number\n\n const isTransparent = value === 0 && !isAnimation\n const percent = valueToPercent(value, min, max)\n\n const interval = !isAnimation ? percent * 2.64 : undefined\n\n const animation = useAnimation({\n keyframes: {\n \"0%\": {\n strokeDasharray: \"1, 400\",\n strokeDashoffset: \"0\",\n },\n \"50%\": {\n strokeDasharray: \"400, 400\",\n strokeDashoffset: \"-100\",\n },\n \"100%\": {\n strokeDasharray: \"400, 400\",\n strokeDashoffset: \"-260\",\n },\n },\n duration: typeof speed[0] === \"string\" ? speed[0] : `${speed[0]}s`,\n iterationCount: \"infinite\",\n timingFunction: \"linear\",\n })\n\n const css: CSSUIObject = {\n display: \"inline-block\",\n position: \"relative\",\n verticalAlign: \"middle\",\n fontSize: size,\n }\n\n const props: CircleProps = isAnimation\n ? {\n animation,\n }\n : {\n strokeDashoffset: 66,\n strokeDasharray:\n interval == null ? undefined : `${interval} ${264 - interval}`,\n transitionProperty: \"stroke-dasharray, stroke\",\n transitionDuration: \"0.6s\",\n transitionTimingFunction: \"ease\",\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-circle-progress\", className)}\n __css={css}\n {...rest}\n >\n <Shape size={size} isAnimation={isAnimation} speed={speed}>\n <Circle stroke={trackColor} strokeWidth={thickness} />\n <Circle\n stroke={color}\n strokeWidth={thickness}\n strokeLinecap={isRounded ? \"round\" : undefined}\n opacity={isTransparent ? 0 : undefined}\n {...props}\n />\n </Shape>\n {children}\n </ui.div>\n )\n },\n)\n\ntype CircleProps = HTMLUIProps<\"circle\">\n\nconst Circle: FC<CircleProps> = ({ ...rest }) => (\n <ui.circle cx={50} cy={50} r={42} fill=\"transparent\" {...rest} />\n)\n\ntype ShapeProps = Omit<HTMLUIProps<\"svg\">, \"speed\"> &\n Pick<\n Required<CircleProgressProps>,\n \"children\" | \"size\" | \"isAnimation\" | \"speed\"\n >\n\nconst Shape: FC<ShapeProps> = ({ size, isAnimation, speed, ...rest }) => {\n const animation = useAnimation({\n keyframes: {\n \"0%\": {\n transform: \"rotate(0deg)\",\n },\n \"100%\": {\n transform: \"rotate(360deg)\",\n },\n },\n duration: typeof speed[1] === \"string\" ? speed[1] : `${speed[1]}s`,\n iterationCount: \"infinite\",\n timingFunction: \"linear\",\n })\n\n const css: CSSUIObject = {\n display: \"block\",\n boxSize: size,\n ...(isAnimation ? { animation } : {}),\n }\n\n return <ui.svg viewBox=\"0 0 100 100\" __css={css} {...rest} />\n}\n\nexport const CircleProgressLabel = ui(\"span\", {\n baseStyle: {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"100%\",\n fontSize: \"0.25em\",\n textAlign: \"center\",\n },\n})\n","import type {\n HTMLUIProps,\n ThemeProps,\n ComponentArgs,\n UIPropGetter,\n} from \"@yamada-ui/core\"\nimport { ui, useMultiComponentStyle, omitThemeProps } from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport {\n useFormControl,\n useFormControlProps,\n getFormControlProperties,\n} from \"@yamada-ui/form-control\"\nimport { trackFocusVisible } from \"@yamada-ui/use-focus-visible\"\nimport {\n cx,\n useCallbackRef,\n omitObject,\n funcAll,\n handlerAll,\n dataAttr,\n pickObject,\n} from \"@yamada-ui/utils\"\nimport type {\n ForwardedRef,\n Ref,\n ChangeEvent,\n ChangeEventHandler,\n InputHTMLAttributes,\n KeyboardEvent,\n SyntheticEvent,\n} from \"react\"\nimport { forwardRef, useCallback, useEffect, useId, useState } from \"react\"\nimport { useRadioGroupContext } from \"./radio-group\"\n\nexport type UseRadioProps<Y extends string | number = string> =\n FormControlOptions & {\n /**\n * id assigned to input.\n */\n id?: string\n /**\n * The name of the input field in a radio.\n */\n name?: string\n /**\n * The value to be used in the radio button.\n */\n value?: Y\n /**\n * If `true`, the radio will be initially checked.\n *\n * @default false\n */\n defaultIsChecked?: boolean\n /**\n * If `true`, the radio will be checked.\n *\n * @default false\n */\n isChecked?: boolean\n /**\n * The callback invoked when the checked state changes.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>\n }\n\nexport const useRadio = <Y extends string | number = string>(\n props: UseRadioProps<Y>,\n) => {\n const { name, value, required, disabled, readOnly, ...rest } =\n useFormControlProps(props)\n const id = props.id || useId()\n const formControlProps = pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n )\n\n const [isFocusVisible, setIsFocusVisible] = useState<boolean>(false)\n const [isFocused, setFocused] = useState<boolean>(false)\n const [isHovered, setHovered] = useState<boolean>(false)\n const [isActive, setActive] = useState<boolean>(false)\n\n const [isChecked, setIsChecked] = useState<boolean>(!!props.defaultIsChecked)\n\n const isControlled = props.isChecked !== undefined\n const checked = isControlled ? (props.isChecked as boolean) : isChecked\n\n useEffect(() => {\n return trackFocusVisible(setIsFocusVisible)\n }, [])\n\n const onChange = useCallbackRef(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (readOnly || disabled) {\n ev.preventDefault()\n\n return\n }\n\n if (!isControlled) setIsChecked(ev.target.checked)\n\n rest.onChange?.(ev)\n },\n [readOnly, disabled, isControlled],\n )\n const onBlur = useCallbackRef(rest.onBlur)\n const onFocus = useCallbackRef(rest.onFocus)\n\n const onKeyDown = useCallback(\n ({ key }: KeyboardEvent<Element>) => {\n if (key === \" \") setActive(true)\n },\n [setActive],\n )\n\n const onKeyUp = useCallback(\n ({ key }: KeyboardEvent<Element>) => {\n if (key === \" \") setActive(false)\n },\n [setActive],\n )\n\n const getContainerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...formControlProps,\n ...props,\n ref,\n \"data-checked\": dataAttr(checked),\n }),\n [checked, formControlProps],\n )\n\n const getIconProps: UIPropGetter<\"span\"> = useCallback(\n (props = {}, ref = null) => ({\n ...formControlProps,\n ...props,\n ref,\n \"data-active\": dataAttr(isActive),\n \"data-hover\": dataAttr(isHovered),\n \"data-checked\": dataAttr(checked),\n \"data-focus\": dataAttr(isFocused),\n \"data-focus-visible\": dataAttr(isFocused && isFocusVisible),\n \"aria-hidden\": true,\n onMouseDown: handlerAll(props.onMouseDown, () => setActive(true)),\n onMouseUp: handlerAll(props.onMouseUp, () => setActive(false)),\n onMouseEnter: handlerAll(props.onMouseEnter, () => setHovered(true)),\n onMouseLeave: handlerAll(props.onMouseLeave, () => setHovered(false)),\n }),\n [checked, isActive, isFocused, isFocusVisible, isHovered, formControlProps],\n )\n\n const getInputProps: UIPropGetter<\"input\"> = useCallback(\n (props = {}, ref = null) => ({\n ...formControlProps,\n ...props,\n ref,\n id,\n type: \"radio\",\n name,\n value,\n required,\n disabled,\n readOnly,\n checked,\n style: {\n border: \"0px\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n height: \"1px\",\n width: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\",\n },\n onChange: handlerAll(props.onChange, onChange),\n onBlur: handlerAll(props.onBlur, onBlur, () => setFocused(false)),\n onFocus: handlerAll(props.onFocus, onFocus, () => setFocused(true)),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n onKeyUp: handlerAll(props.onKeyUp, onKeyUp),\n }),\n [\n formControlProps,\n id,\n name,\n value,\n required,\n disabled,\n readOnly,\n checked,\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n onKeyUp,\n ],\n )\n\n const getLabelProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...formControlProps,\n props,\n ref,\n onMouseDown: handlerAll(props.onMouseDown, (ev: SyntheticEvent) => {\n ev.preventDefault()\n ev.stopPropagation()\n }),\n onTouchStart: handlerAll(props.onTouchStart, (ev: SyntheticEvent) => {\n ev.preventDefault()\n ev.stopPropagation()\n }),\n \"data-checked\": dataAttr(checked),\n }),\n [checked, formControlProps],\n )\n\n return {\n isFocusVisible,\n isFocused,\n isHovered,\n isActive,\n isChecked: checked,\n getContainerProps,\n getInputProps,\n getIconProps,\n getLabelProps,\n }\n}\n\nexport type UseRadioReturn = ReturnType<typeof useRadio>\n\ntype RadioOptions = {\n iconProps?: HTMLUIProps<\"span\">\n inputProps?: InputHTMLAttributes<HTMLInputElement>\n labelProps?: HTMLUIProps<\"span\">\n}\n\nexport type RadioProps<Y extends string | number = string> = Omit<\n HTMLUIProps<\"label\">,\n keyof UseRadioProps\n> &\n ThemeProps<\"Radio\"> &\n UseRadioProps<Y> &\n RadioOptions\n\n/**\n * `Radio` is a component used for allowing users to select one option from multiple choices.\n *\n * @see Docs https://yamada-ui.com/components/forms/radio\n */\nexport const Radio = forwardRef(\n <Y extends string | number = string>(\n props: RadioProps<Y>,\n ref: ForwardedRef<HTMLInputElement>,\n ) => {\n const group = useRadioGroupContext()\n const control = useFormControl(props)\n const [styles, mergedProps] = useMultiComponentStyle(\"Radio\", {\n ...group,\n ...props,\n })\n const {\n className,\n gap = \"0.5rem\",\n isRequired = group?.isRequired ?? control.isRequired,\n isReadOnly = group?.isReadOnly ?? control.isReadOnly,\n isDisabled = group?.isDisabled ?? control.isDisabled,\n isInvalid = group?.isInvalid ?? control.isInvalid,\n iconProps,\n inputProps,\n labelProps,\n children,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const { getContainerProps, getInputProps, getIconProps, getLabelProps } =\n useRadio({\n ...rest,\n isRequired,\n isReadOnly,\n isDisabled,\n isInvalid,\n isChecked:\n group?.value && rest.value\n ? group.value === rest.value\n : rest.isChecked,\n onChange:\n group?.onChange && rest.value\n ? funcAll(group.onChange, rest.onChange)\n : rest.onChange,\n })\n\n return (\n <ui.label\n className={cx(\"ui-radio\", className)}\n {...getContainerProps()}\n {...omitObject(rest, [\n \"id\",\n \"name\",\n \"value\",\n \"defaultValue\",\n \"defaultIsChecked\",\n \"isChecked\",\n \"onChange\",\n \"onBlur\",\n \"onFocus\",\n ])}\n __css={{\n cursor: \"pointer\",\n position: \"relative\",\n display: \"inline-flex\",\n alignItems: \"center\",\n verticalAlign: \"top\",\n gap,\n ...styles.container,\n }}\n >\n <ui.input\n className=\"ui-radio__input\"\n {...getInputProps(inputProps, ref)}\n />\n\n <ui.span\n className=\"ui-radio__icon\"\n {...getIconProps(iconProps)}\n __css={{\n position: \"relative\",\n display: \"inline-block\",\n userSelect: \"none\",\n ...styles.icon,\n }}\n />\n\n <ui.span\n className=\"ui-radio__label\"\n {...getLabelProps(labelProps)}\n __css={{ ...styles.label }}\n >\n {children}\n </ui.span>\n </ui.label>\n )\n },\n) as {\n <Y extends string | number = string>(\n props: RadioProps<Y> & { ref?: Ref<HTMLInputElement> },\n ): JSX.Element\n} & ComponentArgs\n\nRadio.displayName = \"Radio\"\n","import type { ComponentArgs, ThemeProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport { useFormControl } from \"@yamada-ui/form-control\"\nimport type { FlexProps } from \"@yamada-ui/layouts\"\nimport { Flex } from \"@yamada-ui/layouts\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport type { DOMAttributes, PropGetter } from \"@yamada-ui/utils\"\nimport {\n createContext,\n cx,\n isObject,\n mergeRefs,\n useCallbackRef,\n omitObject,\n getValidChildren,\n} from \"@yamada-ui/utils\"\nimport type { ChangeEvent, ForwardedRef, Ref, ReactElement } from \"react\"\nimport { useCallback, useId, useRef, forwardRef } from \"react\"\nimport type { RadioProps } from \"./radio\"\nimport { Radio } from \"./radio\"\n\nexport type RadioItem<Y extends string | number = string> = RadioProps<Y> & {\n label?: string\n}\n\nconst isEvent = (value: any): value is { target: HTMLInputElement } =>\n value && isObject(value) && isObject(value.target)\n\nexport type UseRadioGroupProps<Y extends string | number = string> = {\n /**\n * The top-level id string that will be applied to the radios.\n * The index of the radio will be appended to this top-level id.\n */\n id?: string\n /**\n * The HTML `name` attribute used for forms.\n */\n name?: string\n /**\n * The value of the radio group.\n */\n value?: Y\n /**\n * The initial value of the radio group.\n */\n defaultValue?: Y\n /**\n * The callback fired when any children radio is checked or unchecked.\n */\n onChange?: (value: Y) => void\n /**\n * If `true`, input elements will receive `checked` attribute instead of `isChecked`.\n *\n * This assumes, you're using native radio inputs.\n *\n * @default false\n */\n isNative?: boolean\n}\n\nexport const useRadioGroup = <Y extends string | number = string>({\n id,\n name,\n isNative,\n ...props\n}: UseRadioGroupProps<Y>) => {\n id ??= useId()\n name ??= `radio-${id}`\n\n props.onChange = useCallbackRef(props.onChange)\n\n const [value, setValue] = useControllableState({\n value: props.value,\n defaultValue: props.defaultValue,\n onChange: props.onChange,\n })\n\n const containerRef = useRef<any>(null)\n\n const onFocus = useCallback(() => {\n const container = containerRef.current\n\n if (!container) return\n\n let query = `input:not(:disabled):checked`\n\n let firstInput = container.querySelector(query) as HTMLElement | undefined\n\n if (firstInput) {\n firstInput.focus()\n } else {\n query = `input:not(:disabled)`\n firstInput = container.querySelector(query) as HTMLElement | undefined\n\n firstInput?.focus()\n }\n }, [])\n\n const onChange = useCallback(\n (evOrValue: ChangeEvent<HTMLInputElement> | Y) => {\n const nextValue = (\n isEvent(evOrValue) ? evOrValue.target.value : evOrValue\n ) as Y\n\n setValue(nextValue)\n },\n [setValue],\n )\n\n const getContainerProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ref: mergeRefs(ref, containerRef),\n role: \"group\",\n }),\n [],\n )\n\n const getRadioProps: UIPropGetter<\"input\", { value?: Y }, { value?: Y }> =\n useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ref,\n name,\n [isNative ? \"checked\" : \"isChecked\"]:\n value != null ? props.value === value : undefined,\n onChange,\n }),\n [name, value, onChange, isNative],\n )\n\n return {\n name,\n value,\n setValue,\n onChange,\n onFocus,\n getContainerProps,\n getRadioProps,\n }\n}\n\nexport type UseRadioGroupReturn<Y extends string | number = string> =\n ReturnType<typeof useRadioGroup<Y>>\n\nexport type RadioGroupProps<Y extends string | number = string> =\n ThemeProps<\"Radio\"> &\n Omit<FlexProps, \"onChange\"> &\n UseRadioGroupProps<Y> &\n FormControlOptions & {\n /**\n * If provided, generate radios based on items.\n *\n * @default '[]'\n */\n items?: RadioItem<Y>[]\n }\n\ntype RadioGroupContext = ThemeProps<\"Radio\"> &\n FormControlOptions & {\n name: string\n value: string | number\n onChange: (\n evOrValue: ChangeEvent<HTMLInputElement> | string | number,\n ) => void\n }\n\nconst [RadioGroupProvider, useRadioGroupContext] = createContext<\n RadioGroupContext | undefined\n>({\n strict: false,\n name: \"RadioGroupContext\",\n})\n\nexport { useRadioGroupContext }\n\nexport const RadioGroup = forwardRef(\n <Y extends string | number = string>(\n {\n className,\n size,\n variant,\n colorScheme,\n children,\n items = [],\n direction = \"column\",\n gap,\n ...props\n }: RadioGroupProps<Y>,\n ref: ForwardedRef<HTMLDivElement>,\n ) => {\n const { name, value, onChange, getContainerProps } = useRadioGroup(props)\n const { isRequired, isReadOnly, isDisabled, isInvalid } =\n useFormControl(props)\n\n const validChildren = getValidChildren(children)\n let computedChildren: ReactElement[] = []\n\n if (!validChildren.length && items.length) {\n computedChildren = items.map(({ label, value, ...props }, i) => (\n <Radio key={i} value={value} {...props}>\n {label}\n </Radio>\n ))\n }\n\n return (\n <RadioGroupProvider\n value={\n {\n size,\n variant,\n colorScheme,\n isRequired,\n isReadOnly,\n isDisabled,\n isInvalid,\n name,\n value,\n onChange,\n } as RadioGroupContext\n }\n >\n <Flex\n ref={ref}\n className={cx(\"ui-radio-group\", className)}\n gap={gap ?? (direction === \"row\" ? \"1rem\" : undefined)}\n {...getContainerProps(\n omitObject(props, [\n \"onChange\",\n \"isInvalid\",\n \"isDisabled\",\n \"isRequired\",\n \"isReadOnly\",\n ]) as DOMAttributes<HTMLElement>,\n )}\n direction={direction}\n >\n {children ?? computedChildren}\n </Flex>\n </RadioGroupProvider>\n )\n },\n) as {\n <Y extends string | number = string>(\n props: RadioGroupProps<Y> & { ref?: Ref<HTMLDivElement> },\n ): JSX.Element\n} & ComponentArgs\n\nRadioGroup.displayName = \"RadioGroup\"\n","import type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n UIPropGetter,\n RequiredUIPropGetter,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport type { MotionProps } from \"@yamada-ui/motion\"\nimport { LayoutGroup, Motion } from \"@yamada-ui/motion\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { createDescendant } from \"@yamada-ui/use-descendant\"\nimport { trackFocusVisible } from \"@yamada-ui/use-focus-visible\"\nimport {\n ariaAttr,\n createContext,\n cx,\n dataAttr,\n getValidChildren,\n handlerAll,\n mergeRefs,\n omitObject,\n useCallbackRef,\n useIsMounted,\n} from \"@yamada-ui/utils\"\nimport type {\n ChangeEvent,\n ChangeEventHandler,\n FC,\n FocusEventHandler,\n ReactElement,\n} from \"react\"\nimport { useCallback, useEffect, useId, useRef, useState } from \"react\"\n\nexport type SegmentedControlItem = SegmentedControlButtonProps & {\n label?: string\n}\n\nconst { DescendantsContextProvider, useDescendants, useDescendant } =\n createDescendant<HTMLButtonElement>()\n\ntype SegmentedControlContext = {\n selectedValue: string\n getInputProps: RequiredUIPropGetter<\n \"input\",\n { index: number; isDisabled?: boolean; isReadOnly?: boolean }\n >\n getLabelProps: RequiredUIPropGetter<\n \"label\",\n {\n value: string\n index: number\n isDisabled?: boolean\n isReadOnly?: boolean\n disabled?: boolean\n readOnly?: boolean\n }\n >\n styles: Record<string, CSSUIObject>\n}\n\nconst [SegmentedControlProvider, useSegmentedControl] =\n createContext<SegmentedControlContext>({\n strict: false,\n name: \"SegmentedControlContext\",\n })\n\ntype SegmentedControlOptions = {\n /**\n * The HTML `name` attribute used for forms.\n */\n name?: string\n /**\n * The value of the segmented control.\n */\n value?: string\n /**\n * The initial value of the segmented control.\n */\n defaultValue?: string\n /**\n * The callback fired when any children radio is checked or unchecked.\n */\n onChange?: (value: string) => void\n /**\n * If `true`, the segmented control will be readonly.\n *\n * @default false\n */\n isReadOnly?: boolean\n /**\n * If `true`, the segmented control will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * If provided, generate segmented control buttons but based on items.\n *\n * @default '[]'\n */\n items?: SegmentedControlItem[]\n}\n\nexport type SegmentedControlProps = Omit<\n HTMLUIProps<\"div\">,\n \"value\" | \"defaultValue\" | \"onChange\"\n> &\n ThemeProps<\"SegmentedControl\"> &\n SegmentedControlOptions\n\n/**\n * `SegmentedControl` is a component used for allowing users to select one option from multiple choices.\n *\n * @see Docs https://yamada-ui.com/components/forms/segmented-control\n */\nexport const SegmentedControl = forwardRef<SegmentedControlProps, \"div\">(\n (props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\n \"SegmentedControl\",\n props,\n )\n let {\n className,\n id,\n name,\n isReadOnly,\n isDisabled,\n children,\n items = [],\n value,\n defaultValue,\n ...rest\n } = omitThemeProps(mergedProps)\n\n id ??= useId()\n name ??= `segmented-control-${useId()}`\n\n rest.onChange = useCallbackRef(rest.onChange)\n\n const descendants = useDescendants()\n\n const [focusedIndex, setFocusedIndex] = useState<number>(-1)\n const [isFocusVisible, setIsFocusVisible] = useState<boolean>(false)\n const containerRef = useRef<HTMLDivElement>(null)\n\n const [selectedValue, setSelectedValue] = useControllableState({\n value,\n defaultValue,\n onChange: rest.onChange,\n })\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (isDisabled || isReadOnly) {\n ev.preventDefault()\n\n return\n }\n\n setSelectedValue(ev.target.value)\n },\n [isDisabled, isReadOnly, setSelectedValue],\n )\n\n const onFocus = useCallback(\n (index: number, skip: boolean) => {\n if (isDisabled) return\n\n if (skip) {\n const next = descendants.enabledNextValue(index)\n\n if (next) setFocusedIndex(next.index)\n } else {\n setFocusedIndex(index)\n }\n },\n [descendants, isDisabled],\n )\n\n const onBlur = useCallback(() => setFocusedIndex(-1), [])\n\n const getContainerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...omitObject(rest, [\"onChange\", \"aria-readonly\"]),\n ...props,\n ref: mergeRefs(containerRef, ref),\n id,\n \"aria-disabled\": ariaAttr(isDisabled),\n \"aria-readonly\": ariaAttr(isReadOnly),\n onBlur: handlerAll(props.onBlur, onBlur),\n }),\n [id, isDisabled, isReadOnly, onBlur, rest],\n )\n\n const getInputProps: RequiredUIPropGetter<\n \"input\",\n { isDisabled?: boolean; isReadOnly?: boolean; index: number }\n > = useCallback(\n ({ index, ...props }, ref = null) => {\n const disabled = props.disabled ?? props.isDisabled ?? isDisabled\n const readOnly = props.readOnly ?? props.isReadOnly ?? isReadOnly\n const checked = props.value === selectedValue\n\n return {\n ...omitObject(props, [\"isDisabled\", \"isReadOnly\", \"aria-readonly\"]),\n ref,\n id: `${id}-${index}`,\n type: \"radio\",\n name,\n disabled: disabled || readOnly,\n readOnly,\n checked,\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-readonly\": ariaAttr(readOnly),\n \"data-checked\": dataAttr(checked),\n \"data-focus\": dataAttr(index === focusedIndex),\n style: {\n border: \"0px\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n height: \"1px\",\n width: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\",\n },\n onChange: handlerAll(props.onChange, (ev) =>\n !disabled && !readOnly\n ? onChange(ev as ChangeEvent<HTMLInputElement>)\n : {},\n ),\n }\n },\n [isDisabled, isReadOnly, selectedValue, id, name, focusedIndex, onChange],\n )\n\n const getLabelProps: RequiredUIPropGetter<\n \"label\",\n {\n value: string\n index: number\n isDisabled?: boolean\n isReadOnly?: boolean\n disabled?: boolean\n readOnly?: boolean\n }\n > = useCallback(\n (\n {\n index,\n isDisabled: isDisabledProp,\n isReadOnly: isReadOnlyProp,\n ...props\n },\n ref = null,\n ) => {\n const disabled = props.disabled ?? isDisabledProp ?? isDisabled\n const readOnly = props.readOnly ?? isReadOnlyProp ?? isReadOnly\n const checked = props.value === selectedValue\n const focused = index === focusedIndex\n\n return {\n ...props,\n ref,\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-readonly\": ariaAttr(readOnly),\n \"data-checked\": dataAttr(checked),\n \"data-focus\": dataAttr(focused),\n \"data-focus-visible\": dataAttr(focused && isFocusVisible),\n onFocus: handlerAll(\n props.onFocus as unknown as FocusEventHandler<HTMLLabelElement>,\n () => onFocus(index, disabled || readOnly || false),\n ),\n ...(disabled || readOnly\n ? {\n _hover: {},\n _active: {},\n _focus: {},\n _invalid: {},\n _focusVisible: {},\n }\n : {}),\n }\n },\n [\n focusedIndex,\n isDisabled,\n isFocusVisible,\n isReadOnly,\n onFocus,\n selectedValue,\n ],\n )\n\n useEffect(() => {\n return trackFocusVisible(setIsFocusVisible)\n }, [])\n\n const css: CSSUIObject = {\n display: \"inline-flex\",\n alignItems: \"center\",\n ...styles.container,\n }\n\n const validChildren = getValidChildren(children)\n let computedChildren: ReactElement[] = []\n\n if (!validChildren.length && items.length) {\n computedChildren = items.map(({ label, value, ...props }, i) => (\n <SegmentedControlButton key={i} value={value} {...props}>\n {label}\n </SegmentedControlButton>\n ))\n } else {\n computedChildren = validChildren\n }\n\n if (selectedValue == null && defaultValue == null) {\n for (const child of computedChildren) {\n if (child.type !== SegmentedControlButton)\n if (\n (child.type as any).displayName !==\n SegmentedControlButton.displayName\n )\n continue\n\n const value = child.props.value\n\n setSelectedValue(value)\n\n break\n }\n }\n\n return (\n <DescendantsContextProvider value={descendants}>\n <SegmentedControlProvider\n value={{ getInputProps, getLabelProps, styles, selectedValue }}\n >\n <LayoutGroup id={id}>\n <ui.div\n {...getContainerProps({}, ref)}\n className={cx(\"ui-segmented-control\", className)}\n __css={css}\n >\n {computedChildren}\n </ui.div>\n </LayoutGroup>\n </SegmentedControlProvider>\n </DescendantsContextProvider>\n )\n },\n)\n\ntype SegmentedControlButtonOptions = {\n /**\n * The value of the segmented control button.\n */\n value: string\n /**\n * The callback fired when any children radio is checked or unchecked.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>\n /**\n * Props for motion component.\n */\n motionProps?: MotionProps\n}\n\nexport type SegmentedControlButtonProps = Omit<\n HTMLUIProps<\"label\">,\n \"onChange\"\n> &\n Pick<SegmentedControlProps, \"isDisabled\" | \"isReadOnly\"> &\n SegmentedControlButtonOptions\n\nexport const SegmentedControlButton = forwardRef<\n SegmentedControlButtonProps,\n \"input\"\n>(\n (\n {\n className,\n disabled,\n readOnly,\n isDisabled,\n isReadOnly,\n value,\n onChange,\n children,\n motionProps,\n ...rest\n },\n ref,\n ) => {\n const [, isMounted] = useIsMounted({ rerender: true })\n const { selectedValue, getInputProps, getLabelProps, styles } =\n useSegmentedControl()\n\n const { index, register } = useDescendant({\n disabled: isDisabled || isReadOnly,\n })\n\n const props = {\n index,\n value,\n onChange,\n disabled,\n readOnly,\n isDisabled,\n isReadOnly,\n }\n\n const css: CSSUIObject = {\n position: \"relative\",\n cursor: \"pointer\",\n flex: \"1 1 0%\",\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n ...styles.button,\n }\n\n const isSelected = selectedValue === value\n\n return (\n <ui.label\n {...getLabelProps(omitObject(props, [\"onChange\"]))}\n className={cx(\"ui-segmented-control__button\", className)}\n __css={css}\n {...rest}\n >\n <ui.input {...getInputProps(props, mergeRefs(register, ref))} />\n {isSelected && isMounted ? (\n <SegmentedControlCursor {...motionProps} />\n ) : null}\n <ui.span zIndex=\"1\">{children}</ui.span>\n </ui.label>\n )\n },\n)\n\nSegmentedControlButton.displayName = \"SegmentedControlButton\"\n\ntype SegmentedControlCursorProps = MotionProps & { className?: string }\n\nconst SegmentedControlCursor: FC<SegmentedControlCursorProps> = ({\n className,\n transition,\n ...rest\n}) => {\n const { styles } = useSegmentedControl()\n\n const css: CSSUIObject = {\n position: \"absolute\",\n w: \"100%\",\n h: \"100%\",\n ...styles.cursor,\n }\n\n return (\n <Motion\n className={cx(\"ui-segmented-control__cursor\", className)}\n layoutDependency={false}\n layoutId=\"cursor\"\n transition={{\n type: \"spring\",\n bounce: 0.15,\n duration: 0.4,\n ...transition,\n }}\n __css={css}\n {...rest}\n />\n )\n}\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { Popover, PopoverTrigger } from \"@yamada-ui/popover\"\nimport type { PortalProps } from \"@yamada-ui/portal\"\nimport { Portal } from \"@yamada-ui/portal\"\nimport { cx, getValidChildren } from \"@yamada-ui/utils\"\nimport type { ReactElement, ReactNode } from \"react\"\nimport type { SelectIconProps } from \"./select-icon\"\nimport { SelectIcon } from \"./select-icon\"\nimport type { SelectListProps } from \"./select-list\"\nimport { SelectList } from \"./select-list\"\nimport type { UseSelectProps } from \"./use-select\"\nimport {\n useSelect,\n SelectDescendantsContextProvider,\n SelectProvider,\n useSelectContext,\n} from \"./use-select\"\nimport type { OptionProps } from \"./\"\nimport { OptionGroup, Option } from \"./\"\n\ntype SelectBaseItem = Omit<OptionProps, \"value\" | \"children\">\n\ntype SelectItemWithValue = SelectBaseItem & {\n label?: ReactNode\n value?: string\n}\n\ntype SelectItemWithItems = SelectBaseItem & {\n label?: string\n items?: SelectItemWithValue[]\n}\n\nexport type SelectItem = SelectItemWithValue | SelectItemWithItems\n\ntype SelectOptions = {\n /**\n * If provided, generate options based on items.\n *\n * @default '[]'\n */\n items?: SelectItem[]\n /**\n * The border color when the input is focused.\n */\n focusBorderColor?: string\n /**\n * The border color when the input is invalid.\n */\n errorBorderColor?: string\n /**\n * Props for select container element.\n */\n containerProps?: Omit<HTMLUIProps<\"div\">, \"children\">\n /**\n * Props for select list element.\n */\n listProps?: Omit<SelectListProps, \"children\">\n /**\n * Props for select icon element.\n */\n iconProps?: SelectIconProps\n /**\n * Props to be forwarded to the portal component.\n *\n * @default '{ isDisabled: true }'\n */\n portalProps?: Omit<PortalProps, \"children\">\n}\n\nexport type SelectProps = ThemeProps<\"Select\"> &\n Omit<\n UseSelectProps<string>,\n \"isEmpty\" | \"maxSelectValues\" | \"omitSelectedValues\"\n > &\n SelectOptions\n\n/**\n * `Select` is a component used for allowing a user to choose one option from a list.\n *\n * @see Docs https://yamada-ui.com/components/forms/select\n */\nexport const Select = forwardRef<SelectProps, \"div\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Select\", props)\n let {\n className,\n placeholder,\n defaultValue = \"\",\n placeholderInOptions = true,\n items = [],\n color,\n h,\n height,\n minH,\n minHeight,\n containerProps,\n listProps,\n iconProps,\n portalProps = { isDisabled: true },\n children,\n ...computedProps\n } = omitThemeProps(mergedProps)\n\n const validChildren = getValidChildren(children)\n let computedChildren: ReactElement[] = []\n\n if (!validChildren.length && items.length) {\n computedChildren = items\n .map((item, i) => {\n if (\"value\" in item) {\n const { label, value, ...props } = item\n\n return (\n <Option key={i} value={value} {...props}>\n {label}\n </Option>\n )\n } else if (\"items\" in item) {\n const { label, items = [], ...props } = item\n\n return (\n <OptionGroup\n key={i}\n label={label ?? \"\"}\n {...(props as HTMLUIProps<\"ul\">)}\n >\n {items.map(({ label, value, ...props }, i) => (\n <Option key={i} value={value} {...props}>\n {label}\n </Option>\n ))}\n </OptionGroup>\n )\n }\n })\n .filter(Boolean) as ReactElement[]\n }\n\n const isEmpty =\n !validChildren.length &&\n !computedChildren.length &&\n !(!!placeholder && placeholderInOptions)\n\n const {\n descendants,\n formControlProps,\n getPopoverProps,\n getContainerProps,\n getFieldProps,\n ...rest\n } = useSelect({\n ...computedProps,\n placeholder,\n placeholderInOptions,\n defaultValue,\n isEmpty,\n })\n\n h ??= height\n minH ??= minHeight\n\n const css: CSSUIObject = {\n w: \"100%\",\n h: \"fit-content\",\n color,\n ...styles.container,\n }\n\n return (\n <SelectDescendantsContextProvider value={descendants}>\n <SelectProvider\n value={{ ...rest, placeholder, placeholderInOptions, styles }}\n >\n <Popover {...getPopoverProps()}>\n <ui.div\n className={cx(\"ui-select\", className)}\n __css={css}\n {...getContainerProps(containerProps)}\n >\n <ui.div\n className=\"ui-select__inner\"\n __css={{ position: \"relative\", ...styles.inner }}\n >\n <PopoverTrigger>\n <SelectField h={h} minH={minH} {...getFieldProps({}, ref)} />\n </PopoverTrigger>\n\n <SelectIcon {...iconProps} {...formControlProps} />\n </ui.div>\n\n {!isEmpty ? (\n <Portal {...portalProps}>\n <SelectList {...listProps}>\n {!!placeholder && placeholderInOptions ? (\n <Option>{placeholder}</Option>\n ) : null}\n\n {children ?? computedChildren}\n </SelectList>\n </Portal>\n ) : null}\n </ui.div>\n </Popover>\n </SelectProvider>\n </SelectDescendantsContextProvider>\n )\n})\n\ntype SelectFieldProps = HTMLUIProps<\"div\">\n\nconst SelectField = forwardRef<SelectFieldProps, \"div\">(\n ({ className, isTruncated = true, lineClamp, h, minH, ...rest }, ref) => {\n const { label, placeholder, styles } = useSelectContext()\n\n const css: CSSUIObject = {\n pe: \"2rem\",\n h,\n minH,\n display: \"flex\",\n alignItems: \"center\",\n ...styles.field,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-select__field\", className)}\n __css={css}\n {...rest}\n >\n <ui.span\n isTruncated={isTruncated}\n lineClamp={lineClamp}\n dangerouslySetInnerHTML={{\n __html: label ?? placeholder ?? \"\",\n }}\n ></ui.span>\n </ui.div>\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { ChevronIcon, CloseIcon } from \"@yamada-ui/icon\"\nimport { useClickable } from \"@yamada-ui/use-clickable\"\nimport { cx, getValidChildren, isValidElement } from \"@yamada-ui/utils\"\nimport type { FC, HTMLAttributes } from \"react\"\nimport { cloneElement, useRef } from \"react\"\nimport { useSelectContext } from \"./use-select\"\n\nexport type SelectIconProps = HTMLUIProps<\"div\">\n\nexport const SelectIcon = forwardRef<SelectIconProps, \"div\">(\n ({ className, children, __css, ...rest }, ref) => {\n const { styles } = useSelectContext()\n\n const css: CSSUIObject = {\n position: \"absolute\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n pointerEvents: \"none\",\n cursor: \"pointer\",\n ...styles.icon,\n ...__css,\n }\n\n const validChildren = getValidChildren(children)\n\n const cloneChildren = validChildren.map((child) =>\n cloneElement(child, {\n focusable: false,\n \"aria-hidden\": true,\n style: {\n maxWidth: \"1em\",\n maxHeight: \"1em\",\n color: \"currentColor\",\n },\n }),\n )\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-select__icon\", className)}\n __css={css}\n {...rest}\n >\n {isValidElement(children) ? cloneChildren : <ChevronIcon />}\n </ui.div>\n )\n },\n)\n\nexport type SelectClearIconProps = SelectIconProps & { disabled?: boolean }\n\nexport const SelectClearIcon: FC<SelectClearIconProps> = ({\n className,\n children,\n ...props\n}) => {\n const ref = useRef<HTMLDivElement>(null)\n const { styles } = useSelectContext()\n\n const isDisabled = props.disabled\n\n const rest = useClickable({\n ref,\n isDisabled,\n ...(props as HTMLAttributes<HTMLElement>),\n })\n\n return (\n <SelectIcon\n aria-label=\"Clear value\"\n className={cx(\"ui-select__clear-icon\", className)}\n __css={styles.clearIcon}\n {...rest}\n >\n {children ?? <CloseIcon w=\"0.5em\" h=\"0.5em\" />}\n </SelectIcon>\n )\n}\n","import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport { layoutStyleProperties } from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport {\n getFormControlProperties,\n useFormControlProps,\n} from \"@yamada-ui/form-control\"\nimport type { MotionUIPropGetter } from \"@yamada-ui/motion\"\nimport type { PopoverProps } from \"@yamada-ui/popover\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { createDescendant } from \"@yamada-ui/use-descendant\"\nimport { useDisclosure } from \"@yamada-ui/use-disclosure\"\nimport { useOutsideClick } from \"@yamada-ui/use-outside-click\"\nimport {\n createContext,\n dataAttr,\n funcAll,\n handlerAll,\n omitObject,\n pickObject,\n splitObject,\n useUnmountEffect,\n useUpdateEffect,\n mergeRefs,\n isHTMLElement,\n ariaAttr,\n isArray,\n isUndefined,\n getEventRelatedTarget,\n isContains,\n} from \"@yamada-ui/utils\"\nimport type {\n Dispatch,\n ForwardedRef,\n KeyboardEvent,\n RefObject,\n SetStateAction,\n FocusEvent,\n MouseEvent,\n CSSProperties,\n} from \"react\"\nimport { useCallback, useRef, useState, useEffect } from \"react\"\nimport type { OptionProps } from \"./\"\n\nconst isTargetOption = (target: EventTarget | null): boolean =>\n isHTMLElement(target) &&\n !!target?.getAttribute(\"role\")?.startsWith(\"select-item\")\n\nexport const {\n DescendantsContextProvider: SelectDescendantsContextProvider,\n useDescendantsContext: useSelectDescendantsContext,\n useDescendants: useSelectDescendants,\n useDescendant: useSelectDescendant,\n} = createDescendant<HTMLElement>()\n\nexport type MaybeValue = string | string[]\n\ntype SelectContext = Omit<\n UseSelectProps,\n \"value\" | \"defaultValue\" | \"onChange\" | \"isEmpty\"\n> & {\n value: MaybeValue\n label: MaybeValue | undefined\n onChange: (newValue: string) => void\n onChangeLabel: (newValue: string, runOmit?: boolean) => void\n isOpen: boolean\n onOpen: () => void\n onClose: () => void\n onFocusFirst: () => void\n onFocusLast: () => void\n onFocusNext: () => void\n onFocusPrev: () => void\n focusedIndex: number\n setFocusedIndex: Dispatch<SetStateAction<number>>\n containerRef: RefObject<HTMLDivElement>\n fieldRef: RefObject<HTMLDivElement>\n listRef: RefObject<HTMLUListElement>\n styles: Record<string, CSSUIObject>\n}\n\nexport const [SelectProvider, useSelectContext] = createContext<SelectContext>({\n strict: false,\n name: \"SelectContext\",\n})\n\nexport type UseSelectProps<T extends MaybeValue = string> = Omit<\n HTMLUIProps<\"div\">,\n \"defaultValue\" | \"onChange\" | \"offset\"\n> &\n Omit<\n PopoverProps,\n | \"initialFocusRef\"\n | \"closeOnButton\"\n | \"trigger\"\n | \"autoFocus\"\n | \"restoreFocus\"\n | \"openDelay\"\n | \"closeDelay\"\n > &\n FormControlOptions & {\n /**\n * The HTML `name` attribute used for forms.\n */\n name?: string\n /**\n * The placeholder of the select.\n */\n placeholder?: string\n /**\n * The value of the select.\n */\n value?: T\n /**\n * The initial value of the select.\n */\n defaultValue?: T\n /**\n * The callback invoked when value state changes.\n */\n onChange?: (value: T) => void\n /**\n * If `true`, the list element will be closed when value is selected.\n *\n * @default true\n */\n closeOnSelect?: boolean\n /**\n * If `true`, include placeholders in options.\n *\n * @default true\n */\n placeholderInOptions?: boolean\n isEmpty: boolean\n /**\n * If `true`, the selected item(s) will be excluded from the list.\n *\n * @default false\n */\n omitSelectedValues?: boolean\n /**\n * The maximum selectable value.\n */\n maxSelectValues?: number\n /**\n * Props for select option element.\n */\n optionProps?: Omit<OptionProps, \"value\" | \"children\">\n }\n\nexport const useSelect = <T extends MaybeValue = string>({\n placeholder,\n closeOnBlur = true,\n closeOnEsc = true,\n closeOnSelect = true,\n placeholderInOptions = true,\n omitSelectedValues = false,\n maxSelectValues,\n isEmpty,\n placement = \"bottom-start\",\n duration = 0.2,\n isOpen: isOpenProp,\n defaultIsOpen,\n onOpen: onOpenProp,\n onClose: onCloseProp,\n optionProps,\n ...rest\n}: UseSelectProps<T>) => {\n rest = useFormControlProps(rest)\n\n const formControlProps = pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n )\n const [containerProps, fieldProps] = splitObject(\n omitObject(rest, [\"value\", \"defaultValue\", \"onChange\", \"aria-readonly\"]),\n layoutStyleProperties,\n )\n\n const descendants = useSelectDescendants()\n\n const [focusedIndex, setFocusedIndex] = useState<number>(-1)\n const [isAllSelected, setIsAllSelected] = useState<boolean>(false)\n\n const containerRef = useRef<HTMLDivElement>(null)\n const fieldRef = useRef<HTMLDivElement>(null)\n const listRef = useRef<HTMLUListElement>(null)\n const timeoutIds = useRef<Set<any>>(new Set([]))\n\n const [value, setValue] = useControllableState({\n value: rest.value,\n defaultValue: rest.defaultValue,\n onChange: rest.onChange,\n })\n const [label, setLabel] = useState<T | undefined>(undefined)\n\n const isFocused = focusedIndex > -1\n const isMulti = isArray(value)\n const isEmptyValue =\n (!isMulti ? !value : !value.length) &&\n !(placeholder && placeholderInOptions)\n\n const selectedValues = descendants.values(\n ({ node }) => isMulti && value.includes(node.dataset.value ?? \"\"),\n )\n\n const selectedIndexes = selectedValues.map(({ index }) => index)\n const enabledValues = descendants.enabledValues(\n ({ index }) => !selectedIndexes.includes(index),\n )\n\n const onFocusFirst = useCallback(() => {\n const id = setTimeout(() => {\n const first = descendants.enabledFirstValue()\n\n if (!first) return\n\n if (!isMulti || !omitSelectedValues) {\n setFocusedIndex(first.index)\n } else {\n if (selectedIndexes.includes(first.index)) {\n const enabledFirst = enabledValues[0]\n\n setFocusedIndex(enabledFirst.index)\n } else {\n setFocusedIndex(first.index)\n }\n }\n })\n\n timeoutIds.current.add(id)\n }, [descendants, enabledValues, isMulti, omitSelectedValues, selectedIndexes])\n\n const onFocusLast = useCallback(() => {\n const id = setTimeout(() => {\n const last = descendants.enabledLastValue()\n\n if (!last) return\n\n if (!isMulti || !omitSelectedValues) {\n setFocusedIndex(last.index)\n } else {\n if (selectedIndexes.includes(last.index)) {\n const enabledLast = enabledValues.reverse()[0]\n\n setFocusedIndex(enabledLast.index)\n } else {\n setFocusedIndex(last.index)\n }\n }\n })\n\n timeoutIds.current.add(id)\n }, [descendants, enabledValues, isMulti, omitSelectedValues, selectedIndexes])\n\n const onFocusSelected = useCallback(() => {\n const id = setTimeout(() => {\n const values = descendants.enabledValues()\n\n const selected = values.find(({ node }) =>\n !isMulti\n ? node.dataset.value === value\n : value.includes(node.dataset.value ?? \"\"),\n )\n\n if (selected) setFocusedIndex(selected.index)\n })\n\n timeoutIds.current.add(id)\n }, [descendants, isMulti, value])\n\n const onFocusNext = useCallback(() => {\n const id = setTimeout(() => {\n const next = descendants.enabledNextValue(focusedIndex)\n\n if (!next) return\n\n if (!isMulti || !omitSelectedValues) {\n setFocusedIndex(next.index)\n } else {\n if (selectedIndexes.includes(next.index)) {\n const enabledNext =\n enabledValues.find(({ index }) => next.index < index) ??\n enabledValues[0]\n\n setFocusedIndex(enabledNext.index)\n } else {\n setFocusedIndex(next.index)\n }\n }\n })\n\n timeoutIds.current.add(id)\n }, [\n descendants,\n enabledValues,\n focusedIndex,\n isMulti,\n omitSelectedValues,\n selectedIndexes,\n setFocusedIndex,\n ])\n\n const onFocusPrev = useCallback(() => {\n const id = setTimeout(() => {\n const prev = descendants.enabledPrevValue(focusedIndex)\n\n if (!prev) return\n\n if (!isMulti || !omitSelectedValues) {\n setFocusedIndex(prev.index)\n } else {\n if (selectedIndexes.includes(prev.index)) {\n const enabledPrev =\n enabledValues.reverse().find(({ index }) => index < prev.index) ??\n enabledValues[0]\n\n setFocusedIndex(enabledPrev.index)\n } else {\n setFocusedIndex(prev.index)\n }\n }\n })\n\n timeoutIds.current.add(id)\n }, [\n descendants,\n enabledValues,\n focusedIndex,\n isMulti,\n omitSelectedValues,\n selectedIndexes,\n setFocusedIndex,\n ])\n\n const onFocusFirstOrSelected =\n isEmptyValue || omitSelectedValues ? onFocusFirst : onFocusSelected\n const onFocusLastOrSelected =\n isEmptyValue || omitSelectedValues ? onFocusLast : onFocusSelected\n\n const onChangeLabel = useCallback(\n (newValue: string, runOmit: boolean = true) => {\n const values = descendants.values()\n const selectedValues = values\n .filter(({ node }) => node.dataset.value === newValue)\n .map(({ node, index }) => {\n if (!(!!placeholder && placeholderInOptions) || index !== 0) {\n const el = Array.from(node.children).find(\n (child) => child.getAttribute(\"data-label\") !== null,\n )\n\n return el?.innerHTML ?? \"\"\n } else {\n return undefined\n }\n })\n\n setLabel((prev) => {\n if (!isMulti) {\n return selectedValues[0] as T\n } else {\n selectedValues.forEach((selectedValue) => {\n const isSelected =\n isArray(prev) && prev.includes(selectedValue ?? \"\")\n\n if (!isSelected) {\n prev = [...(isArray(prev) ? prev : []), selectedValue] as T\n } else if (runOmit) {\n prev = (\n isArray(prev)\n ? prev.filter((value) => value !== selectedValue)\n : undefined\n ) as T\n }\n })\n\n return prev\n }\n })\n },\n [descendants, isMulti, placeholder, placeholderInOptions],\n )\n\n const onChange = useCallback(\n (newValue: string) => {\n setValue((prev) => {\n if (!isArray(prev)) {\n return newValue as T\n } else {\n const isSelected = prev.includes(newValue)\n\n if (!isSelected) {\n return [...prev, newValue] as T\n } else {\n return prev.filter((value) => value !== newValue) as T\n }\n }\n })\n\n onChangeLabel(newValue)\n },\n [onChangeLabel, setValue],\n )\n\n const onClear = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n ev.stopPropagation()\n\n setValue([] as unknown as T)\n setLabel(undefined)\n },\n [setLabel, setValue],\n )\n\n const {\n isOpen,\n onOpen: onInternalOpen,\n onClose,\n } = useDisclosure({\n isOpen: isOpenProp,\n defaultIsOpen,\n onOpen: onOpenProp,\n onClose: onCloseProp,\n })\n\n const onOpen = useCallback(() => {\n if (formControlProps.disabled || formControlProps.readOnly) return\n\n if (isEmpty || isAllSelected) return\n\n onInternalOpen()\n }, [formControlProps, isEmpty, isAllSelected, onInternalOpen])\n\n const onSelect = useCallback(() => {\n let enabledValue = descendants.value(focusedIndex)\n\n if (\"disabled\" in (enabledValue?.node.dataset ?? {}))\n enabledValue = undefined\n\n if (!enabledValue) return\n\n const value = enabledValue.node.dataset.value ?? \"\"\n\n onChange(value)\n\n if (closeOnSelect) onClose()\n\n if (omitSelectedValues) onFocusNext()\n }, [\n closeOnSelect,\n descendants,\n focusedIndex,\n omitSelectedValues,\n onChange,\n onClose,\n onFocusNext,\n ])\n\n const onClick = useCallback(() => {\n if (isOpen) return\n\n onOpen()\n\n onFocusFirstOrSelected()\n }, [isOpen, onFocusFirstOrSelected, onOpen])\n\n const onFocus = useCallback(() => {\n if (isOpen) return\n\n onOpen()\n\n onFocusFirstOrSelected()\n }, [isOpen, onFocusFirstOrSelected, onOpen])\n\n const onBlur = useCallback(\n (ev: FocusEvent<HTMLDivElement>) => {\n const relatedTarget = getEventRelatedTarget(ev)\n\n if (isContains(containerRef.current, relatedTarget)) return\n\n if (!closeOnBlur) return\n\n if (isOpen) onClose()\n },\n [closeOnBlur, isOpen, onClose],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLDivElement>) => {\n if (ev.key === \" \") ev.key = ev.code\n\n if (formControlProps.disabled || formControlProps.readOnly) return\n\n const actions: Record<string, Function | undefined> = {\n ArrowDown: isFocused\n ? () => onFocusNext()\n : !isOpen\n ? funcAll(onOpen, onFocusFirstOrSelected)\n : undefined,\n ArrowUp: isFocused\n ? () => onFocusPrev()\n : !isOpen\n ? funcAll(onOpen, onFocusLastOrSelected)\n : undefined,\n Space: isFocused\n ? onSelect\n : !isOpen\n ? funcAll(onOpen, onFocusFirstOrSelected)\n : undefined,\n Enter: isFocused\n ? onSelect\n : !isOpen\n ? funcAll(onOpen, onFocusFirstOrSelected)\n : undefined,\n Home: isOpen ? onFocusFirst : undefined,\n End: isOpen ? onFocusLast : undefined,\n Escape: closeOnEsc ? onClose : undefined,\n }\n\n const action = actions[ev.key]\n\n if (!action) return\n\n ev.preventDefault()\n ev.stopPropagation()\n action()\n },\n [\n formControlProps.disabled,\n formControlProps.readOnly,\n isFocused,\n isOpen,\n onOpen,\n onFocusFirstOrSelected,\n onFocusLastOrSelected,\n onSelect,\n onFocusFirst,\n onFocusLast,\n closeOnEsc,\n onClose,\n onFocusNext,\n onFocusPrev,\n ],\n )\n\n useOutsideClick({\n ref: containerRef,\n handler: onClose,\n enabled: isOpen && closeOnBlur,\n })\n\n useEffect(() => {\n if (!isMulti) return\n\n if (!omitSelectedValues && isUndefined(maxSelectValues)) return\n\n const isAll = value.length > 0 && value.length === descendants.count()\n const isMax = value.length === maxSelectValues\n\n if (isAll || isMax) {\n onClose()\n setIsAllSelected(true)\n } else {\n setIsAllSelected(false)\n }\n }, [\n omitSelectedValues,\n value,\n descendants,\n isMulti,\n onClose,\n maxSelectValues,\n ])\n\n useUpdateEffect(() => {\n if (!isOpen) setFocusedIndex(-1)\n }, [isOpen])\n\n useUnmountEffect(() => {\n timeoutIds.current.forEach((id) => clearTimeout(id))\n timeoutIds.current.clear()\n })\n\n const getPopoverProps = useCallback(\n (props?: PopoverProps): PopoverProps => ({\n matchWidth: true,\n ...rest,\n ...props,\n isOpen,\n onOpen,\n onClose,\n placement,\n duration,\n trigger: \"never\",\n closeOnButton: false,\n closeOnBlur,\n }),\n [duration, closeOnBlur, onClose, onOpen, placement, rest, isOpen],\n )\n\n const getContainerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ref: mergeRefs(containerRef, ref),\n ...containerProps,\n ...props,\n ...formControlProps,\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n\n onBlur: handlerAll(props.onBlur, rest.onBlur, onBlur),\n }),\n [containerProps, formControlProps, onBlur, onClick, rest],\n )\n\n const getFieldProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ref: mergeRefs(fieldRef, ref),\n tabIndex: 0,\n ...fieldProps,\n ...props,\n \"data-active\": dataAttr(isOpen),\n \"data-placeholder\": dataAttr(\n !isMulti ? label === undefined : !label?.length,\n ),\n \"aria-expanded\": dataAttr(isOpen),\n onFocus: handlerAll(props.onFocus, rest.onFocus, onFocus),\n onKeyDown: handlerAll(props.onKeyDown, rest.onKeyDown, onKeyDown),\n }),\n [fieldProps, isOpen, isMulti, label, rest, onFocus, onKeyDown],\n )\n\n return {\n descendants,\n value,\n label,\n focusedIndex,\n placeholder,\n placeholderInOptions,\n omitSelectedValues,\n closeOnSelect,\n isOpen,\n containerRef,\n fieldRef,\n listRef,\n optionProps,\n formControlProps,\n onChangeLabel,\n onChange,\n onClear,\n onOpen,\n onClose,\n onFocusFirst,\n onFocusLast,\n onFocusSelected,\n onFocusNext,\n onFocusPrev,\n setFocusedIndex,\n getPopoverProps,\n getContainerProps,\n getFieldProps,\n }\n}\n\nexport type UseSelectReturn = ReturnType<typeof useSelect>\n\nexport const useSelectList = () => {\n const { listRef, focusedIndex } = useSelectContext()\n\n const descendants = useSelectDescendantsContext()\n\n const beforeFocusedIndex = useRef<number>(-1)\n const selectedValue = descendants.value(focusedIndex)\n\n useEffect(() => {\n if (!listRef.current || !selectedValue) return\n\n if (beforeFocusedIndex.current === selectedValue.index) return\n\n const parent = listRef.current\n const child = selectedValue.node\n\n const parentHeight = parent.clientHeight\n const viewTop = parent.scrollTop\n const viewBottom = viewTop + parentHeight\n\n const childHeight = child.clientHeight\n const childTop = child.offsetTop\n const childBottom = childTop + childHeight\n\n const isInView = viewTop <= childTop && childBottom <= viewBottom\n\n const isScrollBottom = beforeFocusedIndex.current < selectedValue.index\n\n if (!isInView) {\n if (childBottom <= parentHeight) {\n listRef.current.scrollTo({ top: 0 })\n } else {\n if (!isScrollBottom) {\n listRef.current.scrollTo({ top: childTop + 1 })\n } else {\n listRef.current.scrollTo({ top: childBottom - parentHeight })\n }\n }\n }\n\n beforeFocusedIndex.current = selectedValue.index\n }, [listRef, selectedValue])\n\n const getListProps: MotionUIPropGetter<\"ul\"> = useCallback(\n (props = {}, ref = null) => ({\n as: \"ul\",\n ref: mergeRefs(listRef, ref),\n role: \"select\",\n tabIndex: -1,\n ...props,\n }),\n [listRef],\n )\n\n return {\n getListProps,\n }\n}\n\nexport type UseSelectListReturn = ReturnType<typeof useSelectList>\n\nexport type UseSelectOptionGroupProps = HTMLUIProps<\"ul\"> & {\n /**\n * The label of the option group.\n */\n label: string\n}\n\nexport const useSelectOptionGroup = ({\n label,\n ...rest\n}: UseSelectOptionGroupProps) => {\n const { value, omitSelectedValues } = useSelectContext()\n\n const isMulti = isArray(value)\n\n const descendants = useSelectDescendantsContext()\n\n const values = descendants.values()\n const selectedValues =\n isMulti && omitSelectedValues\n ? descendants.values(({ node }) =>\n value.includes(node.dataset.value ?? \"\"),\n )\n : []\n const selectedIndexes = selectedValues.map(({ index }) => index)\n const childValues = values.filter(\n ({ node, index }) =>\n node.parentElement?.dataset.label === label &&\n !selectedIndexes.includes(index),\n )\n\n const isEmpty = !childValues.length\n\n const computedRest = splitObject(rest, layoutStyleProperties)\n\n const getContainerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const style: CSSProperties = {\n border: \"0px\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n height: \"1px\",\n width: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\",\n }\n\n return {\n ref,\n ...props,\n ...computedRest[0],\n style: isEmpty ? style : undefined,\n }\n },\n [computedRest, isEmpty],\n )\n\n const getGroupProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ref,\n ...props,\n ...computedRest[1],\n \"data-label\": label,\n }),\n [computedRest, label],\n )\n\n return {\n label,\n getContainerProps,\n getGroupProps,\n }\n}\n\nexport type UseSelectOptionGroupReturn = ReturnType<typeof useSelectOptionGroup>\n\nexport type UseSelectOptionProps = Omit<HTMLUIProps<\"li\">, \"value\"> & {\n /**\n * The value of the select option.\n */\n value?: string\n /**\n * If `true`, the select option will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true`, the select option will be focusable.\n *\n * @default false\n */\n isFocusable?: boolean\n /**\n * If `true`, the list element will be closed when selected.\n *\n * @default false\n */\n closeOnSelect?: boolean\n}\n\nexport const useSelectOption = (\n ref: ForwardedRef<any> | undefined,\n props: UseSelectOptionProps,\n) => {\n const {\n fieldRef,\n value,\n placeholder,\n placeholderInOptions,\n omitSelectedValues,\n closeOnSelect: generalCloseOnSelect,\n focusedIndex,\n optionProps,\n onChange,\n onChangeLabel,\n onFocusNext,\n onClose,\n setFocusedIndex,\n } = useSelectContext()\n\n let {\n icon: customIcon,\n isDisabled,\n isFocusable,\n closeOnSelect: customCloseOnSelect,\n children,\n ...computedProps\n } = { ...optionProps, ...props }\n\n const trulyDisabled = !!isDisabled && !isFocusable\n\n const itemRef = useRef<HTMLLIElement>(null)\n\n const { index, register, descendants } = useSelectDescendant({\n disabled: trulyDisabled,\n })\n\n const values = descendants.values()\n const frontValues = values.slice(0, index)\n\n const isMulti = isArray(value)\n const isDuplicated = !isMulti\n ? frontValues.some(\n ({ node }) => node.dataset.value === (computedProps.value ?? \"\"),\n )\n : false\n\n const isSelected =\n !isDuplicated &&\n (!isMulti\n ? (computedProps.value ?? \"\") === value\n : value.includes(computedProps.value ?? \"\"))\n const isFocused = index === focusedIndex\n\n if (\n !!placeholder &&\n index > 0 &&\n placeholderInOptions &&\n !computedProps.value\n ) {\n console.warn(\n `${\n !isMulti ? \"Select\" : \"MultiSelect\"\n }: If placeholders are present, All options must be set value. If want to set an empty value, either don't set the placeholder or set 'placeholderInOptions' to false.`,\n )\n }\n const onClick = useCallback(\n (ev: MouseEvent<HTMLLIElement>) => {\n ev.preventDefault()\n ev.stopPropagation()\n\n if (isDisabled) {\n if (fieldRef.current) fieldRef.current.focus()\n\n return\n }\n\n if (!isTargetOption(ev.currentTarget)) {\n if (fieldRef.current) fieldRef.current.focus()\n\n return\n }\n\n setFocusedIndex(index)\n\n onChange(computedProps.value ?? \"\")\n\n if (fieldRef.current) fieldRef.current.focus()\n\n if (customCloseOnSelect ?? generalCloseOnSelect) onClose()\n\n if (omitSelectedValues) onFocusNext()\n },\n [\n isDisabled,\n setFocusedIndex,\n index,\n onChange,\n computedProps.value,\n fieldRef,\n customCloseOnSelect,\n generalCloseOnSelect,\n onClose,\n omitSelectedValues,\n onFocusNext,\n ],\n )\n\n useEffect(() => {\n if (isSelected) onChangeLabel(computedProps.value ?? \"\", false)\n }, [computedProps, isSelected, onChangeLabel])\n\n const getOptionProps: UIPropGetter<\"li\"> = useCallback(\n (props = {}) => {\n const style: CSSProperties = {\n border: \"0px\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n height: \"1px\",\n width: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\",\n }\n\n return {\n ref: mergeRefs(itemRef, ref, register),\n ...omitObject(computedProps, [\"value\"]),\n ...props,\n role: \"select-item\",\n tabIndex: -1,\n style: omitSelectedValues && isSelected ? style : undefined,\n \"data-value\": computedProps.value ?? \"\",\n \"data-focus\": dataAttr(isFocused),\n \"data-disabled\": dataAttr(isDisabled),\n \"aria-checked\": ariaAttr(isSelected),\n \"aria-disabled\": ariaAttr(isDisabled),\n onClick: handlerAll(computedProps.onClick, props.onClick, onClick),\n }\n },\n [\n computedProps,\n isDisabled,\n isFocused,\n isSelected,\n omitSelectedValues,\n onClick,\n ref,\n register,\n ],\n )\n\n return {\n isSelected,\n isFocused,\n customIcon,\n children,\n getOptionProps,\n }\n}\n\nexport type UseSelectOptionReturn = ReturnType<typeof useSelectOption>\n","import { getOwnerDocument, useCallbackRef } from \"@yamada-ui/utils\"\nimport type { RefObject } from \"react\"\nimport { useEffect, useRef } from \"react\"\n\nexport type UseOutsideClickProps = {\n enabled?: boolean\n ref: React.RefObject<HTMLElement>\n handler?: (ev: Event) => void\n}\n\n/**\n * `useOutsideClick` is a custom hook that detects click events outside of an element.\n *\n * @see Docs https://yamada-ui.com/hooks/use-outside-click\n */\nexport const useOutsideClick = ({\n ref,\n handler,\n enabled = true,\n}: UseOutsideClickProps) => {\n const handlerRef = useCallbackRef(handler)\n\n const state = useRef({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false,\n })\n\n useEffect(() => {\n if (!enabled) return\n\n const onPointerDown = (ev: MouseEvent | TouchEvent) => {\n if (isValidEvent(ev, ref)) state.current.isPointerDown = true\n }\n\n const onMouseUp = (ev: MouseEvent) => {\n if (state.current.ignoreEmulatedMouseEvents) {\n state.current.ignoreEmulatedMouseEvents = false\n\n return\n }\n\n if (state.current.isPointerDown && handler && isValidEvent(ev, ref)) {\n state.current.isPointerDown = false\n\n handlerRef(ev)\n }\n }\n\n const onTouchEnd = (ev: TouchEvent) => {\n state.current.ignoreEmulatedMouseEvents = true\n\n if (handler && state.current.isPointerDown && isValidEvent(ev, ref)) {\n state.current.isPointerDown = false\n\n handlerRef(ev)\n }\n }\n\n const doc = getOwnerDocument(ref.current)\n\n doc.addEventListener(\"mousedown\", onPointerDown, true)\n doc.addEventListener(\"mouseup\", onMouseUp, true)\n doc.addEventListener(\"touchstart\", onPointerDown, true)\n doc.addEventListener(\"touchend\", onTouchEnd, true)\n\n return () => {\n doc.removeEventListener(\"mousedown\", onPointerDown, true)\n doc.removeEventListener(\"mouseup\", onMouseUp, true)\n doc.removeEventListener(\"touchstart\", onPointerDown, true)\n doc.removeEventListener(\"touchend\", onTouchEnd, true)\n }\n }, [handler, ref, handlerRef, state, enabled])\n}\n\nconst isValidEvent = (\n ev: MouseEvent | TouchEvent,\n ref: RefObject<HTMLElement>,\n) => {\n const target = ev.target as HTMLElement\n\n if (\"button\" in ev && ev.button > 0) return false\n\n if (target) if (!getOwnerDocument(target).contains(target)) return false\n\n return !ref.current?.contains(target)\n}\n","import type { CSSUIObject, CSSUIProps } from \"@yamada-ui/core\"\nimport { forwardRef } from \"@yamada-ui/core\"\nimport type { MotionProps } from \"@yamada-ui/motion\"\nimport { PopoverContent } from \"@yamada-ui/popover\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useSelectContext, useSelectList } from \"./use-select\"\n\nexport type SelectListProps = MotionProps<\"ul\">\n\nexport const SelectList = forwardRef<SelectListProps, \"ul\">(\n ({ className, w, width, minW, minWidth, ...rest }, ref) => {\n const { styles } = useSelectContext()\n\n const { getListProps } = useSelectList()\n\n w =\n w ?? width ?? ((styles.list?.w ?? styles.list?.width) as CSSUIProps[\"w\"])\n minW =\n minW ??\n minWidth ??\n ((styles.list?.minW ?? styles.list?.minWidth) as CSSUIProps[\"minW\"])\n\n const css: CSSUIObject = { ...styles.list }\n\n return (\n <PopoverContent\n className={cx(\"ui-select__list\", className)}\n w={w}\n minW={minW}\n __css={css}\n {...getListProps(rest, ref)}\n />\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { Popover, PopoverTrigger } from \"@yamada-ui/popover\"\nimport type { PortalProps } from \"@yamada-ui/portal\"\nimport { Portal } from \"@yamada-ui/portal\"\nimport { cx, getValidChildren, handlerAll } from \"@yamada-ui/utils\"\nimport type { CSSProperties, FC, MouseEventHandler, ReactElement } from \"react\"\nimport { cloneElement, useMemo } from \"react\"\nimport type { SelectIconProps } from \"./select-icon\"\nimport { SelectIcon, SelectClearIcon } from \"./select-icon\"\nimport type { SelectListProps } from \"./select-list\"\nimport { SelectList } from \"./select-list\"\nimport type { UseSelectProps } from \"./use-select\"\nimport {\n useSelect,\n SelectDescendantsContextProvider,\n SelectProvider,\n useSelectContext,\n} from \"./use-select\"\nimport type { SelectItem } from \"./\"\nimport { OptionGroup, Option } from \"./\"\n\ntype MultiSelectOptions = {\n /**\n * If provided, generate options based on items.\n */\n items?: SelectItem[]\n /**\n * The custom display value to use.\n */\n component?: FC<{\n value: string | number\n label: string\n index: number\n onRemove: MouseEventHandler<HTMLElement>\n }>\n /**\n * The visual separator between each value.\n *\n * @default ','\n */\n separator?: string\n /**\n * If `true`, display the select clear icon.\n *\n * @default true\n */\n isClearable?: boolean\n /**\n * The border color when the input is focused.\n */\n focusBorderColor?: string\n /**\n * The border color when the input is invalid.\n */\n errorBorderColor?: string\n /**\n * Props for select container element.\n */\n containerProps?: Omit<HTMLUIProps<\"div\">, \"children\">\n /**\n * Props for select list element.\n */\n listProps?: Omit<SelectListProps, \"children\">\n /**\n * Props for select icon element.\n */\n iconProps?: SelectIconProps\n /**\n * Props for select clear icon element.\n */\n clearIconProps?: SelectIconProps\n /**\n * Props to be forwarded to the portal component.\n *\n * @default '{ isDisabled: true }'\n */\n portalProps?: Omit<PortalProps, \"children\">\n}\n\nexport type MultiSelectProps = ThemeProps<\"MultiSelect\"> &\n Omit<UseSelectProps<string[]>, \"placeholderInOptions\" | \"isEmpty\"> &\n MultiSelectOptions\n\n/**\n * `MultiSelect` is a component used for allowing users to select multiple values from a list of options.\n *\n * @see Docs https://yamada-ui.com/components/forms/multi-select\n */\nexport const MultiSelect = forwardRef<MultiSelectProps, \"div\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"MultiSelect\", props)\n let {\n className,\n defaultValue = [],\n component,\n separator,\n isClearable = true,\n items = [],\n color,\n h,\n height,\n minH,\n minHeight,\n closeOnSelect = false,\n containerProps,\n listProps,\n iconProps,\n clearIconProps,\n portalProps = { isDisabled: true },\n children,\n ...computedProps\n } = omitThemeProps(mergedProps)\n\n const validChildren = getValidChildren(children)\n let computedChildren: ReactElement[] = []\n\n if (!validChildren.length && items.length) {\n computedChildren = items\n .map((item, i) => {\n if (\"value\" in item) {\n const { label, value, ...props } = item\n\n return (\n <Option key={i} value={value} {...props}>\n {label}\n </Option>\n )\n } else if (\"items\" in item) {\n const { label, items = [], ...props } = item\n\n return (\n <OptionGroup\n key={i}\n label={label ?? \"\"}\n {...(props as HTMLUIProps<\"ul\">)}\n >\n {items.map(({ label, value, ...props }, i) => (\n <Option key={i} value={value} {...props}>\n {label}\n </Option>\n ))}\n </OptionGroup>\n )\n }\n })\n .filter(Boolean) as ReactElement[]\n }\n\n let isEmpty = !validChildren.length && !computedChildren.length\n\n const {\n value,\n descendants,\n formControlProps,\n getPopoverProps,\n getContainerProps,\n getFieldProps,\n placeholder,\n onClear,\n ...rest\n } = useSelect<string[]>({\n ...computedProps,\n defaultValue,\n placeholderInOptions: false,\n closeOnSelect,\n isEmpty,\n })\n\n h ??= height\n minH ??= minHeight\n\n const css: CSSUIObject = {\n w: \"100%\",\n h: \"fit-content\",\n color,\n ...styles.container,\n }\n\n return (\n <SelectDescendantsContextProvider value={descendants}>\n <SelectProvider value={{ ...rest, value, placeholder, styles }}>\n <Popover {...getPopoverProps()}>\n <ui.div\n className={cx(\"ui-multi-select\", className)}\n __css={css}\n {...getContainerProps(containerProps)}\n >\n <ui.div\n className=\"ui-multi-select__inner\"\n __css={{ position: \"relative\", ...styles.inner }}\n >\n <PopoverTrigger>\n <MultiSelectField\n component={component}\n separator={separator}\n h={h}\n minH={minH}\n {...getFieldProps({}, ref)}\n />\n </PopoverTrigger>\n\n {isClearable && value.length ? (\n <SelectClearIcon\n {...clearIconProps}\n onClick={handlerAll(clearIconProps?.onClick, onClear)}\n {...formControlProps}\n />\n ) : (\n <SelectIcon {...iconProps} {...formControlProps} />\n )}\n </ui.div>\n\n {!isEmpty ? (\n <Portal {...portalProps}>\n <SelectList {...listProps}>\n {children ?? computedChildren}\n </SelectList>\n </Portal>\n ) : null}\n </ui.div>\n </Popover>\n </SelectProvider>\n </SelectDescendantsContextProvider>\n )\n})\n\ntype MultiSelectFieldProps = HTMLUIProps<\"div\"> &\n Pick<MultiSelectOptions, \"component\" | \"separator\">\n\nconst MultiSelectField = forwardRef<MultiSelectFieldProps, \"div\">(\n (\n {\n className,\n component,\n separator = \",\",\n isTruncated,\n lineClamp = 1,\n h,\n minH,\n ...rest\n },\n ref,\n ) => {\n const { value, label, onChange, placeholder, styles } = useSelectContext()\n\n const cloneChildren = useMemo(() => {\n if (!label?.length)\n return <ui.span lineClamp={lineClamp}>{placeholder}</ui.span>\n\n if (component) {\n return (\n <ui.span isTruncated={isTruncated} lineClamp={lineClamp}>\n {(label as string[]).map((label, index) => {\n const onRemove: MouseEventHandler<HTMLElement> = (e) => {\n e.stopPropagation()\n\n onChange(value[index])\n }\n\n const el = component({\n value: value[index],\n label,\n index,\n onRemove,\n }) as ReactElement\n\n const style: CSSProperties = {\n marginBlockStart: \"0.125rem\",\n marginBlockEnd: \"0.125rem\",\n marginInlineEnd: \"0.25rem\",\n }\n\n return el\n ? cloneElement(el as ReactElement, { key: index, style })\n : null\n })}\n </ui.span>\n )\n } else {\n return (\n <ui.span isTruncated={isTruncated} lineClamp={lineClamp}>\n {(label as string[]).map((value, index) => {\n const isLast = label.length === index + 1\n\n return (\n <ui.span\n key={index}\n display=\"inline-block\"\n me=\"0.25rem\"\n dangerouslySetInnerHTML={{\n __html: `${value}${!isLast ? separator : \"\"}`,\n }}\n />\n )\n })}\n </ui.span>\n )\n }\n }, [\n label,\n isTruncated,\n lineClamp,\n onChange,\n placeholder,\n separator,\n component,\n value,\n ])\n\n const css: CSSUIObject = {\n pe: \"2rem\",\n h,\n minH,\n display: \"flex\",\n alignItems: \"center\",\n ...styles.field,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-multi-select__field\", className)}\n __css={css}\n py={label?.length && component ? \"0.125rem\" : undefined}\n {...rest}\n >\n {cloneChildren}\n </ui.div>\n )\n },\n)\n","import type { HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { UseSelectOptionGroupProps } from \"./use-select\"\nimport { useSelectContext, useSelectOptionGroup } from \"./use-select\"\n\ntype OptionGroupOptions = UseSelectOptionGroupProps\n\nexport type OptionGroupProps = HTMLUIProps<\"ul\"> & OptionGroupOptions\n\nexport const OptionGroup = forwardRef<OptionGroupProps, \"ul\">(\n (\n { className, color, h, height, minH, minHeight, children, ...rest },\n ref,\n ) => {\n const { styles } = useSelectContext()\n const { label, getContainerProps, getGroupProps } =\n useSelectOptionGroup(rest)\n\n h ??= height\n minH ??= minHeight\n\n return (\n <ui.li\n className={cx(\"ui-select__item\", \"ui-select__item--group\", className)}\n __css={{ w: \"100%\", h: \"fit-content\", color }}\n {...getContainerProps()}\n >\n <ui.span\n className=\"ui-select__item__group-label\"\n __css={styles.groupLabel}\n lineClamp={1}\n >\n {label}\n </ui.span>\n\n <ui.ul\n {...getGroupProps({}, ref)}\n className=\"ui-select__item__group\"\n __css={{ h, minH, ...styles.group }}\n >\n {children}\n </ui.ul>\n </ui.li>\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ReactElement, FC } from \"react\"\nimport type { UseSelectOptionProps } from \"./use-select\"\nimport { useSelectContext, useSelectOption } from \"./use-select\"\n\ntype OptionOptions = { icon?: ReactElement }\n\nexport type OptionProps = UseSelectOptionProps & OptionOptions\n\nexport const Option = forwardRef<OptionProps, \"li\">(\n ({ className, icon, ...rest }, ref) => {\n const { styles } = useSelectContext()\n const { isSelected, customIcon, children, getOptionProps } =\n useSelectOption(ref, rest)\n\n icon ??= customIcon\n\n const css: CSSUIObject = {\n textDecoration: \"none\",\n color: \"inherit\",\n userSelect: \"none\",\n display: \"flex\",\n width: \"100%\",\n alignItems: \"center\",\n textAlign: \"start\",\n flex: \"0 0 auto\",\n outline: 0,\n gap: \"0.75rem\",\n ...styles.item,\n }\n\n return (\n <ui.li\n className={cx(\"ui-select__item\", className)}\n __css={css}\n {...getOptionProps()}\n >\n {icon !== null ? (\n <OptionIcon opacity={isSelected ? 1 : 0}>\n {icon || <CheckIcon />}\n </OptionIcon>\n ) : null}\n\n <ui.span style={{ flex: 1 }} data-label>\n {children}\n </ui.span>\n </ui.li>\n )\n },\n)\n\ntype OptionIconProps = HTMLUIProps<\"span\">\n\nconst OptionIcon = forwardRef<OptionIconProps, \"span\">(\n ({ className, ...rest }, ref) => {\n const { styles } = useSelectContext()\n\n const css: CSSUIObject = {\n flexShrink: 0,\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n fontSize: \"0.85em\",\n ...styles.itemIcon,\n }\n\n return (\n <ui.span\n ref={ref}\n className={cx(\"ui-select__item__icon\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nconst CheckIcon: FC = () => (\n <svg viewBox=\"0 0 14 14\" width=\"1em\" height=\"1em\">\n <polygon\n fill=\"currentColor\"\n points=\"5.5 11.9993304 14 3.49933039 12.5 2 5.5 8.99933039 1.5 4.9968652 0 6.49933039\"\n />\n </svg>\n)\n","import type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n CSSUIProps,\n UIPropGetter,\n RequiredUIPropGetter,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport {\n useFormControlProps,\n formControlProperties,\n getFormControlProperties,\n} from \"@yamada-ui/form-control\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { useLatestRef } from \"@yamada-ui/use-latest-ref\"\nimport { usePanEvent } from \"@yamada-ui/use-pan-event\"\nimport { useSize } from \"@yamada-ui/use-size\"\nimport {\n createContext,\n cx,\n omitObject,\n pickObject,\n useCallbackRef,\n valueToPercent,\n clampNumber,\n roundNumberToStep,\n useUpdateEffect,\n mergeRefs,\n dataAttr,\n handlerAll,\n percentToValue,\n getValidChildren,\n findChildren,\n isEmpty,\n omitChildren,\n includesChildren,\n} from \"@yamada-ui/utils\"\nimport type { CSSProperties, KeyboardEvent, KeyboardEventHandler } from \"react\"\nimport { useCallback, useRef, useState } from \"react\"\n\nexport type UseSliderProps = FormControlOptions & {\n /**\n * The base `id` to use for the slider.\n */\n id?: string\n /**\n * The name attribute of the hidden `input` field.\n * This is particularly useful in forms.\n */\n name?: string\n /**\n * The minimum allowed value of the slider. Cannot be greater than max.\n *\n * @default 0\n */\n min?: number\n /**\n * The maximum allowed value of the slider. Cannot be less than min.\n *\n * @default 100\n */\n max?: number\n /**\n * The step in which increments or decrements have to be made.\n *\n * @default 1\n */\n step?: number\n /**\n * The value of the slider.\n */\n value?: number\n /**\n * The initial value of the slider.\n */\n defaultValue?: number\n /**\n * The orientation of the slider.\n *\n * @default 'horizontal'\n */\n orientation?: \"horizontal\" | \"vertical\"\n /**\n * If `true`, the value will be incremented or decremented in reverse.\n */\n isReversed?: boolean\n /**\n * If `false`, the slider handle will not capture focus when value changes.\n *\n * @default true\n */\n focusThumbOnChange?: boolean\n /**\n * Function called when the user starts selecting a new value.\n */\n onChangeStart?: (value: number) => void\n /**\n * Function called when the user is done selecting a new value.\n */\n onChangeEnd?: (value: number) => void\n /**\n * Function called whenever the slider value changes.\n */\n onChange?: (value: number) => void\n}\n\nexport const useSlider = ({\n focusThumbOnChange = true,\n ...props\n}: UseSliderProps) => {\n if (!focusThumbOnChange) props.isReadOnly = true\n\n let {\n id,\n name,\n min = 0,\n max = 100,\n step = 1,\n defaultValue,\n orientation = \"horizontal\",\n isReversed,\n required,\n disabled,\n readOnly,\n onChange,\n ...rest\n } = useFormControlProps(props)\n\n if (max < min)\n throw new Error(\"Do not assign a number less than 'min' to 'max'\")\n\n const onChangeStart = useCallbackRef(rest.onChangeStart)\n const onChangeEnd = useCallbackRef(rest.onChangeEnd)\n\n const [computedValue, setValue] = useControllableState({\n value: rest.value,\n defaultValue: defaultValue ?? min + (max - min) / 2,\n onChange,\n })\n\n const [isDragging, setDragging] = useState(false)\n const [isFocused, setFocused] = useState(false)\n const isInteractive = !(disabled || readOnly)\n\n const tenStep = (max - min) / 10\n const oneStep = step || (max - min) / 100\n\n const value = clampNumber(computedValue, min, max)\n const reversedValue = max - value + min\n const thumbValue = isReversed ? reversedValue : value\n const thumbPercent = valueToPercent(thumbValue, min, max)\n\n const isVertical = orientation === \"vertical\"\n\n const latestRef = useLatestRef({\n min,\n max,\n step,\n value,\n isInteractive,\n focusThumbOnChange,\n })\n\n const eventSourceRef = useRef<\"pointer\" | \"keyboard\" | null>(null)\n const containerRef = useRef<HTMLElement>(null)\n const trackRef = useRef<HTMLElement>(null)\n const thumbRef = useRef<HTMLElement>(null)\n\n const thumbSize = useSize(thumbRef)\n\n usePanEvent(containerRef, {\n onSessionStart: (ev) => {\n const { isInteractive, value } = latestRef.current\n\n if (!isInteractive) return\n\n setDragging(true)\n focusThumb()\n setValueFromPointer(ev)\n onChangeStart(value)\n },\n onSessionEnd: () => {\n const { isInteractive, value } = latestRef.current\n\n if (!isInteractive) return\n\n setDragging(false)\n onChangeEnd(value)\n },\n onMove: (ev) => {\n const { isInteractive } = latestRef.current\n\n if (!isInteractive) return\n\n setValueFromPointer(ev)\n },\n })\n\n const getValueFromPointer = useCallback(\n (ev: any) => {\n if (!trackRef.current) return\n\n const { min, max, step } = latestRef.current\n\n eventSourceRef.current = \"pointer\"\n\n const { bottom, left, height, width } =\n trackRef.current.getBoundingClientRect()\n const { clientX, clientY } = ev.touches?.[0] ?? ev\n\n const diff = isVertical ? bottom - clientY : clientX - left\n\n const length = isVertical ? height : width\n\n let percent = diff / length\n\n if (isReversed) percent = 1 - percent\n\n let nextValue = percentToValue(percent, min, max)\n\n if (step) nextValue = parseFloat(roundNumberToStep(nextValue, min, step))\n\n nextValue = clampNumber(nextValue, min, max)\n\n return nextValue\n },\n [isVertical, isReversed, latestRef],\n )\n\n const setValueFromPointer = (ev: MouseEvent | TouchEvent | PointerEvent) => {\n const { value } = latestRef.current\n const nextValue = getValueFromPointer(ev)\n\n if (nextValue != null && nextValue !== value) setValue(nextValue)\n }\n\n const focusThumb = useCallback(() => {\n const { focusThumbOnChange } = latestRef.current\n\n if (focusThumbOnChange) setTimeout(() => thumbRef.current?.focus())\n }, [latestRef])\n\n const constrain = useCallback(\n (value: number) => {\n const { isInteractive, min, max } = latestRef.current\n\n if (!isInteractive) return\n\n value = parseFloat(roundNumberToStep(value, min, oneStep))\n value = clampNumber(value, min, max)\n\n setValue(value)\n },\n [oneStep, setValue, latestRef],\n )\n\n const stepUp = useCallback(\n (step = oneStep) => constrain(isReversed ? value - step : value + step),\n [constrain, isReversed, oneStep, value],\n )\n\n const stepDown = useCallback(\n (step = oneStep) => constrain(isReversed ? value + step : value - step),\n [constrain, isReversed, oneStep, value],\n )\n\n const reset = useCallback(\n () => constrain(defaultValue || 0),\n [constrain, defaultValue],\n )\n\n const stepTo = useCallback((value: number) => constrain(value), [constrain])\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLElement>) => {\n const { min, max } = latestRef.current\n\n const actions: Record<string, KeyboardEventHandler> = {\n ArrowRight: () => stepUp(),\n ArrowUp: () => stepUp(),\n ArrowLeft: () => stepDown(),\n ArrowDown: () => stepDown(),\n PageUp: () => stepUp(tenStep),\n PageDown: () => stepDown(tenStep),\n Home: () => constrain(min),\n End: () => constrain(max),\n }\n\n const action = actions[ev.key]\n\n if (!action) return\n\n ev.preventDefault()\n ev.stopPropagation()\n\n action(ev)\n\n eventSourceRef.current = \"keyboard\"\n },\n [constrain, latestRef, stepDown, stepUp, tenStep],\n )\n\n useUpdateEffect(() => {\n const { value } = latestRef.current\n\n focusThumb()\n\n if (eventSourceRef.current === \"keyboard\") onChangeEnd(value)\n }, [value, onChangeEnd])\n\n const getContainerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const { width: w, height: h } = thumbSize ?? { width: 0, height: 0 }\n\n const style: CSSProperties = {\n ...props.style,\n position: \"relative\",\n userSelect: \"none\",\n touchAction: \"none\",\n WebkitTapHighlightColor: \"rgba(0, 0, 0, 0)\",\n outline: 0,\n ...(isVertical\n ? { paddingLeft: w / 2, paddingRight: w / 2 }\n : { paddingTop: h / 2, paddingBottom: h / 2 }),\n }\n\n return {\n ...omitObject(rest, [\n \"aria-readonly\",\n \"value\",\n \"onChangeStart\",\n \"onChangeEnd\",\n ]),\n ...props,\n ref: mergeRefs(ref, containerRef),\n tabIndex: -1,\n style,\n }\n },\n [isVertical, rest, thumbSize],\n )\n\n const getInputProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...pickObject(rest, formControlProperties),\n ...props,\n id,\n ref,\n type: \"hidden\",\n name,\n value,\n required,\n disabled,\n readOnly,\n }),\n [disabled, id, name, readOnly, required, rest, value],\n )\n\n const getTrackProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const style: CSSProperties = {\n ...props.style,\n position: \"absolute\",\n ...(isVertical\n ? {\n left: \"50%\",\n transform: \"translateX(-50%)\",\n height: \"100%\",\n }\n : {\n top: \"50%\",\n transform: \"translateY(-50%)\",\n width: \"100%\",\n }),\n }\n\n return {\n ...pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n ),\n ...props,\n ref: mergeRefs(ref, trackRef),\n style,\n }\n },\n [isVertical, rest],\n )\n\n const getFilledTrackProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const n = Math.abs(isReversed ? 100 - thumbPercent : thumbPercent)\n\n const style: CSSProperties = {\n ...props.style,\n position: \"absolute\",\n ...(isVertical\n ? {\n left: \"50%\",\n transform: \"translateX(-50%)\",\n height: `${n}%`,\n ...(isReversed ? { top: \"0%\" } : { bottom: \"0%\" }),\n }\n : {\n top: \"50%\",\n transform: \"translateY(-50%)\",\n width: `${n}%`,\n ...(isReversed ? { right: \"0%\" } : { left: \"0%\" }),\n }),\n }\n\n return {\n ...pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n ),\n ...props,\n ref,\n style,\n }\n },\n [isReversed, isVertical, rest, thumbPercent],\n )\n\n const getMarkProps: RequiredUIPropGetter<\"div\", { value: number }> =\n useCallback(\n (props, ref = null) => {\n let n = valueToPercent(props.value, min, max)\n n = isReversed ? 100 - n : n\n\n const style: CSSProperties = {\n ...props.style,\n position: \"absolute\",\n pointerEvents: \"none\",\n ...(isVertical ? { bottom: `${n}%` } : { left: `${n}%` }),\n }\n\n return {\n ...pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n ),\n ...props,\n ref,\n \"aria-hidden\": true,\n \"data-invalid\": dataAttr(props.value < min || max < props.value),\n \"data-highlighted\": dataAttr(props.value <= value),\n style,\n }\n },\n [isReversed, isVertical, max, min, rest, value],\n )\n\n const getThumbProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const n = thumbPercent\n const { width: w, height: h } = thumbSize ?? { width: 0, height: 0 }\n\n const style: CSSProperties = {\n ...props.style,\n position: \"absolute\",\n userSelect: \"none\",\n touchAction: \"none\",\n ...(isVertical\n ? { bottom: `calc(${n}% - ${h / 2}px)` }\n : { left: `calc(${n}% - ${w / 2}px)` }),\n }\n\n return {\n \"aria-label\": \"Slider thumb\",\n ...pickObject(rest, formControlProperties),\n ...props,\n ref: mergeRefs(ref, thumbRef),\n tabIndex: isInteractive && focusThumbOnChange ? 0 : undefined,\n role: \"slider\",\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": value,\n \"data-active\": dataAttr(isDragging && focusThumbOnChange),\n \"aria-orientation\": orientation,\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n onFocus: handlerAll(props.onFocus, rest.onFocus, () =>\n setFocused(true),\n ),\n onBlur: handlerAll(props.onBlur, rest.onBlur, () => setFocused(false)),\n style,\n }\n },\n [\n min,\n max,\n value,\n focusThumbOnChange,\n isDragging,\n isInteractive,\n isVertical,\n onKeyDown,\n orientation,\n rest,\n thumbPercent,\n thumbSize,\n ],\n )\n\n return {\n value,\n isFocused,\n isDragging,\n isVertical,\n stepUp,\n stepDown,\n reset,\n stepTo,\n getContainerProps,\n getInputProps,\n getTrackProps,\n getFilledTrackProps,\n getMarkProps,\n getThumbProps,\n }\n}\n\nexport type ReturnUseSlider = ReturnType<typeof useSlider>\n\ntype SliderContext = Pick<\n ReturnUseSlider,\n | \"isVertical\"\n | \"getTrackProps\"\n | \"getFilledTrackProps\"\n | \"getMarkProps\"\n | \"getThumbProps\"\n> &\n Omit<SliderOptions, \"input\"> & { styles: Record<string, CSSUIObject> }\n\nconst [SliderProvider, useSliderContext] = createContext<SliderContext>({\n name: \"SliderContext\",\n errorMessage: `useSliderContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Slider />\" `,\n})\n\ntype SliderOptions = {\n /**\n * Props for slider input element.\n */\n inputProps?: HTMLUIProps<\"input\">\n /**\n * Props for slider track element.\n */\n trackProps?: SliderTrackProps\n /**\n * Props for slider filled track element.\n */\n filledTrackProps?: SliderFilledTrackProps\n /**\n * Props for slider thumb element.\n */\n thumbProps?: SliderThumbProps\n /**\n * The CSS `color` property. Used in `color` of track element.\n */\n trackColor?: CSSUIProps[\"color\"]\n /**\n * The CSS `color` property. Used in `color` of filled track element.\n */\n filledTrackColor?: CSSUIProps[\"color\"]\n /**\n * The CSS `height` property. Used in `height` of track element.\n */\n trackSize?: CSSUIProps[\"h\"]\n /**\n * The CSS `background` property. Used in `background` of thumb element.\n */\n thumbColor?: CSSUIProps[\"bg\"]\n /**\n * The CSS `box-size` property. Used in `box-size` of thumb element.\n */\n thumbSize?: CSSUIProps[\"boxSize\"]\n}\n\nexport type SliderProps = Omit<HTMLUIProps<\"div\">, keyof UseSliderProps> &\n ThemeProps<\"Slider\"> &\n UseSliderProps &\n SliderOptions\n\n/**\n * `Slider` is a component used for allowing users to select a value from a range.\n *\n * @see Docs https://yamada-ui.com/components/forms/slider\n */\nexport const Slider = forwardRef<SliderProps, \"input\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Slider\", props)\n const {\n className,\n children,\n inputProps,\n trackProps,\n filledTrackProps,\n thumbProps,\n trackColor,\n filledTrackColor,\n trackSize,\n thumbColor,\n thumbSize,\n ...rest\n } = omitThemeProps(mergedProps)\n const {\n isVertical,\n getContainerProps,\n getInputProps,\n getTrackProps,\n getFilledTrackProps,\n getMarkProps,\n getThumbProps,\n } = useSlider(rest)\n\n const css: CSSUIObject = { ...styles.container }\n\n const validChildren = getValidChildren(children)\n\n const [customSliderTrack] = findChildren(validChildren, SliderTrack)\n const [customSliderThumb] = findChildren(validChildren, SliderThumb)\n\n const hasSliderThumb = includesChildren(validChildren, SliderThumb)\n\n const cloneChildren = !isEmpty(validChildren)\n ? omitChildren(validChildren, SliderTrack, SliderThumb)\n : children\n\n return (\n <SliderProvider\n value={{\n isVertical,\n getTrackProps,\n getFilledTrackProps,\n getMarkProps,\n getThumbProps,\n trackProps,\n trackColor,\n trackSize,\n filledTrackProps,\n filledTrackColor,\n thumbProps,\n thumbColor,\n thumbSize,\n styles,\n }}\n >\n <ui.div\n className={cx(\"ui-slider\", className)}\n __css={css}\n {...getContainerProps()}\n >\n <ui.input {...getInputProps(inputProps, ref)} />\n\n {customSliderTrack ?? <SliderTrack />}\n\n {cloneChildren}\n\n {customSliderThumb ?? (!hasSliderThumb ? <SliderThumb /> : null)}\n </ui.div>\n </SliderProvider>\n )\n})\n\nexport type SliderTrackProps = HTMLUIProps<\"div\"> &\n Pick<SliderOptions, \"filledTrackProps\">\n\nexport const SliderTrack = forwardRef<SliderTrackProps, \"div\">(\n ({ className, children, filledTrackProps, ...rest }, ref) => {\n const {\n styles,\n trackProps,\n trackColor,\n trackSize,\n isVertical,\n getTrackProps,\n } = useSliderContext()\n\n const css: CSSUIObject = { ...styles.track }\n\n return (\n <ui.div\n className={cx(\"ui-slider__track\", className)}\n __css={css}\n {...getTrackProps(\n {\n ...(trackColor ? { bg: trackColor } : {}),\n ...(trackSize\n ? isVertical\n ? { w: trackSize }\n : { h: trackSize }\n : {}),\n ...trackProps,\n ...rest,\n },\n ref,\n )}\n >\n {children ?? <SliderFilledTrack {...filledTrackProps} />}\n </ui.div>\n )\n },\n)\n\nexport type SliderFilledTrackProps = HTMLUIProps<\"div\">\n\nexport const SliderFilledTrack = forwardRef<SliderFilledTrackProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const { styles, filledTrackProps, filledTrackColor, getFilledTrackProps } =\n useSliderContext()\n\n const css: CSSUIObject = { ...styles.filledTrack }\n\n return (\n <ui.div\n className={cx(\"ui-slider__track-filled\", className)}\n __css={css}\n {...getFilledTrackProps(\n {\n ...(filledTrackColor ? { bg: filledTrackColor } : {}),\n ...filledTrackProps,\n ...rest,\n },\n ref,\n )}\n />\n )\n },\n)\n\nexport type SliderMarkProps = HTMLUIProps<\"div\"> & { value: number }\n\nexport const SliderMark = forwardRef<SliderMarkProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const { styles, getMarkProps } = useSliderContext()\n\n const css: CSSUIObject = {\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n ...styles.mark,\n }\n\n return (\n <ui.div\n className={cx(\"ui-slider__mark\", className)}\n __css={css}\n {...getMarkProps(rest, ref)}\n />\n )\n },\n)\n\nexport type SliderThumbProps = HTMLUIProps<\"div\">\n\nexport const SliderThumb = forwardRef<SliderThumbProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const { styles, thumbProps, thumbColor, thumbSize, getThumbProps } =\n useSliderContext()\n\n const css: CSSUIObject = { ...styles.thumb }\n\n return (\n <ui.div\n className={cx(\"ui-slider__thumb\", className)}\n __css={css}\n {...getThumbProps(\n {\n ...(thumbColor ? { bg: thumbColor } : {}),\n ...(thumbSize ? { boxSize: thumbSize } : {}),\n ...thumbProps,\n ...rest,\n },\n ref,\n )}\n />\n )\n },\n)\n","import type { MutableRefObject } from \"react\"\nimport { useRef } from \"react\"\n\nexport const useLatestRef = <T extends any>(value: T) => {\n const ref = useRef<T | null>(null)\n\n ref.current = value\n\n return ref as MutableRefObject<T>\n}\n","import { useLatestRef } from \"@yamada-ui/use-latest-ref\"\nimport type { AnyPointerEvent, Point, PointerEventInfo } from \"@yamada-ui/utils\"\nimport {\n addPointerEvent,\n getEventPoint,\n isMultiTouchEvent,\n} from \"@yamada-ui/utils\"\nimport sync, { cancelSync, getFrameData } from \"framesync\"\nimport type { RefObject } from \"react\"\nimport { useEffect, useRef } from \"react\"\n\nexport type PanEventInfo = {\n point: Point\n delta: Point\n offset: Point\n velocity: Point\n}\n\ntype PanEventHandler = (event: AnyPointerEvent, info: PanEventInfo) => void\n\ntype TimestampedPoint = Point & { timestamp: number }\n\ntype PanEventHistory = TimestampedPoint[]\n\ntype PanEventHandlers = {\n onSessionStart: PanEventHandler\n onSessionEnd: PanEventHandler\n onStart: PanEventHandler\n onMove: PanEventHandler\n onEnd: PanEventHandler\n}\n\nconst subtract = (a: Point, b: Point) => ({ x: a.x - b.x, y: a.y - b.y })\n\nconst getPanInfo = (info: PointerEventInfo, history: PanEventHistory) => ({\n point: info.point,\n delta: subtract(info.point, history[history.length - 1]),\n offset: subtract(info.point, history[0]),\n velocity: getVelocity(history, 0.1),\n})\n\nconst toMilliseconds = (v: number) => v * 1000\n\nconst getVelocity = (history: TimestampedPoint[], timeDelta: number): Point => {\n if (history.length < 2) return { x: 0, y: 0 }\n\n let i = history.length - 1\n let timestampedPoint: TimestampedPoint | null = null\n\n const lastPoint = history[history.length - 1]\n\n while (i >= 0) {\n timestampedPoint = history[i]\n\n if (\n lastPoint.timestamp - timestampedPoint.timestamp >\n toMilliseconds(timeDelta)\n ) {\n break\n }\n\n i--\n }\n\n if (!timestampedPoint) return { x: 0, y: 0 }\n\n const time = (lastPoint.timestamp - timestampedPoint.timestamp) / 1000\n\n if (time === 0) return { x: 0, y: 0 }\n\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n }\n\n if (currentVelocity.x === Infinity) currentVelocity.x = 0\n\n if (currentVelocity.y === Infinity) currentVelocity.y = 0\n\n return currentVelocity\n}\n\nconst pipe =\n <Y extends any>(...fns: ((a: Y) => Y)[]) =>\n (v: Y) =>\n fns.reduce((a, b) => b(a), v)\n\nconst distance1D = (a: number, b: number) => Math.abs(a - b)\n\nconst isPoint = (point: any): point is { x: number; y: number } =>\n \"x\" in point && \"y\" in point\n\nconst distance = <Y extends Point | number>(a: Y, b: Y) => {\n if (typeof a === \"number\" && typeof b === \"number\") return distance1D(a, b)\n\n if (isPoint(a) && isPoint(b)) {\n const xDelta = distance1D(a.x, b.x)\n const yDelta = distance1D(a.y, b.y)\n\n return Math.sqrt(xDelta ** 2 + yDelta ** 2)\n }\n\n return 0\n}\n\nconst panEvent = (\n ev: AnyPointerEvent,\n handlers: Partial<PanEventHandlers>,\n threshold: number = 3,\n) => {\n if (isMultiTouchEvent(ev)) return\n\n const win = ev.view ?? window\n const info = { point: getEventPoint(ev) }\n const { timestamp } = getFrameData()\n const { onSessionStart } = handlers\n\n const history: PanEventHistory = [{ ...info.point, timestamp }]\n\n let startEvent: AnyPointerEvent | null = null\n let lastEvent: AnyPointerEvent | null = null\n let lastEventInfo: PointerEventInfo | null = null\n\n ev.stopPropagation()\n ev.preventDefault()\n\n onSessionStart?.(ev, getPanInfo(info, history))\n\n const updatePoint = () => {\n if (!(lastEvent && lastEventInfo)) return\n\n const info = getPanInfo(lastEventInfo, history)\n\n const isPanStarted = startEvent !== null\n\n const isDistancePastThreshold =\n distance(info.offset, { x: 0, y: 0 }) >= threshold\n\n if (!isPanStarted && !isDistancePastThreshold) return\n\n const { timestamp } = getFrameData()\n\n history.push({ ...info.point, timestamp })\n\n const { onStart, onMove } = handlers\n\n if (!isPanStarted) {\n onStart?.(lastEvent, info)\n\n startEvent = lastEvent\n }\n\n onMove?.(lastEvent, info)\n }\n\n const onPointerMove = (ev: AnyPointerEvent, info: PointerEventInfo) => {\n lastEvent = ev\n lastEventInfo = info\n\n sync.update(updatePoint, true)\n }\n\n const onPointerUp = (event: AnyPointerEvent, info: PointerEventInfo) => {\n const panInfo = getPanInfo(info, history)\n const { onEnd, onSessionEnd } = handlers\n\n onSessionEnd?.(event, panInfo)\n\n end()\n\n if (!onEnd || !startEvent) return\n\n onEnd?.(event, panInfo)\n }\n\n const updateHandlers = (newHandlers: Partial<PanEventHandlers>) => {\n handlers = newHandlers\n }\n\n let removeListeners = pipe(\n addPointerEvent(win, \"pointermove\", onPointerMove),\n addPointerEvent(win, \"pointerup\", onPointerUp),\n addPointerEvent(win, \"pointercancel\", onPointerUp),\n )\n\n const end = () => {\n removeListeners?.()\n\n cancelSync.update(updatePoint)\n }\n\n return {\n updateHandlers,\n end,\n }\n}\n\ntype ReturnPanEvent = ReturnType<typeof panEvent>\n\nexport type UsePanEventProps = {\n onMove?: PanEventHandler\n onStart?: PanEventHandler\n onEnd?: PanEventHandler\n onSessionStart?: PanEventHandler\n onSessionEnd?: PanEventHandler\n threshold?: number\n}\n\nexport const usePanEvent = (\n ref: RefObject<HTMLElement>,\n {\n onMove,\n onStart,\n onEnd,\n onSessionStart,\n onSessionEnd,\n threshold,\n }: UsePanEventProps,\n) => {\n const hasPanEvents =\n !!onMove || !!onStart || !!onEnd || !!onSessionStart || !!onSessionEnd\n\n const panSession = useRef<ReturnPanEvent | null>(null)\n\n const handlersRef = useLatestRef<Partial<PanEventHandlers>>({\n onSessionStart,\n onSessionEnd,\n onStart,\n onMove,\n onEnd: (event, info) => {\n panSession.current = null\n\n onEnd?.(event, info)\n },\n })\n\n useEffect(() => {\n panSession.current?.updateHandlers(handlersRef.current)\n })\n\n useEffect(() => {\n const node = ref.current\n\n if (!node || !hasPanEvents) return\n\n const onPointerDown = (event: AnyPointerEvent) => {\n panSession.current = panEvent(event, handlersRef.current, threshold)\n }\n\n return addPointerEvent(node, \"pointerdown\", onPointerDown)\n }, [ref, hasPanEvents, handlersRef, threshold])\n\n useEffect(() => {\n return () => {\n panSession.current?.end()\n panSession.current = null\n }\n }, [])\n}\n","const defaultTimestep = (1 / 60) * 1000;\nconst getCurrentTime = typeof performance !== \"undefined\"\n ? () => performance.now()\n : () => Date.now();\nconst onNextFrame = typeof window !== \"undefined\"\n ? (callback) => window.requestAnimationFrame(callback)\n : (callback) => setTimeout(() => callback(getCurrentTime()), defaultTimestep);\n\nexport { defaultTimestep, onNextFrame };\n","function createRenderStep(runNextFrame) {\n let toRun = [];\n let toRunNextFrame = [];\n let numToRun = 0;\n let isProcessing = false;\n let flushNextFrame = false;\n const toKeepAlive = new WeakSet();\n const step = {\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const buffer = addToCurrentFrame ? toRun : toRunNextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (buffer.indexOf(callback) === -1) {\n buffer.push(callback);\n if (addToCurrentFrame && isProcessing)\n numToRun = toRun.length;\n }\n return callback;\n },\n cancel: (callback) => {\n const index = toRunNextFrame.indexOf(callback);\n if (index !== -1)\n toRunNextFrame.splice(index, 1);\n toKeepAlive.delete(callback);\n },\n process: (frameData) => {\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [toRun, toRunNextFrame] = [toRunNextFrame, toRun];\n toRunNextFrame.length = 0;\n numToRun = toRun.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = toRun[i];\n callback(frameData);\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n }\n }\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","import { onNextFrame, defaultTimestep } from './on-next-frame.mjs';\nimport { createRenderStep } from './create-render-step.mjs';\n\nconst maxElapsed = 40;\nlet useDefaultElapsed = true;\nlet runNextFrame = false;\nlet isProcessing = false;\nconst frame = {\n delta: 0,\n timestamp: 0,\n};\nconst stepsOrder = [\n \"read\",\n \"update\",\n \"preRender\",\n \"render\",\n \"postRender\",\n];\nconst steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(() => (runNextFrame = true));\n return acc;\n}, {});\nconst sync = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n startLoop();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n}, {});\nconst cancelSync = stepsOrder.reduce((acc, key) => {\n acc[key] = steps[key].cancel;\n return acc;\n}, {});\nconst flushSync = stepsOrder.reduce((acc, key) => {\n acc[key] = () => steps[key].process(frame);\n return acc;\n}, {});\nconst processStep = (stepId) => steps[stepId].process(frame);\nconst processFrame = (timestamp) => {\n runNextFrame = false;\n frame.delta = useDefaultElapsed\n ? defaultTimestep\n : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1);\n frame.timestamp = timestamp;\n isProcessing = true;\n stepsOrder.forEach(processStep);\n isProcessing = false;\n if (runNextFrame) {\n useDefaultElapsed = false;\n onNextFrame(processFrame);\n }\n};\nconst startLoop = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!isProcessing)\n onNextFrame(processFrame);\n};\nconst getFrameData = () => frame;\n\nexport default sync;\nexport { cancelSync, flushSync, getFrameData };\n","import { useSafeLayoutEffect, isRefObject, isArray } from \"@yamada-ui/utils\"\nimport { useState } from \"react\"\n\ntype Size = {\n width: number\n height: number\n}\n\nexport const trackElementSize = (\n el: HTMLElement | null,\n cb: (size: Size | undefined) => void,\n) => {\n if (!el) {\n cb(undefined)\n\n return\n }\n\n cb({ width: el.offsetWidth, height: el.offsetHeight })\n\n const win = el.ownerDocument.defaultView ?? window\n\n const observer = new win.ResizeObserver((entries) => {\n if (!isArray(entries) || !entries.length) return\n\n const [entry] = entries\n let width: number\n let height: number\n\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry.borderBoxSize\n const borderSize = isArray(borderSizeEntry)\n ? borderSizeEntry[0]\n : borderSizeEntry\n\n width = borderSize.inlineSize\n height = borderSize.blockSize\n } else {\n width = el.offsetWidth\n height = el.offsetHeight\n }\n\n cb({ width, height })\n })\n\n observer.observe(el, { box: \"border-box\" })\n\n return () => observer.unobserve(el)\n}\n\nconst trackMutation = (el: HTMLElement | null, cb: () => void) => {\n if (!el || !el.parentElement) return\n\n const win = el.ownerDocument?.defaultView ?? window\n\n const observer = new win.MutationObserver(() => {\n cb()\n })\n\n observer.observe(el.parentElement, { childList: true })\n\n return () => {\n observer.disconnect()\n }\n}\n\nexport const useSizes = <T extends HTMLElement | null>({\n getNodes,\n observeMutation = true,\n}: {\n getNodes: () => T[]\n observeMutation?: boolean\n}) => {\n const [sizes, setSizes] = useState<Size[]>([])\n const [count, setCount] = useState(0)\n\n useSafeLayoutEffect(() => {\n const elements = getNodes()\n\n const cleanups = elements.map((element, index) =>\n trackElementSize(element, (size) => {\n setSizes((sizes) => {\n return [\n ...sizes.slice(0, index),\n size,\n ...sizes.slice(index + 1),\n ] as Size[]\n })\n }),\n )\n\n if (observeMutation) {\n const firstNode = elements[0]\n\n cleanups.push(\n trackMutation(firstNode, () => {\n setCount((count) => count + 1)\n }),\n )\n }\n\n return () => {\n cleanups.forEach((cleanup) => {\n cleanup?.()\n })\n }\n }, [count])\n\n return sizes as (Size | undefined)[]\n}\n\nexport const useSize = <T extends HTMLElement | null>(\n refOrEl: T | React.RefObject<T>,\n) => {\n const [size] = useSizes({\n observeMutation: false,\n\n getNodes: () => {\n const node = isRefObject(refOrEl) ? refOrEl.current : refOrEl\n\n return [node]\n },\n })\n\n return size as Size | undefined\n}\n","import type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n CSSUIProps,\n UIPropGetter,\n RequiredUIPropGetter,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport {\n useFormControlProps,\n formControlProperties,\n getFormControlProperties,\n} from \"@yamada-ui/form-control\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { useLatestRef } from \"@yamada-ui/use-latest-ref\"\nimport { usePanEvent } from \"@yamada-ui/use-pan-event\"\nimport { useSizes } from \"@yamada-ui/use-size\"\nimport {\n clampNumber,\n createContext,\n cx,\n dataAttr,\n omitChildren,\n findChildren,\n getValidChildren,\n handlerAll,\n isArray,\n isEmpty,\n mergeRefs,\n omitObject,\n percentToValue,\n pickObject,\n roundNumberToStep,\n useCallbackRef,\n useUpdateEffect,\n valueToPercent,\n includesChildren,\n} from \"@yamada-ui/utils\"\nimport type { CSSProperties, KeyboardEvent, KeyboardEventHandler } from \"react\"\nimport { useCallback, useId, useRef, useState } from \"react\"\n\nexport type UseRangeSliderProps = FormControlOptions & {\n /**\n * The base `id` to use for the slider.\n */\n id?: string\n /**\n * The name attribute of the hidden `input` field.\n * This is particularly useful in forms.\n */\n name?: string | [string, string]\n /**\n * The minimum allowed value of the slider. Cannot be greater than max.\n *\n * @default 0\n */\n min?: number\n /**\n * The maximum allowed value of the slider. Cannot be less than min.\n *\n * @default 100\n */\n max?: number\n /**\n * The step in which increments or decrements have to be made.\n *\n * @default 1\n */\n step?: number\n /**\n * The value of the slider.\n */\n value?: [number, number]\n /**\n * The initial value of the slider.\n */\n defaultValue?: [number, number]\n /**\n * The orientation of the slider.\n *\n * @default 'horizontal'\n */\n orientation?: \"horizontal\" | \"vertical\"\n /**\n * If `true`, the value will be incremented or decremented in reverse.\n */\n isReversed?: boolean\n /**\n * If `false`, the slider handle will not capture focus when value changes.\n *\n * @default true\n */\n focusThumbOnChange?: boolean\n /**\n * The minimum distance between slider thumbs.\n * Useful for preventing the thumbs from being too close together.\n *\n * @default 0\n */\n betweenThumbs?: number\n /**\n * Function called when the user starts selecting a new value.\n */\n onChangeStart?: (value: [number, number]) => void\n /**\n * Function called when the user is done selecting a new value.\n */\n onChangeEnd?: (value: [number, number]) => void\n /**\n * Function called whenever the slider value changes.\n */\n onChange?: (value: [number, number]) => void\n}\n\nexport const useRangeSlider = ({\n focusThumbOnChange = true,\n ...props\n}: UseRangeSliderProps) => {\n if (!focusThumbOnChange) props.isReadOnly = true\n\n let {\n id,\n name,\n min = 0,\n max = 100,\n step = 1,\n defaultValue,\n orientation = \"horizontal\",\n isReversed,\n betweenThumbs = 0,\n required,\n disabled,\n readOnly,\n onChange,\n ...rest\n } = useFormControlProps(props)\n\n defaultValue = defaultValue ?? [min + (max - min) / 4, max - (max - min) / 4]\n\n if (max < min)\n throw new Error(\"Do not assign a number less than 'min' to 'max'\")\n\n const onChangeStart = useCallbackRef(rest.onChangeStart)\n const onChangeEnd = useCallbackRef(rest.onChangeEnd)\n\n const [computedValues, setValues] = useControllableState({\n value: rest.value,\n defaultValue,\n onChange,\n })\n\n const [isDragging, setDragging] = useState(false)\n const [isFocused, setFocused] = useState(false)\n const [activeIndex, setActiveIndex] = useState(-1)\n const isInteractive = !(disabled || readOnly)\n\n const tenStep = (max - min) / 10\n const oneStep = step || (max - min) / 100\n const spacing = betweenThumbs * step\n\n const values = computedValues.map((value) =>\n clampNumber(value, min, max),\n ) as [number, number]\n const [startValue, endValue] = values\n const reversedValues = values.map((value) => max - value + min) as [\n number,\n number,\n ]\n const thumbValues = isReversed ? reversedValues : values\n const thumbPercents = thumbValues.map((value) =>\n valueToPercent(value, min, max),\n ) as [number, number]\n const valueBounds = [\n { min, max: endValue - spacing },\n { min: startValue + spacing, max },\n ]\n\n const isVertical = orientation === \"vertical\"\n\n const latestRef = useLatestRef({\n min,\n max,\n step,\n disabled,\n values,\n valueBounds,\n isInteractive,\n isReversed,\n isVertical,\n focusThumbOnChange,\n betweenThumbs,\n orientation,\n })\n\n const eventSourceRef = useRef<\"pointer\" | \"keyboard\" | null>(null)\n const containerRef = useRef<HTMLElement>(null)\n const trackRef = useRef<HTMLElement>(null)\n\n const thumbSizes = useSizes({\n getNodes: () => {\n const nodes =\n containerRef.current?.querySelectorAll<HTMLElement>(\"[role=slider]\")\n\n return nodes ? Array.from(nodes) : []\n },\n })\n\n id ??= useId()\n name ??= id\n\n const getThumbId = useCallback((i: number) => `slider-thumb-${id}-${i}`, [id])\n const getInputId = useCallback((i: number) => `slider-input-${id}-${i}`, [id])\n const getMarkerId = useCallback(\n (i: number) => `slider-marker-${id}-${i}`,\n [id],\n )\n\n usePanEvent(containerRef, {\n onSessionStart: (ev) => {\n const { isInteractive, values } = latestRef.current\n\n if (!isInteractive) return\n\n setDragging(true)\n\n const pointValue = getValueFromPointer(ev) || 0\n const distances = values.map((value) => Math.abs(value - pointValue)) as [\n number,\n number,\n ]\n const closest = Math.min(...distances)\n\n let i = distances.indexOf(closest)\n\n const thumbsPosition = distances.filter(\n (distance) => distance === closest,\n )\n const isThumbStacked = thumbsPosition.length > 1\n\n if (isThumbStacked && pointValue > values[i])\n i = i + thumbsPosition.length - 1\n\n setActiveIndex(i)\n constrain(i, pointValue)\n focusThumb(i)\n\n onChangeStart(values)\n },\n onSessionEnd: () => {\n const { isInteractive, values } = latestRef.current\n\n if (!isInteractive) return\n\n setDragging(false)\n onChangeEnd(values)\n },\n onMove: (ev) => {\n const { isInteractive } = latestRef.current\n\n if (!isInteractive || activeIndex == -1) return\n\n const pointValue = getValueFromPointer(ev) || 0\n\n setActiveIndex(activeIndex)\n\n constrain(activeIndex, pointValue)\n\n focusThumb(activeIndex)\n },\n })\n\n const getValueFromPointer = useCallback(\n (ev: any) => {\n if (!trackRef.current) return\n\n const { min, max } = latestRef.current\n\n eventSourceRef.current = \"pointer\"\n\n const { bottom, left, height, width } =\n trackRef.current.getBoundingClientRect()\n const { clientX, clientY } = ev.touches?.[0] ?? ev\n\n const diff = isVertical ? bottom - clientY : clientX - left\n\n const length = isVertical ? height : width\n\n let percent = diff / length\n\n if (isReversed) percent = 1 - percent\n\n let nextValue = percentToValue(percent, min, max)\n\n return nextValue\n },\n [latestRef, isVertical, isReversed],\n )\n\n const focusThumb = useCallback(\n (i?: number) => {\n i ??= activeIndex\n\n if (i === -1 || !focusThumbOnChange) return\n\n const id = getThumbId(i)\n\n const el = containerRef.current?.ownerDocument.getElementById(id)\n\n if (el) setTimeout(() => el.focus())\n },\n [activeIndex, focusThumbOnChange, getThumbId],\n )\n\n const constrain = useCallback(\n (i: number, value: number) => {\n const { isInteractive, valueBounds, values } = latestRef.current\n\n if (!isInteractive) return\n\n const { min, max } = valueBounds[i]\n\n value = parseFloat(roundNumberToStep(value, min, oneStep))\n value = clampNumber(value, min, max)\n\n const nextValues = [...values] as [number, number]\n\n nextValues[i] = value\n\n setValues(nextValues)\n },\n [latestRef, oneStep, setValues],\n )\n\n const stepUp = useCallback(\n (i: number, step = oneStep) => {\n const { values } = latestRef.current\n\n const value = values[i]\n\n constrain(i, isReversed ? value - step : value + step)\n },\n [constrain, isReversed, latestRef, oneStep],\n )\n\n const stepDown = useCallback(\n (i: number, step = oneStep) => {\n const { values } = latestRef.current\n\n const value = values[i]\n\n constrain(i, isReversed ? value + step : value - step)\n },\n [constrain, isReversed, latestRef, oneStep],\n )\n\n const reset = useCallback(\n () => setValues(defaultValue as [number, number]),\n [defaultValue, setValues],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLElement>) => {\n const { valueBounds } = latestRef.current\n const { min, max } = valueBounds[activeIndex]\n\n const actions: Record<string, KeyboardEventHandler> = {\n ArrowRight: () => stepUp(activeIndex),\n ArrowUp: () => stepUp(activeIndex),\n ArrowLeft: () => stepDown(activeIndex),\n ArrowDown: () => stepDown(activeIndex),\n PageUp: () => stepUp(activeIndex, tenStep),\n PageDown: () => stepDown(activeIndex, tenStep),\n Home: () => constrain(activeIndex, min),\n End: () => constrain(activeIndex, max),\n }\n\n const action = actions[ev.key]\n\n if (!action) return\n\n ev.preventDefault()\n ev.stopPropagation()\n\n action(ev)\n\n eventSourceRef.current = \"keyboard\"\n },\n [activeIndex, constrain, latestRef, stepDown, stepUp, tenStep],\n )\n\n useUpdateEffect(() => {\n const { values } = latestRef.current\n\n if (eventSourceRef.current === \"keyboard\") onChangeEnd(values)\n }, [startValue, endValue, onChangeEnd])\n\n const getContainerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const z = { width: 0, height: 0 }\n const p = isVertical ? \"height\" : \"width\"\n const { width: w, height: h } =\n thumbSizes.reduce((a = z, b = z) => (a[p] > b[p] ? a : b), z) ?? {}\n\n const style: CSSProperties = {\n ...props.style,\n position: \"relative\",\n userSelect: \"none\",\n touchAction: \"none\",\n WebkitTapHighlightColor: \"rgba(0, 0, 0, 0)\",\n outline: 0,\n ...(isVertical\n ? w\n ? { paddingLeft: w / 2, paddingRight: w / 2 }\n : {}\n : h\n ? { paddingTop: h / 2, paddingBottom: h / 2 }\n : {}),\n }\n\n return {\n ...omitObject(rest, [\n \"aria-readonly\",\n \"value\",\n \"onChangeStart\",\n \"onChangeEnd\",\n ]),\n ...props,\n id: `slider-container-${id}`,\n ref: mergeRefs(ref, containerRef),\n tabIndex: -1,\n style,\n }\n },\n [id, isVertical, rest, thumbSizes],\n )\n\n const getInputProps: RequiredUIPropGetter<\"input\", { index: number }> =\n useCallback(\n ({ index: i, ...props }, ref = null) => ({\n ...pickObject(rest, formControlProperties),\n ...props,\n ref,\n id: getInputId(i),\n type: \"hidden\",\n name: isArray(name) ? name[i] : `${name}-${i}`,\n value: values[i],\n required,\n disabled,\n readOnly,\n }),\n [disabled, getInputId, name, readOnly, required, rest, values],\n )\n\n const getTrackProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const style: CSSProperties = {\n ...props.style,\n position: \"absolute\",\n ...(isVertical\n ? {\n left: \"50%\",\n transform: \"translateX(-50%)\",\n height: \"100%\",\n }\n : {\n top: \"50%\",\n transform: \"translateY(-50%)\",\n width: \"100%\",\n }),\n }\n\n return {\n ...pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n ),\n ...props,\n id: `slider-track-${id}`,\n ref: mergeRefs(ref, trackRef),\n style,\n }\n },\n [id, isVertical, rest],\n )\n\n const getFilledTrackProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const n = Math.abs(thumbPercents[1] - thumbPercents[0])\n const s = isReversed ? 100 - thumbPercents[0] : thumbPercents[0]\n\n const style: CSSProperties = {\n ...props.style,\n position: \"absolute\",\n ...(isVertical\n ? {\n left: \"50%\",\n transform: \"translateX(-50%)\",\n height: `${n}%`,\n ...(isReversed ? { top: `${s}%` } : { bottom: `${s}%` }),\n }\n : {\n top: \"50%\",\n transform: \"translateY(-50%)\",\n width: `${n}%`,\n ...(isReversed ? { right: `${s}%` } : { left: `${s}%` }),\n }),\n }\n\n return {\n ...pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n ),\n ...props,\n id: `slider-filled-track-${id}`,\n ref,\n style,\n }\n },\n [id, isReversed, isVertical, rest, thumbPercents],\n )\n\n const getMarkProps: RequiredUIPropGetter<\"div\", { value: number }> =\n useCallback(\n (props, ref = null) => {\n let n = valueToPercent(props.value, min, max)\n n = isReversed ? 100 - n : n\n\n const style: CSSProperties = {\n ...props.style,\n position: \"absolute\",\n pointerEvents: \"none\",\n ...(isVertical ? { bottom: `${n}%` } : { left: `${n}%` }),\n }\n\n return {\n ...pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n ),\n ...props,\n ref,\n id: getMarkerId(props.value),\n \"aria-hidden\": true,\n \"data-invalid\": dataAttr(props.value < min || max < props.value),\n \"data-highlighted\": dataAttr(\n values[0] <= props.value && props.value <= values[1],\n ),\n style,\n }\n },\n [getMarkerId, isReversed, isVertical, max, min, rest, values],\n )\n\n const getThumbProps: RequiredUIPropGetter<\"div\", { index: number }> =\n useCallback(\n ({ index: i, ...props }, ref = null) => {\n const n = thumbPercents[i]\n const { width: w, height: h } = thumbSizes[i] ?? { width: 0, height: 0 }\n\n const style: CSSProperties = {\n ...props.style,\n position: \"absolute\",\n userSelect: \"none\",\n touchAction: \"none\",\n ...(isVertical\n ? { bottom: `calc(${n}% - ${h / 2}px)` }\n : { left: `calc(${n}% - ${w / 2}px)` }),\n }\n\n const value = values[i]\n\n if (value == null)\n throw new Error(\n `Cannot find value at index '${i}'. The 'value' or 'defaultValue'`,\n )\n\n return {\n \"aria-label\": \"Slider thumb\",\n ...pickObject(rest, formControlProperties),\n ...props,\n ref,\n id: getThumbId(i),\n tabIndex: isInteractive && focusThumbOnChange ? 0 : undefined,\n role: \"slider\",\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": value,\n \"data-active\": dataAttr(\n isDragging && focusThumbOnChange && activeIndex === i,\n ),\n \"aria-orientation\": orientation,\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n onFocus: handlerAll(props.onFocus, rest.onFocus, () => {\n setFocused(true)\n setActiveIndex(i)\n }),\n onBlur: handlerAll(props.onBlur, rest.onBlur, () => {\n setFocused(false)\n setActiveIndex(-1)\n }),\n style,\n }\n },\n [\n min,\n max,\n focusThumbOnChange,\n activeIndex,\n getThumbId,\n isDragging,\n isInteractive,\n isVertical,\n onKeyDown,\n orientation,\n rest,\n thumbPercents,\n thumbSizes,\n values,\n ],\n )\n\n return {\n values,\n isFocused,\n isDragging,\n isVertical,\n stepUp,\n stepDown,\n reset,\n setActiveIndex,\n getThumbId,\n getInputId,\n getMarkerId,\n getContainerProps,\n getInputProps,\n getTrackProps,\n getFilledTrackProps,\n getMarkProps,\n getThumbProps,\n }\n}\n\nexport type ReturnUseRangeSliderProps = ReturnType<typeof useRangeSlider>\n\ntype RangeSliderContext = Pick<\n ReturnUseRangeSliderProps,\n | \"isVertical\"\n | \"getTrackProps\"\n | \"getFilledTrackProps\"\n | \"getMarkProps\"\n | \"getThumbProps\"\n | \"getInputProps\"\n> &\n RangeSliderOptions & {\n styles: Record<string, CSSUIObject>\n }\n\nconst [RangeSliderProvider, useRangeSliderContext] =\n createContext<RangeSliderContext>({\n name: \"RangeSliderContext\",\n errorMessage: `useRangeSliderContext returned is 'undefined'. Seems you forgot to wrap the components in \"<RangeSlider />\" `,\n })\n\ntype RangeSliderOptions = {\n /**\n * Props for range slider input element.\n */\n inputProps?: HTMLUIProps<\"input\">\n /**\n * Props for range slider track element.\n */\n trackProps?: RangeSliderTrackProps\n /**\n * Props for range slider filled track element.\n */\n filledTrackProps?: RangeSliderFilledTrackProps\n /**\n * Props for range slider thumb element.\n */\n thumbProps?: RangeSliderThumbProps\n /**\n * The CSS `color` property. Used in `color` of track element.\n */\n trackColor?: CSSUIProps[\"color\"]\n /**\n * The CSS `color` property. Used in `color` of filled track element.\n */\n filledTrackColor?: CSSUIProps[\"color\"]\n /**\n * The CSS `height` property. Used in `height` of track element.\n */\n trackSize?: CSSUIProps[\"h\"]\n /**\n * The CSS `background` property. Used in `background` of thumb element.\n */\n thumbColor?: CSSUIProps[\"bg\"]\n /**\n * The CSS `box-size` property. Used in `box-size` of thumb element.\n */\n thumbSize?: CSSUIProps[\"boxSize\"]\n}\n\nexport type RangeSliderProps = Omit<\n HTMLUIProps<\"div\">,\n keyof UseRangeSliderProps\n> &\n ThemeProps<\"RangeSlider\"> &\n UseRangeSliderProps &\n RangeSliderOptions\n\n/**\n * `RangeSlider` is a component used for users to select a range of related values.\n *\n * @see Docs https://yamada-ui.com/components/forms/range-slider\n */\nexport const RangeSlider = forwardRef<RangeSliderProps, \"div\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"RangeSlider\", props)\n const {\n className,\n children,\n inputProps,\n trackProps,\n filledTrackProps,\n thumbProps,\n trackColor,\n filledTrackColor,\n trackSize,\n thumbColor,\n thumbSize,\n ...rest\n } = omitThemeProps(mergedProps)\n const {\n isVertical,\n getContainerProps,\n getInputProps,\n getTrackProps,\n getFilledTrackProps,\n getMarkProps,\n getThumbProps,\n } = useRangeSlider(rest)\n\n const css: CSSUIObject = { ...styles.container }\n\n const validChildren = getValidChildren(children)\n\n const [customRangeSliderTrack] = findChildren(validChildren, RangeSliderTrack)\n const [customRangeSliderStartThumb] = findChildren(\n validChildren,\n RangeSliderStartThumb,\n )\n const [customRangeSliderEndThumb] = findChildren(\n validChildren,\n RangeSliderEndThumb,\n )\n\n const hasRangeSliderStartThumb = includesChildren(\n validChildren,\n RangeSliderStartThumb,\n )\n const hasRangeSliderEndThumb = includesChildren(\n validChildren,\n RangeSliderEndThumb,\n )\n\n const cloneChildren = !isEmpty(validChildren)\n ? omitChildren(\n validChildren,\n RangeSliderTrack,\n RangeSliderStartThumb,\n RangeSliderEndThumb,\n )\n : children\n\n return (\n <RangeSliderProvider\n value={{\n isVertical,\n getTrackProps,\n getFilledTrackProps,\n getMarkProps,\n getThumbProps,\n getInputProps,\n trackProps,\n trackColor,\n trackSize,\n filledTrackProps,\n filledTrackColor,\n thumbProps,\n thumbColor,\n thumbSize,\n inputProps,\n styles,\n }}\n >\n <ui.div\n className={cx(\"ui-slider\", className)}\n __css={css}\n {...getContainerProps({}, ref)}\n >\n {customRangeSliderTrack ?? <RangeSliderTrack />}\n\n {cloneChildren}\n\n {customRangeSliderStartThumb ??\n (!hasRangeSliderStartThumb ? <RangeSliderStartThumb /> : null)}\n {customRangeSliderEndThumb ??\n (!hasRangeSliderEndThumb ? <RangeSliderEndThumb /> : null)}\n </ui.div>\n </RangeSliderProvider>\n )\n})\n\nexport type RangeSliderTrackProps = HTMLUIProps<\"div\"> &\n Pick<RangeSliderOptions, \"filledTrackProps\">\n\nexport const RangeSliderTrack = forwardRef<RangeSliderTrackProps, \"div\">(\n ({ className, children, filledTrackProps, ...rest }, ref) => {\n const {\n styles,\n trackProps,\n trackColor,\n trackSize,\n isVertical,\n getTrackProps,\n } = useRangeSliderContext()\n\n const css: CSSUIObject = { ...styles.track }\n\n return (\n <ui.div\n className={cx(\"ui-slider__track\", className)}\n __css={css}\n {...getTrackProps(\n {\n ...(trackColor ? { bg: trackColor } : {}),\n ...(trackSize\n ? isVertical\n ? { w: trackSize }\n : { h: trackSize }\n : {}),\n ...trackProps,\n ...rest,\n },\n ref,\n )}\n >\n {children ?? <RangeSliderFilledTrack {...filledTrackProps} />}\n </ui.div>\n )\n },\n)\n\nexport type RangeSliderFilledTrackProps = HTMLUIProps<\"div\">\n\nexport const RangeSliderFilledTrack = forwardRef<\n RangeSliderFilledTrackProps,\n \"div\"\n>(({ className, ...rest }, ref) => {\n const { styles, filledTrackProps, filledTrackColor, getFilledTrackProps } =\n useRangeSliderContext()\n\n const css: CSSUIObject = { ...styles.filledTrack }\n\n return (\n <ui.div\n className={cx(\"ui-slider__track-filled\", className)}\n __css={css}\n {...getFilledTrackProps(\n {\n ...(filledTrackColor ? { bg: filledTrackColor } : {}),\n ...filledTrackProps,\n ...rest,\n },\n ref,\n )}\n />\n )\n})\n\nexport type RangeSliderMarkProps = HTMLUIProps<\"div\"> & { value: number }\n\nexport const RangeSliderMark = forwardRef<RangeSliderMarkProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const { styles, getMarkProps } = useRangeSliderContext()\n\n const css: CSSUIObject = {\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n ...styles.mark,\n }\n\n return (\n <ui.div\n className={cx(\"ui-slider__mark\", className)}\n __css={css}\n {...getMarkProps(rest, ref)}\n />\n )\n },\n)\n\nexport type RangeSliderThumbProps = HTMLUIProps<\"div\">\n\nconst RangeSliderThumb = forwardRef<\n RangeSliderThumbProps & { index: number },\n \"div\"\n>(({ className, index, children, ...rest }, ref) => {\n const {\n styles,\n thumbProps,\n thumbColor,\n thumbSize,\n inputProps,\n getThumbProps,\n getInputProps,\n } = useRangeSliderContext()\n\n const css: CSSUIObject = { ...styles.thumb }\n\n const { children: propChildren } = thumbProps ?? {}\n\n return (\n <ui.div\n className={cx(\"ui-slider__thumb\", className)}\n __css={css}\n {...getThumbProps(\n {\n index,\n ...(thumbColor ? { bg: thumbColor } : {}),\n ...(thumbSize ? { boxSize: thumbSize } : {}),\n ...thumbProps,\n ...rest,\n },\n ref,\n )}\n >\n <ui.input {...getInputProps({ ...inputProps, index }, ref)} />\n {children ?? propChildren}\n </ui.div>\n )\n})\n\nexport const RangeSliderStartThumb = forwardRef<RangeSliderThumbProps, \"div\">(\n (rest, ref) => {\n return <RangeSliderThumb ref={ref} index={0} {...rest} />\n },\n)\n\nexport const RangeSliderEndThumb = forwardRef<RangeSliderThumbProps, \"div\">(\n (rest, ref) => {\n return <RangeSliderThumb ref={ref} index={1} {...rest} />\n },\n)\n","import type { UseCheckboxProps } from \"@yamada-ui/checkbox\"\nimport { useCheckbox } from \"@yamada-ui/checkbox\"\nimport type { HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useMultiComponentStyle,\n} from \"@yamada-ui/core\"\nimport type { MotionTransition } from \"@yamada-ui/motion\"\nimport { motion } from \"@yamada-ui/motion\"\nimport { cx, dataAttr, omitObject } from \"@yamada-ui/utils\"\nimport type { InputHTMLAttributes, ReactElement } from \"react\"\nimport { cloneElement } from \"react\"\n\nexport type SwitchIconProps = {\n isChecked?: boolean\n isFocused?: boolean\n isHovered?: boolean\n isActive?: boolean\n}\n\ntype SwitchOptions = {\n /**\n * The switch icon to use.\n */\n icon?: ReactElement<SwitchIconProps>\n /**\n * Props for switch input element.\n */\n inputProps?: InputHTMLAttributes<HTMLInputElement>\n /**\n * Props for switch label element.\n */\n labelProps?: HTMLUIProps<\"span\">\n /**\n * Change switch label from right to left.\n *\n * @default false\n */\n isReverse?: boolean\n /**\n * Motion transition settings.\n */\n transition?: MotionTransition\n}\n\nexport type SwitchProps = Omit<UseCheckboxProps, \"isIndeterminate\"> &\n Omit<HTMLUIProps<\"label\">, keyof UseCheckboxProps> &\n ThemeProps<\"Switch\"> &\n SwitchOptions\n\n/**\n * `Switch` is a component used to toggle between on and off states.\n *\n * @see Docs https://yamada-ui.com/components/forms/switch\n */\nexport const Switch = forwardRef<SwitchProps, \"input\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Switch\", props)\n const {\n className,\n gap = \"0.5rem\",\n children,\n icon,\n inputProps,\n labelProps,\n isReverse,\n flexDirection,\n transition = {\n type: \"spring\",\n stiffness: 700,\n damping: 40,\n },\n ...rest\n } = omitThemeProps(mergedProps)\n\n const {\n isChecked,\n isFocused,\n isHovered,\n isActive,\n getContainerProps,\n getIconProps,\n getInputProps,\n getLabelProps,\n } = useCheckbox(rest)\n\n const cloneIcon = icon\n ? cloneElement(icon, {\n isChecked,\n isFocused,\n isHovered,\n isActive,\n })\n : null\n\n return (\n <ui.label\n ref={ref}\n className={cx(\"ui-switch\", className)}\n __css={{\n cursor: \"pointer\",\n position: \"relative\",\n display: \"inline-flex\",\n flexDirection: flexDirection ?? (isReverse ? \"row-reverse\" : \"row\"),\n alignItems: \"center\",\n verticalAlign: \"top\",\n gap,\n ...styles.container,\n }}\n {...getContainerProps()}\n {...omitObject(rest, [\n \"id\",\n \"name\",\n \"value\",\n \"defaultValue\",\n \"checked\",\n \"defaultIsChecked\",\n \"isChecked\",\n \"isDisabled\",\n \"isReadOnly\",\n \"onChange\",\n \"onBlur\",\n \"onFocus\",\n ])}\n >\n <ui.input\n className={cx(\"ui-switch__input\", className)}\n {...getInputProps(inputProps, ref)}\n />\n\n {cloneIcon ?? (\n <ui.span\n className={cx(\"ui-switch__track\", className)}\n __css={{\n boxSizing: \"content-box\",\n display: \"inline-flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n flexShrink: 0,\n ...styles.track,\n }}\n {...getIconProps()}\n >\n <ui.span\n as={motion.span}\n className={cx(\"ui-switch__thumb\", className)}\n data-checked={dataAttr(isChecked)}\n layout\n transition={transition}\n __css={{ ...styles.thumb }}\n />\n </ui.span>\n )}\n\n {children ? (\n <ui.span\n className={cx(\"ui-switch__label\", className)}\n __css={{ ...styles.label }}\n {...getLabelProps(labelProps)}\n >\n {children}\n </ui.span>\n ) : null}\n </ui.label>\n )\n})\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { createDescendant } from \"@yamada-ui/use-descendant\"\nimport type { LazyMode } from \"@yamada-ui/use-disclosure\"\nimport {\n createContext,\n cx,\n findChildren,\n pickChildren,\n getValidChildren,\n} from \"@yamada-ui/utils\"\nimport type { Dispatch, SetStateAction } from \"react\"\nimport { useEffect, useState } from \"react\"\nimport type { TabListProps, TabPanelsProps } from \"./\"\nimport { TabList, TabPanels, Tab, TabPanel } from \"./\"\n\nconst {\n DescendantsContextProvider,\n useDescendantsContext: useTabsDescendantsContext,\n useDescendants,\n useDescendant: useTabsDescendant,\n} = createDescendant<HTMLButtonElement>()\n\nexport { useTabsDescendantsContext, useTabsDescendant }\n\ntype TabsContext = Omit<TabsOptions, \"index\" | \"defaultIndex\" | \"onChange\"> & {\n focusedIndex: number\n setFocusedIndex: Dispatch<SetStateAction<number>>\n selectedIndex: number\n setSelectedIndex: Dispatch<SetStateAction<number>>\n styles: Record<string, CSSUIObject>\n disableRipple: boolean\n}\n\nconst [TabsProvider, useTabsContext] = createContext<TabsContext>({\n name: \"TabsContext\",\n errorMessage: `useTabsContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Tabs />\"`,\n})\n\nexport { useTabsContext }\n\ntype TabsOptions = {\n /**\n * The index of the selected tab.\n */\n index?: number\n /**\n * The index of the selected tab.\n */\n defaultIndex?: number\n /**\n * If `true`, tabs will stretch to width of the tablist.\n *\n * @default false\n */\n isFitted?: boolean\n /**\n * The alignment of the tabs.\n */\n align?: \"start\" | \"end\" | \"center\"\n /**\n * If `true`, the tabs will be manually activated and display its panel by pressing Space or Enter.\n *\n * If `false`, the tabs will be automatically activated and their panel is displayed when they receive focus.\n *\n * @default false\n */\n isManual?: boolean\n /**\n * If `true`, rendering of the tab panel's will be deferred until it is selected.\n *\n * @default true\n */\n isLazy?: boolean\n /**\n * The lazy behavior of tab panels' content when not active. Only works when `isLazy={true}`.\n *\n * - `unmount`: The content of inactive tab panels are always unmounted.\n * - `keepMounted`: The content of inactive tab panels is initially unmounted, but stays mounted when selected.\n *\n * @default 'unmount'\n */\n lazyBehavior?: LazyMode\n /**\n * The orientation of the tab list.\n *\n * @default 'horizontal'\n */\n orientation?: \"vertical\" | \"horizontal\"\n /**\n * The callback invoked when the index changes.\n */\n onChange?: (index: number) => void\n /**\n * Props for tab list component.\n */\n tabListProps?: TabListProps\n /**\n * Props for tab panels components.\n */\n tabPanelsProps?: TabPanelsProps\n /**\n * If `true`, disable ripple effects when pressing the tab.\n *\n * @default false\n */\n disableRipple?: boolean\n}\n\nexport type TabsProps = Omit<HTMLUIProps<\"div\">, \"onChange\"> &\n ThemeProps<\"Tabs\"> &\n TabsOptions\n\n/**\n * `Tabs` is a component for switching between different display areas.\n *\n * @see Docs https://yamada-ui.com/components/disclosure/tabs\n */\nexport const Tabs = forwardRef<TabsProps, \"div\">(\n ({ align = \"start\", ...props }, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Tabs\", {\n align,\n ...props,\n })\n const {\n className,\n index,\n defaultIndex = 0,\n onChange,\n isFitted,\n isManual,\n isLazy = true,\n disableRipple = false,\n lazyBehavior = \"keepMounted\",\n orientation = \"horizontal\",\n tabListProps,\n tabPanelsProps,\n children,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const [focusedIndex, setFocusedIndex] = useState<number>(defaultIndex)\n\n const [selectedIndex, setSelectedIndex] = useControllableState({\n value: index,\n defaultValue: defaultIndex,\n onChange,\n })\n\n const descendants = useDescendants()\n\n const validChildren = getValidChildren(children)\n\n const [customTabList] = findChildren(validChildren, TabList)\n const [customTabPanels] = findChildren(validChildren, TabPanels)\n const cloneTabs = pickChildren(validChildren, Tab)\n const cloneTabPanels = pickChildren(validChildren, TabPanel)\n\n useEffect(() => {\n if (index != null) setFocusedIndex(index)\n }, [index])\n\n const css: CSSUIObject = { w: \"100%\", ...styles.container }\n\n return (\n <DescendantsContextProvider value={descendants}>\n <TabsProvider\n value={{\n focusedIndex,\n setFocusedIndex,\n selectedIndex,\n setSelectedIndex,\n disableRipple,\n isFitted,\n align,\n isManual,\n isLazy,\n lazyBehavior,\n orientation,\n tabListProps,\n tabPanelsProps,\n styles,\n }}\n >\n <ui.div\n ref={ref}\n className={cx(\"ui-tabs\", className)}\n __css={css}\n {...rest}\n >\n {customTabList ?? <TabList>{cloneTabs}</TabList>}\n {customTabPanels ?? <TabPanels>{cloneTabPanels}</TabPanels>}\n </ui.div>\n </TabsProvider>\n </DescendantsContextProvider>\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx, handlerAll } from \"@yamada-ui/utils\"\nimport type { KeyboardEvent, KeyboardEventHandler } from \"react\"\nimport { useCallback } from \"react\"\nimport { useTabsContext, useTabsDescendantsContext } from \"./tabs\"\n\nexport type TabListProps = HTMLUIProps<\"div\">\n\nexport const TabList = forwardRef<TabListProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const { focusedIndex, orientation, tabListProps, styles } = useTabsContext()\n\n const descendants = useTabsDescendantsContext()\n\n const isVertical = orientation === \"vertical\"\n\n const onNext = useCallback(() => {\n const next = descendants.enabledNextValue(focusedIndex)\n\n if (next) next.node?.focus()\n }, [descendants, focusedIndex])\n\n const onPrev = useCallback(() => {\n const prev = descendants.enabledPrevValue(focusedIndex)\n\n if (prev) prev.node?.focus()\n }, [descendants, focusedIndex])\n\n const onFirst = useCallback(() => {\n const first = descendants.enabledFirstValue()\n\n if (first) first.node?.focus()\n }, [descendants])\n\n const onLast = useCallback(() => {\n const last = descendants.enabledLastValue()\n\n if (last) last.node?.focus()\n }, [descendants])\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent) => {\n const actions: Record<string, KeyboardEventHandler> = {\n ArrowLeft: () => (!isVertical ? onPrev() : {}),\n ArrowRight: () => (!isVertical ? onNext() : {}),\n ArrowDown: () => (isVertical ? onNext() : {}),\n ArrowUp: () => (isVertical ? onPrev() : {}),\n Home: onFirst,\n End: onLast,\n }\n\n const action = actions[ev.key]\n\n if (!action) return\n\n ev.preventDefault()\n action(ev)\n },\n [onFirst, onLast, isVertical, onPrev, onNext],\n )\n\n const css: CSSUIObject = { display: \"flex\", ...styles.tabList }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-tabs__list\", className)}\n role=\"tablist\"\n __css={css}\n {...tabListProps}\n {...rest}\n onKeyDown={handlerAll(rest.onKeyDown, onKeyDown)}\n />\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { Ripple, useRipple } from \"@yamada-ui/ripple\"\nimport type { UseClickableProps } from \"@yamada-ui/use-clickable\"\nimport { useClickable } from \"@yamada-ui/use-clickable\"\nimport { ariaAttr, cx, handlerAll, mergeRefs } from \"@yamada-ui/utils\"\nimport { useTabsContext, useTabsDescendant } from \"./tabs\"\n\nexport type TabProps = HTMLUIProps<\"button\"> &\n Omit<UseClickableProps, \"ref\" | \"color\">\n\nexport const Tab = forwardRef<TabProps, \"button\">(\n (\n {\n className,\n isDisabled,\n isFocusable,\n clickOnEnter,\n clickOnSpace,\n children,\n ...props\n },\n ref,\n ) => {\n const {\n selectedIndex,\n isManual,\n disableRipple,\n setSelectedIndex,\n setFocusedIndex,\n styles,\n } = useTabsContext()\n\n const { index, register } = useTabsDescendant({\n disabled: isDisabled && !isFocusable,\n })\n\n const isSelected = index === selectedIndex\n\n const onFocus = () => {\n setFocusedIndex(index)\n\n if (!isManual && !(isDisabled && isFocusable)) setSelectedIndex(index)\n }\n\n const rest = useClickable({\n ref: mergeRefs(register, ref),\n isDisabled,\n isFocusable,\n clickOnEnter,\n clickOnSpace,\n onClick: handlerAll(props.onClick, () => setSelectedIndex(index)),\n })\n const { onPointerDown, ...rippleProps } = useRipple({\n ...rest,\n isDisabled: disableRipple || isDisabled,\n })\n\n const css: CSSUIObject = {\n position: \"relative\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n outline: \"0\",\n ...styles.tab,\n }\n\n return (\n <ui.button\n className={cx(\"ui-tabs__tab\", className)}\n __css={css}\n role=\"tab\"\n {...props}\n {...rest}\n type=\"button\"\n tabIndex={isSelected ? 0 : -1}\n aria-selected={ariaAttr(isSelected)}\n onPointerDown={onPointerDown}\n onFocus={isDisabled ? undefined : handlerAll(props.onFocus, onFocus)}\n >\n {children}\n\n <Ripple isDisabled={disableRipple || isDisabled} {...rippleProps} />\n </ui.button>\n )\n },\n)\n","import type { CSSUIObject } from \"@yamada-ui/core\"\nimport { AnimatePresence, Motion, type MotionProps } from \"@yamada-ui/motion\"\nimport { cx, handlerAll } from \"@yamada-ui/utils\"\nimport type { FC, Key } from \"react\"\nimport type { RippleOptions } from \"./use-ripple\"\n\nconst clamp = (value: number, min: number, max: number) =>\n Math.min(Math.max(value, min), max)\n\nexport type RippleProps = MotionProps<\"span\"> & {\n /**\n * If `true`, disable ripple effects when pressing a element.\n *\n * @default false\n */\n isDisabled?: boolean\n ripples: RippleOptions[]\n onClear: (key: Key) => void\n}\n\nexport const Ripple: FC<RippleProps> = ({\n className,\n ripples,\n onAnimationComplete,\n onClear,\n color = \"currentColor\",\n style,\n isDisabled,\n ...rest\n}) => {\n if (isDisabled) return null\n\n const css: CSSUIObject = {\n rounded: \"fallback(full, 9999px)\",\n zIndex: \"fallback(kurillin, 9)\",\n }\n\n return (\n <>\n {ripples.map(({ key, x, y, size }) => {\n const duration = clamp(0.01 * size, 0.2, size > 100 ? 0.75 : 0.5)\n\n return (\n <AnimatePresence key={key} mode=\"popLayout\">\n <Motion\n as=\"span\"\n className={cx(\"ui-ripple\", className)}\n initial={{ transform: \"scale(0)\", opacity: 0.35 }}\n animate={{ transform: \"scale(2)\", opacity: 0 }}\n exit={{ opacity: 0 }}\n transition={{ duration }}\n bgColor={color}\n style={{\n position: \"absolute\",\n transformOrigin: \"center\",\n pointerEvents: \"none\",\n left: x,\n top: y,\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n }}\n __css={css}\n {...rest}\n onAnimationComplete={handlerAll(onAnimationComplete, () =>\n onClear(key),\n )}\n />\n </AnimatePresence>\n )\n })}\n </>\n )\n}\n","import { createId, handlerAll } from \"@yamada-ui/utils\"\nimport type React from \"react\"\nimport type { Key, PointerEventHandler } from \"react\"\nimport { useCallback, useState } from \"react\"\n\nexport type RippleOptions = {\n key: React.Key\n x: number\n y: number\n size: number\n}\n\nexport type UseRippleProps<T extends any = HTMLElement> = {\n disabled?: boolean\n isDisabled?: boolean\n onPointerDown?: PointerEventHandler<T>\n}\n\nexport const useRipple = <T extends any = HTMLElement>({\n disabled,\n isDisabled,\n ...rest\n}: UseRippleProps<T> = {}) => {\n const [ripples, setRipples] = useState<RippleOptions[]>([])\n\n const onPointerDown: PointerEventHandler<T> = useCallback(\n (ev) => {\n if (disabled || isDisabled) return setRipples([])\n\n const trigger = ev.currentTarget as unknown as Element\n\n const size = Math.max(trigger.clientWidth, trigger.clientHeight)\n const rect = trigger.getBoundingClientRect()\n\n setRipples((prev) => [\n ...prev,\n {\n key: createId(prev.length.toString()),\n size,\n x: ev.clientX - rect.x - size / 2,\n y: ev.clientY - rect.y - size / 2,\n },\n ])\n },\n [disabled, isDisabled],\n )\n\n const onClear = useCallback((key: Key) => {\n setRipples((prev) => prev.filter((item) => item.key !== key))\n }, [])\n\n return {\n ripples,\n onPointerDown: handlerAll(onPointerDown, rest.onPointerDown),\n onClear,\n }\n}\n\nexport type UseRippleReturn = ReturnType<typeof useRipple>\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { createContext, cx, getValidChildren } from \"@yamada-ui/utils\"\nimport { createElement } from \"react\"\nimport { useTabsContext } from \"./tabs\"\n\nconst [TabPanelProvider, useTabPanelContext] = createContext<{\n isSelected: boolean\n selectedIndex: number\n}>({})\n\nexport { useTabPanelContext }\n\nexport type TabPanelsProps = HTMLUIProps<\"div\">\n\nexport const TabPanels = forwardRef<TabPanelsProps, \"div\">(\n ({ className, children, ...rest }, ref) => {\n const { selectedIndex, tabPanelsProps, styles } = useTabsContext()\n\n const validChildren = getValidChildren(children)\n\n const cloneChildren = validChildren.map((child, index) => {\n const isSelected = index === selectedIndex\n\n return createElement(\n TabPanelProvider,\n { key: index, value: { isSelected, selectedIndex } },\n child,\n )\n })\n\n const css: CSSUIObject = {\n w: \"100%\",\n ...styles.tabPanels,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-tabs__panels\", className)}\n __css={css}\n {...tabPanelsProps}\n {...rest}\n >\n {cloneChildren}\n </ui.div>\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { useLazyDisclosure } from \"@yamada-ui/use-disclosure\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useRef } from \"react\"\nimport { useTabPanelContext } from \"./tab-panels\"\nimport { useTabsContext } from \"./tabs\"\n\nexport type TabPanelProps = HTMLUIProps<\"div\">\n\nexport const TabPanel = forwardRef<TabPanelProps, \"div\">(\n ({ className, children, ...rest }, ref) => {\n const { isLazy: enabled, lazyBehavior: mode, styles } = useTabsContext()\n const { isSelected } = useTabPanelContext()\n\n const hasBeenSelected = useRef<boolean>(false)\n\n if (isSelected) hasBeenSelected.current = true\n\n const shouldRenderChildren = useLazyDisclosure({\n wasSelected: hasBeenSelected.current,\n isSelected,\n enabled,\n mode,\n })\n\n const css: CSSUIObject = { ...styles.tabPanel }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-tabs__panel\", className)}\n role=\"tabpanel\"\n __css={css}\n {...rest}\n hidden={!isSelected}\n >\n {shouldRenderChildren ? children : null}\n </ui.div>\n )\n },\n)\n","import type { HTMLUIProps, ThemeProps, CSSUIObject } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport { useClickable } from \"@yamada-ui/use-clickable\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type {\n FC,\n HTMLAttributes,\n MouseEventHandler,\n ReactElement,\n ReactNode,\n} from \"react\"\nimport { useRef } from \"react\"\n\ntype TagOptions = {\n /**\n * Icon to be displayed to the left of the tag.\n */\n leftIcon?: ReactElement\n /**\n * Icon to be displayed to the right of the tag.\n */\n rightIcon?: ReactElement\n /**\n * Function to be executed when the close button is clicked.\n */\n onClose?: MouseEventHandler<HTMLElement>\n /**\n * If `true`, the tag is disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n}\n\nexport type TagProps = HTMLUIProps<\"span\"> & ThemeProps<\"Tag\"> & TagOptions\n\n/**\n * `Tag` is a component used to categorize or organize items using keywords that describe them.\n *\n * @see Docs https://yamada-ui.com/components/data-display/tag\n */\nexport const Tag = forwardRef<TagProps, \"span\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Tag\", props)\n const {\n className,\n leftIcon,\n rightIcon,\n onClose,\n isDisabled,\n children,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const css: CSSUIObject = {\n maxW: \"100%\",\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"fallback(1, 0.25rem)\",\n verticalAlign: \"top\",\n ...styles.container,\n }\n\n return (\n <ui.span\n ref={ref}\n className={cx(\"ui-tag\", className)}\n __css={css}\n {...rest}\n >\n {leftIcon}\n <TagLabel>{children}</TagLabel>\n {rightIcon}\n {onClose ? (\n <CloseButton isDisabled={isDisabled} onClick={onClose}>\n <CloseIcon />\n </CloseButton>\n ) : null}\n </ui.span>\n )\n})\n\nconst TagLabel: FC<{ children: ReactNode }> = ({ children, ...props }) => {\n const [styles] = useMultiComponentStyle(\"Tag\", props)\n const css = styles.label\n\n return (\n <ui.span lineClamp={1} __css={css}>\n {children}\n </ui.span>\n )\n}\n\nconst CloseIcon: FC = () => {\n return (\n <Icon verticalAlign=\"inherit\" viewBox=\"0 0 512 512\" fontSize=\"1.125rem\">\n <path\n fill=\"currentColor\"\n d=\"M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z\"\n />\n </Icon>\n )\n}\n\ntype CloseButtonProps = HTMLUIProps<\"span\"> & { isDisabled?: boolean }\n\nconst CloseButton: FC<CloseButtonProps> = ({ children, ...props }) => {\n const ref = useRef<HTMLSpanElement>(null)\n\n const [styles] = useMultiComponentStyle(\"Tag\", props)\n\n const css: CSSUIObject = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n outline: \"0\",\n cursor: \"pointer\",\n ...styles.closeButton,\n }\n\n const rest = useClickable({ ref, ...(props as HTMLAttributes<HTMLElement>) })\n\n return (\n <ui.span aria-label=\"close\" __css={css} {...rest}>\n {children}\n </ui.span>\n )\n}\n","import type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n ColorModeToken,\n CSS,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useComponentStyle,\n} from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport { useFormControlProps } from \"@yamada-ui/form-control\"\nimport {\n addDomEvent,\n assignRef,\n createdDom,\n cx,\n handlerAll,\n mergeRefs,\n noop,\n omitObject,\n useSafeLayoutEffect,\n useUpdateEffect,\n} from \"@yamada-ui/utils\"\nimport type { ForwardedRef } from \"react\"\nimport { useRef } from \"react\"\nimport useAutosize from \"./use-autosize\"\n\ntype TextareaOptions = {\n /**\n * The border color when the input is focused.\n */\n focusBorderColor?: ColorModeToken<CSS.Property.BorderColor, \"colors\">\n /**\n * The border color when the input is invalid.\n */\n errorBorderColor?: ColorModeToken<CSS.Property.BorderColor, \"colors\">\n /**\n * If `true`, the Textarea height auto-adjusts to text height.\n */\n autosize?: boolean\n /**\n * Autosize up to maxRows rows.\n *\n * @default Infinity\n */\n maxRows?: number\n /**\n * Autosize up to minRows rows.\n *\n * @default 1\n */\n minRows?: number\n /**\n * Ref to a resize function.\n */\n resizeRef?: ForwardedRef<() => void>\n}\n\nexport type TextareaProps = Omit<\n HTMLUIProps<\"textarea\">,\n \"disabled\" | \"required\" | \"readOnly\"\n> &\n ThemeProps<\"Textarea\"> &\n TextareaOptions &\n FormControlOptions\n\n/**\n * `Textarea` is a component used to obtain multi-line text input.\n *\n * @see Docs https://yamada-ui.com/components/forms/textarea\n */\nexport const Textarea = forwardRef<TextareaProps, \"textarea\">((props, ref) => {\n const [styles, mergedProps] = useComponentStyle(\"Textarea\", props)\n let {\n className,\n rows,\n resize = \"none\",\n autosize,\n maxRows = Infinity,\n minRows = 1,\n resizeRef,\n onChange,\n ...rest\n } = omitThemeProps(mergedProps)\n rest = useFormControlProps(rest)\n\n const isBrowser = createdDom()\n const textareaRef = useRef<HTMLTextAreaElement>(null)\n const value = textareaRef.current?.value ?? \"\"\n const resizeTextarea = useAutosize(textareaRef, maxRows, minRows)\n\n let css: CSSUIObject\n\n if (rows || autosize) {\n css = omitObject(styles, [\n \"h\",\n \"height\",\n \"minH\",\n \"minHeight\",\n \"maxH\",\n \"maxHeight\",\n ])\n } else {\n css = styles\n }\n\n useSafeLayoutEffect(() => {\n if (!isBrowser || !autosize) return\n\n resizeTextarea()\n\n const unsubscribeResize = addDomEvent(window, \"resize\", resizeTextarea)\n const unsubscribeLoadingdone = addDomEvent(\n document.fonts,\n \"loadingdone\",\n resizeTextarea,\n )\n\n return () => {\n unsubscribeResize()\n unsubscribeLoadingdone()\n }\n }, [])\n\n useUpdateEffect(() => {\n if (!autosize) return\n resizeTextarea()\n }, [value])\n\n assignRef(resizeRef, resizeTextarea)\n\n return (\n <ui.textarea\n ref={mergeRefs(ref, textareaRef)}\n className={cx(\"ui-textarea\", className)}\n __css={css}\n resize={resize}\n rows={rows}\n onChange={handlerAll(autosize ? resizeTextarea : noop, onChange)}\n {...rest}\n />\n )\n})\n","import { pickObject } from \"@yamada-ui/utils\"\nimport type { RefObject } from \"react\"\nimport { useRef } from \"react\"\n\nconst useAutosize = (\n ref: RefObject<HTMLTextAreaElement>,\n maxRows: number,\n minRows: number,\n) => {\n const valueRef = useRef<string>()\n\n const resizeTextarea = () => {\n const el = ref.current\n if (!el) return\n\n let { value, placeholder } = el\n if (value === valueRef.current) return\n else valueRef.current = value\n\n value ??= placeholder ?? \"x\"\n\n const nodeSizeData = getSizingData(el)\n\n if (!nodeSizeData) return\n\n const rows = calcRows(el, nodeSizeData, value, maxRows, minRows)\n\n el.rows = rows\n }\n\n return resizeTextarea\n}\n\nconst SIZING_STYLE = [\n \"borderBottomWidth\",\n \"borderLeftWidth\",\n \"borderRightWidth\",\n \"borderTopWidth\",\n \"boxSizing\",\n \"fontFamily\",\n \"fontSize\",\n \"fontStyle\",\n \"fontWeight\",\n \"letterSpacing\",\n \"lineHeight\",\n \"paddingBottom\",\n \"paddingLeft\",\n \"paddingRight\",\n \"paddingTop\",\n // non-standard\n \"tabSize\",\n \"textIndent\",\n // non-standard\n \"textRendering\",\n \"textTransform\",\n \"width\",\n \"wordBreak\",\n] as const\n\ntype SizingProps = Extract<\n (typeof SIZING_STYLE)[number],\n keyof CSSStyleDeclaration\n>\n\ntype SizingStyle = Pick<CSSStyleDeclaration, SizingProps>\n\ntype SizingData = {\n sizingStyle: SizingStyle\n paddingSize: number\n borderSize: number\n singleRowHeight: number\n}\n\nconst getSizingData = (el: HTMLElement): SizingData | null => {\n const style = window?.getComputedStyle(el)\n\n if (style == null) return null\n\n const sizingStyle = pickObject(\n style,\n SIZING_STYLE as unknown as SizingProps[],\n )\n const { boxSizing } = sizingStyle\n\n if (boxSizing === \"\") return null\n\n const paddingSize =\n parseFloat(sizingStyle.paddingBottom!) + parseFloat(sizingStyle.paddingTop!)\n\n const borderSize =\n parseFloat(sizingStyle.borderBottomWidth!) +\n parseFloat(sizingStyle.borderTopWidth!)\n\n const singleRowHeight = parseFloat(sizingStyle.lineHeight!)\n\n return {\n sizingStyle,\n paddingSize,\n borderSize,\n singleRowHeight,\n }\n}\n\nconst calcRows = (\n el: HTMLTextAreaElement,\n sizingData: SizingData,\n value: string,\n maxRows: number,\n minRows: number,\n) => {\n const clone = el.cloneNode() as HTMLTextAreaElement\n Object.assign(clone.style, sizingData.sizingStyle)\n forceHiddenStyles(clone)\n\n clone.value = value\n document.body.appendChild(clone)\n\n let rows\n if (clone.scrollHeight) {\n const rowHeight = sizingData.singleRowHeight\n rows = Math.min(\n maxRows,\n Math.max(minRows, Math.floor(clone.scrollHeight / rowHeight)),\n )\n } else {\n const lineBreaks = (value.match(/\\n/g) || []).length\n rows = Math.min(maxRows, Math.max(minRows, lineBreaks + 1))\n }\n\n document.body.removeChild(clone)\n\n return rows\n}\n\nconst HIDDEN_TEXTAREA_STYLE = {\n \"min-height\": \"0\",\n \"max-height\": \"none\",\n height: \"0\",\n visibility: \"hidden\",\n overflow: \"hidden\",\n position: \"absolute\",\n \"z-index\": \"-1000\",\n top: \"0\",\n right: \"0\",\n} as const\n\nconst forceHiddenStyles = (el: HTMLElement) => {\n Object.keys(HIDDEN_TEXTAREA_STYLE).forEach((key) => {\n el.style.setProperty(\n key,\n HIDDEN_TEXTAREA_STYLE[key as keyof typeof HIDDEN_TEXTAREA_STYLE],\n \"important\",\n )\n })\n}\n\nexport default useAutosize\n","import type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n CSSUIProps,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useComponentStyle,\n} from \"@yamada-ui/core\"\nimport type {\n HTMLMotionProps,\n MotionTransitionProperties,\n} from \"@yamada-ui/motion\"\nimport { motion, AnimatePresence } from \"@yamada-ui/motion\"\nimport type { PortalProps } from \"@yamada-ui/portal\"\nimport { Portal } from \"@yamada-ui/portal\"\nimport { scaleFadeProps, slideFadeProps } from \"@yamada-ui/transitions\"\nimport { useDisclosure } from \"@yamada-ui/use-disclosure\"\nimport { useEventListener } from \"@yamada-ui/use-event-listener\"\nimport type { UsePopperProps } from \"@yamada-ui/use-popper\"\nimport { usePopper } from \"@yamada-ui/use-popper\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport {\n cx,\n handlerAll,\n mergeRefs,\n getOwnerWindow,\n getOwnerDocument,\n omitObject,\n} from \"@yamada-ui/utils\"\nimport type { ReactNode } from \"react\"\nimport { Children, cloneElement, useCallback, useEffect, useRef } from \"react\"\n\ntype TooltipOptions = {\n /**\n * The label of the tooltip.\n */\n label?: ReactNode\n /**\n * If `true`, the tooltip will be shown.\n */\n isOpen?: boolean\n /**\n * If `true`, the tooltip will be initially shown.\n */\n defaultIsOpen?: boolean\n /**\n * Callback to run when the tooltip shows.\n */\n onOpen?: () => void\n /**\n * Callback to run when the tooltip hides.\n */\n onClose?: () => void\n /**\n * If `true`, the tooltip will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * The delay before showing the tooltip.\n *\n * @default 0\n */\n openDelay?: number\n /**\n * The delay before hiding the tooltip.\n *\n * @default 0\n */\n closeDelay?: number\n /**\n * If `true`, the tooltip will hide on click.\n *\n * @default false\n */\n closeOnClick?: boolean\n /**\n * If `true`, the tooltip will hide on scroll.\n *\n * @default false\n */\n closeOnScroll?: boolean\n /**\n * If `true`, the tooltip will hide while the mouse is down.\n *\n * @default false\n */\n closeOnMouseDown?: boolean\n /**\n * If `true`, the tooltip will hide while the pointer is down.\n *\n * @default false\n */\n closeOnPointerDown?: boolean\n /**\n * If `true`, the tooltip will hide on pressing Esc key.\n *\n * @default true\n */\n closeOnEsc?: boolean\n /**\n * The animation of the tooltip.\n *\n * @default 'scale'\n */\n animation?: \"scale\" | \"top\" | \"right\" | \"left\" | \"bottom\" | \"none\"\n /**\n * The animation duration.\n */\n duration?: MotionTransitionProperties[\"duration\"]\n /**\n * Props for portal component.\n */\n portalProps?: Pick<PortalProps, \"appendToParentPortal\" | \"containerRef\">\n /**\n * If `true`, the element will be transported to the end of document.body.\n */\n withPortal?: boolean\n}\n\nexport type TooltipProps = Omit<HTMLUIProps<\"div\">, \"offset\"> &\n ThemeProps<\"Tooltip\"> &\n Omit<HTMLMotionProps<\"div\">, \"color\" | \"style\" | \"variants\" | \"transition\"> &\n Pick<UsePopperProps, \"modifiers\" | \"gutter\" | \"offset\" | \"placement\"> &\n TooltipOptions\n\nconst getTooltipProps = (\n animation: TooltipProps[\"animation\"] = \"scale\",\n duration?: TooltipProps[\"duration\"],\n) => {\n const custom = {\n reverse: true,\n duration,\n enter: { visibility: \"visible\" },\n transitionEnd: { exit: { visibility: \"hidden\" } },\n }\n\n switch (animation) {\n case \"scale\":\n return {\n ...scaleFadeProps,\n custom: { ...custom, scale: 0.95 },\n }\n case \"top\":\n return {\n ...slideFadeProps,\n custom: { ...custom, offsetY: -16 },\n }\n case \"right\":\n return {\n ...slideFadeProps,\n custom: { ...custom, offsetX: 16 },\n }\n case \"left\":\n return {\n ...slideFadeProps,\n custom: { ...custom, offsetX: -16 },\n }\n case \"bottom\":\n return {\n ...slideFadeProps,\n custom: { ...custom, offsetY: 16 },\n }\n }\n}\n\n/**\n * `Tooltip` is a component that displays short information, such as supplementary details for an element.\n *\n * @see Docs https://yamada-ui.com/components/overlay/tooltip\n */\nexport const Tooltip = forwardRef<TooltipProps, \"div\">(\n (\n { closeOnPointerDown, zIndex, portalProps, withPortal = true, ...props },\n ref,\n ) => {\n const [styles, mergedProps] = useComponentStyle(\"Tooltip\", props)\n const {\n className,\n children,\n label,\n placement,\n modifiers,\n gutter,\n offset,\n openDelay = 0,\n closeDelay = 0,\n isDisabled,\n closeOnClick,\n closeOnScroll,\n closeOnMouseDown,\n closeOnEsc = true,\n animation,\n duration,\n ...rest\n } = omitThemeProps(mergedProps)\n\n closeOnPointerDown = closeOnMouseDown\n\n const { isOpen, onOpen, onClose } = useDisclosure(rest)\n\n const triggerRef = useRef<HTMLElement>(null)\n\n const openTimeout = useRef<number>()\n const closeTimeout = useRef<number>()\n\n const { referenceRef, getPopperProps, transformOrigin } = usePopper({\n enabled: isOpen,\n placement,\n modifiers,\n gutter,\n offset,\n })\n\n const closeNow = useCallback(() => {\n if (closeTimeout.current) {\n clearTimeout(closeTimeout.current)\n\n closeTimeout.current = undefined\n }\n\n onClose()\n }, [onClose])\n\n const openWithDelay = useCallback(() => {\n if (!isDisabled && !openTimeout.current) {\n if (isOpen) closeNow()\n\n const win = getOwnerWindow(triggerRef.current)\n\n openTimeout.current = win.setTimeout(onOpen, openDelay)\n }\n }, [isDisabled, isOpen, openDelay, closeNow, onOpen])\n\n const closeWithDelay = useCallback(() => {\n if (openTimeout.current) {\n clearTimeout(openTimeout.current)\n\n openTimeout.current = undefined\n }\n\n const win = getOwnerWindow(triggerRef.current)\n\n closeTimeout.current = win.setTimeout(closeNow, closeDelay)\n }, [closeDelay, closeNow])\n\n const onClick = useCallback(\n () => (isOpen && closeOnClick ? closeWithDelay() : undefined),\n [isOpen, closeOnClick, closeWithDelay],\n )\n\n const onPointerDown = useCallback(\n () => (isOpen && closeOnPointerDown ? closeWithDelay() : undefined),\n [isOpen, closeOnPointerDown, closeWithDelay],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent) =>\n isOpen && ev.key === \"Escape\" ? closeWithDelay() : undefined,\n [isOpen, closeWithDelay],\n )\n\n useEventListener(\n () => getOwnerDocument(triggerRef.current),\n \"keydown\",\n (ev) => (closeOnEsc ? onKeyDown(ev) : undefined),\n )\n\n useEventListener(\n () => getOwnerDocument(triggerRef.current),\n \"scroll\",\n () => (isOpen && closeOnScroll ? closeNow() : undefined),\n )\n\n useEventListener(() => triggerRef.current, \"pointerleave\", closeWithDelay)\n\n useEffect(\n () => () => {\n clearTimeout(openTimeout.current)\n clearTimeout(closeTimeout.current)\n },\n [],\n )\n\n const getTriggerProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ref: mergeRefs(triggerRef, ref, referenceRef),\n onPointerEnter: handlerAll(props.onPointerEnter, (e) =>\n e.pointerType !== \"touch\" ? openWithDelay() : undefined,\n ),\n onClick: handlerAll(props.onClick, onClick),\n onPointerDown: handlerAll(props.onPointerDown, onPointerDown),\n onFocus: handlerAll(props.onFocus, openWithDelay),\n onBlur: handlerAll(props.onBlur, closeWithDelay),\n }),\n\n [referenceRef, onClick, onPointerDown, openWithDelay, closeWithDelay],\n )\n\n const child = Children.only(children) as React.ReactElement & {\n ref?: React.Ref<any>\n }\n const trigger = cloneElement(child, getTriggerProps(child.props, child.ref))\n\n const css: CSSUIObject = {\n position: \"relative\",\n ...omitObject(styles, [\"zIndex\"]),\n }\n\n if (!label) return <>{children}</>\n\n return (\n <>\n {trigger}\n\n <AnimatePresence>\n {isOpen ? (\n <Portal isDisabled={!withPortal} {...portalProps}>\n <ui.div\n {...getPopperProps()}\n zIndex={(zIndex ?? styles.zIndex) as CSSUIProps[\"zIndex\"]}\n pointerEvents=\"none\"\n >\n <ui.div\n as={motion.div}\n ref={ref}\n className={cx(\"ui-tooltip\", className)}\n style={{ transformOrigin }}\n {...(animation !== \"none\"\n ? getTooltipProps(animation, duration)\n : {})}\n initial=\"exit\"\n animate={isOpen ? \"enter\" : \"exit\"}\n exit=\"exit\"\n __css={css}\n {...omitObject(rest, [\n \"isOpen\",\n \"defaultIsOpen\",\n \"onOpen\",\n \"onClose\",\n ])}\n >\n {label}\n </ui.div>\n </ui.div>\n </Portal>\n ) : null}\n </AnimatePresence>\n </>\n )\n },\n)\n","import type { Theme, ResponsiveObject, StyledTheme } from \"@yamada-ui/core\"\nimport { useTheme } from \"@yamada-ui/core\"\nimport { createdDom } from \"@yamada-ui/utils\"\nimport { useState, useMemo, useEffect } from \"react\"\n\n/**\n * `useBreakpoint` is a custom hook that returns the current breakpoint.\n * This hook monitors changes in the window size and returns the appropriate value.\n *\n * @see Docs https://yamada-ui.com/hooks/use-breakpoint\n */\nexport const useBreakpoint = () => {\n const { theme } = useTheme()\n\n if (!theme)\n throw Error(\n \"useBreakpoint: `theme` is undefined. Seems you forgot to wrap your app in `<UIProvider />`\",\n )\n\n const breakpoints = theme.__breakpoints\n\n if (!breakpoints)\n throw Error(\n \"useBreakpoint: `breakpoints` is undefined. Seems you forgot to put theme in `breakpoints`\",\n )\n\n const queries = useMemo(\n () =>\n breakpoints.queries.map(({ breakpoint, minMaxQuery }) => ({\n breakpoint,\n query: minMaxQuery?.replace(\"@media screen and \", \"\") ?? \"\",\n })),\n [breakpoints],\n )\n\n const [breakpoint, setBreakpoint] = useState(() => {\n const isBrowser = createdDom()\n\n if (!isBrowser) return \"base\"\n\n for (const { breakpoint, query } of queries) {\n const mql = window.matchMedia(query)\n\n if (mql.matches) return breakpoint\n }\n })\n\n useEffect(() => {\n const observer = queries.map(({ breakpoint, query }): (() => void) => {\n const mql = window.matchMedia(query)\n\n const onChange = (e: MediaQueryListEvent) => {\n if (e.matches) setBreakpoint(breakpoint)\n }\n\n if (typeof mql.addEventListener === \"function\")\n mql.addEventListener(\"change\", onChange)\n\n return () => {\n if (typeof mql.removeEventListener === \"function\")\n mql.removeEventListener(\"change\", onChange)\n }\n })\n\n return () => {\n observer.forEach((unobserve) => unobserve())\n }\n }, [queries])\n\n return breakpoint as Theme[\"breakpoints\"]\n}\n\n/**\n * `useBreakpointValue` is a custom hook that returns the value of the current breakpoint from the provided object.\n * This hook monitors changes in the window size and returns the appropriate value.\n *\n * @see Docs https://yamada-ui.com/hooks/use-breakpoint-value\n */\nexport const useBreakpointValue = <T extends any>(\n values: ResponsiveObject<T>,\n): T => {\n const { theme } = useTheme()\n const breakpoint = useBreakpoint()\n\n return getBreakpointValue<T>(values)(theme, breakpoint)\n}\n\nexport const getBreakpointValue =\n <T extends any>(values: ResponsiveObject<T>) =>\n (theme: StyledTheme, breakpoint: Theme[\"breakpoints\"]): T => {\n if (!theme)\n throw Error(\n \"useBreakpoint: `theme` is undefined. Seems you forgot to wrap your app in `<UIProvider />`\",\n )\n\n const breakpoints = theme.__breakpoints?.keys\n\n if (!breakpoints)\n throw Error(\n \"useBreakpoint: `breakpoints` is undefined. Seems you forgot to put theme in `breakpoints`\",\n )\n\n const currentIndex = breakpoints.indexOf(breakpoint)\n\n for (let i = currentIndex; 0 < i; i--) {\n const nextBreakpoint = breakpoints[i]\n\n if (values.hasOwnProperty(nextBreakpoint)) {\n return values[nextBreakpoint] as T\n }\n }\n\n return values.base as T\n }\n","import { createdDom } from \"@yamada-ui/utils\"\nimport { useEffect, useMemo, useRef, useState } from \"react\"\n\nexport type ObserverRect = Omit<DOMRectReadOnly, \"toJSON\">\n\nconst defaultRect: ObserverRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n}\n\n/**\n * `useResizeObserver` is a custom hook that tracks changes in the size and position of an element.\n *\n * @see Docs https://yamada-ui.com/hooks/use-resize-observer\n */\nexport const useResizeObserver = <T extends HTMLElement = any>() => {\n const id = useRef(0)\n const ref = useRef<T>(null)\n const [rect, setRect] = useState<ObserverRect>(defaultRect)\n\n const observer = useMemo(() => {\n const isBrowser = createdDom()\n\n if (!isBrowser) return null\n\n return new ResizeObserver(([entry]) => {\n if (!entry) return\n\n cancelAnimationFrame(id.current)\n\n id.current = requestAnimationFrame(() => {\n if (ref.current) setRect(entry.contentRect)\n })\n })\n }, [])\n\n useEffect(() => {\n if (ref.current) observer?.observe(ref.current)\n\n return () => {\n observer?.disconnect()\n\n if (id.current) cancelAnimationFrame(id.current)\n }\n }, [observer])\n\n return [ref, rect] as const\n}\n\nexport const useElementSize = <T extends HTMLElement = any>() => {\n const [ref, { width, height }] = useResizeObserver<T>()\n\n return { ref, width, height }\n}\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useComponentStyle,\n} from \"@yamada-ui/core\"\nimport {\n cx,\n handlerAll,\n isMac,\n merge,\n mergeRefs,\n vendor,\n} from \"@yamada-ui/utils\"\nimport type { UIEvent } from \"react\"\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\"\n\ntype ScrollAreaOptions = {\n /**\n * Scrollbar visibility type.\n *\n * @default 'hover'\n */\n type?: \"always\" | \"scroll\" | \"hover\" | \"never\"\n /**\n * Props for inner element.\n */\n innerProps?: HTMLUIProps<\"div\">\n /**\n * Delay in milliseconds before scrollbars are hidden.\n *\n * @default 1000\n */\n scrollHideDelay?: number\n /**\n * Callback function for when the scroll position changes.\n */\n onScrollPositionChange?: ({ x, y }: { x: number; y: number }) => void\n}\n\nexport type ScrollAreaProps = HTMLUIProps<\"div\"> &\n ThemeProps<\"ScrollArea\"> &\n ScrollAreaOptions\n\nconst neverStyles: CSSUIObject = {\n scrollbarWidth: \"none\",\n _scrollbar: { display: \"none\" },\n \"&::-webkit-scrollbar\": { display: \"none\" },\n}\n\nconst hiddenStyles: CSSUIObject = {\n _scrollbarTrack: { bg: \"transparent\" },\n \"&::-webkit-scrollbar-track\": { bg: \"transparent\" },\n _scrollbarThumb: { bg: \"transparent\" },\n \"&::-webkit-scrollbar-thumb\": { bg: \"transparent\" },\n _light: {\n _scrollbarTrack: { bg: \"transparent\" },\n \"&::-webkit-scrollbar-track\": { bg: \"transparent\" },\n _scrollbarThumb: { bg: \"transparent\" },\n \"&::-webkit-scrollbar-thumb\": { bg: \"transparent\" },\n },\n _dark: {\n _scrollbarTrack: { bg: \"transparent\" },\n \"&::-webkit-scrollbar-track\": { bg: \"transparent\" },\n _scrollbarThumb: { bg: \"transparent\" },\n \"&::-webkit-scrollbar-thumb\": { bg: \"transparent\" },\n },\n \"@-moz-document url-prefix()\": {\n scrollbarColor: \"transparent transparent\",\n _light: {\n scrollbarColor: \"transparent transparent\",\n },\n _dark: {\n scrollbarColor: \"transparent transparent\",\n },\n },\n}\n\n/**\n * `ScrollArea` is a component that displays a customized scrollbar.\n *\n * @see Docs https://yamada-ui.com/components/data-display/scroll-area\n */\nexport const ScrollArea = forwardRef<ScrollAreaProps, \"div\">((props, ref) => {\n const [styles, mergedProps] = useComponentStyle(\"ScrollArea\", props)\n const {\n type = \"hover\",\n overflow = \"overlay\",\n scrollHideDelay = 1000,\n onScrollPositionChange,\n ...rest\n } = omitThemeProps(mergedProps)\n const [isHovered, setIsHovered] = useState<boolean>(false)\n const [isScrolling, setIsScrolling] = useState<boolean>(false)\n const isAlways = type === \"always\"\n const isNever = type === \"never\"\n const isSafari = isMac() && vendor(/apple/i)\n\n const hoverTimeout = useRef<any>(undefined)\n const scrollTimeout = useRef<any>(undefined)\n const scrollAreaRef = useRef<HTMLDivElement>(null)\n const scrollPosition = useRef({ x: 0, y: 0 })\n\n useLayoutEffect(() => {\n if (!scrollAreaRef.current || !isSafari) return\n\n scrollAreaRef.current.scrollLeft = scrollPosition.current.x\n scrollAreaRef.current.scrollTop = scrollPosition.current.y\n })\n\n const onMouseEnter = useCallback(() => {\n if (type !== \"hover\") return\n\n clearTimeout(hoverTimeout.current)\n\n setIsHovered(true)\n }, [type])\n\n const onMouseLeave = useCallback(() => {\n if (type !== \"hover\") return\n\n hoverTimeout.current = setTimeout(\n () => setIsHovered(false),\n scrollHideDelay,\n )\n }, [scrollHideDelay, type])\n\n const onScroll = useCallback(\n (ev: UIEvent<HTMLDivElement>) => {\n const el = ev.target as HTMLDivElement\n\n const { scrollLeft: x, scrollTop: y } = el\n const { x: prevX, y: prevY } = scrollPosition.current\n const isEqual = Math.abs(x - prevX) <= 5 && Math.abs(y - prevY) <= 5\n\n onScrollPositionChange?.({ x, y })\n scrollPosition.current = { x, y }\n\n if (type !== \"scroll\" || isEqual) return\n\n if (!isScrolling) setIsScrolling(true)\n\n clearTimeout(scrollTimeout.current)\n\n scrollTimeout.current = setTimeout(\n () => setIsScrolling(false),\n scrollHideDelay,\n )\n },\n [isScrolling, onScrollPositionChange, scrollHideDelay, type],\n )\n\n useEffect(() => {\n return () => {\n if (hoverTimeout.current) clearTimeout(hoverTimeout.current)\n if (scrollTimeout.current) clearTimeout(scrollTimeout.current)\n }\n }, [])\n\n const css: CSSUIObject = useMemo(() => {\n const baseStyle = { overflow, ...styles }\n\n if (isNever) {\n return merge(baseStyle, neverStyles)\n } else {\n return merge(\n baseStyle,\n !isAlways && !isHovered && !isScrolling ? hiddenStyles : {},\n )\n }\n }, [isAlways, isHovered, isNever, isScrolling, overflow, styles])\n\n const computedProps = useMemo(\n () => ({\n __css: css,\n ...rest,\n onMouseEnter: handlerAll(rest.onMouseEnter, onMouseEnter),\n onMouseLeave: handlerAll(rest.onMouseLeave, onMouseLeave),\n onScroll: handlerAll(rest.onScroll, onScroll),\n }),\n [css, onMouseEnter, onMouseLeave, onScroll, rest],\n )\n\n if (isSafari) {\n //Added the safari check here, reduce computing for other browsers\n const componentKey = `${isHovered}-${isScrolling}`\n\n return (\n <InternalScrollArea\n // Added the key here\n key={componentKey}\n ref={mergeRefs(ref, scrollAreaRef)}\n {...computedProps}\n />\n )\n } else {\n return <InternalScrollArea ref={ref} {...computedProps} />\n }\n})\n\ntype InternalScrollAreaProps = HTMLUIProps<\"div\"> &\n Pick<ScrollAreaProps, \"innerProps\">\n\nconst InternalScrollArea = forwardRef<InternalScrollAreaProps, \"div\">(\n ({ className, innerProps, children, ...rest }, ref) => {\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-scroll-area\", className)}\n tabIndex={0}\n {...rest}\n >\n {innerProps ? (\n <ui.div className=\"ui-scroll-area__inner\" {...innerProps}>\n {children}\n </ui.div>\n ) : (\n children\n )}\n </ui.div>\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { Popover, PopoverTrigger } from \"@yamada-ui/popover\"\nimport { Portal } from \"@yamada-ui/portal\"\nimport type { PortalProps } from \"@yamada-ui/portal\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { AutocompleteIconProps } from \"./autocomplete-icon\"\nimport { AutocompleteIcon } from \"./autocomplete-icon\"\nimport type { AutocompleteListProps } from \"./autocomplete-list\"\nimport { AutocompleteList } from \"./autocomplete-list\"\nimport type { UseAutocompleteProps } from \"./use-autocomplete\"\nimport {\n AutocompleteProvider,\n useAutocomplete,\n AutocompleteDescendantsContextProvider,\n useAutocompleteContext,\n useAutocompleteInput,\n} from \"./use-autocomplete\"\nimport { AutocompleteCreate, AutocompleteEmpty } from \"./\"\n\ntype AutocompleteOptions = {\n /**\n * The border color when the input is focused.\n */\n focusBorderColor?: string\n /**\n * The border color when the input is invalid.\n */\n errorBorderColor?: string\n /**\n * Props for autocomplete container element.\n */\n containerProps?: Omit<HTMLUIProps<\"div\">, \"children\">\n /**\n * Props for autocomplete list element.\n */\n listProps?: Omit<AutocompleteListProps, \"children\">\n /**\n * Props for autocomplete input element.\n */\n inputProps?: HTMLUIProps<\"input\">\n /**\n * Props for autocomplete icon element.\n */\n iconProps?: AutocompleteIconProps\n /**\n * Props to be forwarded to the portal component.\n *\n * @default '{ isDisabled: true }'\n *\n */\n portalProps?: Omit<PortalProps, \"children\">\n}\n\nexport type AutocompleteProps = ThemeProps<\"Autocomplete\"> &\n Omit<UseAutocompleteProps<string>, \"maxSelectValues\" | \"omitSelectedValues\"> &\n AutocompleteOptions\n\n/**\n * `Autocomplete` is a component used to display suggestions in response to user text input.\n *\n * @see Docs https://yamada-ui.com/components/forms/autocomplete\n */\nexport const Autocomplete = forwardRef<AutocompleteProps, \"input\">(\n (props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Autocomplete\", props)\n let {\n className,\n defaultValue = \"\",\n color,\n h,\n height,\n minH,\n minHeight,\n containerProps,\n listProps,\n inputProps,\n iconProps,\n portalProps = { isDisabled: true },\n children,\n ...computedProps\n } = omitThemeProps(mergedProps)\n\n const {\n descendants,\n formControlProps,\n getPopoverProps,\n getContainerProps,\n getFieldProps,\n allowCreate,\n isEmpty,\n inputValue,\n computedChildren,\n ...rest\n } = useAutocomplete({ ...computedProps, defaultValue, children })\n\n h ??= height\n minH ??= minHeight\n\n const css: CSSUIObject = {\n w: \"100%\",\n h: \"fit-content\",\n color,\n ...styles.container,\n }\n\n return (\n <AutocompleteDescendantsContextProvider value={descendants}>\n <AutocompleteProvider\n value={{\n ...rest,\n formControlProps,\n inputValue,\n allowCreate,\n isEmpty,\n styles,\n }}\n >\n <Popover {...getPopoverProps()}>\n <ui.div\n className={cx(\"ui-autocomplete\", className)}\n __css={css}\n {...getContainerProps(containerProps)}\n >\n <ui.div\n className=\"ui-autocomplete__inner\"\n __css={{ position: \"relative\", ...styles.inner }}\n >\n <AutocompleteField\n h={h}\n minH={minH}\n inputProps={inputProps}\n {...getFieldProps({}, ref)}\n />\n\n <AutocompleteIcon {...iconProps} {...formControlProps} />\n </ui.div>\n\n {!isEmpty ? (\n <Portal {...portalProps}>\n <AutocompleteList {...listProps}>\n {allowCreate ? (\n <AutocompleteCreate />\n ) : (\n <AutocompleteEmpty />\n )}\n\n {children ?? computedChildren}\n </AutocompleteList>\n </Portal>\n ) : (\n <Portal {...portalProps}>\n <AutocompleteList {...listProps}>\n {allowCreate && inputValue ? (\n <AutocompleteCreate />\n ) : (\n <AutocompleteEmpty />\n )}\n </AutocompleteList>\n </Portal>\n )}\n </ui.div>\n </Popover>\n </AutocompleteProvider>\n </AutocompleteDescendantsContextProvider>\n )\n },\n)\n\ntype AutocompleteFieldProps = HTMLUIProps<\"div\"> &\n Pick<AutocompleteProps, \"inputProps\">\n\nconst AutocompleteField = forwardRef<AutocompleteFieldProps, \"input\">(\n ({ className, h, minH, placeholder, inputProps, ...rest }, ref) => {\n const { label, inputValue, styles } = useAutocompleteContext()\n\n const { getInputProps } = useAutocompleteInput()\n\n const css: CSSUIObject = {\n pe: \"2rem\",\n h,\n minH,\n display: \"flex\",\n alignItems: \"center\",\n ...styles.field,\n cursor: \"text\",\n }\n\n return (\n <PopoverTrigger>\n <ui.div\n className={cx(\"ui-autocomplete__field\", className)}\n __css={css}\n {...rest}\n >\n <ui.input\n className=\"ui-autocomplete__field__input\"\n display=\"inline-block\"\n w=\"100%\"\n placeholder={placeholder}\n {...getInputProps(\n { ...inputProps, value: inputValue || label || \"\" },\n ref,\n )}\n />\n </ui.div>\n </PopoverTrigger>\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { ChevronIcon, CloseIcon } from \"@yamada-ui/icon\"\nimport { useClickable } from \"@yamada-ui/use-clickable\"\nimport { cx, getValidChildren, isValidElement } from \"@yamada-ui/utils\"\nimport type { FC, HTMLAttributes } from \"react\"\nimport { cloneElement, useRef } from \"react\"\nimport { useAutocompleteContext } from \"./use-autocomplete\"\n\nexport type AutocompleteIconProps = HTMLUIProps<\"div\">\n\nexport const AutocompleteIcon = forwardRef<AutocompleteIconProps, \"div\">(\n ({ className, children, __css, ...rest }, ref) => {\n const { styles } = useAutocompleteContext()\n\n const css: CSSUIObject = {\n position: \"absolute\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n pointerEvents: \"none\",\n cursor: \"pointer\",\n ...styles.icon,\n ...__css,\n }\n\n const validChildren = getValidChildren(children)\n\n const cloneChildren = validChildren.map((child) =>\n cloneElement(child, {\n focusable: false,\n \"aria-hidden\": true,\n style: {\n maxWidth: \"1em\",\n maxHeight: \"1em\",\n color: \"currentColor\",\n },\n }),\n )\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-autocomplete__icon\", className)}\n __css={css}\n {...rest}\n >\n {isValidElement(children) ? cloneChildren : <ChevronIcon />}\n </ui.div>\n )\n },\n)\n\nexport type AutocompleteClearIconProps = AutocompleteIconProps & {\n disabled?: boolean\n}\n\nexport const AutocompleteClearIcon: FC<AutocompleteClearIconProps> = ({\n className,\n children,\n ...props\n}) => {\n const ref = useRef<HTMLDivElement>(null)\n const { styles } = useAutocompleteContext()\n\n const isDisabled = props.disabled\n\n const rest = useClickable({\n ref,\n isDisabled,\n ...(props as HTMLAttributes<HTMLElement>),\n })\n\n return (\n <AutocompleteIcon\n aria-label=\"Clear value\"\n className={cx(\"ui-autocomplete__icon--clear\", className)}\n __css={styles.clearIcon}\n {...rest}\n >\n {children ?? <CloseIcon w=\"0.5em\" h=\"0.5em\" />}\n </AutocompleteIcon>\n )\n}\n\nexport type AutocompleteItemIconProps = HTMLUIProps<\"span\">\n\nexport const AutocompleteItemIcon = forwardRef<\n AutocompleteItemIconProps,\n \"span\"\n>(({ className, ...rest }, ref) => {\n const { styles } = useAutocompleteContext()\n\n const css: CSSUIObject = {\n flexShrink: 0,\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n fontSize: \"0.85em\",\n ...styles.itemIcon,\n }\n\n return (\n <ui.span\n ref={ref}\n className={cx(\"ui-autocomplete__item__icon\", className)}\n __css={css}\n {...rest}\n />\n )\n})\n","import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport { layoutStyleProperties } from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport {\n getFormControlProperties,\n useFormControlProps,\n} from \"@yamada-ui/form-control\"\nimport type { MotionUIPropGetter } from \"@yamada-ui/motion\"\nimport { popoverProperties, type PopoverProps } from \"@yamada-ui/popover\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { createDescendant } from \"@yamada-ui/use-descendant\"\nimport { useDisclosure } from \"@yamada-ui/use-disclosure\"\nimport { useOutsideClick } from \"@yamada-ui/use-outside-click\"\nimport type { Dict, Union, DOMAttributes } from \"@yamada-ui/utils\"\nimport {\n ariaAttr,\n createContext,\n dataAttr,\n funcAll,\n getEventRelatedTarget,\n handlerAll,\n isArray,\n isContains,\n isHTMLElement,\n mergeRefs,\n omitObject,\n pickObject,\n splitObject,\n useUnmountEffect,\n useUpdateEffect,\n getValidChildren,\n isUndefined,\n} from \"@yamada-ui/utils\"\nimport type {\n ChangeEvent,\n CSSProperties,\n Dispatch,\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n RefObject,\n SetStateAction,\n} from \"react\"\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\nimport type { AutocompleteOptionProps } from \"./\"\nimport { AutocompleteOption, AutocompleteOptionGroup } from \"./\"\n\ntype AutocompleteBaseItem = Omit<\n AutocompleteOptionProps,\n \"value\" | \"children\"\n> & {\n label?: string\n}\n\ntype AutocompleteItemWithValue = AutocompleteBaseItem & {\n value?: string\n}\n\ntype AutocompleteItemWithItems = AutocompleteBaseItem & {\n items?: AutocompleteItemWithValue[]\n}\n\nexport type AutocompleteItem =\n | AutocompleteItemWithValue\n | AutocompleteItemWithItems\n\nconst kanaMap: Record<string, string> = {\n ガ: \"ガ\",\n ギ: \"ギ\",\n グ: \"グ\",\n ゲ: \"ゲ\",\n ゴ: \"ゴ\",\n ザ: \"ザ\",\n ジ: \"ジ\",\n ズ: \"ズ\",\n ゼ: \"ゼ\",\n ゾ: \"ゾ\",\n ダ: \"ダ\",\n ヂ: \"ヂ\",\n ヅ: \"ヅ\",\n デ: \"デ\",\n ド: \"ド\",\n バ: \"バ\",\n ビ: \"ビ\",\n ブ: \"ブ\",\n ベ: \"ベ\",\n ボ: \"ボ\",\n パ: \"パ\",\n ピ: \"ピ\",\n プ: \"プ\",\n ペ: \"ペ\",\n ポ: \"ポ\",\n ヴ: \"ヴ\",\n ヷ: \"ヷ\",\n ヺ: \"ヺ\",\n ア: \"ア\",\n イ: \"イ\",\n ウ: \"ウ\",\n エ: \"エ\",\n オ: \"オ\",\n カ: \"カ\",\n キ: \"キ\",\n ク: \"ク\",\n ケ: \"ケ\",\n コ: \"コ\",\n サ: \"サ\",\n シ: \"シ\",\n ス: \"ス\",\n セ: \"セ\",\n ソ: \"ソ\",\n タ: \"タ\",\n チ: \"チ\",\n ツ: \"ツ\",\n テ: \"テ\",\n ト: \"ト\",\n ナ: \"ナ\",\n ニ: \"ニ\",\n ヌ: \"ヌ\",\n ネ: \"ネ\",\n ノ: \"ノ\",\n ハ: \"ハ\",\n ヒ: \"ヒ\",\n フ: \"フ\",\n ヘ: \"ヘ\",\n ホ: \"ホ\",\n マ: \"マ\",\n ミ: \"ミ\",\n ム: \"ム\",\n メ: \"メ\",\n モ: \"モ\",\n ヤ: \"ヤ\",\n ユ: \"ユ\",\n ヨ: \"ヨ\",\n ラ: \"ラ\",\n リ: \"リ\",\n ル: \"ル\",\n レ: \"レ\",\n ロ: \"ロ\",\n ワ: \"ワ\",\n ヲ: \"ヲ\",\n ン: \"ン\",\n ァ: \"ァ\",\n ィ: \"ィ\",\n ゥ: \"ゥ\",\n ェ: \"ェ\",\n ォ: \"ォ\",\n ッ: \"ッ\",\n ャ: \"ャ\",\n ュ: \"ュ\",\n ョ: \"ョ\",\n \"。\": \"。\",\n \"、\": \"、\",\n ー: \"ー\",\n \"「\": \"「\",\n \"」\": \"」\",\n \"・\": \"・\",\n}\n\nconst defaultFormat = (value: string) => {\n value = value.replace(/[!-~]/g, (v) =>\n String.fromCharCode(v.charCodeAt(0) - 0xfee0),\n )\n\n const reg = new RegExp(\"(\" + Object.keys(kanaMap).join(\"|\") + \")\", \"g\")\n\n value = value\n .replace(reg, (v) => kanaMap[v])\n .replace(/゙/g, \"゛\")\n .replace(/゚/g, \"゜\")\n\n value = value.toUpperCase()\n\n return value\n}\n\nconst flattenItems = (\n items: AutocompleteItem[],\n): AutocompleteItemWithValue[] => {\n const filterItems = (\n items: AutocompleteItem[] | AutocompleteItemWithValue[],\n ): (AutocompleteItemWithValue | AutocompleteItemWithValue[])[] =>\n items\n .map((item) => {\n const { isDisabled, isFocusable } = item\n const trulyDisabled = !!isDisabled && !isFocusable\n\n if (trulyDisabled) return\n\n if (\"items\" in item) {\n return filterItems(item.items ?? [])\n } else {\n return item as AutocompleteItemWithValue\n }\n })\n .filter(Boolean) as (\n | AutocompleteItemWithValue\n | AutocompleteItemWithValue[]\n )[]\n\n return filterItems(items).flat(Infinity) as AutocompleteItemWithValue[]\n}\n\nconst isTargetOption = (target: EventTarget | null): boolean =>\n isHTMLElement(target) &&\n !!target?.getAttribute(\"role\")?.startsWith(\"autocomplete-item\")\n\nexport const {\n DescendantsContextProvider: AutocompleteDescendantsContextProvider,\n useDescendantsContext: useAutocompleteDescendantsContext,\n useDescendants: useAutocompleteDescendants,\n useDescendant: useAutocompleteDescendant,\n} = createDescendant<HTMLElement>()\n\ntype AutocompleteContext = Omit<\n UseAutocompleteProps,\n \"value\" | \"defaultValue\" | \"onChange\" | \"onCreate\"\n> & {\n value: string | string[]\n label: string | string[] | undefined\n inputValue: string\n isHit: boolean\n isEmpty: boolean\n isAllSelected: boolean\n onChange: (newValue: string) => void\n onChangeLabel: (newValue: string, runOmit?: boolean) => void\n pickOptions: (value: string) => void\n rebirthOptions: (runFocus?: boolean) => void\n inputProps: DOMAttributes\n isOpen: boolean\n onOpen: () => void\n onClose: () => void\n onCreate: () => void\n onFocusFirst: () => void\n onFocusLast: () => void\n onFocusNext: (index?: number) => void\n onFocusPrev: (index?: number) => void\n focusedIndex: number\n setFocusedIndex: Dispatch<SetStateAction<number>>\n listRef: RefObject<HTMLUListElement>\n inputRef: RefObject<HTMLInputElement>\n formControlProps: Record<string, any>\n styles: Record<string, CSSUIObject>\n}\n\nexport const [AutocompleteProvider, useAutocompleteContext] =\n createContext<AutocompleteContext>({\n name: \"AutocompleteContext\",\n errorMessage: `useAutocompleteContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Autocomplete />\" or \"<MultiAutocomplete />\"`,\n })\n\ntype UseAutocompleteBaseProps<T extends string | string[] = string> = Omit<\n PopoverProps,\n | \"initialFocusRef\"\n | \"closeOnButton\"\n | \"trigger\"\n | \"autoFocus\"\n | \"restoreFocus\"\n | \"openDelay\"\n | \"closeDelay\"\n> &\n FormControlOptions & {\n /**\n * The value of the autocomplete.\n */\n value?: T\n /**\n * The initial value of the autocomplete.\n */\n defaultValue?: T\n /**\n * The callback invoked when value state changes.\n */\n onChange?: (value: T) => void\n /**\n * The callback invoked when search input.\n */\n onSearch?: (ev: ChangeEvent<HTMLInputElement>) => void\n /**\n * The callback invoked when autocomplete option created.\n */\n onCreate?: (newItem: AutocompleteItem, newItems: AutocompleteItem[]) => void\n /**\n * Function to format text when search input.\n */\n format?: (value: string) => string\n /**\n * The position to be inserted when the autocomplete option is created.\n *\n * @default 'first'\n */\n insertPositionItem?: Union<\"first\" | \"last\"> | [string, \"first\" | \"last\"]\n /**\n * If `true`, the list element will be closed when value is selected.\n *\n * @default true\n */\n closeOnSelect?: boolean\n /**\n * The message displayed when the search yields no hits.\n *\n * @default 'No results found'\n */\n emptyMessage?: string\n /**\n * If `true`, enables the creation of autocomplete option.\n *\n * @default false\n */\n allowCreate?: boolean\n /**\n * If `true`, enables the free input.\n */\n allowFree?: boolean\n /**\n * If `true`, the selected item(s) will be excluded from the list.\n *\n * @default false\n */\n omitSelectedValues?: boolean\n /**\n * The maximum selectable value.\n */\n maxSelectValues?: number\n /**\n * Props for select option element.\n */\n optionProps?: Omit<AutocompleteOptionProps, \"value\" | \"children\">\n /**\n * If provided, generate options based on items.\n */\n items?: AutocompleteItem[]\n }\n\nexport type UseAutocompleteProps<T extends string | string[] = string> = Omit<\n HTMLUIProps<\"input\">,\n | keyof UseAutocompleteBaseProps\n | \"list\"\n | \"disabled\"\n | \"required\"\n | \"readOnly\"\n | \"size\"\n> &\n UseAutocompleteBaseProps<T>\n\nexport const useAutocomplete = <T extends string | string[] = string>({\n value: valueProp,\n defaultValue,\n onChange: onChangeProp,\n onCreate: onCreateProp,\n onSearch: onSearchProp,\n closeOnSelect = true,\n omitSelectedValues = false,\n maxSelectValues,\n closeOnBlur = true,\n closeOnEsc = true,\n allowCreate = false,\n allowFree = false,\n insertPositionItem = \"first\",\n emptyMessage = \"No results found\",\n format = defaultFormat,\n placement = \"bottom-start\",\n duration = 0.2,\n optionProps,\n placeholder,\n items,\n children,\n isOpen: isOpenProp,\n defaultIsOpen,\n onOpen: onOpenProp,\n onClose: onCloseProp,\n ...rest\n}: UseAutocompleteProps<T>) => {\n rest = useFormControlProps(rest)\n\n const { id } = rest\n\n const formControlProps = pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n )\n const [containerProps, inputProps] = splitObject<Dict, string>(\n omitObject(rest, [...popoverProperties, \"onKeyDown\", \"onFocus\"]),\n layoutStyleProperties,\n )\n\n const descendants = useAutocompleteDescendants()\n\n const containerRef = useRef<HTMLDivElement>(null)\n const listRef = useRef<HTMLUListElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n const timeoutIds = useRef<Set<any>>(new Set([]))\n const isComposition = useRef<boolean>(false)\n const prevValue = useRef<T | undefined>(undefined)\n\n const [resolvedItems, setResolvedItems] = useState<\n AutocompleteItem[] | undefined\n >(items)\n const [value, setValue] = useControllableState({\n value: valueProp,\n defaultValue,\n onChange: onChangeProp,\n })\n const [label, setLabel] = useState<T | undefined>(undefined)\n const [inputValue, setInputValue] = useState<string>(\"\")\n const [focusedIndex, setFocusedIndex] = useState<number>(-1)\n const [isAllSelected, setIsAllSelected] = useState<boolean>(false)\n const [isHit, setIsHit] = useState<boolean>(true)\n const {\n isOpen,\n onOpen: onInternalOpen,\n onClose,\n } = useDisclosure({\n isOpen: isOpenProp,\n defaultIsOpen,\n onOpen: onOpenProp,\n onClose: onCloseProp,\n })\n const isFocused = focusedIndex > -1\n const isCreate = focusedIndex === -2 && allowCreate\n const isMulti = isArray(value)\n const isEmptyValue = !isMulti ? !value : !value.length\n\n const [firstInsertPositionItem, secondInsertPositionItem] = useMemo(() => {\n if (isArray(insertPositionItem)) {\n return insertPositionItem\n } else {\n return [insertPositionItem, \"first\"]\n }\n }, [insertPositionItem])\n\n if (allowCreate && !isUndefined(children)) {\n console.warn(\n `${!isMulti ? \"Autocomplete\" : \"MultiAutocomplete\"}: ${\n !isMulti ? \"Autocomplete\" : \"MultiAutocomplete\"\n } internally prefers 'children'. If 'allowCreate' is true, it will not be reflected correctly. If want to reflect, please set 'items' in props.`,\n )\n }\n\n const selectedValues = descendants.enabledValues(\n ({ node }) => isMulti && value.includes(node.dataset.value ?? \"\"),\n )\n const selectedIndexes = selectedValues.map(({ index }) => index)\n const enabledValues = descendants.enabledValues(\n ({ node, index }) =>\n \"target\" in node.dataset && !selectedIndexes.includes(index),\n )\n\n const validChildren = getValidChildren(children)\n\n const computedChildren = resolvedItems?.map((item, i) => {\n if (\"value\" in item) {\n const { label, value, ...props } = item\n\n return (\n <AutocompleteOption key={i} value={value} {...props}>\n {label}\n </AutocompleteOption>\n )\n } else if (\"items\" in item) {\n const { label, items = [], ...props } = item\n\n return (\n <AutocompleteOptionGroup\n key={i}\n label={label as string}\n {...(props as HTMLUIProps<\"ul\">)}\n >\n {items.map(({ label, value, ...props }, i) => (\n <AutocompleteOption key={i} value={value} {...props}>\n {label}\n </AutocompleteOption>\n ))}\n </AutocompleteOptionGroup>\n )\n }\n })\n\n const isEmpty = !validChildren.length && !computedChildren?.length\n\n const onOpen = useCallback(() => {\n if (formControlProps.disabled || formControlProps.readOnly) return\n\n if (!allowCreate && (isEmpty || isAllSelected)) return\n\n onInternalOpen()\n\n if (inputRef.current) inputRef.current.focus()\n }, [allowCreate, formControlProps, isAllSelected, isEmpty, onInternalOpen])\n\n const onFocusFirst = useCallback(() => {\n const id = setTimeout(() => {\n if (isEmpty || isAllSelected) return\n\n const first = descendants.enabledFirstValue(\n ({ node }) => \"target\" in node.dataset,\n )\n\n if (!first) return\n\n if (!isMulti || !omitSelectedValues) {\n setFocusedIndex(first.index)\n } else {\n if (selectedIndexes.includes(first.index)) {\n const enabledFirst = enabledValues[0]\n\n setFocusedIndex(enabledFirst.index)\n } else {\n setFocusedIndex(first.index)\n }\n }\n })\n\n timeoutIds.current.add(id)\n }, [\n descendants,\n enabledValues,\n isAllSelected,\n isEmpty,\n isMulti,\n omitSelectedValues,\n selectedIndexes,\n ])\n\n const onFocusLast = useCallback(() => {\n const id = setTimeout(() => {\n if (isEmpty || isAllSelected) return\n\n const last = descendants.enabledLastValue(\n ({ node }) => \"target\" in node.dataset,\n )\n\n if (!last) return\n\n if (!isMulti || !omitSelectedValues) {\n setFocusedIndex(last.index)\n } else {\n if (selectedIndexes.includes(last.index)) {\n const enabledLast = enabledValues.reverse()[0]\n\n setFocusedIndex(enabledLast.index)\n } else {\n setFocusedIndex(last.index)\n }\n }\n })\n\n timeoutIds.current.add(id)\n }, [\n descendants,\n enabledValues,\n isAllSelected,\n isEmpty,\n isMulti,\n omitSelectedValues,\n selectedIndexes,\n ])\n\n const onFocusSelected = useCallback(() => {\n const id = setTimeout(() => {\n const values = descendants.enabledValues()\n\n const selected = values.find(({ node }) =>\n !isMulti\n ? node.dataset.value === value\n : value.includes(node.dataset.value ?? \"\"),\n )\n\n if (selected) setFocusedIndex(selected.index)\n })\n\n timeoutIds.current.add(id)\n }, [descendants, isMulti, value])\n\n const onFocusNext = useCallback(\n (index: number = focusedIndex) => {\n const id = setTimeout(() => {\n const next = descendants.enabledNextValue(\n index,\n ({ node }) => \"target\" in node.dataset,\n )\n\n if (!next) return\n\n if (!isMulti || !omitSelectedValues) {\n setFocusedIndex(next.index)\n } else {\n if (selectedIndexes.includes(next.index)) {\n const enabledNext =\n enabledValues.find(({ index }) => next.index < index) ??\n enabledValues[0]\n\n setFocusedIndex(enabledNext.index)\n } else {\n setFocusedIndex(next.index)\n }\n }\n })\n\n timeoutIds.current.add(id)\n },\n [\n descendants,\n enabledValues,\n focusedIndex,\n isMulti,\n omitSelectedValues,\n selectedIndexes,\n ],\n )\n\n const onFocusPrev = useCallback(\n (index: number = focusedIndex) => {\n const id = setTimeout(() => {\n const prev = descendants.enabledPrevValue(\n index,\n ({ node }) => \"target\" in node.dataset,\n )\n\n if (!prev) return\n\n if (!isMulti || !omitSelectedValues) {\n setFocusedIndex(prev.index)\n } else {\n if (selectedIndexes.includes(prev.index)) {\n const enabledPrev =\n enabledValues.reverse().find(({ index }) => index < prev.index) ??\n enabledValues[0]\n\n setFocusedIndex(enabledPrev.index)\n } else {\n setFocusedIndex(prev.index)\n }\n }\n })\n\n timeoutIds.current.add(id)\n },\n [\n descendants,\n enabledValues,\n focusedIndex,\n isMulti,\n omitSelectedValues,\n selectedIndexes,\n ],\n )\n\n const onFocusFirstOrSelected =\n isEmptyValue || omitSelectedValues ? onFocusFirst : onFocusSelected\n const onFocusLastOrSelected =\n isEmptyValue || omitSelectedValues ? onFocusLast : onFocusSelected\n\n const pickOptions = useCallback(\n (value: string) => {\n const values = descendants.values()\n\n let isHit = false\n let isFocused = false\n\n values.forEach(({ node, index }) => {\n if (format(node.textContent ?? \"\").includes(value)) {\n isHit = true\n\n const isDisabled = \"disabled\" in node.dataset\n\n node.dataset.target = \"\"\n\n if (!isFocused && !isDisabled) {\n isFocused = true\n\n setFocusedIndex(index)\n }\n } else {\n delete node.dataset.target\n }\n })\n\n setIsHit(isHit)\n },\n [descendants, format],\n )\n\n const rebirthOptions = useCallback(\n (runFocus = true) => {\n const values = descendants.values()\n\n values.forEach(({ node }) => {\n node.dataset.target = \"\"\n })\n\n if (runFocus) onFocusFirst()\n\n setIsHit(true)\n },\n [descendants, onFocusFirst],\n )\n\n const getSelectedValues = useCallback(\n (newValues: string | string[]) => {\n const enabledValues = descendants.enabledValues()\n\n const resolvedValues = isArray(newValues) ? newValues : [newValues]\n\n const selectedValues = resolvedValues\n .map((value) => {\n const { node } =\n enabledValues.find(({ node }) => node.dataset.value === value) ?? {}\n\n if (node) {\n const el = Array.from(node.children).find(\n (child) => child.getAttribute(\"data-label\") !== null,\n )\n\n return el?.textContent ?? undefined\n } else {\n return allowFree ? value : undefined\n }\n })\n .filter(Boolean) as string[]\n\n return selectedValues\n },\n [allowFree, descendants],\n )\n\n const onChangeLabel = useCallback(\n (newValue: string, runOmit: boolean = true) => {\n const selectedValues = getSelectedValues(newValue)\n\n setLabel((prev) => {\n if (!isMulti) {\n return selectedValues[0] as T\n } else {\n selectedValues.forEach((selectedValue) => {\n const isSelected =\n isArray(prev) && prev.includes(selectedValue ?? \"\")\n\n if (!isSelected) {\n prev = [...(isArray(prev) ? prev : []), selectedValue] as T\n } else if (runOmit) {\n prev = (\n isArray(prev)\n ? prev.filter((value) => value !== selectedValue)\n : undefined\n ) as T\n }\n })\n\n return prev\n }\n })\n },\n [getSelectedValues, isMulti],\n )\n\n const onChange = useCallback(\n (newValue: string, runRebirth: boolean = true) => {\n setValue((prev) => {\n let next: T\n\n if (!isArray(prev)) {\n next = newValue as T\n } else {\n const isSelected = prev.includes(newValue)\n\n if (!isSelected) {\n next = [...prev, newValue] as T\n } else {\n next = prev.filter((value) => value !== newValue) as T\n }\n }\n\n prevValue.current = next\n return next\n })\n\n const isHit =\n descendants\n .values()\n .filter(({ node }) =>\n format(node.textContent ?? \"\").includes(newValue),\n ).length > 0\n\n onChangeLabel(newValue)\n\n if (allowFree || isHit) setInputValue(\"\")\n\n if (isMulti && runRebirth) rebirthOptions(false)\n },\n [\n allowFree,\n isMulti,\n onChangeLabel,\n rebirthOptions,\n setValue,\n descendants,\n format,\n ],\n )\n\n const onSelect = useCallback(() => {\n let enabledValue = descendants.value(focusedIndex)\n\n if (\"disabled\" in (enabledValue?.node.dataset ?? {}))\n enabledValue = undefined\n\n if (!enabledValue) return\n\n const value = enabledValue.node.dataset.value ?? \"\"\n\n onChange(value)\n\n if (closeOnSelect) onClose()\n\n if (omitSelectedValues) onFocusNext()\n }, [\n closeOnSelect,\n descendants,\n focusedIndex,\n omitSelectedValues,\n onChange,\n onClose,\n onFocusNext,\n ])\n\n const onSearch = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (!isOpen) onOpen()\n\n onSearchProp?.(ev)\n\n const value = ev.target.value\n const computedValue = format(value)\n\n if (computedValue) {\n pickOptions(computedValue)\n } else {\n rebirthOptions()\n }\n\n setInputValue(value)\n },\n [isOpen, onOpen, format, onSearchProp, pickOptions, rebirthOptions],\n )\n\n const onCompositionStart = useCallback(() => {\n isComposition.current = true\n }, [])\n\n const onCompositionEnd = useCallback(() => {\n isComposition.current = false\n }, [])\n\n const onCreate = useCallback(() => {\n if (!listRef.current) return\n\n const newItem: AutocompleteItem = { label: inputValue, value: inputValue }\n\n let newItems: AutocompleteItem[] = []\n\n if (resolvedItems) newItems = resolvedItems\n\n if (firstInsertPositionItem === \"first\") {\n newItems = [newItem, ...newItems]\n } else if (firstInsertPositionItem === \"last\") {\n newItems = [...newItems, newItem]\n } else {\n const i = newItems.findIndex(\n ({ label }) => label === firstInsertPositionItem,\n )\n\n const targetItem = newItems[i]\n\n if (i !== -1 && \"items\" in targetItem) {\n if (secondInsertPositionItem === \"first\") {\n targetItem.items = [newItem, ...(targetItem.items ?? [])]\n } else {\n targetItem.items = [...(targetItem.items ?? []), newItem]\n }\n\n newItems[i] = targetItem\n } else {\n console.warn(\n `${\n !isMulti ? \"Autocomplete\" : \"MultiAutocomplete\"\n }: '${firstInsertPositionItem}' specified in insertPositionItem does not exist in the option group.`,\n )\n }\n }\n\n setResolvedItems(newItems)\n onChange(inputValue)\n rebirthOptions(false)\n\n const index = flattenItems(newItems).findIndex(\n ({ value }) => value === inputValue,\n )\n\n setFocusedIndex(index)\n\n onCreateProp?.(newItem, newItems)\n }, [\n inputValue,\n resolvedItems,\n firstInsertPositionItem,\n onChange,\n rebirthOptions,\n onCreateProp,\n secondInsertPositionItem,\n isMulti,\n ])\n\n const onClick = useCallback(() => {\n if (isOpen) {\n if (inputRef.current) inputRef.current.focus()\n } else {\n onOpen()\n\n onFocusFirstOrSelected()\n }\n }, [isOpen, onFocusFirstOrSelected, onOpen])\n\n const onFocus = useCallback(() => {\n if (isOpen) return\n\n onOpen()\n\n onFocusFirstOrSelected()\n }, [isOpen, onFocusFirstOrSelected, onOpen])\n\n const onBlur = useCallback(\n (ev: FocusEvent<HTMLDivElement>) => {\n const relatedTarget = getEventRelatedTarget(ev)\n\n if (isContains(containerRef.current, relatedTarget)) return\n\n if (!closeOnBlur && isHit) return\n\n if (allowFree && !!inputValue) onChange(inputValue, false)\n\n setInputValue(\"\")\n\n if (isOpen) onClose()\n },\n [closeOnBlur, isHit, isOpen, inputValue, allowFree, onClose, onChange],\n )\n\n const onDelete = useCallback(() => {\n if (!isMulti) {\n onChange(\"\")\n } else {\n onChange(value[value.length - 1])\n }\n\n if (!isOpen) onFocus()\n }, [isMulti, isOpen, onChange, onFocus, value])\n\n const onClear = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n ev.stopPropagation()\n\n prevValue.current = [] as unknown as T\n setValue([] as unknown as T)\n setLabel(undefined)\n setInputValue(\"\")\n rebirthOptions()\n\n if (isOpen && inputRef.current) inputRef.current.focus()\n },\n [isOpen, setLabel, setInputValue, setValue, rebirthOptions],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLDivElement>) => {\n if (ev.key === \" \") ev.key = ev.code\n\n if (formControlProps.disabled || formControlProps.readOnly) return\n if (isComposition.current) return\n\n const enabledDelete = label === inputValue || !inputValue.length\n\n const actions: Record<string, Function | undefined> = {\n ArrowDown: isFocused\n ? () => onFocusNext()\n : !isOpen\n ? funcAll(onOpen, onFocusFirstOrSelected)\n : undefined,\n ArrowUp: isFocused\n ? () => onFocusPrev()\n : !isOpen\n ? funcAll(onOpen, onFocusLastOrSelected)\n : undefined,\n Space: isCreate\n ? onCreate\n : isFocused\n ? onSelect\n : !isOpen\n ? funcAll(onOpen, onFocusFirstOrSelected)\n : undefined,\n Enter: isCreate\n ? onCreate\n : isFocused\n ? onSelect\n : !isOpen\n ? funcAll(onOpen, onFocusFirstOrSelected)\n : allowFree && isMulti\n ? () => {\n if (inputValue) onChange(inputValue)\n\n setFocusedIndex(0)\n }\n : undefined,\n Home: isOpen ? onFocusFirst : undefined,\n End: isOpen ? onFocusLast : undefined,\n Escape: closeOnEsc ? onClose : undefined,\n Backspace: !isEmptyValue && enabledDelete ? onDelete : undefined,\n }\n\n const action = actions[ev.key]\n\n if (!action) return\n\n ev.preventDefault()\n ev.stopPropagation()\n\n action(ev)\n },\n [\n allowFree,\n formControlProps,\n label,\n inputValue,\n onOpen,\n isFocused,\n isMulti,\n onFocusFirstOrSelected,\n onFocusNext,\n onFocusLastOrSelected,\n onFocusPrev,\n isCreate,\n onCreate,\n onSelect,\n isOpen,\n onFocusFirst,\n onFocusLast,\n closeOnEsc,\n onClose,\n isEmptyValue,\n onDelete,\n onChange,\n ],\n )\n\n useEffect(() => {\n if (!isMulti) return\n\n if (!omitSelectedValues && isUndefined(maxSelectValues)) return\n\n const isAll = value.length > 0 && value.length === descendants.count()\n const isMax = value.length === maxSelectValues\n\n if (isAll || isMax) {\n onClose()\n setIsAllSelected(true)\n } else {\n setIsAllSelected(false)\n }\n }, [\n omitSelectedValues,\n value,\n descendants,\n isMulti,\n onClose,\n maxSelectValues,\n ])\n\n useEffect(() => {\n if (isMulti) {\n if (\n JSON.stringify(prevValue.current ?? []) === JSON.stringify(value ?? [])\n )\n return\n\n const label = getSelectedValues(value)\n\n setLabel(label as T)\n } else {\n if (prevValue.current === value) return\n\n onChangeLabel(value, false)\n }\n }, [isMulti, value, onChangeLabel, getSelectedValues])\n\n useUpdateEffect(() => {\n if (isOpen || allowFree) return\n\n setFocusedIndex(-1)\n setInputValue(\"\")\n }, [isOpen])\n\n useUpdateEffect(() => {\n if (!isHit) setFocusedIndex(-2)\n }, [isHit])\n\n useUnmountEffect(() => {\n timeoutIds.current.forEach((id) => clearTimeout(id))\n timeoutIds.current.clear()\n })\n\n useOutsideClick({\n ref: containerRef,\n handler: onClose,\n enabled: isOpen && (closeOnBlur || !isHit),\n })\n\n const getPopoverProps = useCallback(\n (props?: PopoverProps): PopoverProps => ({\n matchWidth: true,\n ...rest,\n ...props,\n isOpen,\n onOpen,\n onClose,\n placement,\n duration,\n trigger: \"never\",\n closeOnButton: false,\n closeOnBlur,\n }),\n [duration, closeOnBlur, isOpen, onClose, onOpen, placement, rest],\n )\n\n const getContainerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ref: mergeRefs(containerRef, ref),\n ...containerProps,\n ...props,\n ...formControlProps,\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onBlur: handlerAll(props.onBlur, rest.onBlur, onBlur),\n }),\n\n [containerProps, formControlProps, onBlur, onClick, rest],\n )\n\n const getFieldProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ref,\n tabIndex: -1,\n ...props,\n ...formControlProps,\n placeholder,\n \"data-active\": dataAttr(isOpen),\n \"aria-expanded\": dataAttr(isOpen),\n onFocus: handlerAll(props.onFocus, rest.onFocus, onFocus),\n onKeyDown: handlerAll(props.onKeyDown, rest.onKeyDown, onKeyDown),\n }),\n [formControlProps, placeholder, isOpen, rest, onFocus, onKeyDown],\n )\n\n return {\n id,\n descendants,\n value,\n label,\n inputValue,\n isHit,\n isEmpty,\n computedChildren,\n focusedIndex,\n omitSelectedValues,\n closeOnSelect,\n allowCreate,\n allowFree,\n emptyMessage,\n isOpen,\n isAllSelected,\n listRef,\n inputRef,\n optionProps,\n formControlProps,\n setFocusedIndex,\n onChangeLabel,\n onChange,\n onSearch,\n onCreate,\n onClear,\n onCompositionStart,\n onCompositionEnd,\n pickOptions,\n rebirthOptions,\n onOpen,\n onClose,\n onFocusFirst,\n onFocusLast,\n onFocusSelected,\n onFocusNext,\n onFocusPrev,\n getPopoverProps,\n getContainerProps,\n getFieldProps,\n inputProps,\n }\n}\n\nexport type UseAutocompleteReturn = ReturnType<typeof useAutocomplete>\n\nexport const useAutocompleteInput = () => {\n const {\n id,\n inputRef,\n onSearch,\n onCompositionStart,\n onCompositionEnd,\n isAllSelected,\n formControlProps,\n inputProps,\n } = useAutocompleteContext()\n\n useUpdateEffect(() => {\n if (isAllSelected && inputRef.current) inputRef.current.blur()\n }, [isAllSelected])\n\n const getInputProps: UIPropGetter<\"input\"> = useCallback(\n (props = {}, ref = null) => ({\n ref: mergeRefs(inputRef, ref),\n ...formControlProps,\n ...inputProps,\n ...props,\n id,\n cursor: formControlProps.readOnly ? \"default\" : \"text\",\n pointerEvents:\n formControlProps.disabled || isAllSelected ? \"none\" : \"auto\",\n tabIndex: isAllSelected ? -1 : 0,\n onChange: handlerAll(props.onChange, onSearch),\n onCompositionStart: handlerAll(\n props.onCompositionStart,\n inputProps.onCompositionStart,\n onCompositionStart,\n ),\n onCompositionEnd: handlerAll(\n props.onCompositionEnd,\n inputProps.onCompositionEnd,\n onCompositionEnd,\n ),\n }),\n [\n inputProps,\n inputRef,\n formControlProps,\n id,\n isAllSelected,\n onSearch,\n onCompositionStart,\n onCompositionEnd,\n ],\n )\n\n return {\n getInputProps,\n }\n}\n\nexport type UseAutocompleteInputReturn = ReturnType<typeof useAutocompleteInput>\n\nexport const useAutocompleteList = () => {\n const { focusedIndex, isOpen, listRef, rebirthOptions } =\n useAutocompleteContext()\n\n const descendants = useAutocompleteDescendantsContext()\n\n const beforeFocusedIndex = useRef<number>(-1)\n const selectedValue = descendants.value(focusedIndex)\n\n const onAnimationComplete = useCallback(() => {\n if (!isOpen) rebirthOptions(false)\n }, [isOpen, rebirthOptions])\n\n useEffect(() => {\n if (!listRef.current || !selectedValue) return\n\n if (beforeFocusedIndex.current === selectedValue.index) return\n\n const parent = listRef.current\n const child = selectedValue.node\n\n const parentHeight = parent.clientHeight\n const viewTop = parent.scrollTop\n const viewBottom = viewTop + parentHeight\n\n const childHeight = child.clientHeight\n const childTop = child.offsetTop\n const childBottom = childTop + childHeight\n\n const isInView = viewTop <= childTop && childBottom <= viewBottom\n\n const isScrollBottom = beforeFocusedIndex.current < selectedValue.index\n\n if (!isInView) {\n if (childBottom <= parentHeight) {\n listRef.current.scrollTo({ top: 0 })\n } else {\n if (!isScrollBottom) {\n listRef.current.scrollTo({ top: childTop + 1 })\n } else {\n listRef.current.scrollTo({ top: childBottom - parentHeight })\n }\n }\n }\n\n beforeFocusedIndex.current = selectedValue.index\n }, [listRef, selectedValue])\n\n useUpdateEffect(() => {\n if (!isOpen) beforeFocusedIndex.current = -1\n }, [isOpen])\n\n const getListProps: MotionUIPropGetter<\"ul\"> = useCallback(\n (props = {}, ref = null) => ({\n as: \"ul\",\n ref: mergeRefs(listRef, ref),\n role: \"select\",\n tabIndex: -1,\n ...props,\n onAnimationComplete: handlerAll(\n props.onAnimationComplete,\n onAnimationComplete,\n ),\n }),\n [listRef, onAnimationComplete],\n )\n\n return {\n getListProps,\n }\n}\n\nexport type UseAutocompleteOptionGroupProps = HTMLUIProps<\"ul\"> & {\n /**\n * The label of the autocomplete option group.\n */\n label: string\n}\n\nexport const useAutocompleteOptionGroup = ({\n label,\n ...rest\n}: UseAutocompleteOptionGroupProps) => {\n const { value, omitSelectedValues } = useAutocompleteContext()\n\n const isMulti = isArray(value)\n\n const descendants = useAutocompleteDescendantsContext()\n\n const values = descendants.values()\n const selectedValues =\n isMulti && omitSelectedValues\n ? descendants.values(({ node }) =>\n value.includes(node.dataset.value ?? \"\"),\n )\n : []\n const selectedIndexes = selectedValues.map(({ index }) => index)\n const childValues = values.filter(\n ({ node, index }) =>\n node.parentElement?.dataset.label === label &&\n !selectedIndexes.includes(index) &&\n \"target\" in node.dataset,\n )\n\n const isEmpty = !childValues.length\n\n const computedRest = splitObject(rest, layoutStyleProperties)\n\n const getContainerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const style: CSSProperties = {\n border: \"0px\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n height: \"1px\",\n width: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\",\n }\n\n return {\n ref,\n ...props,\n ...computedRest[0],\n style: isEmpty ? style : undefined,\n \"data-label\": label,\n role: \"autocomplete-group-container\",\n }\n },\n [computedRest, isEmpty, label],\n )\n\n const getGroupProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ref,\n ...props,\n ...computedRest[1],\n \"data-label\": label,\n role: \"autocomplete-group\",\n }),\n [computedRest, label],\n )\n\n return {\n label,\n getContainerProps,\n getGroupProps,\n }\n}\n\nexport type UseAutocompleteOptionGroupReturn = ReturnType<\n typeof useAutocompleteOptionGroup\n>\n\nexport type UseAutocompleteOptionProps = Omit<\n HTMLUIProps<\"li\">,\n \"value\" | \"children\"\n> & {\n /**\n * The value of the select option.\n */\n value?: string\n /**\n * The label of the select option.\n */\n children?: string\n /**\n * If `true`, the select option will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true`, the select option will be focusable.\n *\n * @default false\n */\n isFocusable?: boolean\n /**\n * If `true`, the list element will be closed when selected.\n *\n * @default false\n */\n closeOnSelect?: boolean\n}\n\nexport const useAutocompleteOption = (props: UseAutocompleteOptionProps) => {\n const {\n value,\n omitSelectedValues,\n onChange,\n onChangeLabel,\n focusedIndex,\n setFocusedIndex,\n onClose,\n closeOnSelect: generalCloseOnSelect,\n optionProps,\n inputRef,\n onFocusNext,\n } = useAutocompleteContext()\n\n let {\n icon: customIcon,\n isDisabled,\n isFocusable,\n closeOnSelect: customCloseOnSelect,\n children,\n value: optionValue,\n ...computedProps\n } = { ...optionProps, ...props }\n\n const trulyDisabled = !!isDisabled && !isFocusable\n\n const itemRef = useRef<HTMLLIElement>(null)\n\n const { index, register, descendants } = useAutocompleteDescendant({\n disabled: trulyDisabled,\n })\n\n const values = descendants.values()\n const frontValues = values.slice(0, index)\n\n const isMulti = isArray(value)\n const isDuplicated = !isMulti\n ? frontValues.some(({ node }) => node.dataset.value === (optionValue ?? \"\"))\n : false\n\n const isSelected =\n !isDuplicated &&\n (!isMulti\n ? (optionValue ?? \"\") === value\n : value.includes(optionValue ?? \"\"))\n const isTarget = \"target\" in (itemRef.current?.dataset ?? {})\n const isFocused = index === focusedIndex\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLLIElement>) => {\n ev.stopPropagation()\n\n if (isDisabled) {\n if (inputRef.current) inputRef.current.focus()\n\n return\n }\n\n if (!isTargetOption(ev.currentTarget)) {\n if (inputRef.current) inputRef.current.focus()\n\n return\n }\n\n setFocusedIndex(index)\n\n onChange(optionValue ?? \"\")\n\n if (inputRef.current) inputRef.current.focus()\n\n if (customCloseOnSelect ?? generalCloseOnSelect) onClose()\n\n if (omitSelectedValues) onFocusNext(index)\n },\n [\n onFocusNext,\n omitSelectedValues,\n isDisabled,\n optionValue,\n setFocusedIndex,\n index,\n onChange,\n customCloseOnSelect,\n generalCloseOnSelect,\n onClose,\n inputRef,\n ],\n )\n\n useUpdateEffect(() => {\n if (isSelected) onChangeLabel(optionValue ?? \"\", false)\n }, [optionValue])\n\n const getOptionProps: UIPropGetter<\"li\"> = useCallback(\n (props = {}, ref = null) => {\n const style: CSSProperties = {\n border: \"0px\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n height: \"1px\",\n width: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\",\n }\n\n return {\n ref: mergeRefs(itemRef, ref, register),\n ...computedProps,\n ...props,\n role: \"autocomplete-item\",\n tabIndex: -1,\n style:\n !isTarget || (omitSelectedValues && isSelected) ? style : undefined,\n \"data-target\": dataAttr(true),\n \"data-value\": optionValue ?? \"\",\n \"data-focus\": dataAttr(isFocused),\n \"data-disabled\": dataAttr(isDisabled),\n \"aria-checked\": ariaAttr(isSelected),\n \"aria-disabled\": ariaAttr(isDisabled),\n onClick: handlerAll(computedProps.onClick, props.onClick, onClick),\n }\n },\n [\n optionValue,\n computedProps,\n isDisabled,\n isFocused,\n isSelected,\n isTarget,\n omitSelectedValues,\n onClick,\n register,\n ],\n )\n\n return {\n isSelected,\n isFocused,\n customIcon,\n children,\n getOptionProps,\n }\n}\n\nexport type UseAutocompleteOptionReturn = ReturnType<\n typeof useAutocompleteOption\n>\n\nexport const useAutocompleteCreate = () => {\n const { isHit, onCreate } = useAutocompleteContext()\n\n const getCreateProps: UIPropGetter<\"li\"> = useCallback(\n (props = {}, ref = null) => {\n const style: CSSProperties = {\n border: \"0px\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n height: \"1px\",\n width: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\",\n }\n\n return {\n ref,\n ...props,\n tabIndex: -1,\n style: isHit ? style : undefined,\n \"data-focus\": dataAttr(!isHit),\n onClick: handlerAll(props.onClick, onCreate),\n }\n },\n [isHit, onCreate],\n )\n\n return { getCreateProps }\n}\n\nexport type UseAutocompleteCreateReturn = ReturnType<\n typeof useAutocompleteCreate\n>\n\nexport const useAutocompleteEmpty = () => {\n const { isHit, isEmpty } = useAutocompleteContext()\n\n const getEmptyProps: UIPropGetter<\"li\"> = useCallback(\n (props = {}, ref = null) => {\n const style: CSSProperties = {\n border: \"0px\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n height: \"1px\",\n width: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\",\n }\n\n return {\n ref,\n ...props,\n tabIndex: -1,\n style: isHit && !isEmpty ? style : undefined,\n }\n },\n [isHit, isEmpty],\n )\n\n return { getEmptyProps }\n}\n\nexport type UseAutocompleteEmptyReturn = ReturnType<typeof useAutocompleteEmpty>\n","import type { CSSUIObject, CSSUIProps } from \"@yamada-ui/core\"\nimport { forwardRef } from \"@yamada-ui/core\"\nimport type { MotionProps } from \"@yamada-ui/motion\"\nimport { PopoverContent } from \"@yamada-ui/popover\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useAutocompleteContext, useAutocompleteList } from \"./use-autocomplete\"\n\nexport type AutocompleteListProps = MotionProps<\"ul\">\n\nexport const AutocompleteList = forwardRef<AutocompleteListProps, \"ul\">(\n ({ className, w, width, minW, minWidth, ...rest }, ref) => {\n const { styles } = useAutocompleteContext()\n\n const { getListProps } = useAutocompleteList()\n\n w =\n w ?? width ?? ((styles.list?.w ?? styles.list?.width) as CSSUIProps[\"w\"])\n minW =\n minW ??\n minWidth ??\n ((styles.list?.minW ?? styles.list?.minWidth) as CSSUIProps[\"minW\"])\n\n const css: CSSUIObject = { ...styles.list }\n\n return (\n <PopoverContent\n className={cx(\"ui-autocomplete__list\", className)}\n w={w}\n minW={minW}\n __css={css}\n {...getListProps(rest, ref)}\n />\n )\n },\n)\n","import type { HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { UseAutocompleteOptionGroupProps } from \"./use-autocomplete\"\nimport {\n useAutocompleteContext,\n useAutocompleteOptionGroup,\n} from \"./use-autocomplete\"\n\ntype AutocompleteOptionGroupOptions = UseAutocompleteOptionGroupProps\n\nexport type AutocompleteOptionGroupProps = HTMLUIProps<\"ul\"> &\n AutocompleteOptionGroupOptions\n\nexport const AutocompleteOptionGroup = forwardRef<\n AutocompleteOptionGroupProps,\n \"ul\"\n>(\n (\n { className, color, h, height, minH, minHeight, children, ...rest },\n ref,\n ) => {\n const { styles } = useAutocompleteContext()\n const { label, getContainerProps, getGroupProps } =\n useAutocompleteOptionGroup(rest)\n\n h ??= height\n minH ??= minHeight\n\n return (\n <ui.li\n className={cx(\n \"ui-autocomplete__item\",\n \"ui-autocomplete__item--group\",\n className,\n )}\n __css={{ w: \"100%\", h: \"fit-content\", color }}\n {...getContainerProps()}\n >\n <ui.span\n className=\"ui-autocomplete__item__group-label\"\n __css={styles.groupLabel}\n lineClamp={1}\n >\n {label}\n </ui.span>\n\n <ui.ul\n {...getGroupProps({}, ref)}\n className=\"ui-autocomplete__item__group\"\n __css={{ h, minH, ...styles.group }}\n >\n {children}\n </ui.ul>\n </ui.li>\n )\n },\n)\n","import type { CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { FC, ReactElement } from \"react\"\nimport { AutocompleteItemIcon } from \"./autocomplete-icon\"\nimport type { UseAutocompleteOptionProps } from \"./use-autocomplete\"\nimport {\n useAutocompleteContext,\n useAutocompleteOption,\n} from \"./use-autocomplete\"\n\ntype AutocompleteOptionOptions = {\n /**\n * The autocomplete option icon to use.\n */\n icon?: ReactElement\n}\n\nexport type AutocompleteOptionProps = UseAutocompleteOptionProps &\n AutocompleteOptionOptions\n\nexport const AutocompleteOption = forwardRef<AutocompleteOptionProps, \"li\">(\n ({ className, icon, ...rest }, ref) => {\n const { styles } = useAutocompleteContext()\n const { isSelected, customIcon, children, getOptionProps } =\n useAutocompleteOption(rest)\n\n icon ??= customIcon\n\n const css: CSSUIObject = {\n textDecoration: \"none\",\n color: \"inherit\",\n userSelect: \"none\",\n display: \"flex\",\n width: \"100%\",\n alignItems: \"center\",\n textAlign: \"start\",\n flex: \"0 0 auto\",\n outline: 0,\n gap: \"0.75rem\",\n ...styles.item,\n }\n\n return (\n <ui.li\n className={cx(\"ui-autocomplete__item\", className)}\n __css={css}\n {...getOptionProps({}, ref)}\n >\n {icon !== null ? (\n <AutocompleteItemIcon opacity={isSelected ? 1 : 0}>\n {icon || <CheckIcon />}\n </AutocompleteItemIcon>\n ) : null}\n\n <ui.span style={{ flex: 1 }} data-label>\n {children}\n </ui.span>\n </ui.li>\n )\n },\n)\n\nconst CheckIcon: FC = () => (\n <svg viewBox=\"0 0 14 14\" width=\"1em\" height=\"1em\">\n <polygon\n fill=\"currentColor\"\n points=\"5.5 11.9993304 14 3.49933039 12.5 2 5.5 8.99933039 1.5 4.9968652 0 6.49933039\"\n />\n </svg>\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx, runIfFunc } from \"@yamada-ui/utils\"\nimport type { FC, ReactElement } from \"react\"\nimport { AutocompleteItemIcon } from \"./autocomplete-icon\"\nimport {\n useAutocompleteContext,\n useAutocompleteCreate,\n} from \"./use-autocomplete\"\n\ntype AutocompleteCreateOptions = {\n /**\n * The autocomplete create option icon to use.\n */\n icon?: ReactElement\n /**\n * The label of the autocomplete create option.\n */\n children?: string | ((inputValue: string) => string)\n}\n\nexport type AutocompleteCreateProps = Omit<HTMLUIProps<\"li\">, \"children\"> &\n AutocompleteCreateOptions\n\nexport const AutocompleteCreate = forwardRef<AutocompleteCreateProps, \"li\">(\n ({ className, icon, children, ...rest }, ref) => {\n const { inputValue, styles } = useAutocompleteContext()\n const { getCreateProps } = useAutocompleteCreate()\n\n children ??= inputValue\n\n const css: CSSUIObject = {\n textDecoration: \"none\",\n color: \"inherit\",\n userSelect: \"none\",\n display: \"flex\",\n width: \"100%\",\n alignItems: \"center\",\n textAlign: \"start\",\n flex: \"0 0 auto\",\n outline: 0,\n gap: \"0.75rem\",\n ...styles.item,\n }\n\n return (\n <ui.li\n className={cx(\"ui-autocomplete__item--create\", className)}\n __css={css}\n {...getCreateProps(rest, ref)}\n >\n {icon !== null ? (\n <AutocompleteItemIcon>{icon || <PlusIcon />}</AutocompleteItemIcon>\n ) : null}\n {icon ? (\n <ui.span style={{ pointerEvents: \"none\", flex: 1 }} lineClamp={1}>\n {runIfFunc(children, inputValue)}\n </ui.span>\n ) : (\n runIfFunc(children, inputValue)\n )}\n </ui.li>\n )\n },\n)\n\nconst PlusIcon: FC = () => (\n <svg viewBox=\"0 0 45.402 45.402\" width=\"1em\" height=\"1em\">\n <path\n fill=\"currentColor\"\n d=\"M41.267,18.557H26.832V4.134C26.832,1.851,24.99,0,22.707,0c-2.283,0-4.124,1.851-4.124,4.135v14.432H4.141 c-2.283,0-4.139,1.851-4.138,4.135c-0.001,1.141,0.46,2.187,1.207,2.934c0.748,0.749,1.78,1.222,2.92,1.222h14.453V41.27 c0,1.142,0.453,2.176,1.201,2.922c0.748,0.748,1.777,1.211,2.919,1.211c2.282,0,4.129-1.851,4.129-4.133V26.857h14.435 c2.283,0,4.134-1.867,4.133-4.15C45.399,20.425,43.548,18.557,41.267,18.557z\"\n />\n </svg>\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { FC, ReactElement } from \"react\"\nimport { AutocompleteItemIcon } from \"./autocomplete-icon\"\nimport {\n useAutocompleteContext,\n useAutocompleteEmpty,\n} from \"./use-autocomplete\"\n\ntype AutocompleteEmptyOptions = {\n /**\n * The autocomplete empty option icon to use.\n */\n icon?: ReactElement\n /**\n * The label of the autocomplete empty option.\n */\n children?: string\n}\n\nexport type AutocompleteEmptyProps = Omit<HTMLUIProps<\"li\">, \"children\"> &\n AutocompleteEmptyOptions\n\nexport const AutocompleteEmpty = forwardRef<AutocompleteEmptyProps, \"li\">(\n ({ className, icon, children, ...rest }, ref) => {\n const { emptyMessage, styles } = useAutocompleteContext()\n const { getEmptyProps } = useAutocompleteEmpty()\n\n children ??= emptyMessage\n\n const css: CSSUIObject = {\n textDecoration: \"none\",\n color: \"inherit\",\n userSelect: \"none\",\n display: \"flex\",\n width: \"100%\",\n alignItems: \"center\",\n textAlign: \"start\",\n flex: \"0 0 auto\",\n outline: 0,\n gap: \"0.75rem\",\n pointerEvents: \"none\",\n ...styles.item,\n }\n\n return (\n <ui.li\n className={cx(\"ui-autocomplete__item--empty\", className)}\n __css={css}\n {...getEmptyProps(rest, ref)}\n >\n {icon !== null ? (\n <AutocompleteItemIcon>{icon || <MinusIcon />}</AutocompleteItemIcon>\n ) : null}\n {icon ? (\n <ui.span style={{ pointerEvents: \"none\", flex: 1 }} lineClamp={1}>\n {children}\n </ui.span>\n ) : (\n children\n )}\n </ui.li>\n )\n },\n)\n\nconst MinusIcon: FC = () => (\n <svg viewBox=\"0 0 448 512\" width=\"1em\" height=\"1em\">\n <path\n fill=\"currentColor\"\n d=\"M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z\"\n />\n </svg>\n)\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { Popover, PopoverTrigger } from \"@yamada-ui/popover\"\nimport type { PortalProps } from \"@yamada-ui/portal\"\nimport { Portal } from \"@yamada-ui/portal\"\nimport { cx, handlerAll } from \"@yamada-ui/utils\"\nimport type { CSSProperties, FC, MouseEventHandler, ReactElement } from \"react\"\nimport { cloneElement, useMemo } from \"react\"\nimport type { AutocompleteIconProps } from \"./autocomplete-icon\"\nimport { AutocompleteClearIcon, AutocompleteIcon } from \"./autocomplete-icon\"\nimport type { AutocompleteListProps } from \"./autocomplete-list\"\nimport { AutocompleteList } from \"./autocomplete-list\"\nimport type { UseAutocompleteProps } from \"./use-autocomplete\"\nimport {\n AutocompleteProvider,\n useAutocomplete,\n AutocompleteDescendantsContextProvider,\n useAutocompleteContext,\n useAutocompleteInput,\n} from \"./use-autocomplete\"\nimport { AutocompleteCreate, AutocompleteEmpty } from \"./\"\n\ntype MultiAutocompleteOptions = {\n /**\n * The visual separator between each value.\n *\n * @default ','\n */\n separator?: string\n /**\n * The custom display value to use.\n */\n component?: FC<{\n value: string | number\n label: string\n index: number\n onRemove: MouseEventHandler<HTMLElement>\n }>\n /**\n * If `true`, keep the placeholder.\n *\n * @default false\n */\n keepPlaceholder?: boolean\n /**\n * If `true`, display the select clear icon.\n *\n * @default true\n */\n isClearable?: boolean\n /**\n * The border color when the input is focused.\n */\n focusBorderColor?: string\n /**\n * The border color when the input is invalid.\n */\n errorBorderColor?: string\n /**\n * Props for multi autocomplete container element.\n */\n containerProps?: Omit<HTMLUIProps<\"div\">, \"children\">\n /**\n * Props for multi autocomplete list element.\n */\n listProps?: Omit<AutocompleteListProps, \"children\">\n /**\n * Props for multi autocomplete input element.\n */\n inputProps?: HTMLUIProps<\"input\">\n /**\n * Props for multi autocomplete icon element.\n */\n iconProps?: AutocompleteIconProps\n /**\n * Props for multi autocomplete clear icon element.\n */\n clearIconProps?: AutocompleteIconProps\n /**\n * Props to be forwarded to the portal component.\n *\n * @default '{ isDisabled: true }'\n *\n */\n portalProps?: Omit<PortalProps, \"children\">\n /**\n * If `true`, the list element will be closed when value is selected.\n *\n * @default false\n */\n closeOnSelect?: boolean\n}\n\nexport type MultiAutocompleteProps = ThemeProps<\"MultiAutocomplete\"> &\n Omit<UseAutocompleteProps<string[]>, \"closeOnSelect\"> &\n MultiAutocompleteOptions\n\n/**\n * `MultiAutocomplete` is a component used to display suggestions based on user text input and to obtain multiple values.\n *\n * @see Docs https://yamada-ui.com/components/forms/multi-autocomplete\n */\nexport const MultiAutocomplete = forwardRef<MultiAutocompleteProps, \"input\">(\n (props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\n \"MultiAutocomplete\",\n props,\n )\n let {\n className,\n defaultValue = [],\n component,\n separator,\n isClearable = true,\n color,\n h,\n height,\n minH,\n minHeight,\n closeOnSelect = false,\n keepPlaceholder = false,\n containerProps,\n listProps,\n inputProps,\n iconProps,\n clearIconProps,\n portalProps = { isDisabled: true },\n children,\n ...computedProps\n } = omitThemeProps(mergedProps)\n\n const {\n value,\n descendants,\n formControlProps,\n getPopoverProps,\n getContainerProps,\n getFieldProps,\n allowCreate,\n isEmpty,\n inputValue,\n computedChildren,\n onClear,\n ...rest\n } = useAutocomplete<string[]>({\n ...computedProps,\n defaultValue,\n closeOnSelect,\n children,\n })\n\n h ??= height\n minH ??= minHeight\n\n const css: CSSUIObject = {\n w: \"100%\",\n h: \"fit-content\",\n color,\n ...styles.container,\n }\n\n return (\n <AutocompleteDescendantsContextProvider value={descendants}>\n <AutocompleteProvider\n value={{\n ...rest,\n value,\n formControlProps,\n inputValue,\n allowCreate,\n isEmpty,\n styles,\n }}\n >\n <Popover {...getPopoverProps()}>\n <ui.div\n className={cx(\"ui-multi-autocomplete\", className)}\n __css={css}\n {...getContainerProps(containerProps)}\n >\n <ui.div\n className=\"ui-multi-autocomplete__inner\"\n __css={{ position: \"relative\", ...styles.inner }}\n >\n <MultiAutocompleteField\n component={component}\n separator={separator}\n keepPlaceholder={keepPlaceholder}\n h={h}\n minH={minH}\n inputProps={inputProps}\n {...getFieldProps({}, ref)}\n />\n\n {isClearable && value.length ? (\n <AutocompleteClearIcon\n {...clearIconProps}\n onClick={handlerAll(clearIconProps?.onClick, onClear)}\n {...formControlProps}\n />\n ) : (\n <AutocompleteIcon {...iconProps} {...formControlProps} />\n )}\n </ui.div>\n\n {!isEmpty ? (\n <Portal {...portalProps}>\n <AutocompleteList {...listProps}>\n {allowCreate ? (\n <AutocompleteCreate />\n ) : (\n <AutocompleteEmpty />\n )}\n\n {children ?? computedChildren}\n </AutocompleteList>\n </Portal>\n ) : (\n <Portal {...portalProps}>\n <AutocompleteList {...listProps}>\n {allowCreate && inputValue ? (\n <AutocompleteCreate />\n ) : (\n <AutocompleteEmpty />\n )}\n </AutocompleteList>\n </Portal>\n )}\n </ui.div>\n </Popover>\n </AutocompleteProvider>\n </AutocompleteDescendantsContextProvider>\n )\n },\n)\n\ntype MultiAutocompleteFieldProps = HTMLUIProps<\"div\"> &\n Pick<\n MultiAutocompleteProps,\n \"component\" | \"separator\" | \"keepPlaceholder\" | \"inputProps\"\n >\n\nconst MultiAutocompleteField = forwardRef<MultiAutocompleteFieldProps, \"input\">(\n (\n {\n className,\n component,\n separator = \",\",\n keepPlaceholder,\n h,\n minH,\n placeholder,\n inputProps,\n ...rest\n },\n ref,\n ) => {\n const { value, label, inputValue, onChange, isOpen, inputRef, styles } =\n useAutocompleteContext()\n\n const { getInputProps } = useAutocompleteInput()\n\n const cloneChildren = useMemo(() => {\n if (!label?.length) return null\n\n if (component) {\n return (label as string[]).map((label, index) => {\n const onRemove: MouseEventHandler<HTMLElement> = (ev) => {\n ev.stopPropagation()\n\n onChange(value[index])\n\n if (inputRef.current) inputRef.current.focus()\n }\n\n const el = component({\n value: value[index],\n label,\n index,\n onRemove,\n })\n\n const style: CSSProperties = {\n marginBlockStart: \"0.125rem\",\n marginBlockEnd: \"0.125rem\",\n marginInlineEnd: \"0.25rem\",\n }\n\n return el\n ? cloneElement(el as ReactElement, { key: index, style })\n : null\n })\n } else {\n return (label as string[]).map((value, index) => {\n const isLast = label.length === index + 1\n\n return (\n <ui.span key={index} display=\"inline-block\" me=\"0.25rem\">\n {value}\n {!isLast || isOpen ? separator : null}\n </ui.span>\n )\n })\n }\n }, [label, component, value, onChange, isOpen, inputRef, separator])\n\n const css: CSSUIObject = {\n pe: \"2rem\",\n h,\n minH,\n display: \"flex\",\n flexWrap: \"wrap\",\n alignItems: \"center\",\n ...styles.field,\n cursor: \"text\",\n }\n\n return (\n <PopoverTrigger>\n <ui.div\n className={cx(\"ui-multi-autocomplete__field\", className)}\n __css={css}\n py={label?.length && component ? \"0.125rem\" : undefined}\n {...rest}\n >\n {cloneChildren}\n\n <ui.input\n className=\"ui-multi-autocomplete__field__input\"\n display=\"inline-block\"\n flex=\"1\"\n overflow=\"hidden\"\n marginBlockStart=\"0.125rem\"\n marginBlockEnd=\"0.125rem\"\n placeholder={\n !label || !label?.length || (keepPlaceholder && isOpen)\n ? placeholder\n : undefined\n }\n {...getInputProps({ ...inputProps, value: inputValue ?? \"\" }, ref)}\n />\n </ui.div>\n </PopoverTrigger>\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport type { ImageProps, UseImageProps } from \"@yamada-ui/image\"\nimport { useImage } from \"@yamada-ui/image\"\nimport { createContext, cx, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { FC, HTMLAttributeReferrerPolicy, ReactElement } from \"react\"\nimport { cloneElement, useState } from \"react\"\nimport { AvatarIcon } from \"./avatar-icon\"\nimport { AvatarName } from \"./avatar-name\"\n\ntype AvatarContext = Record<string, CSSUIObject>\n\nexport const [AvatarProvider, useAvatarContext] = createContext<AvatarContext>({\n strict: false,\n name: \"AvatarContext\",\n})\n\ntype AvatarOptions = {\n /**\n * The name of the person in the avatar.\n *\n * - If `src` has loaded, the name will be used as the `alt` attribute of the `img`\n * - If `src` is not loaded, the name will be used to create the initials\n */\n name?: string\n /**\n * The image url of the avatar.\n */\n src?: ImageProps[\"src\"]\n /**\n * List of sources to use for different screen resolutions.\n */\n srcSet?: ImageProps[\"srcSet\"]\n /**\n * Defines loading strategy.\n */\n loading?: ImageProps[\"loading\"]\n /**\n * If `true`, opt out of the avatar's `fallback` logic and renders the `img` at all times.\n *\n * @default false\n */\n ignoreFallback?: ImageProps[\"ignoreFallback\"]\n /**\n * The avatar icon to use.\n */\n icon?: ReactElement\n /**\n * Function to get the initials to display.\n */\n format?: (name: string) => string\n /**\n * Defining which referrer is sent when fetching the resource.\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy\n /**\n * The `HTMLImageElement` property `alt`.\n */\n alt?: HTMLUIProps<\"img\">[\"alt\"]\n}\n\nexport type AvatarProps = HTMLUIProps<\"span\"> &\n ThemeProps<\"Avatar\"> &\n AvatarOptions &\n Pick<UseImageProps, \"onLoad\" | \"onError\" | \"crossOrigin\">\n\n/**\n * `Avatar` is a component that displays a profile picture or an icon with initials representing a user.\n *\n * @see Docs https://yamada-ui.com/components/media-and-icons/avatar\n */\nexport const Avatar = forwardRef<AvatarProps, \"span\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Avatar\", props)\n const {\n className,\n src,\n srcSet,\n name,\n loading,\n alt,\n icon,\n ignoreFallback,\n referrerPolicy,\n borderRadius = \"fallback(full, 9999px)\",\n rounded = \"fallback(full, 9999px)\",\n onError,\n onLoad,\n crossOrigin,\n format,\n children,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const [isLoaded, setIsLoaded] = useState<boolean>(false)\n\n const css: CSSUIObject = {\n position: \"relative\",\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexShrink: 0,\n textAlign: \"center\",\n textTransform: \"uppercase\",\n fontWeight: \"medium\",\n ...styles.container,\n }\n\n return (\n <AvatarProvider value={styles}>\n <ui.span\n ref={ref}\n className={cx(\"ui-avatar\", className)}\n data-loaded={dataAttr(isLoaded)}\n borderRadius={borderRadius}\n rounded={rounded}\n __css={css}\n {...rest}\n >\n <AvatarImage\n src={src}\n alt={alt}\n srcSet={srcSet}\n loading={loading}\n borderRadius={borderRadius}\n rounded={rounded}\n onLoad={handlerAll(onLoad, () => setIsLoaded(true))}\n onError={onError}\n crossOrigin={crossOrigin}\n format={format}\n name={name}\n icon={icon}\n ignoreFallback={ignoreFallback}\n referrerPolicy={referrerPolicy}\n />\n {children}\n </ui.span>\n </AvatarProvider>\n )\n})\n\ntype AvatarImageProps = ImageProps &\n Pick<AvatarProps, \"name\" | \"format\" | \"icon\" | \"ignoreFallback\">\n\nconst AvatarImage: FC<AvatarImageProps> = ({\n src,\n alt,\n srcSet,\n onError,\n onLoad,\n format,\n borderRadius,\n rounded,\n name,\n loading,\n icon = <AvatarIcon />,\n ignoreFallback,\n crossOrigin,\n referrerPolicy,\n}) => {\n const status = useImage({ src, onLoad, onError, crossOrigin, ignoreFallback })\n\n const isLoaded = status === \"loaded\"\n\n const isFallback = !src || !isLoaded\n\n if (isFallback)\n return name ? (\n <AvatarName name={name} format={format} />\n ) : (\n cloneElement(icon, { role: \"img\" })\n )\n\n const css: CSSUIObject = {\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n }\n\n return (\n <ui.img\n className=\"ui-avatar__image\"\n src={src}\n srcSet={srcSet}\n alt={alt ?? name}\n loading={loading}\n referrerPolicy={referrerPolicy}\n borderRadius={borderRadius}\n rounded={rounded}\n __css={css}\n />\n )\n}\n","import type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport type { FC } from \"react\"\n\nexport const AvatarIcon: FC<IconProps> = (props) => (\n <Icon\n viewBox=\"0 0 128 128\"\n color={[\"white\", \"black\"]}\n width=\"100%\"\n height=\"100%\"\n className=\"ui-avatar__icon\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n d=\"M103,102.1388 C93.094,111.92 79.3504,118 64.1638,118 C48.8056,118 34.9294,111.768 25,101.7892 L25,95.2 C25,86.8096 31.981,80 40.6,80 L87.4,80 C96.019,80 103,86.8096 103,95.2 L103,102.1388 Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M63.9961647,24 C51.2938136,24 41,34.2938136 41,46.9961647 C41,59.7061864 51.2938136,70 63.9961647,70 C76.6985159,70 87,59.7061864 87,46.9961647 C87,34.2938136 76.6985159,24 63.9961647,24\"\n />\n </Icon>\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui } from \"@yamada-ui/core\"\nimport type { FC } from \"react\"\nimport type { AvatarProps } from \"./avatar\"\nimport { useAvatarContext } from \"./avatar\"\n\nconst defaultFormat = (name: string) => {\n const names = name.trim().split(\" \")\n const firstName = names[0] ?? \"\"\n const lastName = names.length > 1 ? names[names.length - 1] : \"\"\n\n return firstName && lastName\n ? `${firstName.charAt(0)}${lastName.charAt(0)}`\n : firstName.charAt(0)\n}\n\nexport type AvatarNameProps = HTMLUIProps<\"div\"> &\n Pick<AvatarProps, \"name\" | \"format\">\n\nexport const AvatarName: FC<AvatarNameProps> = ({\n name,\n format = defaultFormat,\n ...rest\n}) => {\n const styles = useAvatarContext()\n\n const css: CSSUIObject = { ...styles.name }\n\n return (\n <ui.div\n className=\"ui-avatar__name\"\n role=\"img\"\n aria-label={name}\n __css={css}\n {...rest}\n >\n {name ? format(name) : null}\n </ui.div>\n )\n}\n","import type { HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport {\n cx,\n getValidChildren,\n isUndefined,\n filterUndefined,\n} from \"@yamada-ui/utils\"\nimport { cloneElement } from \"react\"\n\ntype AvatarGroupOptions = {\n /**\n * The maximum number of visible avatars.\n */\n max?: number\n}\n\nexport type AvatarGroupProps = HTMLUIProps<\"div\"> &\n ThemeProps<\"Avatar\"> &\n AvatarGroupOptions\n\nexport const AvatarGroup = forwardRef<AvatarGroupProps, \"div\">((props, ref) => {\n const [styles] = useMultiComponentStyle(\"Avatar\", props)\n const {\n className,\n max,\n borderColor,\n gap = \"fallback(-2, -0.5rem)\",\n borderRadius = \"fallback(full, 9999px)\",\n rounded = \"fallback(full, 9999px)\",\n children,\n ...rest\n } = omitThemeProps(props)\n\n let validChildren = getValidChildren(children)\n\n const excess = !isUndefined(max) ? validChildren.length - max : 0\n\n validChildren = !isUndefined(max)\n ? validChildren.slice(0, max)\n : validChildren\n\n validChildren = validChildren.reverse()\n\n const cloneChildren = validChildren.map((child, i) =>\n cloneElement(\n child,\n filterUndefined({\n marginEnd: !i ? 0 : gap,\n size: props.size,\n borderColor: child.props.borderColor ?? borderColor,\n borderWidth: \"2px\",\n }),\n ),\n )\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-avatar-group\", className)}\n __css={{\n display: \"flex\",\n flexDirection: \"row-reverse\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n ...styles.group,\n }}\n {...rest}\n >\n {excess > 0 ? (\n <ui.span\n className=\"ui-avatar__excess\"\n borderRadius={borderRadius}\n rounded={rounded}\n ms={gap}\n __css={{\n position: \"relative\",\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexShrink: 0,\n textAlign: \"center\",\n textTransform: \"uppercase\",\n fontWeight: \"medium\",\n borderWidth: \"2px\",\n ...styles.excess,\n }}\n >\n {`+${excess}`}\n </ui.span>\n ) : null}\n {cloneChildren}\n </ui.div>\n )\n})\n","import type { HTMLUIProps, CSSUIObject, AnimationStyle } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { useAnimation } from \"@yamada-ui/use-animation\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useAvatarContext } from \"./avatar\"\n\ntype AvatarBadgeOptions = {\n /**\n * The placement of the badge.\n *\n * @default 'bottom-end'\n */\n placement?: \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\"\n /**\n * If `true`, make an element scale and fade like a radar ping or ripple of water.\n *\n * @default false\n */\n ping?: boolean\n /**\n * It is used for the color of the ping animation.\n *\n * @default '[\"blackAlpha.400\", \"whiteAlpha.500\"]'\n */\n pingColor?: HTMLUIProps<\"div\">[\"backgroundColor\"]\n /**\n * It is used for the scale of the ping animation.\n *\n * @default 1.8\n */\n pingScale?: number\n /**\n * It is used for the count of the ping animation.\n *\n * @default \"infinite\"\n */\n pingCount?: AnimationStyle[\"iterationCount\"]\n /**\n * It is used for the duration of the ping animation.\n *\n * @default \"1.4s\"\n */\n pingDuration?: AnimationStyle[\"direction\"]\n}\n\nexport type AvatarBadgeProps = HTMLUIProps<\"div\"> & AvatarBadgeOptions\n\nconst placementStyles: Record<\n \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\",\n CSSUIObject\n> = {\n \"top-start\": {\n top: \"0\",\n insetStart: \"0\",\n transform: \"translate(-25%, -25%)\",\n },\n \"top-end\": {\n top: \"0\",\n insetEnd: \"0\",\n transform: \"translate(25%, -25%)\",\n },\n \"bottom-start\": {\n bottom: \"0\",\n insetStart: \"0\",\n transform: \"translate(-25%, 25%)\",\n },\n \"bottom-end\": {\n bottom: \"0\",\n insetEnd: \"0\",\n transform: \"translate(25%, 25%)\",\n },\n}\n\nexport const AvatarBadge = forwardRef<AvatarBadgeProps, \"div\">(\n (\n {\n className,\n boxSize = \"1em\",\n placement = \"bottom-end\",\n ping,\n pingColor = [\"blackAlpha.400\", \"whiteAlpha.500\"],\n pingDuration = \"1.4s\",\n pingCount = \"infinite\",\n pingScale = 1.8,\n children,\n ...rest\n },\n ref,\n ) => {\n const styles = useAvatarContext()\n const animation = useAnimation({\n keyframes: {\n \"75%, 100%\": {\n transform: `scale(${pingScale})`,\n opacity: 0,\n },\n },\n fillMode: \"forwards\",\n duration: pingDuration,\n timingFunction: \"cubic-bezier(0, 0, 0.2, 1)\",\n iterationCount: pingCount,\n })\n\n const css: CSSUIObject = {\n position: \"absolute\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n ...placementStyles[placement],\n ...styles.badge,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-avatar__badge\", className)}\n boxSize={boxSize}\n __css={css}\n {...rest}\n >\n {children}\n\n {ping ? (\n <ui.div\n className=\"ui-avatar__badge__ping\"\n __css={{\n position: \"absolute\",\n boxSize: \"100%\",\n rounded: \"fallback(full, 9999px)\",\n opacity: 0.75,\n zIndex: -1,\n bg: pingColor,\n }}\n animation={animation}\n />\n ) : null}\n </ui.div>\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport { ui, useMultiComponentStyle, omitThemeProps } from \"@yamada-ui/core\"\nimport type { HTMLMotionProps } from \"@yamada-ui/motion\"\nimport { MotionReorder } from \"@yamada-ui/motion\"\nimport {\n createContext,\n cx,\n getValidChildren,\n handlerAll,\n useUpdateEffect,\n} from \"@yamada-ui/utils\"\nimport { forwardRef, useCallback, useMemo, useRef, useState } from \"react\"\n\ntype ReorderContext = {\n orientation: \"vertical\" | \"horizontal\"\n styles: Record<string, CSSUIObject>\n}\n\nexport const [ReorderProvider, useReorderContext] =\n createContext<ReorderContext>({\n name: \"ReorderContext\",\n errorMessage: `useReorderContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Reorder />\"`,\n })\n\ntype ReorderOptions = {\n /**\n * The orientation of the reorder.\n *\n * @default 'vertical'\n */\n orientation?: \"vertical\" | \"horizontal\"\n /**\n * The callback invoked when reorder items are moved.\n */\n onChange?: (labels: (string | number)[]) => void\n /**\n * The callback invoked when the movement of reorder items is completed.\n */\n onCompleteChange?: (labels: (string | number)[]) => void\n}\n\nexport type ReorderProps = Omit<HTMLUIProps<\"ul\">, \"as\" | \"onChange\"> &\n Omit<HTMLMotionProps<\"ul\">, \"as\" | \"onChange\"> &\n ThemeProps<\"Reorder\"> &\n ReorderOptions\n\nconst omitDuplicated = (values: (string | number)[]): (string | number)[] =>\n Array.from(new Set(values))\n\nconst pickDuplicated = (values: (string | number)[]): (string | number)[] =>\n values.filter(\n (value, index, self) =>\n self.indexOf(value) === index && index !== self.lastIndexOf(value),\n )\n\n/**\n * `Reorder` is a component that allows you to change the order of items using drag and drop.\n *\n * @see Docs https://yamada-ui.com/components/data-display/reorder\n */\nexport const Reorder = forwardRef<HTMLUListElement, ReorderProps>(\n (props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Reorder\", props)\n const {\n className,\n orientation = \"vertical\",\n gap = \"fallback(4,1rem)\",\n onChange,\n onCompleteChange,\n children,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const axis = orientation === \"vertical\" ? \"y\" : \"x\"\n\n const validChildren = getValidChildren(children)\n\n const defaultValues = useMemo(() => {\n const values = validChildren.map(({ props }) => props.label)\n\n const duplicatedValues = pickDuplicated(values)\n\n if (duplicatedValues.length)\n console.warn(\n `Reorder: 'label' of 'ReorderItem' must not be duplicated. duplicate 'label' is '${duplicatedValues.join(\n `', '`,\n )}' `,\n )\n\n return omitDuplicated(values)\n }, [validChildren])\n\n const prevValues = useRef<(string | number)[]>(defaultValues)\n const [values, setValues] = useState<(string | number)[]>(defaultValues)\n\n const onReorder = useCallback(\n (newValues: (string | number)[]) => {\n setValues(newValues)\n\n onChange?.(newValues)\n },\n [onChange],\n )\n\n const onCompleteReorder = useCallback(() => {\n const isEqual =\n JSON.stringify(prevValues.current) === JSON.stringify(values)\n\n if (isEqual) return\n\n prevValues.current = values\n\n onCompleteChange?.(values)\n }, [onCompleteChange, values])\n\n useUpdateEffect(() => {\n const isEqual = JSON.stringify(defaultValues) === JSON.stringify(values)\n\n if (isEqual) return\n\n prevValues.current = defaultValues\n setValues(defaultValues)\n }, [defaultValues])\n\n const cloneChildren = useMemo(\n () =>\n values.map((value) =>\n validChildren.find(({ props }) => props.label === value),\n ),\n [values, validChildren],\n )\n\n const css: CSSUIObject = {\n display: \"flex\",\n flexDirection: orientation === \"vertical\" ? \"column\" : \"row\",\n gap,\n ...styles.container,\n }\n\n return (\n <ReorderProvider value={{ orientation, styles }}>\n <ui.ul\n ref={ref}\n as={MotionReorder.Group}\n className={cx(\"ui-reorder\", className)}\n axis={axis}\n values={values}\n onReorder={onReorder}\n __css={css}\n {...rest}\n onMouseUp={handlerAll(rest.onMouseUp, onCompleteReorder)}\n onTouchEnd={handlerAll(rest.onTouchEnd, onCompleteReorder)}\n >\n {cloneChildren}\n </ui.ul>\n </ReorderProvider>\n )\n },\n)\n\nReorder.displayName = \"Reorder\"\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui } from \"@yamada-ui/core\"\nimport type { HTMLMotionProps, DragControls } from \"@yamada-ui/motion\"\nimport {\n MotionReorder,\n useMotionValue,\n useDragControls,\n} from \"@yamada-ui/motion\"\nimport { createContext, cx, dataAttr } from \"@yamada-ui/utils\"\nimport { forwardRef, useCallback, useEffect, useState } from \"react\"\nimport { useReorderContext } from \"./reorder\"\n\ntype ReorderItemContext = {\n register: (node: HTMLElement | null) => void\n isDrag: boolean\n dragControls: DragControls\n}\n\nexport const [ReorderItemProvider, useReorderItemContext] =\n createContext<ReorderItemContext>({\n name: \"ReorderContext\",\n errorMessage: `useReorderItemContext returned is 'undefined'. Seems you forgot to wrap the components in \"<ReorderItem />\"`,\n })\n\ntype ReorderItemOptions = {\n /**\n * The label of the reorder item.\n */\n label: string | number\n}\n\nexport type ReorderItemProps = Omit<HTMLUIProps<\"li\">, \"as\"> &\n Omit<HTMLMotionProps<\"li\">, \"as\" | \"layout\"> &\n ReorderItemOptions\n\nexport const ReorderItem = forwardRef<HTMLLIElement, ReorderItemProps>(\n ({ className, label, ...rest }, ref) => {\n const { orientation, styles } = useReorderContext()\n\n const dragControls = useDragControls()\n\n const [hasTrigger, setHasTrigger] = useState<boolean>(false)\n const [isDrag, setIsDrag] = useState<boolean>(false)\n\n const x = useMotionValue(0)\n const y = useMotionValue(0)\n\n const register = useCallback(\n (node: HTMLElement | null) => setHasTrigger(!!node),\n [],\n )\n\n useEffect(() => {\n const unsubscribeX = x.on(\"change\", (x) => {\n if (orientation === \"horizontal\") setIsDrag(x !== 0)\n })\n const unsubscribeY = y.on(\"change\", (y) => {\n if (orientation === \"vertical\") setIsDrag(y !== 0)\n })\n\n return () => {\n unsubscribeX()\n unsubscribeY()\n }\n }, [orientation, x, y])\n\n const css: CSSUIObject = {\n ...(!hasTrigger ? { cursor: \"grab\" } : { userSelect: \"none\" }),\n ...styles.item,\n ...(!hasTrigger\n ? {\n _selected: {\n ...(styles.item as any)?._selected,\n cursor: \"grabbing\",\n },\n }\n : {}),\n }\n\n return (\n <ReorderItemProvider value={{ register, isDrag, dragControls }}>\n <ui.li\n ref={ref}\n as={MotionReorder.Item}\n className={cx(\"ui-reorder__item\", className)}\n value={label}\n __css={css}\n {...rest}\n // @ts-ignore\n dragListener={!hasTrigger}\n dragControls={dragControls}\n data-selected={dataAttr(isDrag)}\n style={{ ...rest.style, x, y }}\n />\n </ReorderItemProvider>\n )\n },\n)\n\nReorderItem.displayName = \"ReorderItem\"\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport { cx, handlerAll, mergeRefs, dataAttr } from \"@yamada-ui/utils\"\nimport type { FC } from \"react\"\nimport { useReorderContext } from \"./reorder\"\nimport { useReorderItemContext } from \"./reorder-item\"\n\nexport type ReorderTriggerProps = HTMLUIProps<\"div\">\n\nexport const ReorderTrigger = forwardRef<ReorderTriggerProps, \"div\">(\n ({ className, children = <ReorderTriggerIcon />, ...rest }, ref) => {\n const { styles } = useReorderContext()\n const { register, isDrag, dragControls } = useReorderItemContext()\n\n const css: CSSUIObject = {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n cursor: \"grab\",\n _selected: {\n cursor: \"grabbing\",\n },\n ...styles.trigger,\n }\n\n return (\n <ui.div\n ref={mergeRefs(register, ref)}\n className={cx(\"ui-reorder__trigger\", className)}\n __css={css}\n {...rest}\n data-selected={dataAttr(isDrag)}\n onPointerDown={handlerAll(rest.onPointerDown, (ev) =>\n dragControls.start(ev),\n )}\n >\n {children}\n </ui.div>\n )\n },\n)\n\nconst ReorderTriggerIcon: FC<IconProps> = (rest) => {\n return (\n <Icon viewBox=\"0 0 39 39\" {...rest}>\n <path\n d=\"M 5 0 C 7.761 0 10 2.239 10 5 C 10 7.761 7.761 10 5 10 C 2.239 10 0 7.761 0 5 C 0 2.239 2.239 0 5 0 Z\"\n fill=\"currentColor\"\n />\n\n <path\n d=\"M 19 0 C 21.761 0 24 2.239 24 5 C 24 7.761 21.761 10 19 10 C 16.239 10 14 7.761 14 5 C 14 2.239 16.239 0 19 0 Z\"\n fill=\"currentColor\"\n />\n\n <path\n d=\"M 33 0 C 35.761 0 38 2.239 38 5 C 38 7.761 35.761 10 33 10 C 30.239 10 28 7.761 28 5 C 28 2.239 30.239 0 33 0 Z\"\n fill=\"currentColor\"\n />\n\n <path\n d=\"M 33 14 C 35.761 14 38 16.239 38 19 C 38 21.761 35.761 24 33 24 C 30.239 24 28 21.761 28 19 C 28 16.239 30.239 14 33 14 Z\"\n fill=\"currentColor\"\n />\n\n <path\n d=\"M 19 14 C 21.761 14 24 16.239 24 19 C 24 21.761 21.761 24 19 24 C 16.239 24 14 21.761 14 19 C 14 16.239 16.239 14 19 14 Z\"\n fill=\"currentColor\"\n />\n\n <path\n d=\"M 5 14 C 7.761 14 10 16.239 10 19 C 10 21.761 7.761 24 5 24 C 2.239 24 0 21.761 0 19 C 0 16.239 2.239 14 5 14 Z\"\n fill=\"currentColor\"\n />\n\n <path\n d=\"M 5 28 C 7.761 28 10 30.239 10 33 C 10 35.761 7.761 38 5 38 C 2.239 38 0 35.761 0 33 C 0 30.239 2.239 28 5 28 Z\"\n fill=\"currentColor\"\n />\n\n <path\n d=\"M 19 28 C 21.761 28 24 30.239 24 33 C 24 35.761 21.761 38 19 38 C 16.239 38 14 35.761 14 33 C 14 30.239 16.239 28 19 28 Z\"\n fill=\"currentColor\"\n />\n\n <path\n d=\"M 33 28 C 35.761 28 38 30.239 38 33 C 38 35.761 35.761 38 33 38 C 30.239 38 28 35.761 28 33 C 28 30.239 30.239 28 33 28 Z\"\n fill=\"currentColor\"\n />\n </Icon>\n )\n}\n","import type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n Token,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx, omitObject, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { ComponentPropsWithoutRef, FC } from \"react\"\nimport { useMemo } from \"react\"\nimport type { PaginationItemProps } from \"./pagination-item\"\nimport { PaginationItem } from \"./pagination-item\"\nimport type { UsePaginationProps } from \"./use-pagination\"\nimport { PaginationProvider, usePagination } from \"./use-pagination\"\n\ntype PaginationOptions = {\n /**\n * The pagination button component to use.\n */\n component?: FC<PaginationItemProps>\n /**\n * Props for button element.\n */\n itemProps?: HTMLUIProps<\"button\">\n /**\n * If `true`, display the control buttons.\n *\n * @default true\n */\n withControls?: Token<boolean>\n /**\n * Props for inner element.\n */\n innerProps?: HTMLUIProps<\"div\">\n /**\n * Props for control button element.\n */\n controlProps?: HTMLUIProps<\"button\">\n /**\n * Props for previous of the control button element.\n */\n controlPrevProps?: HTMLUIProps<\"button\">\n /**\n * Props for next of the control button element.\n */\n controlNextProps?: HTMLUIProps<\"button\">\n /**\n * If `true`, display the edge buttons.\n *\n * @default false\n */\n withEdges?: Token<boolean>\n /**\n * Props for edge button element.\n */\n edgeProps?: HTMLUIProps<\"button\">\n /**\n * Props for first of the edge button element.\n */\n edgeFirstProps?: HTMLUIProps<\"button\">\n /**\n * Props for last of the edge button element.\n */\n edgeLastProps?: HTMLUIProps<\"button\">\n}\n\nexport type PaginationProps = Omit<\n HTMLUIProps<\"div\">,\n \"onChange\" | \"children\" | \"page\"\n> &\n ThemeProps<\"Pagination\"> &\n UsePaginationProps &\n PaginationOptions\n\n/**\n * `Pagination` is a component for managing the pagination and navigation of content.\n *\n * @see Docs https://yamada-ui.com/components/navigation/pagination\n */\nexport const Pagination = forwardRef<PaginationProps, \"div\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Pagination\", props)\n const {\n className,\n component: Component = PaginationItem,\n itemProps,\n withControls = true,\n withEdges = false,\n innerProps,\n controlProps,\n controlPrevProps,\n controlNextProps,\n edgeProps,\n edgeFirstProps,\n edgeLastProps,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const computedWithControls = useValue(withControls)\n const computedWithEdges = useValue(withEdges)\n\n const {\n currentPage,\n total,\n isDisabled,\n onFirst,\n onLast,\n onPrev,\n onNext,\n onChange,\n range,\n } = usePagination(rest)\n\n const children = useMemo(\n () =>\n range.map((page, key) => (\n <Component\n key={key}\n page={page}\n isActive={currentPage === page}\n isDisabled={isDisabled}\n aria-label={\n page === \"dots\" ? \"Jump to omitted pages\" : `Go to page ${page}`\n }\n {...(itemProps as ComponentPropsWithoutRef<\"button\">)}\n onClick={handlerAll(\n itemProps?.onClick,\n page !== \"dots\" ? () => onChange(page) : undefined,\n )}\n />\n )),\n [Component, currentPage, isDisabled, onChange, range, itemProps],\n )\n\n const css: CSSUIObject = {\n display: \"flex\",\n alignItems: \"center\",\n ...styles.container,\n }\n\n return (\n <PaginationProvider value={styles}>\n <ui.div\n ref={ref}\n className={cx(\"ui-pagination\", className)}\n role=\"navigation\"\n __css={css}\n {...omitObject(rest, [\n \"page\",\n \"defaultPage\",\n \"total\",\n \"siblings\",\n \"boundaries\",\n \"isDisabled\",\n \"onChange\",\n ])}\n data-disabled={dataAttr(isDisabled)}\n >\n {computedWithEdges ? (\n <Component\n page=\"first\"\n aria-label=\"Go to first page\"\n className=\"ui-pagination__item--first\"\n isDisabled={isDisabled || currentPage === 1}\n {...(edgeProps as ComponentPropsWithoutRef<\"button\">)}\n {...(edgeFirstProps as ComponentPropsWithoutRef<\"button\">)}\n onClick={handlerAll(\n edgeProps?.onClick,\n edgeFirstProps?.onClick,\n onFirst,\n )}\n />\n ) : null}\n\n {computedWithControls ? (\n <Component\n page=\"prev\"\n aria-label=\"Go to previous page\"\n className=\"ui-pagination__item--prev\"\n isDisabled={isDisabled || currentPage === 1}\n {...(controlProps as ComponentPropsWithoutRef<\"button\">)}\n {...(controlPrevProps as ComponentPropsWithoutRef<\"button\">)}\n onClick={handlerAll(\n controlProps?.onClick,\n controlPrevProps?.onClick,\n onPrev,\n )}\n />\n ) : null}\n\n <ui.div\n className=\"ui-pagination-inner\"\n __css={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n ...styles.inner,\n }}\n {...innerProps}\n >\n {children}\n </ui.div>\n\n {computedWithControls ? (\n <Component\n page=\"next\"\n aria-label=\"Go to next page\"\n className=\"ui-pagination__item--next\"\n isDisabled={isDisabled || currentPage === total}\n {...(controlProps as ComponentPropsWithoutRef<\"button\">)}\n {...(controlNextProps as ComponentPropsWithoutRef<\"button\">)}\n onClick={handlerAll(\n controlProps?.onClick,\n controlNextProps?.onClick,\n onNext,\n )}\n />\n ) : null}\n\n {computedWithEdges ? (\n <Component\n page=\"last\"\n aria-label=\"Go to last page\"\n className=\"ui-pagination__item--last\"\n isDisabled={isDisabled || currentPage === total}\n {...(edgeProps as ComponentPropsWithoutRef<\"button\">)}\n {...(edgeLastProps as ComponentPropsWithoutRef<\"button\">)}\n onClick={handlerAll(\n edgeProps?.onClick,\n edgeLastProps?.onClick,\n onLast,\n )}\n />\n ) : null}\n </ui.div>\n </PaginationProvider>\n )\n})\n","import type { CSSUIObject } from \"@yamada-ui/core\"\nimport { ui } from \"@yamada-ui/core\"\nimport { Ripple, useRipple } from \"@yamada-ui/ripple\"\nimport { cx, dataAttr } from \"@yamada-ui/utils\"\nimport type { ComponentPropsWithoutRef, FC, ReactNode } from \"react\"\nimport {\n DotsIcon,\n FirstIcon,\n LastIcon,\n NextIcon,\n PrevIcon,\n} from \"./pagination-icon\"\nimport { usePaginationContext } from \"./use-pagination\"\n\ntype PaginationItemOptions = {\n /**\n * The type of the page or item assigned to the pagination item.\n */\n page: number | \"dots\" | \"prev\" | \"next\" | \"first\" | \"last\"\n /**\n * If `true`, the pagination item will be actived.\n *\n * @default false\n */\n isActive?: boolean\n /**\n * If `true`, the pagination item will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true`, disable ripple effects when pressing a element.\n *\n * @default false\n */\n disableRipple?: boolean\n}\n\nexport type PaginationItemProps = ComponentPropsWithoutRef<\"button\"> &\n PaginationItemOptions\n\nconst iconMap: Record<\n number | \"dots\" | \"prev\" | \"next\" | \"first\" | \"last\",\n ReactNode\n> = {\n dots: <DotsIcon />,\n next: <NextIcon />,\n prev: <PrevIcon />,\n first: <FirstIcon />,\n last: <LastIcon />,\n}\n\nexport const PaginationItem: FC<PaginationItemProps> = ({\n className,\n isActive,\n page,\n isDisabled,\n disableRipple,\n children,\n ...rest\n}) => {\n const styles = usePaginationContext()\n const { onPointerDown, ...rippleProps } = useRipple({\n ...rest,\n isDisabled: disableRipple || isDisabled,\n })\n\n children ??= iconMap[page] ?? page\n\n const css: CSSUIObject = {\n position: \"relative\",\n overflow: \"hidden\",\n userSelect: \"none\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n ...styles.item,\n ...styles[page],\n }\n\n return (\n <ui.button\n className={cx(\"ui-pagination__item\", className)}\n type=\"button\"\n tabIndex={page !== \"dots\" ? 0 : -1}\n disabled={isDisabled}\n data-selected={dataAttr(isActive)}\n data-disabled={dataAttr(isDisabled)}\n __css={css}\n {...rest}\n onPointerDown={onPointerDown}\n >\n {children}\n\n <Ripple isDisabled={disableRipple || isDisabled} {...rippleProps} />\n </ui.button>\n )\n}\n","import type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport type { FC } from \"react\"\n\nexport const DotsIcon: FC<IconProps> = (props) => {\n return (\n <Icon viewBox=\"0 0 16 16\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M2 8c0-.733.6-1.333 1.333-1.333.734 0 1.334.6 1.334 1.333s-.6 1.333-1.334 1.333C2.6 9.333 2 8.733 2 8zm9.333 0c0-.733.6-1.333 1.334-1.333C13.4 6.667 14 7.267 14 8s-.6 1.333-1.333 1.333c-.734 0-1.334-.6-1.334-1.333zM6.667 8c0-.733.6-1.333 1.333-1.333s1.333.6 1.333 1.333S8.733 9.333 8 9.333 6.667 8.733 6.667 8z\"\n />\n </Icon>\n )\n}\n\nexport const FirstIcon: FC<IconProps> = (props) => {\n return (\n <Icon viewBox=\"0 0 16 16\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M6.85355 3.85355C7.04882 3.65829 7.04882 3.34171 6.85355 3.14645C6.65829 2.95118 6.34171 2.95118 6.14645 3.14645L2.14645 7.14645C1.95118 7.34171 1.95118 7.65829 2.14645 7.85355L6.14645 11.8536C6.34171 12.0488 6.65829 12.0488 6.85355 11.8536C7.04882 11.6583 7.04882 11.3417 6.85355 11.1464L3.20711 7.5L6.85355 3.85355ZM12.8536 3.85355C13.0488 3.65829 13.0488 3.34171 12.8536 3.14645C12.6583 2.95118 12.3417 2.95118 12.1464 3.14645L8.14645 7.14645C7.95118 7.34171 7.95118 7.65829 8.14645 7.85355L12.1464 11.8536C12.3417 12.0488 12.6583 12.0488 12.8536 11.8536C13.0488 11.6583 13.0488 11.3417 12.8536 11.1464L9.20711 7.5L12.8536 3.85355Z\"\n />\n </Icon>\n )\n}\n\nexport const LastIcon: FC<IconProps> = (props) => {\n return (\n <Icon viewBox=\"0 0 16 16\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M2.14645 11.1464C1.95118 11.3417 1.95118 11.6583 2.14645 11.8536C2.34171 12.0488 2.65829 12.0488 2.85355 11.8536L6.85355 7.85355C7.04882 7.65829 7.04882 7.34171 6.85355 7.14645L2.85355 3.14645C2.65829 2.95118 2.34171 2.95118 2.14645 3.14645C1.95118 3.34171 1.95118 3.65829 2.14645 3.85355L5.79289 7.5L2.14645 11.1464ZM8.14645 11.1464C7.95118 11.3417 7.95118 11.6583 8.14645 11.8536C8.34171 12.0488 8.65829 12.0488 8.85355 11.8536L12.8536 7.85355C13.0488 7.65829 13.0488 7.34171 12.8536 7.14645L8.85355 3.14645C8.65829 2.95118 8.34171 2.95118 8.14645 3.14645C7.95118 3.34171 7.95118 3.65829 8.14645 3.85355L11.7929 7.5L8.14645 11.1464Z\"\n />\n </Icon>\n )\n}\n\nexport const PrevIcon: FC<IconProps> = (props) => {\n return (\n <Icon viewBox=\"0 0 16 16\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M7.219 8l3.3 3.3-.943.943L5.333 8l4.243-4.243.943.943-3.3 3.3z\"\n />\n </Icon>\n )\n}\n\nexport const NextIcon: FC<IconProps> = (props) => {\n return (\n <Icon viewBox=\"0 0 16 16\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M8.781 8l-3.3-3.3.943-.943L10.667 8l-4.243 4.243-.943-.943 3.3-3.3z\"\n />\n </Icon>\n )\n}\n","import type { CSSUIObject, Token } from \"@yamada-ui/core\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { createContext } from \"@yamada-ui/utils\"\nimport { useCallback, useMemo } from \"react\"\n\ntype PaginationContext = Record<string, CSSUIObject>\n\nexport const [PaginationProvider, usePaginationContext] =\n createContext<PaginationContext>({\n strict: false,\n name: \"PaginationContext\",\n })\n\nexport type UsePaginationProps = {\n /**\n * The page of the pagination.\n * Should be less than `total` and greater than `1`.\n */\n page?: number\n /**\n * The initial page of the pagination.\n * Should be less than `total` and greater than `1`.\n *\n * @default 1\n */\n defaultPage?: number\n /**\n * The total number of pages in pagination.\n */\n total: number\n /** Number of siblings displayed on the left/right side of selected page.\n *\n * @default 1\n */\n siblings?: Token<number>\n /**\n * Number of elements visible on the left/right edges.\n *\n * @default 1\n */\n boundaries?: Token<number>\n /**\n * If `true`, the pagination all item will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * The callback invoked when the page changes.\n */\n onChange?: (page: number) => void\n}\n\nexport const computedRange = (start: number, end: number) =>\n Array.from({ length: end - start + 1 }, (_, index) => index + start)\n\nexport const usePagination = ({\n page,\n defaultPage = 1,\n total,\n siblings = 1,\n boundaries = 1,\n isDisabled = false,\n ...rest\n}: UsePaginationProps) => {\n const computedSiblings = useValue(siblings)\n const computedBoundaries = useValue(boundaries)\n\n const [currentPage, setCurrentPage] = useControllableState({\n value: page,\n defaultValue: defaultPage,\n onChange: rest.onChange,\n })\n\n const onFirst = useCallback(() => setCurrentPage(1), [setCurrentPage])\n\n const onLast = useCallback(\n () => setCurrentPage(total),\n [setCurrentPage, total],\n )\n\n const onPrev = useCallback(\n () => setCurrentPage((prev) => (prev === 1 ? prev : prev - 1)),\n [setCurrentPage],\n )\n\n const onNext = useCallback(\n () => setCurrentPage((prev) => (prev === total ? prev : prev + 1)),\n [setCurrentPage, total],\n )\n\n const onChange = useCallback(\n (page: number) => setCurrentPage(page),\n [setCurrentPage],\n )\n\n const range = useMemo((): (number | \"dots\")[] => {\n const minimumTotal = computedSiblings * 2 + 3 + computedBoundaries * 2\n\n if (minimumTotal >= total) return computedRange(1, total)\n\n const prevSiblings = Math.max(\n currentPage - computedSiblings,\n computedBoundaries,\n )\n const nextSiblings = Math.min(\n currentPage + computedSiblings,\n total - computedBoundaries,\n )\n\n const prevDots = prevSiblings > computedBoundaries + 2\n const nextDots = nextSiblings < total - (computedBoundaries + 1)\n\n if (!prevDots && nextDots) {\n const prevPages = computedSiblings * 2 + computedBoundaries + 2\n\n return [\n ...computedRange(1, prevPages),\n \"dots\",\n ...computedRange(total - (computedBoundaries - 1), total),\n ]\n }\n\n if (prevDots && !nextDots) {\n const nextPages = computedBoundaries + 1 + 2 * computedSiblings\n\n return [\n ...computedRange(1, computedBoundaries),\n \"dots\",\n ...computedRange(total - nextPages, total),\n ]\n }\n\n return [\n ...computedRange(1, computedBoundaries),\n \"dots\",\n ...computedRange(prevSiblings, nextSiblings),\n \"dots\",\n ...computedRange(total - computedBoundaries + 1, total),\n ]\n }, [computedBoundaries, computedSiblings, currentPage, total])\n\n return {\n currentPage,\n total,\n isDisabled,\n onFirst,\n onLast,\n onPrev,\n onNext,\n onChange,\n range,\n }\n}\n\nexport type UsePaginationReturn = ReturnType<typeof usePagination>\n","import type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n CSSUIProps,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { useAnimation } from \"@yamada-ui/use-animation\"\nimport { usePrevious } from \"@yamada-ui/use-previous\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx, getValidChildren, useIsMounted } from \"@yamada-ui/utils\"\n\ntype SkeletonOptions = {\n /**\n * The color at the animation start.\n */\n startColor?: CSSUIProps[\"color\"]\n /**\n * The color at the animation end.\n */\n endColor?: CSSUIProps[\"color\"]\n /**\n * If `true`, it'll render its children with a nice fade transition.\n *\n * @default false\n */\n isLoaded?: boolean\n /**\n * The animation speed in seconds.\n *\n * @default 0.8\n */\n speed?: string | number\n /**\n * The fadeIn duration in seconds. Requires `isLoaded` toggled to `true` in order to see the transition.\n *\n * @default 0.4\n */\n fadeDuration?: string | number\n /**\n * If `true`, the skeleton will take the width of it's children.\n *\n * @default false\n */\n isFitContent?: boolean\n}\n\nexport type SkeletonProps = HTMLUIProps<\"div\"> &\n ThemeProps<\"Skeleton\"> &\n SkeletonOptions\n\n/**\n * `Skeleton` is a component that acts as a placeholder until content is loaded.\n *\n * @see Docs https://yamada-ui.com/components/feedback/skeleton\n */\nexport const Skeleton = forwardRef<SkeletonProps, \"div\">((props, ref) => {\n const [styles, mergedProps] = useComponentStyle(\"Skeleton\", props)\n let {\n className,\n startColor,\n endColor,\n fadeDuration = 0.4,\n speed = 0.8,\n isLoaded,\n isFitContent,\n children,\n ...rest\n } = omitThemeProps(mergedProps)\n const [isMounted] = useIsMounted()\n const validChildren = getValidChildren(children)\n const prevIsLoaded = usePrevious(isLoaded)\n const computedStartColor = useValue(startColor)\n const computedEndColor = useValue(endColor)\n const hasChildren = !!validChildren.length\n\n isFitContent ??= hasChildren\n\n const fadeIn = useAnimation({\n keyframes: {\n \"0%\": {\n opacity: 0,\n },\n \"100%\": {\n opacity: 1,\n },\n },\n duration:\n typeof fadeDuration === \"string\" ? fadeDuration : `${fadeDuration}s`,\n })\n\n const animation = useAnimation({\n keyframes: {\n \"0%\": {\n borderColor: computedStartColor,\n background: computedStartColor,\n },\n \"100%\": {\n borderColor: computedEndColor,\n background: computedEndColor,\n },\n },\n duration: typeof speed === \"string\" ? speed : `${speed}s`,\n iterationCount: \"infinite\",\n direction: \"alternate\",\n timingFunction: \"linear\",\n })\n\n const css: CSSUIObject = {\n w: isFitContent ? \"fit-content\" : \"100%\",\n maxW: \"100%\",\n h: isFitContent ? \"fit-content\" : \"1rem\",\n boxShadow: \"none\",\n backgroundClip: \"padding-box\",\n cursor: \"default\",\n color: \"transparent\",\n pointerEvents: \"none\",\n userSelect: \"none\",\n \"&::before, &::after, *\": {\n visibility: \"hidden\",\n },\n ...styles,\n }\n\n if (isLoaded) {\n const animation = !isMounted() || prevIsLoaded ? \"none\" : fadeIn\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-skeleton\", \"ui-skeleton--loaded\", className)}\n {...rest}\n animation={animation}\n >\n {validChildren}\n </ui.div>\n )\n } else {\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-skeleton\", className)}\n __css={css}\n {...rest}\n animation={animation}\n >\n {validChildren}\n </ui.div>\n )\n }\n})\n","import { useRef, useEffect } from \"react\"\n\n/**\n * `usePrevious` is a custom hook for obtaining the previous value.\n *\n * @see Docs https://yamada-ui.com/hooks/use-previous\n */\nexport const usePrevious = <T>(value: T) => {\n const ref = useRef<T | undefined>()\n\n useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current as T\n}\n","import { forwardRef } from \"@yamada-ui/core\"\nimport { cx, getValidChildren } from \"@yamada-ui/utils\"\nimport type { SkeletonProps } from \"./\"\nimport { Skeleton } from \"./\"\n\nexport type SkeletonCircleProps = SkeletonProps\n\nexport const SkeletonCircle = forwardRef<SkeletonCircleProps, \"div\">(\n ({ className, boxSize = \"12\", children, isFitContent, ...rest }, ref) => {\n const validChildren = getValidChildren(children)\n const hasChildren = !!validChildren.length\n\n isFitContent ??= hasChildren\n\n return (\n <Skeleton\n ref={ref}\n className={cx(\"ui-skeleton__circle\", className)}\n rounded=\"9999px\"\n isFitContent={isFitContent}\n {...(!isFitContent ? { boxSize } : {})}\n {...rest}\n >\n {validChildren}\n </Skeleton>\n )\n },\n)\n","import type { CSSUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { SkeletonProps } from \"./\"\nimport { Skeleton } from \"./\"\n\ntype SkeletonTextOptions = {\n /**\n * The CSS `gap` property.\n */\n gap?: CSSUIProps[\"gap\"]\n /**\n * The CSS `height` property.\n */\n textHeight?: CSSUIProps[\"height\"]\n}\n\nexport type SkeletonTextProps = SkeletonProps & SkeletonTextOptions\n\nexport const SkeletonText = forwardRef<SkeletonTextProps, \"div\">(\n (\n {\n className,\n lineClamp = 3,\n startColor,\n endColor,\n fadeDuration,\n speed,\n isLoaded,\n gap = \"0.5rem\",\n textHeight = \"0.5rem\",\n children,\n ...rest\n },\n ref,\n ) => {\n const computedLineClamp = useValue(lineClamp)\n\n const css: CSSUIObject = {\n w: \"100%\",\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-skeleton__text\", className)}\n __css={css}\n {...rest}\n >\n {Array(computedLineClamp)\n .fill(0)\n .map((_, index) => {\n if (isLoaded && index > 0) return null\n\n const isLast = index + 1 === computedLineClamp\n\n const props: SkeletonProps = !isLoaded\n ? {\n mb: !isLast ? gap : undefined,\n w:\n computedLineClamp > 1 ? (!isLast ? \"100%\" : \"80%\") : \"100%\",\n h: textHeight,\n }\n : {}\n\n return (\n <Skeleton\n key={index}\n {...{\n startColor,\n endColor,\n fadeDuration,\n speed,\n isLoaded,\n ...props,\n }}\n >\n {index === 0 ? children : undefined}\n </Skeleton>\n )\n })}\n </ui.div>\n )\n },\n)\n","import type { CSSUIObject, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ReactNode } from \"react\"\nimport { useMemo } from \"react\"\nimport type { UseStepperProps } from \"./use-stepper\"\nimport {\n StepperProvider,\n useStepper,\n StepperDescendantsContextProvider,\n} from \"./use-stepper\"\nimport type {\n StepProps,\n StepStatusProps,\n StepTitleProps,\n StepDescriptionProps,\n StepSeparatorProps,\n} from \"./\"\nimport { Step, StepTitle, StepDescription, StepSeparator, StepStatus } from \"./\"\n\nexport type Steps = ({\n /**\n * The title for step component.\n */\n title?: ReactNode\n /**\n * The description for step component.\n */\n description?: ReactNode\n /**\n * If true, display the step separator.\n *\n * @default true\n */\n hasSeparator?: boolean\n /**\n * Props for step status element.\n */\n statusProps?: StepStatusProps\n /**\n * Props for step title element.\n */\n titleProps?: StepTitleProps\n /**\n * Props for step description element.\n */\n descriptionProps?: StepDescriptionProps\n /**\n * Props for step separator element.\n */\n separatorProps?: StepSeparatorProps\n} & StepProps)[]\n\ntype StepperOptions = {\n /**\n * If provided, generate step components based on steps.\n */\n steps?: Steps\n}\n\nexport type StepperProps = ThemeProps<\"Stepper\"> &\n UseStepperProps &\n StepperOptions\n\n/**\n * `Stepper` is a component that displays the progress of a multi-step process.\n *\n * @see Docs https://yamada-ui.com/components/navigation/stepper\n */\nexport const Stepper = forwardRef<StepperProps, \"div\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Stepper\", props)\n const { className, steps, children, ...computedProps } =\n omitThemeProps(mergedProps)\n\n const { descendants, getContainerProps, ...rest } = useStepper(computedProps)\n\n const computedChildren = useMemo(() => {\n const hasChildren = children != null\n\n if (hasChildren) {\n return children\n } else {\n return steps?.map(\n (\n {\n title,\n description,\n hasSeparator = true,\n statusProps,\n titleProps,\n descriptionProps,\n separatorProps,\n ...rest\n },\n index,\n ) => (\n <Step key={index} {...rest}>\n <StepStatus {...statusProps} />\n\n <ui.div flexShrink={0}>\n {title ? <StepTitle {...titleProps}>{title}</StepTitle> : null}\n {description ? (\n <StepDescription {...descriptionProps}>\n {description}\n </StepDescription>\n ) : null}\n </ui.div>\n\n {hasSeparator ? <StepSeparator {...separatorProps} /> : null}\n </Step>\n ),\n )\n }\n }, [children, steps])\n\n const css: CSSUIObject = { ...styles.stepper }\n\n return (\n <StepperDescendantsContextProvider value={descendants}>\n <StepperProvider value={{ ...rest, styles }}>\n <ui.div\n className={cx(\"ui-stepper\", className)}\n __css={css}\n {...getContainerProps({}, ref)}\n >\n {computedChildren}\n </ui.div>\n </StepperProvider>\n </StepperDescendantsContextProvider>\n )\n})\n","import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport { createDescendant } from \"@yamada-ui/use-descendant\"\nimport { createContext, mergeRefs } from \"@yamada-ui/utils\"\nimport { useCallback } from \"react\"\n\ntype StepperContext = Omit<\n UseStepperReturn,\n \"descendants\" | \"getContainerProps\"\n> & {\n styles: Record<string, CSSUIObject>\n}\n\nexport const {\n DescendantsContextProvider: StepperDescendantsContextProvider,\n useDescendants: useStepperDescendants,\n useDescendant: useStepperDescendant,\n} = createDescendant<HTMLDivElement>()\n\nexport const [StepperProvider, useStepperContext] =\n createContext<StepperContext>({\n name: \"StepperContext\",\n errorMessage: `useStepperContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Stepper />\"`,\n })\n\nexport type UseStepperProps = HTMLUIProps<\"div\"> & {\n /**\n * The active step index.\n */\n index: number\n /**\n * The orientation of the stepper.\n *\n * @default 'horizontal'\n */\n orientation?: \"horizontal\" | \"vertical\"\n /**\n * Whether to show or not the last separator while in vertical orientation.\n *\n * @default false\n */\n showLastSeparator?: boolean\n}\n\nexport const useStepper = ({\n index,\n orientation = \"horizontal\",\n showLastSeparator = false,\n ...rest\n}: UseStepperProps) => {\n const descendants = useStepperDescendants()\n\n const getStepStatus = useCallback(\n (step: number): \"complete\" | \"active\" | \"incomplete\" => {\n if (step < index) return \"complete\"\n if (step > index) return \"incomplete\"\n\n return \"active\"\n },\n [index],\n )\n\n const getContainerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...rest,\n ...props,\n ref,\n \"data-orientation\": orientation,\n }),\n [orientation, rest],\n )\n\n return {\n descendants,\n index,\n orientation,\n showLastSeparator,\n getStepStatus,\n getContainerProps,\n }\n}\n\nexport type UseStepperReturn = ReturnType<typeof useStepper>\n\nexport const useStep = () => {\n const { orientation, getStepStatus } = useStepperContext()\n\n const { index, register, descendants } = useStepperDescendant()\n\n const isFirst = index === 0\n const isLast = index === descendants.lastValue()?.index\n\n const status = getStepStatus(index)\n\n const getStepProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ref: mergeRefs(ref, register),\n \"data-status\": status,\n \"data-orientation\": orientation,\n }),\n [orientation, register, status],\n )\n\n return { index, status, isFirst, isLast, getStepProps }\n}\n\nexport type UseStepReturn = ReturnType<typeof useStep>\n","import { useCallback, useState } from \"react\"\n\nexport type UseStepsProps = {\n index?: number\n count?: number\n}\n\nexport const useSteps = ({ index = 0, count }: UseStepsProps) => {\n const [activeStep, setActiveStep] = useState(index)\n\n const maxStep = typeof count === \"number\" ? count - 1 : 0\n const activeStepPercent = activeStep / maxStep\n\n const isActiveStep = useCallback(\n (step: number) => step === activeStep,\n [activeStep],\n )\n\n const isCompleteStep = useCallback(\n (step: number) => step < activeStep,\n [activeStep],\n )\n\n const isIncompleteStep = useCallback(\n (step: number) => step > activeStep,\n [activeStep],\n )\n\n const getStepStatus = useCallback(\n (step: number): \"complete\" | \"active\" | \"incomplete\" => {\n if (step < activeStep) return \"complete\"\n if (step > activeStep) return \"incomplete\"\n\n return \"active\"\n },\n [activeStep],\n )\n\n const onStepNext = useCallback(\n () =>\n setActiveStep((step) =>\n typeof count === \"number\" ? Math.min(count, step + 1) : step + 1,\n ),\n [count],\n )\n\n const onStepPrev = useCallback(\n () => setActiveStep((step) => Math.max(0, step - 1)),\n [],\n )\n\n return {\n activeStep,\n setActiveStep,\n activeStepPercent,\n isActiveStep,\n isCompleteStep,\n isIncompleteStep,\n getStepStatus,\n onStepNext,\n onStepPrev,\n }\n}\n\nexport type UseStepsReturn = ReturnType<typeof useSteps>\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx, createContext, dataAttr } from \"@yamada-ui/utils\"\nimport type { UseStepReturn } from \"./use-stepper\"\nimport { useStep, useStepperContext } from \"./use-stepper\"\n\nexport type StepContext = Omit<UseStepReturn, \"getStepProps\">\n\nexport const [StepProvider, useStepContext] = createContext<StepContext>({\n name: \"StepperContext\",\n errorMessage: `useStepContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Step />\"`,\n})\n\nexport type StepProps = HTMLUIProps<\"div\">\n\nexport const Step = forwardRef<StepProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const { orientation, showLastSeparator, styles } = useStepperContext()\n const { index, status, isFirst, isLast, getStepProps } = useStep()\n\n const css: CSSUIObject = { ...styles.step }\n\n return (\n <StepProvider value={{ index, status, isFirst, isLast }}>\n <ui.div\n className={cx(\"ui-step\", className)}\n __css={css}\n data-orientation={orientation}\n data-stretch={dataAttr(showLastSeparator)}\n {...getStepProps(rest, ref)}\n />\n </StepProvider>\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useStepContext } from \"./step\"\nimport { useStepperContext } from \"./use-stepper\"\n\nexport type StepTitleProps = HTMLUIProps<\"h3\">\n\nexport const StepTitle = forwardRef<StepTitleProps, \"h3\">(\n ({ className, ...rest }, ref) => {\n const { styles } = useStepperContext()\n const { status } = useStepContext()\n\n const css: CSSUIObject = { ...styles.title }\n\n return (\n <ui.h3\n ref={ref}\n className={cx(\"ui-step__title\", className)}\n data-status={status}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useStepContext } from \"./step\"\nimport { useStepperContext } from \"./use-stepper\"\n\nexport type StepDescriptionProps = HTMLUIProps<\"p\">\n\nexport const StepDescription = forwardRef<StepDescriptionProps, \"p\">(\n ({ className, ...rest }, ref) => {\n const { styles } = useStepperContext()\n const { status } = useStepContext()\n\n const css: CSSUIObject = { ...styles.description }\n\n return (\n <ui.p\n ref={ref}\n className={cx(\"ui-step__description\", className)}\n data-status={status}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useStepContext } from \"./step\"\nimport { useStepperContext } from \"./use-stepper\"\n\nexport type StepSeparatorProps = HTMLUIProps<\"div\">\n\nexport const StepSeparator = forwardRef<StepSeparatorProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const { orientation, showLastSeparator, styles } = useStepperContext()\n const { status, isLast } = useStepContext()\n\n const css: CSSUIObject = { ...styles.separator }\n\n if (isLast && !showLastSeparator) return null\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-step__separator\", className)}\n role=\"separator\"\n data-orientation={orientation}\n data-status={status}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport { cx, runIfFunc } from \"@yamada-ui/utils\"\nimport type { ComponentProps, ReactNode } from \"react\"\nimport type { StepContext } from \"./step\"\nimport { useStepContext } from \"./step\"\nimport { useStepperContext } from \"./use-stepper\"\n\nexport type StepStatusProps = {\n [key in \"complete\" | \"active\" | \"incomplete\"]?:\n | ReactNode\n | ((props: Omit<StepContext, \"status\">) => ReactNode)\n}\n\nexport const StepStatus = forwardRef<StepStatusProps, \"div\">(\n (\n {\n className,\n complete = <StepIcon />,\n incomplete = <StepNumber />,\n active = <StepNumber />,\n ...rest\n },\n ref,\n ) => {\n const { styles } = useStepperContext()\n const { status, ...props } = useStepContext()\n\n const css: CSSUIObject = { ...styles.status }\n\n let component: ReactNode | null = null\n\n switch (status) {\n case \"complete\":\n component = runIfFunc(complete, props)\n\n break\n case \"incomplete\":\n component = runIfFunc(incomplete, props)\n\n break\n case \"active\":\n component = runIfFunc(active, props)\n\n break\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-step__status\", className)}\n data-status={status}\n __css={css}\n {...rest}\n >\n {component ? <>{component}</> : null}\n </ui.div>\n )\n },\n)\n\nexport type StepNumberProps = HTMLUIProps<\"div\">\n\nexport const StepNumber = forwardRef<StepNumberProps, \"div\">(\n ({ className, children, ...rest }, ref) => {\n const { styles } = useStepperContext()\n const { status, index } = useStepContext()\n\n const css: CSSUIObject = { ...styles.number }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-step__number\", className)}\n data-status={status}\n __css={css}\n {...rest}\n >\n {children || index + 1}\n </ui.div>\n )\n },\n)\n\nexport type StepIconProps = IconProps\n\nexport const StepIcon = forwardRef<StepIconProps, \"svg\">(\n ({ className, ...rest }, ref) => {\n const { styles } = useStepperContext()\n const { status } = useStepContext()\n\n const as = status === \"complete\" ? CheckIcon : undefined\n\n const css: CSSUIObject = { ...styles.icon }\n\n return (\n <Icon\n ref={ref}\n as={as}\n className={cx(\"ui-step__icon\", className)}\n data-status={status}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nconst CheckIcon = (props: ComponentProps<\"svg\">) => {\n return (\n <svg\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n viewBox=\"0 0 20 20\"\n aria-hidden=\"true\"\n height=\"1em\"\n width=\"1em\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n )\n}\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { createContext, cx, omitObject } from \"@yamada-ui/utils\"\n\ntype TableStyleContext = Record<string, CSSUIObject>\n\nexport const [TableStyleProvider, useTableStyles] =\n createContext<TableStyleContext>({\n name: \"TableStyleContext\",\n errorMessage: `useTableStyles returned is 'undefined'. Seems you forgot to wrap the components in \"<Table />\" or \"<NativeTable />\" or \"<PagingTable />\"`,\n })\n\ntype NativeTableOptions = {\n /**\n * The CSS `table-layout` property.\n */\n layout?: CSSUIObject[\"tableLayout\"]\n /**\n * If `true`, highlight the row when the table row is hovered.\n *\n * @default false\n */\n highlightOnHover?: boolean\n /**\n * If `true`, display the outer border of the table.\n *\n * @default false\n */\n withBorder?: boolean\n /**\n * If `true`, display line on the columns of the table.\n *\n * @default false\n */\n withColumnBorders?: boolean\n}\n\nexport type NativeTableProps = HTMLUIProps<\"table\"> &\n ThemeProps<\"NativeTable\"> &\n NativeTableOptions\n\n/**\n * `NativeTable` is a component for efficiently organizing and displaying data.\n *\n * @see Docs https://yamada-ui.com/components/data-display/native-table\n */\nexport const NativeTable = forwardRef<NativeTableProps, \"table\">(\n (props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"NativeTable\", props)\n const { className, layout, ...rest } = omitThemeProps(mergedProps)\n\n const css: CSSUIObject = { tableLayout: layout, ...styles.table }\n\n return (\n <TableStyleProvider value={styles}>\n <ui.table\n ref={ref}\n className={cx(\"ui-table\", className)}\n __css={css}\n {...omitObject(rest, [\n \"withBorder\",\n \"withColumnBorders\",\n \"highlightOnHover\",\n ])}\n />\n </TableStyleProvider>\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\n\nexport type TableContainerProps = HTMLUIProps<\"div\">\n\nexport const TableContainer = forwardRef<TableContainerProps, \"div\">(\n ({ className, overflow, overflowX, ...rest }, ref) => {\n const css: CSSUIObject = {\n display: \"block\",\n whiteSpace: \"nowrap\",\n WebkitOverflowScrolling: \"touch\",\n overflowX: (overflow ?? overflowX ?? \"auto\") as CSSUIObject[\"overflowX\"],\n overflowY: \"hidden\",\n maxW: \"100%\",\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-table__container\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useTableStyles } from \"./native-table\"\n\nexport type TableHeadProps = HTMLUIProps<\"thead\">\n\nexport const Thead = forwardRef<TableHeadProps, \"thead\">(\n ({ className, ...rest }, ref) => {\n const styles = useTableStyles()\n\n const css: CSSUIObject = { ...styles.thead }\n\n return (\n <ui.thead\n ref={ref}\n className={cx(\"ui-table__thead\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useTableStyles } from \"./native-table\"\n\nexport type TableBodyProps = HTMLUIProps<\"tbody\">\n\nexport const Tbody = forwardRef<TableBodyProps, \"tbody\">(\n ({ className, ...rest }, ref) => {\n const styles = useTableStyles()\n\n const css: CSSUIObject = { ...styles.tbody }\n\n return (\n <ui.tbody\n ref={ref}\n className={cx(\"ui-table__tbody\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useTableStyles } from \"./native-table\"\n\nexport type TableFootProps = HTMLUIProps<\"tfoot\">\n\nexport const Tfoot = forwardRef<TableFootProps, \"tfoot\">(\n ({ className, ...rest }, ref) => {\n const styles = useTableStyles()\n\n const css: CSSUIObject = { ...styles.tfoot }\n\n return (\n <ui.tfoot\n ref={ref}\n className={cx(\"ui-table__tfoot\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useTableStyles } from \"./native-table\"\n\nexport type TrProps = HTMLUIProps<\"tr\">\n\nexport const Tr = forwardRef<TrProps, \"tr\">(({ className, ...rest }, ref) => {\n const styles = useTableStyles()\n\n const css: CSSUIObject = { ...styles.tr }\n\n return (\n <ui.tr\n ref={ref}\n className={cx(\"ui-table__tr\", className)}\n __css={css}\n {...rest}\n />\n )\n})\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useTableStyles } from \"./native-table\"\n\ntype ThOptions = {\n /**\n * Aligns the cell content to the right.\n *\n * @default false\n */\n isNumeric?: boolean\n}\n\nexport type ThProps = HTMLUIProps<\"th\"> & ThOptions\n\nexport const Th = forwardRef<ThProps, \"th\">(\n ({ className, isNumeric, __css, ...rest }, ref) => {\n const styles = useTableStyles()\n\n const css: CSSUIObject = { ...styles.th, ...__css }\n\n return (\n <ui.th\n ref={ref}\n className={cx(\"ui-table__th\", className)}\n __css={css}\n data-is-numeric={isNumeric}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useTableStyles } from \"./native-table\"\n\ntype TdOptions = {\n /**\n * Aligns the cell content to the right.\n *\n * @default false\n */\n isNumeric?: boolean\n}\n\nexport type TdProps = HTMLUIProps<\"td\"> & TdOptions\n\nexport const Td = forwardRef<TdProps, \"td\">(\n ({ className, isNumeric, ...rest }, ref) => {\n const styles = useTableStyles()\n\n const css: CSSUIObject = { ...styles.td }\n\n return (\n <ui.td\n ref={ref}\n className={cx(\"ui-table__td\", className)}\n __css={css}\n data-is-numeric={isNumeric}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useTableStyles } from \"./native-table\"\n\ntype TableCaptionOptions = {\n /**\n * The placement of the table caption.\n *\n * @default 'bottom'\n */\n placement?: \"top\" | \"bottom\"\n}\n\nexport type TableCaptionProps = HTMLUIProps<\"caption\"> & TableCaptionOptions\n\nexport const TableCaption = forwardRef<TableCaptionProps, \"caption\">(\n ({ className, placement = \"bottom\", ...rest }, ref) => {\n const styles = useTableStyles()\n\n const css: CSSUIObject = { captionSide: placement, ...styles.caption }\n\n return (\n <ui.caption\n ref={ref}\n className={cx(\"ui-table__caption\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type {\n AnimationStyle,\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n Token,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { useAnimation } from \"@yamada-ui/use-animation\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx, omitObject } from \"@yamada-ui/utils\"\nimport type { ReactNode } from \"react\"\nimport { useMemo } from \"react\"\n\ntype IndicatorOptions = {\n children: ReactNode\n /**\n * If `true`, set the indicator as an inline element.\n *\n * @default false\n * */\n inline?: Token<boolean>\n /**\n * The placement of the indicator.\n *\n * @default 'top-right'\n */\n placement?: Token<\n | \"top\"\n | \"top-left\"\n | \"top-right\"\n | \"left\"\n | \"right\"\n | \"bottom\"\n | \"bottom-left\"\n | \"bottom-right\"\n >\n /**\n * Changes position offset, usually used when element has border-radius.\n *\n * @default 0\n */\n offset?: Token<number>\n /**\n * The indicator label to use.\n */\n label?: ReactNode\n /**\n * If `label` is of type number, the maximum number displayed.\n *\n * @default 99\n */\n overflowCount?: number\n /**\n * If `true`, display 0.\n *\n * @default true\n */\n showZero?: boolean\n /**\n * If `true`, the indicator will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true`, display the border of the indicator.\n *\n * @default false\n */\n withBorder?: boolean\n /**\n * Props for indicator wrapper element.\n */\n containerProps?: Omit<HTMLUIProps<\"div\">, \"children\">\n /**\n * If `true`, make an element scale and fade like a radar ping or ripple of water.\n *\n * @default false\n */\n ping?: boolean\n /**\n * It is used for the color of the ping animation.\n *\n * @default \"var(--ui-ping)\"\n */\n pingColor?: HTMLUIProps<\"div\">[\"backgroundColor\"]\n /**\n * It is used for the scale of the ping animation.\n *\n * @default 1.8\n */\n pingScale?: number\n /**\n * It is used for the count of the ping animation.\n *\n * @default \"infinite\"\n */\n pingCount?: AnimationStyle[\"iterationCount\"]\n /**\n * It is used for the duration of the ping animation.\n *\n * @default \"1.4s\"\n */\n pingDuration?: AnimationStyle[\"direction\"]\n}\n\nexport type IndicatorProps = Omit<HTMLUIProps<\"div\">, \"children\" | \"offset\"> &\n ThemeProps<\"Indicator\"> &\n IndicatorOptions\n\nconst getPlacementStyle = (\n placement:\n | \"top\"\n | \"top-left\"\n | \"top-right\"\n | \"left\"\n | \"right\"\n | \"bottom\"\n | \"bottom-left\"\n | \"bottom-right\",\n offset: number,\n): CSSUIObject => {\n const styles: CSSUIObject = {}\n let translateX = \"\"\n let translateY = \"\"\n\n if (placement.includes(\"top\")) {\n styles.top = offset\n translateY = \"-50%\"\n } else if (placement.includes(\"bottom\")) {\n styles.bottom = offset\n translateY = \"50%\"\n } else {\n styles.top = \"50%\"\n translateY = \"-50%\"\n }\n\n if (placement.includes(\"left\")) {\n styles.left = offset\n translateX = \"-50%\"\n } else if (placement.includes(\"right\")) {\n styles.right = offset\n translateX = \"50%\"\n } else {\n styles.left = \"50%\"\n translateX = \"-50%\"\n }\n\n styles.transform = `translate(${translateX}, ${translateY})`\n\n return styles\n}\n\n/**\n * `Indicator` is a component that displays at the corner of elements such as avatars.\n *\n * @see Docs https://yamada-ui.com/components/media-and-icons/indicator\n */\nexport const Indicator = forwardRef<IndicatorProps, \"div\">((props, ref) => {\n const [styles, mergedProps] = useComponentStyle(\"Indicator\", props)\n let {\n className,\n inline = false,\n placement = \"top-right\",\n offset = 0,\n label,\n overflowCount = 99,\n showZero = true,\n children,\n isDisabled,\n containerProps,\n ping,\n pingColor = \"var(--ui-ping)\",\n pingDuration = \"1.4s\",\n pingCount = \"infinite\",\n pingScale = 1.8,\n ...rest\n } = omitThemeProps(mergedProps)\n const animation = useAnimation({\n keyframes: {\n \"75%, 100%\": {\n transform: `scale(${pingScale})`,\n opacity: 0,\n },\n },\n fillMode: \"forwards\",\n duration: pingDuration,\n timingFunction: \"cubic-bezier(0, 0, 0.2, 1)\",\n iterationCount: pingCount,\n })\n\n const isNumeric = typeof label === \"number\"\n\n if (isNumeric && !showZero && (label as number) <= 0) isDisabled ??= true\n\n const computedInline = useValue(inline)\n const computedPlacement = useValue(placement)\n const computedOffset = useValue(offset)\n\n const renderLabel = useMemo(() => {\n if (isNumeric) {\n if ((label as number) > overflowCount) {\n return (\n <>\n {overflowCount}\n <ui.span lineHeight={1}>+</ui.span>\n </>\n )\n } else {\n return label\n }\n } else {\n return label\n }\n }, [isNumeric, label, overflowCount])\n\n const css: CSSUIObject = {\n position: \"absolute\",\n ...getPlacementStyle(computedPlacement, computedOffset),\n ...(isNumeric ? { fontWeight: \"medium\" } : {}),\n ...styles,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-indicator\", className)}\n __css={{\n position: \"relative\",\n display: computedInline ? \"inline-block\" : \"block\",\n }}\n {...containerProps}\n >\n {!isDisabled ? (\n <ui.div\n ref={ref}\n className={cx(\"ui-indicator__icon\", className)}\n __css={css}\n {...omitObject(rest, [\"withBorder\"])}\n >\n {renderLabel}\n\n {ping ? (\n <ui.div\n className=\"ui-indicator__icon__ping\"\n __css={{\n position: \"absolute\",\n boxSize: \"100%\",\n rounded: \"9999px\",\n opacity: 0.75,\n zIndex: -1,\n bg: pingColor,\n }}\n animation={animation}\n />\n ) : null}\n </ui.div>\n ) : null}\n\n {children}\n </ui.div>\n )\n})\n","import { useRef, useEffect, useCallback, useState } from \"react\"\n\n/**\n * `useHover` is a custom hook that detects whether the pointer has moved over or away from an element.\n *\n * @see Docs https://yamada-ui.com/hooks/use-hover\n */\nexport const useHover = <T extends HTMLElement = HTMLDivElement>() => {\n const [hovered, setHovered] = useState(false)\n const ref = useRef<T>(null)\n\n const onMouseEnter = useCallback(() => setHovered(true), [])\n const onMouseLeave = useCallback(() => setHovered(false), [])\n\n useEffect(() => {\n const el = ref.current\n\n if (el) {\n el.addEventListener(\"mouseenter\", onMouseEnter)\n el.addEventListener(\"mouseleave\", onMouseLeave)\n\n return () => {\n el.removeEventListener(\"mouseenter\", onMouseEnter)\n el.removeEventListener(\"mouseleave\", onMouseLeave)\n }\n }\n }, [onMouseEnter, onMouseLeave])\n\n return { ref, hovered }\n}\n","import { useRef, useEffect, useState } from \"react\"\n\nconst DEFAULT_EVENTS: (keyof DocumentEventMap)[] = [\n \"keypress\",\n \"mousemove\",\n \"touchmove\",\n \"click\",\n \"scroll\",\n]\n\nconst DEFAULT_OPTIONS = {\n events: DEFAULT_EVENTS,\n initialState: true,\n}\n\nexport type IdleOptions = Partial<{\n events: (keyof DocumentEventMap)[]\n initialState: boolean\n}>\n\n/**\n * `useIdle` is a custom hook that detects whether the user has been idle for a certain amount of time in milliseconds.\n *\n * @see Docs https://yamada-ui.com/hooks/use-idle\n */\nexport const useIdle = (timeout: number, options?: IdleOptions) => {\n const { events, initialState } = { ...DEFAULT_OPTIONS, ...options }\n const [idle, setIdle] = useState<boolean>(initialState)\n const timeoutId = useRef<any>(null)\n\n useEffect(() => {\n const handleEvent = () => {\n setIdle(false)\n\n if (timeoutId.current) window.clearTimeout(timeoutId.current)\n\n timeoutId.current = window.setTimeout(() => {\n setIdle(true)\n }, timeout)\n }\n\n events.forEach((event) => document.addEventListener(event, handleEvent))\n\n return () => {\n events.forEach((event) =>\n document.removeEventListener(event, handleEvent),\n )\n }\n }, [events, timeout])\n\n return idle\n}\n","export type OS =\n | \"undetermined\"\n | \"macos\"\n | \"ios\"\n | \"windows\"\n | \"android\"\n | \"linux\"\n\nconst getOS = (): OS => {\n const { userAgent } = window.navigator\n\n const macos = /(Macintosh)|(MacIntel)|(MacPPC)|(Mac68K)/i\n const windows = /(Win32)|(Win64)|(Windows)|(WinCE)/i\n const ios = /(iPhone)|(iPad)|(iPod)/i\n const android = /Android/i\n const linux = /Linux/i\n\n if (macos.test(userAgent)) return \"macos\"\n if (ios.test(userAgent)) return \"ios\"\n if (windows.test(userAgent)) return \"windows\"\n if (android.test(userAgent)) return \"android\"\n if (linux.test(userAgent)) return \"linux\"\n\n return \"undetermined\"\n}\n\n/**\n * `useOS` is a custom hook that returns the user's OS.\n *\n * @see Docs https://yamada-ui.com/hooks/use-os\n */\nexport const useOS = (): OS => {\n if (typeof window !== \"undefined\") return getOS()\n\n return \"undetermined\"\n}\n","import { useCallbackRef } from \"@yamada-ui/utils\"\nimport { useEffect } from \"react\"\n\ntype Handler<E extends string> = E extends keyof WindowEventMap\n ? (ev: WindowEventMap[E]) => void\n : (ev: CustomEvent) => void\ntype Options = boolean | AddEventListenerOptions\n\n/**\n * `useWindowEvent` is a custom hook that assigns an event listener to `window`.\n *\n * @see Docs https://yamada-ui.com/hooks/use-window-event\n */\nexport const useWindowEvent = <E extends string>(\n event: E,\n handler: Handler<E>,\n options?: Options,\n) => {\n const listener = useCallbackRef(\n handler,\n ) as unknown as EventListenerOrEventListenerObject\n\n useEffect(() => {\n window.addEventListener(event, listener, options)\n\n return () => {\n window.removeEventListener(event, listener, options)\n }\n }, [event, listener, options])\n}\n","import { useWindowEvent } from \"@yamada-ui/use-window-event\"\nimport { isFunction } from \"@yamada-ui/utils\"\nimport { useState, useCallback, useEffect } from \"react\"\n\nexport type StorageType = \"localStorage\" | \"sessionStorage\"\n\nexport type StorageProps<T> = {\n key: string\n defaultValue?: T\n getInitialValueInEffect?: boolean\n serialize?: (value: T) => string\n deserialize?: (value: string | undefined) => T\n}\n\nconst serializeJSON = <T>(value: T, name: string) => {\n try {\n return JSON.stringify(value)\n } catch (error) {\n throw new Error(`useLocalStorage ${name}: Failed to serialize the value`)\n }\n}\n\nconst deserializeJSON = (value: string | undefined) => {\n if (!value) return value\n\n try {\n return JSON.parse(value)\n } catch {\n return value\n }\n}\n\nexport const createStorage = <T>(type: StorageType, name: string) => {\n const eventName =\n type === \"localStorage\" ? \"ui-local-storage\" : \"ui-session-storage\"\n\n return ({\n key,\n defaultValue = undefined,\n getInitialValueInEffect = true,\n deserialize = deserializeJSON,\n serialize = (value: T) => serializeJSON(value, name),\n }: StorageProps<T>) => {\n const readStorageValue = useCallback(\n (skipStorage?: boolean): T => {\n if (\n typeof window === \"undefined\" ||\n !(type in window) ||\n window[type] === null ||\n skipStorage\n ) {\n return (defaultValue ?? \"\") as T\n }\n\n const storageValue = window[type].getItem(key)\n\n return storageValue !== null\n ? deserialize(storageValue)\n : ((defaultValue ?? \"\") as T)\n },\n [key, deserialize, defaultValue],\n )\n\n const [value, setValue] = useState<T>(\n readStorageValue(getInitialValueInEffect),\n )\n\n const setStorageValue = useCallback(\n (valOrFunc: T | ((prevState: T) => T)) => {\n if (isFunction(valOrFunc)) {\n setValue((current) => {\n const result = valOrFunc(current)\n\n window[type].setItem(key, serialize(result))\n window.dispatchEvent(\n new CustomEvent(eventName, {\n detail: { key, value: valOrFunc(current) },\n }),\n )\n\n return result\n })\n } else {\n window[type].setItem(key, serialize(valOrFunc))\n window.dispatchEvent(\n new CustomEvent(eventName, { detail: { key, value: valOrFunc } }),\n )\n\n setValue(valOrFunc)\n }\n },\n [key, serialize],\n )\n\n const removeStorageValue = useCallback(() => {\n window[type].removeItem(key)\n setValue(defaultValue as T)\n }, [defaultValue, key])\n\n useWindowEvent(\"storage\", (ev) => {\n if (ev.storageArea === window[type] && ev.key === key)\n setValue(deserialize(ev.newValue ?? undefined))\n })\n\n useWindowEvent(eventName, (ev) => {\n if (ev.detail.key === key) setValue(ev.detail.value)\n })\n\n useEffect(() => {\n if (defaultValue !== undefined && value === undefined)\n setStorageValue(defaultValue)\n }, [defaultValue, value, setStorageValue])\n\n useEffect(() => {\n if (getInitialValueInEffect) setValue(readStorageValue())\n }, [getInitialValueInEffect, readStorageValue])\n\n return [\n value === undefined ? defaultValue : value,\n setStorageValue,\n removeStorageValue,\n ] as const\n }\n}\n\n/**\n * `useLocalStorage` is a custom hook for storing, updating, and retrieving values in local storage.\n *\n * @see Docs https://yamada-ui.com/hooks/use-local-storage\n */\nexport const useLocalStorage = <T = string>(props: StorageProps<T>) =>\n createStorage<T>(\"localStorage\", \"use-local-storage\")(props)\n","import { useEnvironment } from \"@yamada-ui/providers\"\nimport { isArray, isFunction } from \"@yamada-ui/utils\"\nimport { useEffect, useState } from \"react\"\n\nexport type UseMediaQueryOptions = {\n fallback?: boolean | boolean[]\n ssr?: boolean\n}\n\n/**\n * `useMediaQuery` is a custom hook that detects whether it matches a single or multiple media queries.\n *\n * @see Docs https://yamada-ui.com/hooks/use-media-query\n */\nexport const useMediaQuery = (\n query: string | string[],\n { ssr = true, fallback }: UseMediaQueryOptions = {},\n): boolean[] => {\n const { getWindow } = useEnvironment()\n\n const queries = isArray(query) ? query : [query]\n\n let fallbackValues = isArray(fallback) ? fallback : [fallback]\n\n fallbackValues = fallbackValues.filter((value) => value != null) as boolean[]\n\n const [value, setValue] = useState(() => {\n return queries.map((media, index) => ({\n media,\n matches: ssr\n ? !!fallbackValues[index]\n : getWindow().matchMedia(media).matches,\n }))\n })\n\n useEffect(() => {\n const win = getWindow()\n\n setValue(\n queries.map((media) => ({\n media,\n matches: win.matchMedia(media).matches,\n })),\n )\n\n const mql = queries.map((query) => win.matchMedia(query))\n\n const handler = (evt: MediaQueryListEvent) => {\n setValue((prev) =>\n prev.slice().map((item) => {\n if (item.media === evt.media) return { ...item, matches: evt.matches }\n\n return item\n }),\n )\n }\n\n mql.forEach((mql) => {\n if (isFunction(mql.addListener)) {\n mql.addListener(handler)\n } else {\n mql.addEventListener(\"change\", handler)\n }\n })\n\n return () => {\n mql.forEach((mql) => {\n if (isFunction(mql.removeListener)) {\n mql.removeListener(handler)\n } else {\n mql.removeEventListener(\"change\", handler)\n }\n })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getWindow])\n\n return value.map((item) => item.matches)\n}\n","import { isNumber, isString } from \"@yamada-ui/utils\"\nimport copy from \"copy-to-clipboard\"\nimport { useState, useCallback, useEffect } from \"react\"\n\nexport type UseClipboardOptions = {\n timeout?: number\n format?: string\n}\n\n/**\n * `useClipboard` is a custom hook that performs the operation of copying a value to the clipboard.\n *\n * @see Docs https://yamada-ui.com/hooks/use-clipboard\n */\nexport const useClipboard = (\n defaultValue: string = \"\",\n timeoutOrOptions: number | UseClipboardOptions = {},\n) => {\n const [hasCopied, setHasCopied] = useState(false)\n\n const [value, setValue] = useState(defaultValue)\n\n useEffect(() => setValue(defaultValue), [defaultValue])\n\n const { timeout = 1500, ...copyOptions } = isNumber(timeoutOrOptions)\n ? { timeout: timeoutOrOptions }\n : timeoutOrOptions\n\n const onCopy = useCallback(\n (newValue?: any) => {\n if (!isString(newValue)) {\n newValue = value\n } else {\n setValue(newValue)\n }\n\n const hasCopied = copy(newValue, copyOptions)\n\n setHasCopied(hasCopied)\n },\n [value, copyOptions],\n )\n\n useEffect(() => {\n let timeoutId: number | null = null\n\n if (hasCopied)\n timeoutId = window.setTimeout(() => {\n setHasCopied(false)\n }, timeout)\n\n return () => {\n if (timeoutId) window.clearTimeout(timeoutId)\n }\n }, [timeout, hasCopied])\n\n return {\n value,\n setValue,\n onCopy,\n hasCopied,\n }\n}\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { cx, runIfFunc } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, ReactNode } from \"react\"\nimport type { ColorSelectorBodyProps } from \"./color-selector-body\"\nimport { ColorSelectorBody } from \"./color-selector-body\"\nimport type { ColorSelectorChannelsProps } from \"./color-selector-channels\"\nimport { ColorSelectorChannels } from \"./color-selector-channels\"\nimport type { ColorSelectorSwatchesProps } from \"./color-selector-swatches\"\nimport { ColorSelectorSwatches } from \"./color-selector-swatches\"\nimport type { SaturationSliderProps } from \"./saturation-slider\"\nimport { SaturationSlider } from \"./saturation-slider\"\nimport type { UseColorSelectorProps } from \"./use-color-selector\"\nimport { ColorSelectorProvider, useColorSelector } from \"./use-color-selector\"\n\ntype ColorSelectorOptions = {\n /**\n * If `true`, display the saturation, hue, alpha, channels and eye dropper component.\n *\n * @default true\n */\n withPicker?: boolean\n /**\n * If `true`, display the channels component.\n *\n * @default true\n */\n withChannel?: boolean\n /**\n * Props for the color selector input element.\n */\n inputProps?: HTMLUIProps<\"input\">\n /**\n * Ref for the saturation slider component.\n */\n saturationSliderRef?: ForwardedRef<HTMLInputElement>\n /**\n * Props for the saturation slider component.\n */\n saturationSliderProps?: Omit<SaturationSliderProps, \"value\" | \"defaultValue\">\n /**\n * Props for the swatches component.\n */\n swatchesProps?: ColorSelectorSwatchesProps\n /**\n * Props for the channels component.\n */\n channelsProps?: ColorSelectorChannelsProps\n children?: ReactNode | ((props: { value: string }) => ReactNode)\n}\n\nexport type ColorSelectorProps = ThemeProps<\"ColorSelector\"> &\n UseColorSelectorProps &\n ColorSelectorOptions &\n Pick<\n ColorSelectorBodyProps,\n | \"withResult\"\n | \"withEyeDropper\"\n | \"eyeDropperRef\"\n | \"eyeDropperProps\"\n | \"hueSliderRef\"\n | \"hueSliderProps\"\n | \"alphaSliderRef\"\n | \"alphaSliderProps\"\n > &\n Pick<\n ColorSelectorSwatchesProps,\n \"swatchesLabel\" | \"swatches\" | \"swatchesColumns\" | \"swatchProps\"\n > &\n Pick<ColorSelectorChannelsProps, \"channelProps\">\n\n/**\n * `ColorSelector` is a component used by the user to select a color.\n *\n * @see Docs https://yamada-ui.com/components/forms/color-selector\n */\nexport const ColorSelector = forwardRef<ColorSelectorProps, \"input\">(\n ({ size, ...props }, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"ColorSelector\", {\n size,\n ...props,\n })\n const {\n className,\n children,\n withResult = true,\n withPicker = true,\n withChannel = true,\n swatches,\n swatchesColumns = 7,\n inputProps,\n withEyeDropper,\n eyeDropperRef,\n eyeDropperProps,\n saturationSliderRef,\n saturationSliderProps,\n hueSliderRef,\n hueSliderProps,\n alphaSliderRef,\n alphaSliderProps,\n swatchesLabel,\n swatchProps,\n swatchesProps,\n channelsProps,\n channelProps,\n ...computedProps\n } = omitThemeProps(mergedProps)\n const {\n value,\n getContainerProps,\n getInputProps,\n getSaturationSliderProps,\n ...rest\n } = useColorSelector(computedProps)\n\n const css: CSSUIObject = {\n display: \"flex\",\n flexDirection: \"column\",\n ...styles.container,\n }\n\n return (\n <ColorSelectorProvider value={{ styles, size, value, ...rest }}>\n <ui.div\n ref={ref}\n className={cx(\"ui-color-selector\", className)}\n __css={css}\n {...getContainerProps()}\n >\n <ui.input {...getInputProps(inputProps, ref)} />\n\n {withPicker ? (\n <SaturationSlider\n size={size}\n className=\"ui-color-selector__saturation-slider\"\n __css={{ ...styles.saturationSlider }}\n {...getSaturationSliderProps(\n saturationSliderProps,\n saturationSliderRef,\n )}\n />\n ) : null}\n\n {withPicker ? (\n <ColorSelectorBody\n {...{\n withResult,\n withEyeDropper,\n eyeDropperRef,\n eyeDropperProps,\n hueSliderRef,\n hueSliderProps,\n alphaSliderRef,\n alphaSliderProps,\n }}\n />\n ) : null}\n\n {withPicker && withChannel ? (\n <ColorSelectorChannels {...{ channelProps, ...channelsProps }} />\n ) : null}\n\n <ColorSelectorSwatches\n {...{\n swatchesLabel,\n swatches,\n swatchesColumns,\n swatchProps,\n ...swatchesProps,\n }}\n />\n\n {runIfFunc(children, { value })}\n </ui.div>\n </ColorSelectorProvider>\n )\n },\n)\n","import { forwardRef, ui } from \"@yamada-ui/core\"\nimport type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ForwardedRef } from \"react\"\nimport type { ColorSelectorEyeDropperProps } from \"./color-selector-eye-dropper\"\nimport { ColorSelectorEyeDropper } from \"./color-selector-eye-dropper\"\nimport type { ColorSelectorSlidersProps } from \"./color-selector-sliders\"\nimport { ColorSelectorSliders } from \"./color-selector-sliders\"\nimport { ColorSwatch } from \"./color-swatch\"\nimport { useColorSelectorContext } from \"./use-color-selector\"\n\ntype ColorSelectorBodyOptions = {\n /**\n * If `true`, display the result component.\n *\n * @default true\n */\n withResult?: boolean\n /**\n * If `true` display the eye dropper component.\n *\n * @default true\n */\n withEyeDropper?: boolean\n /**\n * Ref for the eye dropper component.\n */\n eyeDropperRef?: ForwardedRef<HTMLButtonElement>\n /**\n * Props for the eye dropper component.\n */\n eyeDropperProps?: ColorSelectorEyeDropperProps\n}\n\nexport type ColorSelectorBodyProps = Omit<HTMLUIProps<\"div\">, \"children\"> &\n ColorSelectorBodyOptions &\n Pick<\n ColorSelectorSlidersProps,\n \"hueSliderRef\" | \"hueSliderProps\" | \"alphaSliderRef\" | \"alphaSliderProps\"\n >\n\nexport const ColorSelectorBody = forwardRef<ColorSelectorBodyProps, \"div\">(\n (\n {\n className,\n withEyeDropper = true,\n withResult,\n eyeDropperRef,\n eyeDropperProps,\n hueSliderRef,\n hueSliderProps,\n alphaSliderRef,\n alphaSliderProps,\n ...rest\n },\n ref,\n ) => {\n const { value, eyeDropperSupported, styles } = useColorSelectorContext()\n\n const css: CSSUIObject = {\n display: \"flex\",\n w: \"100%\",\n ...styles.body,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-color-selector__body\", className)}\n __css={css}\n {...rest}\n >\n <ColorSelectorSliders\n {...{\n hueSliderRef,\n hueSliderProps,\n alphaSliderRef,\n alphaSliderProps,\n }}\n />\n\n {withEyeDropper && eyeDropperSupported ? (\n <ColorSelectorEyeDropper ref={eyeDropperRef} {...eyeDropperProps} />\n ) : null}\n\n {withResult ? (\n <ColorSwatch\n className=\"ui-color-selector__result\"\n color={value}\n __css={{ ...styles.result }}\n />\n ) : null}\n </ui.div>\n )\n },\n)\n","import type { IconButtonProps } from \"@yamada-ui/button\"\nimport { IconButton } from \"@yamada-ui/button\"\nimport { forwardRef } from \"@yamada-ui/core\"\nimport type { CSSUIObject } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { FC } from \"react\"\nimport { useColorSelectorContext } from \"./use-color-selector\"\n\nexport type ColorSelectorEyeDropperProps = IconButtonProps\n\nexport const ColorSelectorEyeDropper = forwardRef<\n ColorSelectorEyeDropperProps,\n \"button\"\n>(({ className, ...rest }, ref) => {\n const { getEyeDropperProps, readOnly, size, styles } =\n useColorSelectorContext()\n\n const css: CSSUIObject = {\n h: \"auto\",\n minW: \"auto\",\n pointerEvents: readOnly ? \"none\" : undefined,\n ...styles.eyeDropper,\n }\n\n return (\n <IconButton\n className={cx(\"ui-color-selector__eye-dropper\", className)}\n variant=\"outline\"\n size={size}\n __css={css}\n {...getEyeDropperProps(rest, ref)}\n >\n <EyeDropperIcon className=\"ui-color-selector__eye-dropper__icon\" />\n </IconButton>\n )\n})\n\nexport const EyeDropperIcon: FC<IconProps> = ({ ...rest }) => {\n return (\n <Icon\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...rest}\n >\n <path d=\"m2 22 1-1h3l9-9\" />\n <path d=\"M3 21v-3l9-9\" />\n <path d=\"m15 6 3.4-3.4a2.1 2.1 0 1 1 3 3L18 9l.4.4a2.1 2.1 0 1 1-3 3l-3.8-3.8a2.1 2.1 0 1 1 3-3l.4.4Z\" />\n </Icon>\n )\n}\n","import { useSafeLayoutEffect } from \"@yamada-ui/utils\"\nimport { useCallback, useState } from \"react\"\n\ntype EyeDropperOptions = {\n signal?: AbortSignal\n}\n\nexport type EyeDropperReturn = {\n sRGBHex: string\n}\n\nexport const useEyeDropper = () => {\n const [supported, setSupported] = useState(false)\n\n useSafeLayoutEffect(() => {\n setSupported(typeof window !== \"undefined\" && \"EyeDropper\" in window)\n }, [])\n\n const onOpen = useCallback(\n (\n options: EyeDropperOptions = {},\n ): Promise<EyeDropperReturn | undefined> => {\n if (supported) {\n const eyeDropper = new (window as any).EyeDropper()\n\n return eyeDropper.open(options)\n }\n\n return Promise.resolve(undefined)\n },\n [supported],\n )\n\n return { supported, onOpen }\n}\n","import type {\n CSSUIObject,\n HTMLUIProps,\n UIPropGetter,\n ThemeProps,\n RequiredUIPropGetter,\n} from \"@yamada-ui/core\"\nimport {\n useFormControlProps,\n type FormControlOptions,\n formControlProperties,\n} from \"@yamada-ui/form-control\"\nimport type { InputProps } from \"@yamada-ui/input\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { useEyeDropper } from \"@yamada-ui/use-eye-dropper\"\nimport type { ColorFormat, Dict, Merge } from \"@yamada-ui/utils\"\nimport {\n calcFormat,\n convertColor,\n createContext,\n handlerAll,\n hsvTo,\n isString,\n parseToHsv,\n useCallbackRef,\n useUpdateEffect,\n omitObject,\n parseToRgba,\n parseToHsla,\n rgbaTo,\n hslaTo,\n pickObject,\n} from \"@yamada-ui/utils\"\nimport type { ChangeEvent } from \"react\"\nimport { useCallback, useMemo, useRef, useState } from \"react\"\nimport type { AlphaSliderProps } from \"./alpha-slider\"\nimport type { ColorSwatchProps } from \"./color-swatch\"\nimport type { HueSliderProps } from \"./hue-slider\"\nimport type { SaturationSliderProps } from \"./saturation-slider\"\n\ntype Space = keyof Hsla | keyof Rgba\ntype Hsla = { h: number; s: number; l: number; a: number }\ntype Rgba = { r: number; g: number; b: number; a: number }\ntype Hsva = { h: number; s: number; v: number; a: number }\ntype Channel = {\n label: string\n space: Space\n value: number\n min: number\n max: number\n}\n\nconst convertHsla = (value: string, fallback?: string): Hsla => {\n let [h, s, l, a] = parseToHsla(value, fallback) ?? [0, 0, 1, 1]\n\n if (a > 1) a = 1\n\n return { h, s, l, a }\n}\n\nconst convertRgba = (value: string, fallback?: string): Rgba => {\n let [r, g, b, a] = parseToRgba(value, fallback) ?? [255, 255, 255, 1]\n\n if (r > 255) r = 255\n if (g > 255) g = 255\n if (b > 255) b = 255\n if (a > 1) a = 1\n\n return { r, g, b, a }\n}\n\nconst convertHsva = (value: string, fallback?: string): Hsva => {\n const [h, s, v, a] = parseToHsv(value, fallback)\n\n return { h, s, v, a }\n}\n\ntype ColorSelectorContext = {\n value: string\n onChange: (value: string | Partial<Hsva>) => void\n eyeDropperSupported: boolean\n withAlpha: boolean\n isInteractive: boolean\n disabled?: boolean\n readOnly?: boolean\n channels: Channel[]\n size?: ThemeProps<\"ColorSelector\">[\"size\"]\n getHueSliderProps: UIPropGetter<\"input\", HueSliderProps, HueSliderProps>\n getAlphaSliderProps: UIPropGetter<\"input\", AlphaSliderProps, AlphaSliderProps>\n getEyeDropperProps: UIPropGetter<\"button\">\n getChannelProps: RequiredUIPropGetter<\n \"input\",\n Merge<InputProps, { space: Space }>,\n InputProps\n >\n getSwatchProps: UIPropGetter<\"div\", ColorSwatchProps, ColorSwatchProps>\n styles: Record<string, CSSUIObject>\n}\n\nexport const [ColorSelectorProvider, useColorSelectorContext] =\n createContext<ColorSelectorContext>({\n name: \"ColorSelectorContext\",\n errorMessage: `useColorSelectorContext returned is 'undefined'. Seems you forgot to wrap the components in \"<ColorSelector />\"`,\n })\n\ntype UseColorSelectorOptions = {\n /**\n * The base `id` to use for the color selector.\n */\n id?: string\n /**\n * The name attribute of the hidden `input` field.\n * This is particularly useful in forms.\n */\n name?: string\n /**\n * The value of the color selector.\n */\n value?: string\n /**\n * The initial value of the color selector.\n */\n defaultValue?: string\n /**\n * The fallback value returned when color determination fails.\n */\n fallbackValue?: string\n /**\n * Function called whenever the color selector value changes.\n */\n onChange?: (value: string) => void\n /**\n * Function called when the user starts selecting a new value.\n */\n onChangeStart?: (value: string) => void\n /**\n * Function called when the user is done selecting a new value.\n */\n onChangeEnd?: (value: string) => void\n /**\n * Color format. For example, `hex`, `rgba`, etc.\n *\n * @default \"hexa\"\n */\n format?: ColorFormat\n /**\n * Function called whenever the color swatch click.\n */\n onSwatchClick?: (value: string) => void\n}\n\nexport type UseColorSelectorBaseProps = UseColorSelectorOptions &\n FormControlOptions\n\nexport type UseColorSelectorProps = Omit<\n HTMLUIProps<\"div\">,\n \"defaultValue\" | \"onChange\" | \"children\"\n> &\n UseColorSelectorBaseProps\n\nexport const useColorSelector = ({\n isInvalid,\n ...props\n}: UseColorSelectorProps) => {\n let {\n id,\n name,\n value: valueProp,\n defaultValue,\n fallbackValue,\n onChange: onChangeProp,\n onChangeStart: onChangeStartProp,\n onChangeEnd: onChangeEndProp,\n format,\n required,\n disabled,\n readOnly,\n onSwatchClick,\n ...rest\n } = useFormControlProps({ isInvalid, ...props })\n\n const onChangeStartRef = useCallbackRef(onChangeStartProp)\n const onChangeEndRef = useCallbackRef(onChangeEndProp)\n const { supported: eyeDropperSupported, onOpen } = useEyeDropper()\n const [value, setValue] = useControllableState({\n value: valueProp,\n defaultValue: defaultValue ?? fallbackValue,\n onChange: onChangeProp,\n })\n const resolvedValue = value ?? \"#ffffff\"\n const timeoutId = useRef<any>(undefined)\n const formatRef = useRef<ColorFormat>(format ?? calcFormat(resolvedValue))\n const isDraggingRef = useRef<boolean>(false)\n const [parsedValue, setParsedValue] = useState<Hsva>(\n convertHsva(resolvedValue, fallbackValue),\n )\n const { h, s, v, a } = parsedValue\n const withAlpha = formatRef.current.endsWith(\"a\")\n const isInteractive = !(disabled || readOnly)\n\n const channels: Channel[] = useMemo(() => {\n if (resolvedValue.startsWith(\"hsl\")) {\n const { h, s, l, a } = convertHsla(resolvedValue, fallbackValue)\n\n let channels: Channel[] = [\n { label: \"H\", space: \"h\", value: Math.round(h), min: 0, max: 360 },\n {\n label: \"S(%)\",\n space: \"s\",\n value: Math.round(s * 100),\n min: 0,\n max: 100,\n },\n {\n label: \"L(%)\",\n space: \"l\",\n value: Math.round(l * 100),\n min: 0,\n max: 100,\n },\n ]\n\n if (withAlpha) {\n channels = [\n ...channels,\n {\n label: \"A(%)\",\n space: \"a\",\n value: Math.round(a * 100),\n min: 0,\n max: 100,\n },\n ]\n }\n\n return channels\n } else {\n const { r, g, b, a } = convertRgba(resolvedValue, fallbackValue)\n\n let channels: Channel[] = [\n { label: \"R\", space: \"r\", value: Math.round(r), min: 0, max: 255 },\n { label: \"G\", space: \"g\", value: Math.round(g), min: 0, max: 255 },\n { label: \"B\", space: \"b\", value: Math.round(b), min: 0, max: 255 },\n ]\n\n if (withAlpha) {\n channels = [\n ...channels,\n {\n label: \"A(%)\",\n space: \"a\",\n value: Math.round(a * 100),\n min: 0,\n max: 100,\n },\n ]\n }\n\n return channels\n }\n }, [resolvedValue, withAlpha, fallbackValue])\n\n const onChange = useCallback(\n (value: string | Partial<Hsva>) => {\n if (isString(value)) {\n setParsedValue(convertHsva(value, fallbackValue))\n } else {\n setParsedValue((prev) => ({ ...prev, ...value }))\n }\n },\n [fallbackValue],\n )\n\n const onChangeStart = useCallback(\n (value: Partial<Hsva>) => {\n window.clearTimeout(timeoutId.current)\n\n isDraggingRef.current = true\n\n const { h, s, v, a } = { ...parsedValue, ...value }\n\n const nextValue = hsvTo([h, s, v, a], fallbackValue)(formatRef.current)\n\n if (nextValue) onChangeStartRef(nextValue)\n },\n [formatRef, onChangeStartRef, fallbackValue, parsedValue],\n )\n\n const onChangeEnd = useCallback(\n (value: string | Partial<Hsva>) => {\n window.clearTimeout(timeoutId.current)\n\n timeoutId.current = window.setTimeout(() => {\n isDraggingRef.current = false\n }, 200)\n\n let nextValue: string | undefined\n\n if (isString(value)) {\n nextValue = convertColor(value, fallbackValue)(formatRef.current)\n } else {\n const { h, s, v, a } = { ...parsedValue, ...value }\n\n nextValue = hsvTo([h, s, v, a], fallbackValue)(formatRef.current)\n }\n\n if (nextValue) onChangeEndRef(nextValue)\n },\n [formatRef, onChangeEndRef, fallbackValue, parsedValue],\n )\n\n const onChannelChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>, space: Space) => {\n let n = Math.floor(parseFloat(ev.target.value))\n\n if (isNaN(n)) n = 0\n\n if ([\"s\", \"l\", \"a\"].includes(space)) n = n / 100\n\n let nextValue: string | undefined\n\n if (resolvedValue.startsWith(\"hsl\")) {\n const { h, s, l, a } = Object.assign(\n convertHsla(resolvedValue, fallbackValue),\n { [space]: n },\n )\n\n nextValue = hslaTo([h, s, l, a], fallbackValue)(formatRef.current)\n } else {\n const { r, g, b, a } = Object.assign(\n convertRgba(resolvedValue, fallbackValue),\n { [space]: n },\n )\n\n nextValue = rgbaTo([r, g, b, a], fallbackValue)(formatRef.current)\n }\n\n if (!nextValue) return\n\n onChange(nextValue)\n onChangeEnd(nextValue)\n },\n [resolvedValue, onChange, onChangeEnd, formatRef, fallbackValue],\n )\n\n const onEyeDropperClick = useCallback(async () => {\n try {\n const { sRGBHex } = (await onOpen()) ?? {}\n\n if (!sRGBHex) return\n\n onChange(sRGBHex)\n onChangeEnd(sRGBHex)\n } catch {}\n }, [onOpen, onChange, onChangeEnd])\n\n useUpdateEffect(() => {\n const nextValue = hsvTo([h, s, v, a], fallbackValue)(formatRef.current)\n\n if (nextValue) setValue(nextValue)\n }, [h, s, v, a])\n\n useUpdateEffect(() => {\n if (isDraggingRef.current) return\n\n if (valueProp) setParsedValue(convertHsva(valueProp, fallbackValue))\n }, [valueProp])\n\n useUpdateEffect(() => {\n if (!format || !value) return\n\n formatRef.current = format\n\n const nextValue = convertColor(value, fallbackValue)(format)\n\n if (nextValue) setValue(nextValue)\n }, [format])\n\n const getContainerProps: UIPropGetter = (props = {}, ref = null) => ({\n ...props,\n ref,\n ...omitObject(rest, [\"aria-readonly\"]),\n })\n\n const getInputProps: UIPropGetter<\"input\"> = useCallback(\n (props = {}, ref = null) => ({\n ...pickObject(rest, formControlProperties),\n ...props,\n id,\n ref,\n type: \"hidden\",\n name,\n value: resolvedValue,\n required,\n disabled,\n readOnly,\n }),\n [disabled, id, name, readOnly, required, rest, resolvedValue],\n )\n\n const getSaturationSliderProps: UIPropGetter<\n \"input\",\n SaturationSliderProps,\n SaturationSliderProps\n > = useCallback(\n (props = {}, ref = null) => ({\n required,\n disabled,\n readOnly,\n isInvalid,\n ...props,\n ref,\n value: [h, s, v],\n onChange: handlerAll(props.onChange, ([, s, v]) => onChange({ s, v })),\n onChangeStart: handlerAll(props.onChangeStart, ([, s, v]) =>\n onChangeStart({ s, v }),\n ),\n onChangeEnd: handlerAll(props.onChangeEnd, ([, s, v]) =>\n onChangeEnd({ s, v }),\n ),\n }),\n [\n required,\n disabled,\n readOnly,\n isInvalid,\n h,\n s,\n v,\n onChange,\n onChangeStart,\n onChangeEnd,\n ],\n )\n\n const getHueSliderProps: UIPropGetter<\n \"input\",\n HueSliderProps,\n HueSliderProps\n > = useCallback(\n (props = {}, ref = null) => ({\n required,\n disabled,\n readOnly,\n isInvalid,\n ...props,\n ref,\n value: h,\n onChange: handlerAll(props.onChange, (h) => onChange({ h })),\n onChangeStart: handlerAll(props.onChangeStart, (h) =>\n onChangeStart({ h }),\n ),\n onChangeEnd: handlerAll(props.onChangeEnd, (h) => onChangeEnd({ h })),\n }),\n [\n required,\n disabled,\n readOnly,\n isInvalid,\n h,\n onChange,\n onChangeStart,\n onChangeEnd,\n ],\n )\n\n const getAlphaSliderProps: UIPropGetter<\n \"input\",\n AlphaSliderProps,\n AlphaSliderProps\n > = useCallback(\n (props = {}, ref = null) => ({\n required,\n disabled,\n readOnly,\n isInvalid,\n ...props,\n ref,\n value: a,\n color: hsvTo([h, s, v, a], fallbackValue)(formatRef.current),\n onChange: handlerAll(props.onChange, (a) => onChange({ a })),\n onChangeStart: handlerAll(props.onChangeStart, (a) =>\n onChangeStart({ a }),\n ),\n onChangeEnd: handlerAll(props.onChangeEnd, (a) => onChangeEnd({ a })),\n }),\n [\n fallbackValue,\n required,\n disabled,\n readOnly,\n isInvalid,\n formatRef,\n h,\n s,\n v,\n a,\n onChange,\n onChangeStart,\n onChangeEnd,\n ],\n )\n\n const getChannelProps: RequiredUIPropGetter<\n \"input\",\n Merge<InputProps, { space: Space }>,\n InputProps\n > = useCallback(\n ({ space, ...props }, ref = null) => {\n return {\n required,\n disabled,\n readOnly,\n isInvalid,\n ...props,\n ref,\n type: \"number\",\n step: 1,\n onChange: handlerAll(props.onChange, (ev) =>\n onChannelChange(ev, space),\n ),\n } as Dict\n },\n [required, disabled, readOnly, isInvalid, onChannelChange],\n )\n\n const getEyeDropperProps: UIPropGetter<\"button\"> = useCallback(\n (props = {}, ref = null) => ({\n disabled,\n \"aria-label\": \"Pick a color\",\n ...props,\n ref,\n onClick: handlerAll(props.onClick, onEyeDropperClick),\n }),\n [disabled, onEyeDropperClick],\n )\n\n const getSwatchProps: UIPropGetter<\n \"div\",\n ColorSwatchProps,\n ColorSwatchProps\n > = useCallback(\n ({ color, ...props } = {}, ref = null) => ({\n \"aria-label\": `select ${color} as the color`,\n disabled,\n readOnly,\n ...props,\n ref,\n color,\n onClick: handlerAll(props.onClick, () => {\n if (!color) return\n\n onSwatchClick?.(color)\n onChange(color)\n onChangeEnd(color)\n }),\n }),\n [disabled, readOnly, onSwatchClick, onChange, onChangeEnd],\n )\n\n return {\n value: resolvedValue,\n onChange,\n eyeDropperSupported,\n withAlpha,\n isInteractive,\n disabled,\n readOnly,\n channels,\n getContainerProps,\n getInputProps,\n getSaturationSliderProps,\n getHueSliderProps,\n getAlphaSliderProps,\n getEyeDropperProps,\n getChannelProps,\n getSwatchProps,\n }\n}\n\nexport type UseColorSelectorReturn = ReturnType<typeof useColorSelector>\n","import { forwardRef, ui } from \"@yamada-ui/core\"\nimport type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ForwardedRef } from \"react\"\nimport type { AlphaSliderProps } from \"./alpha-slider\"\nimport { AlphaSlider } from \"./alpha-slider\"\nimport type { HueSliderProps } from \"./hue-slider\"\nimport { HueSlider } from \"./hue-slider\"\nimport { useColorSelectorContext } from \"./use-color-selector\"\n\ntype ColorSelectorSlidersOptions = {\n /**\n * Ref for the hue slider component.\n */\n hueSliderRef?: ForwardedRef<HTMLInputElement>\n /**\n * Props for the hue slider component.\n */\n hueSliderProps?: Omit<HueSliderProps, \"value\" | \"defaultValue\">\n /**\n * Ref for the alpha slider component.\n */\n alphaSliderRef?: ForwardedRef<HTMLInputElement>\n /**\n * Props for the alpha slider component.\n */\n alphaSliderProps?: Omit<AlphaSliderProps, \"value\" | \"defaultValue\">\n}\n\nexport type ColorSelectorSlidersProps = Omit<HTMLUIProps<\"div\">, \"children\"> &\n ColorSelectorSlidersOptions\n\nexport const ColorSelectorSliders = forwardRef<\n ColorSelectorSlidersProps,\n \"div\"\n>(\n (\n {\n className,\n hueSliderRef,\n hueSliderProps,\n alphaSliderRef,\n alphaSliderProps,\n ...rest\n },\n ref,\n ) => {\n let { size, withAlpha, getHueSliderProps, getAlphaSliderProps, styles } =\n useColorSelectorContext()\n\n if (size === \"full\") size = \"lg\"\n\n const css: CSSUIObject = {\n display: \"flex\",\n flexDirection: \"column\",\n ...styles.sliders,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-color-selector__sliders\", className)}\n __css={css}\n {...rest}\n >\n <HueSlider\n size={size}\n className=\"ui-color-selector__hue-slider\"\n __css={{ ...styles.hueSlider }}\n {...getHueSliderProps(hueSliderProps, hueSliderRef)}\n />\n\n {withAlpha ? (\n <AlphaSlider\n size={size}\n className=\"ui-color-selector__alpha-slider\"\n __css={{ ...styles.alphaSlider }}\n {...getAlphaSliderProps(alphaSliderProps, alphaSliderRef)}\n />\n ) : null}\n </ui.div>\n )\n },\n)\n","import {\n ui,\n forwardRef,\n omitThemeProps,\n useMultiComponentStyle,\n} from \"@yamada-ui/core\"\nimport type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport { alphaToHex, convertColor, cx } from \"@yamada-ui/utils\"\nimport type { UseColorSliderProps } from \"./use-color-slider\"\nimport { useColorSlider } from \"./use-color-slider\"\n\nconst defaultOverlays = (\n color: string,\n min: number,\n max: number,\n withShadow: boolean,\n): HTMLUIProps<\"div\">[] => {\n let overlays: HTMLUIProps<\"div\">[] = [\n {\n bgImage:\n \"linear-gradient(45deg, var(--ui-checkers) 25%, transparent 25%), linear-gradient(-45deg, var(--ui-checkers) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--ui-checkers) 75%), linear-gradient(-45deg, var(--ui-body) 75%, var(--ui-checkers) 75%)\",\n bgSize: `8px 8px`,\n bgPosition: `0 0, 0 4px, 4px -4px, -4px 0`,\n var: [\n {\n __prefix: \"ui\",\n name: \"checkers\",\n token: \"colors\",\n value: [\"blackAlpha.300\", \"whiteAlpha.300\"],\n },\n {\n __prefix: \"ui\",\n name: \"body\",\n token: \"colors\",\n value: [\"whiteAlpha.500\", \"blackAlpha.500\"],\n },\n ],\n },\n {\n bgGradient: `linear(to-r, ${\n convertColor(color)(\"hex\") + alphaToHex(min)\n }, ${convertColor(color)(\"hex\") + alphaToHex(max)})`,\n },\n ]\n\n if (withShadow)\n overlays = [\n ...overlays,\n {\n boxShadow: `rgba(0, 0, 0, .1) 0 0 0 1px inset, rgb(0, 0, 0, .15) 0 0 4px inset`,\n },\n ]\n\n return overlays\n}\n\ntype AlphaSliderOptions = {\n /**\n * The color used for the slider.\n *\n * @default \"#ffffff\"\n */\n color?: string\n /**\n * The minimum allowed value of the slider. Cannot be greater than max.\n *\n * @default 0\n */\n min?: number\n /**\n * The maximum allowed value of the slider. Cannot be less than min.\n *\n * @default 1\n */\n max?: number\n /**\n * The step in which increments or decrements have to be made.\n *\n * @default 0.01\n */\n step?: number\n /**\n * If `true`, the slider has an inner `box-shadow`.\n *\n * @default true\n */\n withShadow?: boolean\n /**\n * Props for slider input element.\n */\n inputProps?: HTMLUIProps<\"input\">\n /**\n * Props for slider track element.\n */\n trackProps?: HTMLUIProps<\"div\">\n /**\n * Props for slider thumb element.\n */\n thumbProps?: HTMLUIProps<\"div\">\n /**\n * The overlay used for the slider.\n */\n overlays?: HTMLUIProps<\"div\">[]\n}\n\nexport type AlphaSliderProps = ThemeProps<\"AlphaSlider\"> &\n Partial<Omit<UseColorSliderProps, \"color\">> &\n AlphaSliderOptions\n\n/**\n * `AlphaSlider` is a component used to allow the user to select color transparency.\n *\n * @see Docs https://yamada-ui.com/components/forms/alpha-slider\n */\nexport const AlphaSlider = forwardRef<AlphaSliderProps, \"input\">(\n (props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"AlphaSlider\", props)\n const {\n className,\n inputProps,\n trackProps,\n thumbProps,\n color = \"#ffffff\",\n min = 0,\n max = 1,\n withShadow = true,\n overlays = defaultOverlays(color, min, max, withShadow),\n __css,\n ...computedProps\n } = omitThemeProps(mergedProps)\n const { getContainerProps, getTrackProps, getInputProps, getThumbProps } =\n useColorSlider({\n min,\n max,\n step: 0.01,\n thumbColor: \"transparent\",\n ...computedProps,\n })\n\n const css: CSSUIObject = {\n position: \"relative\",\n ...styles.container,\n ...__css,\n }\n\n return (\n <ui.div\n className={cx(\"ui-alpha-slider\", className)}\n __css={css}\n {...getContainerProps()}\n >\n <ui.input {...getInputProps(inputProps, ref)} />\n\n {overlays.map((props, index) => (\n <ui.div\n key={index}\n className=\"ui-alpha-slider__overlay\"\n __css={{\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n ...styles.overlay,\n }}\n {...props}\n />\n ))}\n\n <ui.div\n className=\"ui-alpha-slider__track\"\n __css={{\n position: \"relative\",\n w: \"100%\",\n h: \"100%\",\n ...styles.track,\n }}\n {...getTrackProps(trackProps)}\n >\n <ui.div\n className=\"ui-alpha-slider__thumb\"\n __css={{ ...styles.thumb }}\n {...getThumbProps(thumbProps)}\n />\n </ui.div>\n </ui.div>\n )\n },\n)\n","import type { CSSUIProps, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport {\n useFormControlProps,\n type FormControlOptions,\n formControlProperties,\n getFormControlProperties,\n} from \"@yamada-ui/form-control\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { useLatestRef } from \"@yamada-ui/use-latest-ref\"\nimport { usePanEvent } from \"@yamada-ui/use-pan-event\"\nimport { useSize } from \"@yamada-ui/use-size\"\nimport {\n omitObject,\n dataAttr,\n handlerAll,\n mergeRefs,\n valueToPercent,\n clampNumber,\n useCallbackRef,\n roundNumberToStep,\n useUpdateEffect,\n percentToValue,\n pickObject,\n} from \"@yamada-ui/utils\"\nimport type { CSSProperties, KeyboardEvent, KeyboardEventHandler } from \"react\"\nimport { useCallback, useRef, useState } from \"react\"\n\ntype UseColorSliderOptions = {\n /**\n * The base `id` to use for the slider.\n */\n id?: string\n /**\n * The name attribute of the hidden `input` field.\n * This is particularly useful in forms.\n */\n name?: string\n /**\n * The value of the slider.\n */\n value?: number\n /**\n * The initial value of the slider.\n */\n defaultValue?: number\n /**\n * The minimum allowed value of the slider. Cannot be greater than max.\n */\n min: number\n /**\n * The maximum allowed value of the slider. Cannot be less than min.\n */\n max: number\n /**\n * The step in which increments or decrements have to be made.\n *\n * @default 1\n */\n step?: number\n /**\n * Function called whenever the slider value changes.\n */\n onChange?: (value: number) => void\n /**\n * Function called when the user starts selecting a new value.\n */\n onChangeStart?: (value: number) => void\n /**\n * Function called when the user is done selecting a new value.\n */\n onChangeEnd?: (value: number) => void\n /**\n * If `false`, the slider handle will not capture focus when value changes.\n *\n * @default true\n */\n focusThumbOnChange?: boolean\n /**\n * The CSS `background` property. Used in `background` of thumb element.\n */\n thumbColor?: CSSUIProps[\"bg\"]\n}\n\nexport type UseColorSliderProps = Omit<\n HTMLUIProps<\"div\">,\n \"defaultValue\" | \"onChange\"\n> &\n UseColorSliderOptions &\n FormControlOptions\n\nexport const useColorSlider = ({\n focusThumbOnChange = true,\n ...props\n}: UseColorSliderProps) => {\n if (!focusThumbOnChange) props.isReadOnly = true\n\n let {\n id,\n name,\n value: valueProp,\n defaultValue,\n min = 0,\n max,\n step = 1,\n onChange: onChangeProp,\n onChangeStart: onChangeStartProp,\n onChangeEnd: onChangeEndProp,\n thumbColor,\n required,\n disabled,\n readOnly,\n ...rest\n } = useFormControlProps(props)\n\n const onChangeStart = useCallbackRef(onChangeStartProp)\n const onChangeEnd = useCallbackRef(onChangeEndProp)\n\n const [computedValue, setValue] = useControllableState({\n value: valueProp,\n defaultValue: defaultValue ?? min + (max - min) / 2,\n onChange: onChangeProp,\n })\n const value = clampNumber(computedValue, min, max)\n const thumbPercent = valueToPercent(value, min, max)\n const [isDragging, setDragging] = useState(false)\n const isInteractive = !(disabled || readOnly)\n\n const oneStep = step || (max - min) / 100\n const tenStep = (max - min) / 10\n\n const containerRef = useRef<HTMLElement>(null)\n const trackRef = useRef<HTMLElement>(null)\n const thumbRef = useRef<HTMLElement>(null)\n const latestRef = useLatestRef({\n value,\n min,\n max,\n step,\n isInteractive,\n eventSource: null as \"pointer\" | \"keyboard\" | null,\n focusThumbOnChange,\n })\n\n const thumbSize = useSize(thumbRef)\n\n const getValueFromPointer = useCallback(\n (ev: any) => {\n if (!trackRef.current) return\n\n const { min, max, step } = latestRef.current\n\n latestRef.current.eventSource = \"pointer\"\n\n const { left, width } = trackRef.current.getBoundingClientRect()\n const { clientX } = ev.touches?.[0] ?? ev\n\n let percent = (clientX - left) / width\n\n let nextValue = percentToValue(percent, min, max)\n\n if (step) nextValue = parseFloat(roundNumberToStep(nextValue, min, step))\n\n nextValue = clampNumber(nextValue, min, max)\n\n return nextValue\n },\n [latestRef],\n )\n\n const setValueFromPointer = (ev: MouseEvent | TouchEvent | PointerEvent) => {\n const { value } = latestRef.current\n const nextValue = getValueFromPointer(ev)\n\n if (nextValue != null && nextValue !== value) setValue(nextValue)\n }\n\n const focusThumb = useCallback(() => {\n const { focusThumbOnChange } = latestRef.current\n\n if (focusThumbOnChange) setTimeout(() => thumbRef.current?.focus())\n }, [latestRef])\n\n const constrain = useCallback(\n (value: number) => {\n const { isInteractive, min, max } = latestRef.current\n\n if (!isInteractive) return\n\n value = parseFloat(roundNumberToStep(value, min, oneStep))\n value = clampNumber(value, min, max)\n\n setValue(value)\n },\n [setValue, latestRef, oneStep],\n )\n\n const stepUp = useCallback(\n (step = oneStep) => constrain(value + step),\n [constrain, value, oneStep],\n )\n\n const stepDown = useCallback(\n (step = oneStep) => constrain(value - step),\n [constrain, value, oneStep],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLElement>) => {\n const { min, max } = latestRef.current\n\n const actions: Record<string, KeyboardEventHandler> = {\n ArrowRight: () => stepUp(),\n ArrowUp: () => stepUp(),\n ArrowLeft: () => stepDown(),\n ArrowDown: () => stepDown(),\n PageUp: () => stepUp(tenStep),\n PageDown: () => stepDown(tenStep),\n Home: () => constrain(min),\n End: () => constrain(max),\n }\n\n const action = actions[ev.key]\n\n if (!action) return\n\n ev.preventDefault()\n ev.stopPropagation()\n\n action(ev)\n\n latestRef.current.eventSource = \"keyboard\"\n },\n [constrain, latestRef, stepDown, stepUp, tenStep],\n )\n\n usePanEvent(containerRef, {\n onSessionStart: (ev) => {\n const { isInteractive, value } = latestRef.current\n\n if (!isInteractive) return\n\n setDragging(true)\n focusThumb()\n setValueFromPointer(ev)\n onChangeStart(value)\n },\n onSessionEnd: () => {\n const { isInteractive, value } = latestRef.current\n\n if (!isInteractive) return\n\n setDragging(false)\n onChangeEnd(value)\n },\n onMove: (ev) => {\n const { isInteractive } = latestRef.current\n\n if (!isInteractive) return\n\n setValueFromPointer(ev)\n },\n })\n\n useUpdateEffect(() => {\n const { eventSource, value } = latestRef.current\n\n if (eventSource === \"keyboard\") onChangeEnd(value)\n }, [value, onChangeEnd])\n\n const getContainerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const { width: w } = thumbSize ?? { width: 0 }\n\n const style: CSSProperties = {\n ...props.style,\n ...rest.style,\n paddingInline: `${w / 2}px`,\n }\n\n return {\n ...props,\n ...omitObject(rest, [\"aria-readonly\"]),\n ref: mergeRefs(ref, containerRef),\n tabIndex: -1,\n style,\n }\n },\n [rest, thumbSize],\n )\n\n const getInputProps: UIPropGetter<\"input\"> = useCallback(\n (props = {}, ref = null) => ({\n ...pickObject(rest, formControlProperties),\n ...props,\n id,\n ref,\n type: \"hidden\",\n name,\n value,\n required,\n disabled,\n readOnly,\n }),\n [disabled, id, name, readOnly, required, rest, value],\n )\n\n const getTrackProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n ),\n ...props,\n ref: mergeRefs(ref, trackRef),\n }),\n [rest],\n )\n\n const getThumbProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const n = thumbPercent\n const { width: w } = thumbSize ?? { width: 0 }\n\n const style: CSSProperties = {\n ...props.style,\n position: \"absolute\",\n userSelect: \"none\",\n touchAction: \"none\",\n left: `calc(${n}% - ${w / 2}px)`,\n }\n\n return {\n \"aria-label\": \"Slider thumb\",\n bg: thumbColor ?? `hsl(${value}, 100%, 50%)`,\n ...pickObject(rest, formControlProperties),\n ...props,\n ref: mergeRefs(ref, thumbRef),\n tabIndex: isInteractive && focusThumbOnChange ? 0 : undefined,\n role: \"slider\",\n \"aria-valuenow\": value,\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"data-active\": dataAttr(isDragging && focusThumbOnChange),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n onFocus: handlerAll(props.onFocus, rest.onFocus),\n onBlur: handlerAll(props.onBlur, rest.onBlur),\n style,\n }\n },\n [\n thumbColor,\n focusThumbOnChange,\n isDragging,\n isInteractive,\n min,\n max,\n onKeyDown,\n rest,\n thumbPercent,\n thumbSize,\n value,\n ],\n )\n\n return {\n value,\n getContainerProps,\n getTrackProps,\n getInputProps,\n getThumbProps,\n }\n}\n\nexport type UseColorSliderReturn = ReturnType<typeof useColorSlider>\n","import {\n ui,\n forwardRef,\n omitThemeProps,\n useMultiComponentStyle,\n} from \"@yamada-ui/core\"\nimport type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { UseColorSliderProps } from \"./use-color-slider\"\nimport { useColorSlider } from \"./use-color-slider\"\n\nconst defaultOverlays = (\n min: number,\n max: number,\n withShadow: boolean,\n): HTMLUIProps<\"div\">[] => {\n let overlays: HTMLUIProps<\"div\">[] = [\n {\n bgGradient: `linear(to-r, ${[...Array(7)]\n .map(\n (_, index) =>\n `hsl(${Math.round(min + ((max - min) / 6) * index)}, 100%, 50%)`,\n )\n .join(\", \")})`,\n },\n ]\n\n if (withShadow)\n overlays = [\n ...overlays,\n {\n boxShadow: `rgba(0, 0, 0, .1) 0 0 0 1px inset, rgb(0, 0, 0, .15) 0 0 4px inset`,\n },\n ]\n\n return overlays\n}\n\ntype HueSliderOptions = {\n /**\n * The minimum allowed value of the slider. Cannot be greater than max.\n *\n * @default 0\n */\n min?: number\n /**\n * The maximum allowed value of the slider. Cannot be less than min.\n *\n * @default 360\n */\n max?: number\n /**\n * The step in which increments or decrements have to be made.\n *\n * @default 1\n */\n step?: number\n /**\n * If `true`, the slider has an inner `box-shadow`.\n *\n * @default true\n */\n withShadow?: boolean\n /**\n * Props for slider input element.\n */\n inputProps?: HTMLUIProps<\"input\">\n /**\n * Props for slider track element.\n */\n trackProps?: HTMLUIProps<\"div\">\n /**\n * Props for slider thumb element.\n */\n thumbProps?: HTMLUIProps<\"div\">\n /**\n * The overlay used for the slider.\n */\n overlays?: HTMLUIProps<\"div\">[]\n}\n\n/**\n * `HueSlider` is a component used to allow the user to select a color hue.\n *\n * @see Docs https://yamada-ui.com/components/forms/hue-slider\n */\nexport type HueSliderProps = ThemeProps<\"HueSlider\"> &\n Partial<UseColorSliderProps> &\n HueSliderOptions\n\nexport const HueSlider = forwardRef<HueSliderProps, \"input\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"HueSlider\", props)\n const {\n className,\n inputProps,\n trackProps,\n thumbProps,\n min = 0,\n max = 360,\n withShadow = true,\n overlays = defaultOverlays(min, max, withShadow),\n __css,\n ...computedProps\n } = omitThemeProps(mergedProps)\n const { getContainerProps, getTrackProps, getInputProps, getThumbProps } =\n useColorSlider({ min, max, step: 1, ...computedProps })\n\n const css: CSSUIObject = {\n position: \"relative\",\n ...styles.container,\n ...__css,\n }\n\n return (\n <ui.div\n className={cx(\"ui-hue-slider\", className)}\n __css={css}\n {...getContainerProps()}\n >\n <ui.input {...getInputProps(inputProps, ref)} />\n\n {overlays.map((props, index) => (\n <ui.div\n key={index}\n className=\"ui-hue-slider__overlay\"\n __css={{\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n ...styles.overlay,\n }}\n {...props}\n />\n ))}\n\n <ui.div\n className=\"ui-hue-slider__track\"\n __css={{ position: \"relative\", w: \"100%\", h: \"100%\", ...styles.track }}\n {...getTrackProps(trackProps)}\n >\n <ui.div\n className=\"ui-hue-slider__thumb\"\n __css={{ ...styles.thumb }}\n {...getThumbProps(thumbProps)}\n />\n </ui.div>\n </ui.div>\n )\n})\n","import {\n ui,\n forwardRef,\n omitThemeProps,\n useMultiComponentStyle,\n} from \"@yamada-ui/core\"\nimport type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\n\nconst defaultOverlays = (\n background: string,\n withShadow: boolean,\n): HTMLUIProps<\"div\">[] => {\n let overlays: HTMLUIProps<\"div\">[] = [\n {\n bgImage:\n \"linear-gradient(45deg, var(--ui-checkers) 25%, transparent 25%), linear-gradient(-45deg, var(--ui-checkers) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--ui-checkers) 75%), linear-gradient(-45deg, var(--ui-body) 75%, var(--ui-checkers) 75%)\",\n bgSize: `8px 8px`,\n bgPosition: `0 0, 0 4px, 4px -4px, -4px 0`,\n var: [\n {\n __prefix: \"ui\",\n name: \"checkers\",\n token: \"colors\",\n value: [\"blackAlpha.300\", \"whiteAlpha.300\"],\n },\n {\n __prefix: \"ui\",\n name: \"body\",\n token: \"colors\",\n value: [\"whiteAlpha.500\", \"blackAlpha.500\"],\n },\n ],\n },\n { background },\n ]\n\n if (withShadow)\n overlays = [\n ...overlays,\n {\n boxShadow: `rgba(0, 0, 0, .1) 0 0 0 1px inset, rgb(0, 0, 0, .15) 0 0 4px inset`,\n },\n ]\n\n return overlays\n}\n\ntype ColorSwatchOptions = {\n /**\n * The color used for the swatch element.\n *\n * @default \"#ffffff00\"\n */\n color?: string\n /**\n * The overlay used for the swatch element.\n */\n overlays?: HTMLUIProps<\"div\">[]\n /**\n * If `true`, the swatch element has an inner `box-shadow`.\n *\n * @default true\n */\n withShadow?: boolean\n /**\n * If `true`, the color swatch will be perfectly round. Else, it'll be slightly round.\n *\n * @default false\n */\n isRounded?: boolean\n}\n\nexport type ColorSwatchProps = Omit<HTMLUIProps<\"div\">, \"color\"> &\n ThemeProps<\"ColorSwatch\"> &\n ColorSwatchOptions\n\n/**\n * `ColorSwatch` is a component that displays color samples.\n *\n * @see Docs https://yamada-ui.com/components/data-display/color-swatch\n */\nexport const ColorSwatch = forwardRef<ColorSwatchProps, \"div\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"ColorSwatch\", props)\n const {\n className,\n color = \"#ffffff00\",\n withShadow = true,\n overlays = defaultOverlays(color, withShadow),\n isRounded,\n __css,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const css: CSSUIObject = {\n position: \"relative\",\n _before: {\n content: `\"\"`,\n display: \"block\",\n h: 0,\n pb: \"100%\",\n },\n \"& > *\": {\n overflow: \"hidden\",\n position: \"absolute\",\n top: \"0\",\n right: \"0\",\n bottom: \"0\",\n left: \"0\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n w: \"100%\",\n h: \"100%\",\n },\n ...styles.container,\n ...__css,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-color-swatch\", className)}\n {...(isRounded ? { rounded: \"9999px\" } : {})}\n __css={css}\n {...rest}\n >\n <ui.div {...(isRounded ? { rounded: \"9999px\" } : {})}>\n {overlays.map((props, index) => (\n <ui.div\n key={index}\n __css={{\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n ...styles.overlay,\n }}\n {...(isRounded ? { rounded: \"9999px\" } : {})}\n {...props}\n />\n ))}\n </ui.div>\n </ui.div>\n )\n})\n","import { forwardRef, ui } from \"@yamada-ui/core\"\nimport type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { Input } from \"@yamada-ui/input\"\nimport type { InputProps } from \"@yamada-ui/input\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useId, type ReactNode } from \"react\"\nimport { useColorSelectorContext } from \"./use-color-selector\"\n\ntype ColorSelectorChannelsOptions = {\n /**\n * Props for the chancel component.\n */\n channelProps?: Omit<ColorSelectorChannelProps, \"channelLabel\">\n}\n\nexport type ColorSelectorChannelsProps = Omit<HTMLUIProps<\"div\">, \"children\"> &\n ColorSelectorChannelsOptions\n\nexport const ColorSelectorChannels = forwardRef<\n ColorSelectorChannelsProps,\n \"div\"\n>(({ className, channelProps, ...rest }, ref) => {\n const { withAlpha, channels, getChannelProps, styles } =\n useColorSelectorContext()\n\n const css: CSSUIObject = {\n display: \"grid\",\n gridTemplateColumns: `repeat(${withAlpha ? \"4\" : \"3\"}, 1fr)`,\n ...styles.channels,\n }\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-color-selector__channels\", className)}\n __css={css}\n {...rest}\n >\n {channels.map(({ label, space, value, min, max }) => (\n <ColorSelectorChannel\n key={label}\n channelLabel={label}\n {...getChannelProps({ ...channelProps, space, value, min, max })}\n />\n ))}\n </ui.div>\n )\n})\n\ntype ColorSelectorChannelOptions = {\n channelLabel?: ReactNode\n}\n\nexport type ColorSelectorChannelProps = Omit<\n InputProps,\n \"type\" | \"pattern\" | \"min\" | \"max\" | \"value\" | \"defaultValue\"\n> &\n ColorSelectorChannelOptions\n\nexport const ColorSelectorChannel = forwardRef<\n ColorSelectorChannelProps,\n \"input\"\n>(({ className, channelLabel, ...rest }, ref) => {\n const id = useId()\n let { size, disabled, readOnly, styles } = useColorSelectorContext()\n\n if (size === \"full\") size = \"lg\"\n\n const css: CSSUIObject = { ...styles.channel }\n\n return (\n <ui.div className={cx(\"ui-color-selector__channel\", className)}>\n {channelLabel ? (\n <ui.label\n htmlFor={id}\n style={{ cursor: disabled ? \"not-allowed\" : undefined }}\n __css={{\n display: \"block\",\n pointerEvents: readOnly ? \"none\" : undefined,\n ...styles.channelLabel,\n }}\n >\n {channelLabel}\n </ui.label>\n ) : null}\n\n <Input ref={ref} id={id} size={size} __css={css} {...rest} />\n </ui.div>\n )\n})\n","import { forwardRef, ui } from \"@yamada-ui/core\"\nimport type { CSSUIObject, HTMLUIProps, Token } from \"@yamada-ui/core\"\nimport { cx, replaceObject } from \"@yamada-ui/utils\"\nimport type { ReactNode } from \"react\"\nimport type { ColorSwatchProps } from \"./color-swatch\"\nimport { ColorSwatch } from \"./color-swatch\"\nimport { useColorSelectorContext } from \"./use-color-selector\"\n\ntype ColorSelectorSwatchesOptions = {\n /**\n * The swatches label to use.\n */\n swatchesLabel?: ReactNode\n /**\n * An array of colors in one of the supported formats.\n * Used to render swatches list below the color selector.\n */\n swatches?: string[]\n /**\n * Number of swatches grid columns.\n *\n * @default 7\n */\n swatchesColumns?: Token<number>\n /**\n * Props for the color swatch component.\n */\n swatchProps?: ColorSwatchProps\n /**\n * Props for the swatches container element.\n */\n swatchesContainerProps?: Omit<HTMLUIProps<\"div\">, \"children\">\n}\n\nexport type ColorSelectorSwatchesProps = Omit<HTMLUIProps<\"div\">, \"children\"> &\n ColorSelectorSwatchesOptions\n\nexport const ColorSelectorSwatches = forwardRef<\n ColorSelectorSwatchesProps,\n \"div\"\n>(\n (\n {\n className,\n swatchesLabel,\n swatches,\n swatchesContainerProps,\n swatchProps,\n swatchesColumns,\n ...rest\n },\n ref,\n ) => {\n const { getSwatchProps, readOnly, styles } = useColorSelectorContext()\n\n const css: CSSUIObject = {\n display: \"grid\",\n gridTemplateColumns: replaceObject(swatchesColumns, (value) =>\n value != null ? `repeat(${value}, minmax(0, 1fr))` : undefined,\n ) as CSSUIObject[\"gridTemplateColumns\"],\n ...styles.swatches,\n }\n\n return swatches?.length ? (\n <ui.div {...swatchesContainerProps}>\n {swatchesLabel ? (\n <ui.p\n className=\"ui-color-selector__swatches__label\"\n __css={{ ...styles.swatchesLabel }}\n >\n {swatchesLabel}\n </ui.p>\n ) : null}\n\n <ui.div\n ref={ref}\n className={cx(\"ui-color-selector__swatches\", className)}\n __css={css}\n {...rest}\n >\n {swatches.map((color) => (\n <ColorSwatch\n as=\"button\"\n key={color}\n __css={{\n boxSize: \"100%\",\n pointerEvents: readOnly ? \"none\" : undefined,\n ...styles.swatch,\n }}\n {...getSwatchProps({ color, ...swatchProps })}\n />\n ))}\n </ui.div>\n </ui.div>\n ) : null\n },\n)\n","import {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n Token,\n} from \"@yamada-ui/core\"\nimport { cx, replaceObject } from \"@yamada-ui/utils\"\nimport type { UseSaturationSliderProps } from \"./use-saturation-slider\"\nimport { useSaturationSlider } from \"./use-saturation-slider\"\n\ntype SaturationSliderOptions = {\n /**\n * The aspect ratio of the saturation slider.\n *\n * @default '16 / 9'\n */\n ratio?: Token<number>\n /**\n * Props for saturation slider inner element.\n */\n innerProps?: HTMLUIProps<\"div\">\n /**\n * Props for saturation slider input element.\n */\n inputProps?: HTMLUIProps<\"input\">\n /**\n * Props for saturation slider track element.\n */\n trackProps?: HTMLUIProps<\"div\">\n /**\n * Props for saturation slider thumb element.\n */\n thumbProps?: HTMLUIProps<\"div\">\n}\n\n/**\n * `SaturationSlider` is a component used to allow the user to select a color saturation.\n *\n * @see Docs https://yamada-ui.com/components/forms/saturation-slider\n */\nexport type SaturationSliderProps = ThemeProps<\"SaturationSlider\"> &\n UseSaturationSliderProps &\n SaturationSliderOptions\n\nexport const SaturationSlider = forwardRef<SaturationSliderProps, \"input\">(\n (props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\n \"SaturationSlider\",\n props,\n )\n const {\n className,\n ratio = 16 / 9,\n innerProps,\n inputProps,\n trackProps,\n thumbProps,\n __css,\n ...computedProps\n } = omitThemeProps(mergedProps)\n const {\n overlays,\n getContainerProps,\n getInnerProps,\n getTrackProps,\n getInputProps,\n getThumbProps,\n } = useSaturationSlider(computedProps)\n\n const css: CSSUIObject = {\n position: \"relative\",\n _before: {\n content: `\"\"`,\n display: \"block\",\n h: 0,\n pb: replaceObject(ratio, (r) => `${(1 / r) * 100}%`),\n },\n \"& > *\": {\n position: \"absolute\",\n top: \"0\",\n right: \"0\",\n bottom: \"0\",\n left: \"0\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n w: \"100%\",\n h: \"100%\",\n },\n ...styles.container,\n ...__css,\n }\n\n return (\n <ui.div\n className={cx(\"ui-saturation-slider\", className)}\n __css={css}\n {...getContainerProps()}\n >\n <ui.div\n className={cx(\"ui-saturation-slider__inner\", className)}\n __css={{ ...styles.inner }}\n {...getInnerProps(innerProps)}\n >\n <ui.input {...getInputProps(inputProps, ref)} />\n\n {overlays.map((props, index) => (\n <ui.div\n key={index}\n className=\"ui-saturation-slider__overlay\"\n __css={{\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n ...styles.overlay,\n }}\n {...props}\n />\n ))}\n\n <ui.div\n className=\"ui-saturation-slider__track\"\n __css={{\n position: \"relative\",\n w: \"100%\",\n h: \"100%\",\n ...styles.track,\n }}\n {...getTrackProps(trackProps)}\n >\n <ui.div\n className=\"ui-saturation-slider__thumb\"\n __css={{ ...styles.thumb }}\n {...getThumbProps(thumbProps)}\n />\n </ui.div>\n </ui.div>\n </ui.div>\n )\n },\n)\n","import type { CSSUIProps, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport {\n useFormControlProps,\n type FormControlOptions,\n formControlProperties,\n getFormControlProperties,\n} from \"@yamada-ui/form-control\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { useLatestRef } from \"@yamada-ui/use-latest-ref\"\nimport { usePanEvent } from \"@yamada-ui/use-pan-event\"\nimport { useSize } from \"@yamada-ui/use-size\"\nimport {\n omitObject,\n dataAttr,\n handlerAll,\n mergeRefs,\n useCallbackRef,\n runIfFunc,\n clampNumber,\n hsvTo,\n roundNumberToStep,\n pickObject,\n useUpdateEffect,\n} from \"@yamada-ui/utils\"\nimport type { CSSProperties, KeyboardEvent, KeyboardEventHandler } from \"react\"\nimport { useCallback, useMemo, useRef, useState } from \"react\"\n\nexport type Hsv = [number, number, number]\ntype Overlay = HTMLUIProps<\"div\"> | ((value: Hsv) => HTMLUIProps<\"div\">)\n\nconst defaultOverlays = (withShadow: boolean): Overlay[] => {\n let overlays: Overlay[] = [\n ([h]) => ({\n bg: `hsl(${h}, 100%, 50%)`,\n bgImage:\n \"linear-gradient(0deg, #000, transparent), linear-gradient(90deg, #fff, transparent)\",\n }),\n ]\n\n if (withShadow)\n overlays = [\n ...overlays,\n {\n boxShadow: `rgba(0, 0, 0, .1) 0 0 0 1px inset, rgb(0, 0, 0, .15) 0 0 4px inset`,\n },\n ]\n\n return overlays\n}\n\ntype UseSaturationSliderOptions = {\n /**\n * The base `id` to use for the saturation slider.\n */\n id?: string\n /**\n * The name attribute of the hidden `input` field.\n * This is particularly useful in forms.\n */\n name?: string\n /**\n * The value of the saturation slider.\n */\n value?: Hsv\n /**\n * The initial value of the saturation slider.\n *\n * @default \"[0, 0, 1]\"\n */\n defaultValue?: Hsv\n /**\n * Function called whenever the saturation slider value changes.\n */\n onChange?: (value: Hsv) => void\n /**\n * Function called when the user starts selecting a new value.\n */\n onChangeStart?: (value: Hsv) => void\n /**\n * Function called when the user is done selecting a new value.\n */\n onChangeEnd?: (value: Hsv) => void\n /**\n * The step in which increments or decrements have to be made.\n *\n * @default 0.01\n */\n step?: number\n /**\n * If `false`, the saturation slider handle will not capture focus when value changes.\n *\n * @default true\n */\n focusThumbOnChange?: boolean\n /**\n * The CSS `background` property. Used in `background` of thumb element.\n */\n thumbColor?: CSSUIProps[\"bg\"]\n /**\n * If `true`, the slider has an inner `box-shadow`.\n *\n * @default true\n */\n withShadow?: boolean\n /**\n * The overlay used for the saturation slider.\n */\n overlays?: Overlay[]\n}\n\nexport type UseSaturationSliderProps = Omit<\n HTMLUIProps<\"div\">,\n \"defaultValue\" | \"onChange\"\n> &\n UseSaturationSliderOptions &\n FormControlOptions\n\nexport const useSaturationSlider = ({\n focusThumbOnChange = true,\n ...props\n}: UseSaturationSliderProps) => {\n if (!focusThumbOnChange) props.isReadOnly = true\n\n let {\n id,\n name,\n value: valueProp,\n defaultValue = [0, 0, 1],\n onChange: onChangeProp,\n onChangeStart: onChangeStartProp,\n onChangeEnd: onChangeEndProp,\n step = 0.01,\n thumbColor,\n required,\n disabled,\n readOnly,\n withShadow = true,\n overlays: overlaysProp = defaultOverlays(withShadow),\n ...rest\n } = useFormControlProps(props)\n\n const onChangeStart = useCallbackRef(onChangeStartProp)\n const onChangeEnd = useCallbackRef(onChangeEndProp)\n\n const [value, setValue] = useControllableState({\n value: valueProp,\n defaultValue,\n onChange: onChangeProp,\n })\n const [isDragging, setDragging] = useState(false)\n const isInteractive = !(disabled || readOnly)\n let [h, s, v] = value\n\n s = clampNumber(s, 0, 1)\n v = clampNumber(v, 0, 1)\n\n const containerRef = useRef<HTMLElement>(null)\n const trackRef = useRef<HTMLElement>(null)\n const thumbRef = useRef<HTMLElement>(null)\n const latestRef = useLatestRef({\n value,\n step,\n isInteractive,\n eventSource: null as \"pointer\" | \"keyboard\" | null,\n focusThumbOnChange,\n })\n\n const thumbSize = useSize(thumbRef)\n\n const overlays = useMemo(\n () => overlaysProp.map((propsOrFunc) => runIfFunc(propsOrFunc, [h, s, v])),\n [overlaysProp, h, s, v],\n )\n\n const getValueFromPointer = useCallback(\n (ev: any) => {\n if (!trackRef.current) return []\n\n const { step } = latestRef.current\n\n latestRef.current.eventSource = \"pointer\"\n\n const { bottom, left, height, width } =\n trackRef.current.getBoundingClientRect()\n const { clientX, clientY } = ev.touches?.[0] ?? ev\n\n let s = clampNumber((clientX - left) / width, 0, 1)\n let v = clampNumber((bottom - clientY) / height, 0, 1)\n\n if (step) {\n s = parseFloat(roundNumberToStep(s, 0, step))\n v = parseFloat(roundNumberToStep(v, 0, step))\n }\n\n return [s, v]\n },\n [latestRef],\n )\n\n const setValueFromPointer = (ev: MouseEvent | TouchEvent | PointerEvent) => {\n const { value } = latestRef.current\n const [nextS, nextV] = getValueFromPointer(ev)\n\n if (nextS == null || nextV == null) return\n\n const [, s, v] = value\n\n if (nextS !== s || nextV !== v) setValue(([h]) => [h, nextS, nextV])\n }\n\n const focusThumb = useCallback(() => {\n const { focusThumbOnChange } = latestRef.current\n\n if (focusThumbOnChange) setTimeout(() => thumbRef.current?.focus())\n }, [latestRef])\n\n const constrain = useCallback(\n ([s, v]: [number, number]) => {\n const { isInteractive } = latestRef.current\n\n if (!isInteractive) return\n\n s = clampNumber(s, 0, 1)\n v = clampNumber(v, 0, 1)\n\n setValue(([h]) => [h, s, v])\n },\n [latestRef, setValue],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLElement>) => {\n const actions: Record<string, KeyboardEventHandler> = {\n ArrowRight: () => constrain([s + step, v]),\n ArrowUp: () => constrain([s, v + step]),\n ArrowLeft: () => constrain([s - step, v]),\n ArrowDown: () => constrain([s, v - step]),\n }\n\n const action = actions[ev.key]\n\n if (!action) return\n\n ev.preventDefault()\n ev.stopPropagation()\n\n action(ev)\n\n latestRef.current.eventSource = \"keyboard\"\n },\n [latestRef, constrain, s, v, step],\n )\n\n usePanEvent(containerRef, {\n onSessionStart: (ev) => {\n const { isInteractive, value } = latestRef.current\n\n if (!isInteractive) return\n\n setDragging(true)\n focusThumb()\n setValueFromPointer(ev)\n onChangeStart(value)\n },\n onSessionEnd: () => {\n const { isInteractive, value } = latestRef.current\n\n if (!isInteractive) return\n\n setDragging(false)\n onChangeEnd(value)\n },\n onMove: (ev) => {\n const { isInteractive } = latestRef.current\n\n if (!isInteractive) return\n\n setValueFromPointer(ev)\n },\n })\n\n useUpdateEffect(() => {\n const { eventSource, value } = latestRef.current\n\n if (eventSource === \"keyboard\") onChangeEnd(value)\n }, [value, onChangeEnd])\n\n const getContainerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ...omitObject(rest, [\"aria-readonly\"]),\n ref: mergeRefs(ref, containerRef),\n tabIndex: -1,\n }),\n [rest],\n )\n\n const getInnerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const { width: w } = thumbSize ?? { width: 0 }\n\n const style: CSSProperties = {\n ...props.style,\n ...rest.style,\n padding: `${w / 2}px`,\n }\n\n return {\n ...props,\n ref,\n style,\n }\n },\n [rest, thumbSize],\n )\n\n const getInputProps: UIPropGetter<\"input\"> = useCallback(\n (props = {}, ref = null) => ({\n ...pickObject(rest, formControlProperties),\n ...props,\n id,\n ref,\n type: \"hidden\",\n name,\n value: [h, s, v].toString(),\n required,\n disabled,\n readOnly,\n }),\n [disabled, id, name, readOnly, required, rest, h, s, v],\n )\n\n const getTrackProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n ),\n ...props,\n ref: mergeRefs(ref, trackRef),\n }),\n [rest],\n )\n\n const getThumbProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const { width, height } = thumbSize ?? { width: 0, height: 0 }\n const x = s * 100\n const y = v * 100\n\n const style: CSSProperties = {\n ...props.style,\n position: \"absolute\",\n userSelect: \"none\",\n touchAction: \"none\",\n left: `calc(${x}% - ${width / 2}px)`,\n bottom: `calc(${y}% - ${height / 2}px)`,\n }\n\n return {\n \"aria-label\": \"Saturation and brightness thumb\",\n bg: thumbColor ?? hsvTo([h, s, v])(),\n ...pickObject(rest, formControlProperties),\n ...props,\n ref: mergeRefs(ref, thumbRef),\n tabIndex: isInteractive && focusThumbOnChange ? 0 : undefined,\n role: \"slider\",\n \"aria-valuenow\": s,\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n \"aria-valuetext\": `saturation ${s}, brightness ${v}`,\n \"data-active\": dataAttr(isDragging && focusThumbOnChange),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n onFocus: handlerAll(props.onFocus, rest.onFocus),\n onBlur: handlerAll(props.onBlur, rest.onBlur),\n style,\n }\n },\n [\n h,\n s,\n v,\n thumbColor,\n focusThumbOnChange,\n isDragging,\n isInteractive,\n onKeyDown,\n rest,\n thumbSize,\n ],\n )\n\n return {\n value,\n overlays,\n getContainerProps,\n getInnerProps,\n getTrackProps,\n getInputProps,\n getThumbProps,\n }\n}\n\nexport type UseSaturationSliderReturn = ReturnType<typeof useSaturationSlider>\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"@yamada-ui/popover\"\nimport { Portal, type PortalProps } from \"@yamada-ui/portal\"\nimport {\n cx,\n getValidChildren,\n isValidElement,\n omitObject,\n} from \"@yamada-ui/utils\"\nimport { cloneElement } from \"react\"\nimport type { ColorSelectorProps } from \"./color-selector\"\nimport { ColorSelector } from \"./color-selector\"\nimport { EyeDropperIcon } from \"./color-selector-eye-dropper\"\nimport type { ColorSwatchProps } from \"./color-swatch\"\nimport { ColorSwatch } from \"./color-swatch\"\nimport type { UseColorPickerProps } from \"./use-color-picker\"\nimport {\n ColorPickerProvider,\n useColorPicker,\n useColorPickerContext,\n} from \"./use-color-picker\"\n\ntype ColorPickerOptions = {\n /**\n * If `true`, display the color swatch component.\n *\n * @default true\n */\n withSwatch?: boolean\n /**\n * If `true`, display the eye dropper component.\n *\n * @default true\n */\n withEyeDropper?: boolean\n /**\n * The border color when the input is focused.\n */\n focusBorderColor?: string\n /**\n * The border color when the input is invalid.\n */\n errorBorderColor?: string\n /**\n * Props for color picker container element.\n */\n containerProps?: Omit<HTMLUIProps<\"div\">, \"children\">\n /**\n * Props for color picker element.\n */\n inputProps?: HTMLUIProps<\"input\">\n /**\n * Props for color swatch component.\n */\n swatchProps?: ColorPickerSwatchProps\n /**\n * Props for color eye dropper component.\n */\n eyeDropperProps?: ColorPickerEyeDropperProps\n /**\n * Props to be forwarded to the portal component.\n *\n * @default '{ isDisabled: true }'\n */\n portalProps?: Omit<PortalProps, \"children\">\n}\n\nexport type ColorPickerProps = ThemeProps<\"ColorPicker\"> &\n UseColorPickerProps &\n ColorPickerOptions &\n Pick<\n ColorSelectorProps,\n | \"saturationSliderRef\"\n | \"saturationSliderProps\"\n | \"swatchesProps\"\n | \"hueSliderRef\"\n | \"hueSliderProps\"\n | \"alphaSliderRef\"\n | \"alphaSliderProps\"\n | \"channelsProps\"\n | \"channelProps\"\n | \"children\"\n >\n\n/**\n * `ColorPicker` is a component used by the user to select a color or enter an arbitrary color value.\n *\n * @see Docs https://yamada-ui.com/components/forms/color-picker\n */\nexport const ColorPicker = forwardRef<ColorPickerProps, \"input\">(\n ({ withSwatch = true, ...props }, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"ColorPicker\", {\n withSwatch,\n ...props,\n })\n let {\n className,\n children,\n withEyeDropper = true,\n color,\n h,\n height,\n minH,\n minHeight,\n containerProps,\n inputProps,\n swatchProps,\n eyeDropperProps,\n saturationSliderRef,\n saturationSliderProps,\n swatchesProps,\n hueSliderRef,\n hueSliderProps,\n alphaSliderRef,\n alphaSliderProps,\n channelsProps,\n channelProps,\n portalProps = { isDisabled: true },\n ...computedProps\n } = omitThemeProps(omitObject(mergedProps, [\"withSwatch\"]))\n const {\n allowInput,\n eyeDropperSupported,\n getPopoverProps,\n getContainerProps,\n getFieldProps,\n getSelectorProps,\n getEyeDropperProps,\n ...rest\n } = useColorPicker(computedProps)\n\n h ??= height\n minH ??= minHeight\n\n const css: CSSUIObject = {\n w: \"100%\",\n h: \"fit-content\",\n color,\n ...styles.container,\n }\n\n return (\n <ColorPickerProvider value={{ styles, ...rest }}>\n <Popover {...getPopoverProps()}>\n <ui.div\n className={cx(\"ui-color-picker\", className)}\n __css={css}\n {...getContainerProps(containerProps)}\n >\n <ui.div\n className=\"ui-color-picker__inner\"\n __css={{\n position: \"relative\",\n cursor: !allowInput ? \"pointer\" : undefined,\n ...styles.inner,\n }}\n >\n {withSwatch ? <ColorPickerSwatch {...swatchProps} /> : null}\n\n <PopoverTrigger>\n <ColorPickerField\n h={h}\n minH={minH}\n {...getFieldProps(inputProps, ref)}\n />\n </PopoverTrigger>\n\n {eyeDropperSupported && withEyeDropper ? (\n <ColorPickerEyeDropper\n {...getEyeDropperProps(eyeDropperProps)}\n />\n ) : null}\n </ui.div>\n\n <Portal {...portalProps}>\n <PopoverContent\n className=\"ui-color-picker__popover\"\n __css={{ ...styles.list }}\n >\n <ColorSelector\n className=\"ui-color-picker__picker\"\n {...getSelectorProps({\n saturationSliderRef,\n saturationSliderProps,\n swatchesProps,\n hueSliderRef,\n hueSliderProps,\n alphaSliderRef,\n alphaSliderProps,\n channelsProps,\n channelProps,\n })}\n >\n {children}\n </ColorSelector>\n </PopoverContent>\n </Portal>\n </ui.div>\n </Popover>\n </ColorPickerProvider>\n )\n },\n)\n\ntype ColorPickerFieldProps = HTMLUIProps<\"input\">\n\nconst ColorPickerField = forwardRef<ColorPickerFieldProps, \"input\">(\n ({ className, h, minH, ...rest }, ref) => {\n const { styles } = useColorPickerContext()\n\n const css: CSSUIObject = {\n ps: \"2rem\",\n pe: \"2rem\",\n h,\n minH,\n display: \"flex\",\n alignItems: \"center\",\n ...styles.field,\n }\n\n return (\n <ui.input\n ref={ref}\n className={cx(\"ui-color-picker__field\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\ntype ColorPickerSwatchProps = ColorSwatchProps\n\nconst ColorPickerSwatch = forwardRef<ColorPickerSwatchProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const { value, styles } = useColorPickerContext()\n\n const css: CSSUIObject = {\n position: \"absolute\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n zIndex: 2,\n ...styles.swatch,\n }\n\n return (\n <ColorSwatch\n ref={ref}\n className={cx(\"ui-color-picker__swatch\", className)}\n __css={css}\n color={value}\n isRounded\n {...rest}\n />\n )\n },\n)\n\ntype ColorPickerEyeDropperProps = HTMLUIProps<\"button\">\n\nconst ColorPickerEyeDropper = forwardRef<ColorPickerEyeDropperProps, \"button\">(\n ({ className, children, ...rest }, ref) => {\n const { styles } = useColorPickerContext()\n\n const css: CSSUIObject = {\n position: \"absolute\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n zIndex: 1,\n ...styles.eyeDropper,\n }\n\n const validChildren = getValidChildren(children)\n\n const cloneChildren = validChildren.map((child) =>\n cloneElement(child, {\n focusable: false,\n \"aria-hidden\": true,\n style: {\n maxWidth: \"1em\",\n maxHeight: \"1em\",\n color: \"currentColor\",\n },\n }),\n )\n\n return (\n <ui.button\n ref={ref}\n className={cx(\"ui-color-picker__eye-dropper\", className)}\n __css={css}\n {...rest}\n >\n {isValidElement(children) ? (\n cloneChildren\n ) : (\n <EyeDropperIcon className=\"ui-color-picker__eye-dropper__icon\" />\n )}\n </ui.button>\n )\n },\n)\n","import { layoutStyleProperties } from \"@yamada-ui/core\"\nimport type {\n UIPropGetter,\n CSSUIObject,\n ThemeProps,\n HTMLUIProps,\n} from \"@yamada-ui/core\"\nimport {\n useFormControlProps,\n getFormControlProperties,\n} from \"@yamada-ui/form-control\"\nimport { popoverProperties, type PopoverProps } from \"@yamada-ui/popover\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { useDisclosure } from \"@yamada-ui/use-disclosure\"\nimport { useEyeDropper } from \"@yamada-ui/use-eye-dropper\"\nimport { useOutsideClick } from \"@yamada-ui/use-outside-click\"\nimport type { ColorFormat, Dict } from \"@yamada-ui/utils\"\nimport {\n createContext,\n dataAttr,\n handlerAll,\n mergeRefs,\n pickObject,\n splitObject,\n omitObject,\n getEventRelatedTarget,\n isContains,\n convertColor,\n calcFormat,\n useUpdateEffect,\n} from \"@yamada-ui/utils\"\nimport type { ChangeEvent, FocusEvent, KeyboardEvent, MouseEvent } from \"react\"\nimport { useCallback, useRef, useState } from \"react\"\nimport type { ColorSelectorProps } from \"./color-selector\"\nimport type { UseColorSelectorBaseProps } from \"./use-color-selector\"\n\ntype ColorSelectorThemeProps = ThemeProps<\"ColorSelector\">\n\ntype ColorPickerContext = { value: string; styles: Record<string, CSSUIObject> }\n\nexport const [ColorPickerProvider, useColorPickerContext] =\n createContext<ColorPickerContext>({\n name: \"ColorPickerContext\",\n errorMessage: `useColorPickerContext returned is 'undefined'. Seems you forgot to wrap the components in \"<ColorPicker />\"`,\n })\n\ntype UseColorPickerOptions = {\n /**\n * The initial value of the color selector.\n */\n defaultColor?: string\n /**\n * If `true`, allows input.\n *\n * @default true\n */\n allowInput?: boolean\n /**\n * A callback function to format the input entered.\n */\n formatInput?: (value: string) => string\n /**\n * If `true`, display the result component.\n *\n * @default false\n */\n withResult?: boolean\n /**\n * If `true` display the eye dropper component.\n *\n * @default false\n */\n withColorSelectorEyeDropper?: boolean\n /**\n * If `true`, the color swatch will be closed when value is selected.\n */\n closeOnSelectSwatch?: boolean\n /**\n * Variant for the color selector component.\n */\n colorSelectorVariant?: ColorSelectorThemeProps[\"variant\"]\n /**\n * Size for the color selector component.\n */\n colorSelectorSize?: ColorSelectorThemeProps[\"size\"]\n /**\n * ColorScheme for the color selector component.\n */\n colorSelectorColorScheme?: ColorSelectorThemeProps[\"colorScheme\"]\n /**\n * Props for color selector component.\n */\n colorSelectorProps?: ColorSelectorProps\n}\n\nexport type UseColorPickerProps = Omit<\n HTMLUIProps<\"input\">,\n \"size\" | \"offset\" | \"value\" | \"defaultValue\" | \"onChange\" | \"children\"\n> &\n Omit<UseColorSelectorBaseProps, \"id\" | \"name\"> &\n Omit<\n PopoverProps,\n | \"initialFocusRef\"\n | \"closeOnButton\"\n | \"trigger\"\n | \"autoFocus\"\n | \"restoreFocus\"\n | \"openDelay\"\n | \"closeDelay\"\n | \"children\"\n > &\n Pick<\n ColorSelectorProps,\n | \"withPicker\"\n | \"withChannel\"\n | \"swatchesLabel\"\n | \"swatches\"\n | \"swatchesColumns\"\n > &\n UseColorPickerOptions\n\nexport const useColorPicker = ({\n value: valueProp,\n defaultValue,\n fallbackValue,\n defaultColor,\n onChange: onChangeProp,\n onChangeStart,\n onChangeEnd,\n onSwatchClick,\n formatInput = (value) => value,\n closeOnBlur = true,\n closeOnEsc = true,\n placement = \"bottom-start\",\n duration = 0.2,\n isOpen: isOpenProp,\n defaultIsOpen,\n onOpen: onOpenProp,\n onClose: onCloseProp,\n allowInput = true,\n closeOnSelectSwatch,\n format,\n swatchesLabel,\n swatches,\n swatchesColumns,\n withPicker,\n withChannel,\n withResult = false,\n withColorSelectorEyeDropper = false,\n colorSelectorVariant,\n colorSelectorSize,\n colorSelectorColorScheme,\n ...rest\n}: UseColorPickerProps) => {\n rest = useFormControlProps(rest)\n\n const formControlProps = pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n )\n const { disabled, readOnly } = formControlProps\n const [containerProps, inputProps] = splitObject<Dict, string>(\n omitObject(rest, [...popoverProperties]),\n layoutStyleProperties,\n )\n\n const containerRef = useRef<HTMLDivElement>(null)\n const fieldRef = useRef<HTMLInputElement>(null)\n\n const { supported: eyeDropperSupported, onOpen: onEyeDropperOpen } =\n useEyeDropper()\n const [value, setValue] = useControllableState({\n value: valueProp,\n defaultValue,\n onChange: onChangeProp,\n })\n const formatRef = useRef<ColorFormat>(\n format ?? calcFormat(value ?? defaultColor ?? \"\"),\n )\n const isInputFocused = useRef<boolean>(false)\n const [inputValue, setInputValue] = useState<string>(value ?? \"\")\n const {\n isOpen,\n onOpen: onInternalOpen,\n onClose: onInternalClose,\n } = useDisclosure({\n isOpen: isOpenProp,\n defaultIsOpen,\n onOpen: onOpenProp,\n onClose: onCloseProp,\n })\n const isColorSelectorFull = colorSelectorSize === \"full\"\n\n const onOpen = useCallback(() => {\n if (disabled || readOnly) return\n\n onInternalOpen()\n }, [onInternalOpen, disabled, readOnly])\n\n const onClose = useCallback(() => {\n if (!isOpen) return\n\n const next = convertColor(value, fallbackValue)(formatRef.current)\n\n setValue((prev) => (!next || prev === next ? prev : next))\n setInputValue(formatInput(next ?? \"\"))\n\n onInternalClose()\n }, [\n formatRef,\n isOpen,\n setValue,\n onInternalClose,\n value,\n formatInput,\n setInputValue,\n fallbackValue,\n ])\n\n const onContainerClick = useCallback(() => {\n if (isOpen) return\n\n onOpen()\n }, [isOpen, onOpen])\n\n const onInputFocus = useCallback(() => {\n isInputFocused.current = true\n\n if (isOpen) return\n\n onOpen()\n }, [isOpen, onOpen])\n\n const onInputBlur = useCallback(() => {\n isInputFocused.current = false\n }, [])\n\n const onContainerBlur = useCallback(\n (ev: FocusEvent<HTMLDivElement>) => {\n const relatedTarget = getEventRelatedTarget(ev)\n\n if (isContains(containerRef.current, relatedTarget)) return\n\n if (!closeOnBlur) return\n\n if (isOpen) onClose()\n },\n [closeOnBlur, isOpen, onClose],\n )\n\n const onInputKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLInputElement>) => {\n if (ev.key === \" \") ev.key = ev.code\n\n if (disabled || readOnly) return\n\n const actions: Record<string, Function | undefined> = {\n Space: !isOpen ? onOpen : undefined,\n Enter: !isOpen ? onOpen : undefined,\n Escape: closeOnEsc ? onClose : undefined,\n }\n\n const action = actions[ev.key]\n\n if (!action) return\n\n ev.preventDefault()\n ev.stopPropagation()\n action()\n },\n [disabled, readOnly, isOpen, onOpen, closeOnEsc, onClose],\n )\n\n const onInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n const value = ev.target.value\n\n setInputValue(formatInput(value))\n setValue(value)\n },\n [setInputValue, formatInput, setValue],\n )\n\n const onColorSelectorChange = useCallback(\n (value: string) => {\n setValue(value)\n\n setTimeout(() => {\n if (!isInputFocused.current) setInputValue(formatInput(value))\n })\n },\n [setValue, formatInput],\n )\n\n const onEyeDropperClick = useCallback(\n async (ev: MouseEvent<HTMLButtonElement>) => {\n ev.preventDefault()\n ev.stopPropagation()\n\n try {\n const { sRGBHex } = (await onEyeDropperOpen()) ?? {}\n\n if (!sRGBHex) return\n\n onColorSelectorChange(sRGBHex)\n onChangeEnd?.(sRGBHex)\n } catch {}\n },\n [onEyeDropperOpen, onColorSelectorChange, onChangeEnd],\n )\n\n useOutsideClick({\n ref: containerRef,\n handler: onClose,\n enabled: isOpen && closeOnBlur,\n })\n\n useUpdateEffect(() => {\n if (!format || !value) return\n\n formatRef.current = format\n\n const nextValue = convertColor(value, fallbackValue)(format)\n\n if (!nextValue) return\n\n setInputValue(formatInput(nextValue))\n setValue(nextValue)\n }, [format])\n\n useUpdateEffect(() => {\n if (isInputFocused.current || !valueProp) return\n\n setInputValue(formatInput(valueProp))\n }, [valueProp])\n\n const getPopoverProps = useCallback(\n (props?: PopoverProps): PopoverProps => ({\n matchWidth: isColorSelectorFull,\n ...rest,\n ...props,\n isOpen,\n onOpen,\n onClose,\n placement,\n duration,\n trigger: \"never\",\n closeOnButton: false,\n }),\n [isColorSelectorFull, duration, onClose, onOpen, placement, rest, isOpen],\n )\n\n const getContainerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ref: mergeRefs(containerRef, ref),\n ...containerProps,\n ...props,\n ...formControlProps,\n onClick: handlerAll(props.onClick, rest.onClick, onContainerClick),\n onBlur: handlerAll(props.onBlur, rest.onBlur, onContainerBlur),\n }),\n [containerProps, formControlProps, onContainerBlur, onContainerClick, rest],\n )\n\n const getFieldProps: UIPropGetter<\"input\"> = useCallback(\n (props = {}, ref = null) => ({\n ref: mergeRefs(fieldRef, ref),\n tabIndex: !allowInput ? -1 : 0,\n ...inputProps,\n ...props,\n style: {\n ...props.style,\n ...(!allowInput ? { pointerEvents: \"none\" } : {}),\n },\n value: inputValue,\n \"data-active\": dataAttr(isOpen),\n \"aria-expanded\": dataAttr(isOpen),\n onFocus: handlerAll(props.onFocus, rest.onFocus, onInputFocus),\n onKeyDown: handlerAll(props.onKeyDown, rest.onKeyDown, onInputKeyDown),\n onChange: handlerAll(props.onChange, onInputChange),\n onBlur: handlerAll(props.onFocus, onInputBlur),\n }),\n [\n allowInput,\n inputProps,\n inputValue,\n isOpen,\n rest,\n onInputFocus,\n onInputKeyDown,\n onInputChange,\n onInputBlur,\n ],\n )\n\n const getEyeDropperProps: UIPropGetter<\"button\"> = useCallback(\n (props = {}, ref = null) => ({\n disabled,\n \"aria-label\": \"Pick a color\",\n ...props,\n ref,\n style: { ...props.style, pointerEvents: readOnly ? \"none\" : undefined },\n onClick: handlerAll(props.onClick, onEyeDropperClick),\n }),\n [disabled, onEyeDropperClick, readOnly],\n )\n\n const getSelectorProps = useCallback(\n (props?: ColorSelectorProps): ColorSelectorProps => ({\n ...formControlProps,\n ...props,\n value,\n defaultValue: defaultColor,\n fallbackValue,\n onChange: onColorSelectorChange,\n onChangeStart,\n onChangeEnd,\n onSwatchClick: handlerAll(\n onSwatchClick,\n closeOnSelectSwatch ? onClose : undefined,\n ),\n format: formatRef.current,\n withPicker,\n withChannel,\n withResult,\n withEyeDropper: withColorSelectorEyeDropper,\n swatchesLabel,\n swatches,\n swatchesColumns,\n variant: colorSelectorVariant,\n size: colorSelectorSize,\n colorScheme: colorSelectorColorScheme,\n }),\n [\n formControlProps,\n value,\n fallbackValue,\n defaultColor,\n onColorSelectorChange,\n onChangeStart,\n onChangeEnd,\n onSwatchClick,\n onClose,\n closeOnSelectSwatch,\n formatRef,\n withPicker,\n withChannel,\n withResult,\n withColorSelectorEyeDropper,\n swatchesLabel,\n swatches,\n swatchesColumns,\n colorSelectorColorScheme,\n colorSelectorSize,\n colorSelectorVariant,\n ],\n )\n\n return {\n value,\n eyeDropperSupported,\n allowInput,\n getPopoverProps,\n getContainerProps,\n getFieldProps,\n getSelectorProps,\n getEyeDropperProps,\n }\n}\n\nexport type UseColorPickerReturn = ReturnType<typeof useColorPicker>\n","import type { CSSUIObject, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { UseRatingProps } from \"./use-rating\"\nimport { RatingProvider, useRating } from \"./use-rating\"\n\nexport type RatingProps = ThemeProps<\"Rating\"> & UseRatingProps\n\n/**\n * `Rating` is a component used to allow users to provide ratings.\n *\n * @see Docs https://yamada-ui.com/components/forms/rating\n */\nexport const Rating = forwardRef<RatingProps, \"div\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Rating\", props)\n const { className, ...computedProps } = omitThemeProps(mergedProps)\n\n const { getContainerProps, children, ...rest } = useRating(computedProps)\n\n const css: CSSUIObject = { display: \"flex\", ...styles.container }\n\n return (\n <RatingProvider value={{ styles, ...rest }}>\n <ui.div\n className={cx(\"ui-rating\", className)}\n __css={css}\n {...getContainerProps({}, ref)}\n >\n {children}\n </ui.div>\n </RatingProvider>\n )\n})\n","import type {\n CSSUIObject,\n CSSUIProps,\n HTMLUIProps,\n UIPropGetter,\n} from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport {\n getFormControlProperties,\n useFormControlProps,\n} from \"@yamada-ui/form-control\"\nimport type { RequiredMotionUIPropGetter } from \"@yamada-ui/motion\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { trackFocusVisible } from \"@yamada-ui/use-focus-visible\"\nimport type { Dict } from \"@yamada-ui/utils\"\nimport {\n clampNumber,\n createContext,\n dataAttr,\n handlerAll,\n mergeRefs,\n pickObject,\n omitObject,\n runIfFunc,\n} from \"@yamada-ui/utils\"\nimport type {\n ChangeEvent,\n Dispatch,\n MouseEvent,\n ReactNode,\n SetStateAction,\n TouchEvent,\n} from \"react\"\nimport { useCallback, useEffect, useId, useRef, useState } from \"react\"\nimport type { RatingGroupProps } from \"./rating-group\"\nimport { RatingGroup } from \"./rating-group\"\nimport type { RatingItemProps } from \"./rating-item\"\n\nexport const getRoundedValue = (value: number, to: number) => {\n const rounded = Math.round(value / to) * to\n\n const precision = `${to}`.split(\".\")[1]?.length || 0\n\n return Number(rounded.toFixed(precision))\n}\n\ntype OmittedGroupProps = Omit<RatingGroupProps, \"value\" | \"items\" | \"children\">\ntype OmittedItemProps = Omit<\n RatingItemProps,\n \"value\" | \"groupValue\" | \"fractionValue\" | \"children\"\n>\ntype OmittedInputProps = Omit<\n HTMLUIProps<\"input\">,\n \"value\" | \"defaultValue\" | \"checked\"\n>\n\ntype GroupProps = OmittedGroupProps | ((value: number) => OmittedGroupProps)\ntype ItemProps = OmittedItemProps | ((value: number) => OmittedItemProps)\ntype InputProps = OmittedInputProps | ((value: number) => OmittedInputProps)\n\ntype RatingContext = {\n getGroupProps: RequiredMotionUIPropGetter<\"div\", { value: number }>\n id: string\n name: string\n value: number\n roundedValue: number\n hoveredValue: number\n resolvedValue: number\n isOutside: boolean\n setValue: Dispatch<SetStateAction<number>>\n setHoveredValue: Dispatch<SetStateAction<number>>\n decimal: number\n highlightSelectedOnly: boolean\n formControlProps: Dict\n groupProps: GroupProps | undefined\n itemProps: ItemProps | undefined\n inputProps: InputProps | undefined\n emptyIcon: ReactNode | ((value: number) => ReactNode) | undefined\n filledIcon: ReactNode | ((value: number) => ReactNode) | undefined\n styles: Record<string, CSSUIObject>\n}\n\nexport const [RatingProvider, useRatingContext] = createContext<RatingContext>({\n name: \"RatingContext\",\n errorMessage: `useRatingContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Rating />\"`,\n})\n\ntype UseRatingOptions = {\n /**\n * The top-level id string that will be applied to the rating.\n * The index of the rating item will be appended to this top-level id.\n */\n id?: string\n /**\n * The name of the input element.\n */\n name?: string\n /**\n * The value of the rating.\n */\n value?: number\n /**\n * The initial value of the rating.\n *\n * @default 0\n */\n defaultValue?: number\n /**\n * The callback invoked when value state changes.\n */\n onChange?: (value: number) => void\n /**\n * The callback invoked when hovering over the rating.\n */\n onHover?: (value: number) => void\n /**\n * Number of controls that should be rendered.\n *\n * @default 5\n */\n items?: number\n /**\n * Number of fractions each item can be divided into,\n *\n * @default 1\n */\n fractions?: number\n /**\n * If `true`, only the selected icons will be filled.\n *\n * @default false\n */\n highlightSelectedOnly?: boolean\n /**\n * The color of the filled icons.\n */\n color?: CSSUIProps[\"color\"] | ((value: number) => CSSUIProps[\"color\"])\n /**\n * The empty icon for the rating.\n */\n emptyIcon?: ReactNode | ((value: number) => ReactNode)\n /**\n * The filled icon for the rating.\n */\n filledIcon?: ReactNode | ((value: number) => ReactNode)\n /**\n * Props for the rating group.\n */\n groupProps?: GroupProps\n /**\n * Props for the rating item.\n */\n itemProps?: ItemProps\n /**\n * Props for the input element.\n */\n inputProps?: InputProps\n}\n\nexport type UseRatingProps = Omit<\n HTMLUIProps<\"div\">,\n \"color\" | \"id\" | \"defaultValue\" | \"onChange\"\n> &\n UseRatingOptions &\n FormControlOptions\n\nexport const useRating = ({\n name,\n color,\n value: valueProp,\n defaultValue = 0,\n onChange: onChangeProp,\n items = 5,\n fractions = 1,\n highlightSelectedOnly = false,\n onHover,\n groupProps,\n itemProps,\n inputProps,\n emptyIcon,\n filledIcon,\n ...props\n}: UseRatingProps) => {\n let { id, ...rest } = useFormControlProps(props)\n const { disabled, readOnly } = rest\n\n const containerRef = useRef<HTMLDivElement>(null)\n const [value, setValue] = useControllableState({\n value: valueProp,\n defaultValue,\n onChange: onChangeProp,\n })\n const [hoveredValue, setHoveredValue] = useState<number>(-1)\n const [isOutside, setIsOutside] = useState(true)\n\n id ??= useId()\n name ??= `rating-${id}`\n\n const formControlProps = pickObject(\n rest,\n getFormControlProperties({ omit: [\"aria-readonly\"] }),\n )\n const resolvedFractions = Math.floor(fractions)\n const resolvedItems = Math.floor(items)\n const decimal = 1 / resolvedFractions\n const roundedValue = getRoundedValue(value, decimal)\n const resolvedValue = hoveredValue !== -1 ? hoveredValue : roundedValue\n\n const getHoveredValue = useCallback(\n (x: number) => {\n const { left, width } = containerRef.current!.getBoundingClientRect()\n const itemWidth = width / resolvedItems\n\n const hoveredValue = (x - left) / itemWidth\n\n const value = clampNumber(\n getRoundedValue(hoveredValue + decimal / 2, decimal),\n decimal,\n resolvedItems,\n )\n\n return value\n },\n [decimal, resolvedItems],\n )\n\n const onMouseEnter = useCallback(() => {\n if (!disabled && !readOnly) setIsOutside(false)\n }, [disabled, readOnly])\n\n const onMouseLeave = useCallback(() => {\n if (disabled || readOnly) return\n\n setHoveredValue(-1)\n setIsOutside(true)\n\n if (hoveredValue !== -1) onHover?.(-1)\n }, [disabled, hoveredValue, onHover, readOnly, setHoveredValue])\n\n const onTouchStart = useCallback(\n (ev: TouchEvent<HTMLDivElement>) => {\n ev.preventDefault()\n\n const el = ev.touches[0]\n\n if (!el) return\n\n const value = getHoveredValue(el.clientX)\n\n setValue(value)\n },\n [getHoveredValue, setValue],\n )\n\n const onTouchEnd = useCallback((ev: TouchEvent<HTMLDivElement>) => {\n ev.preventDefault()\n }, [])\n\n const onMouseMove = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n if (disabled || readOnly) return\n\n const roundedValue = getHoveredValue(ev.clientX)\n\n setHoveredValue(roundedValue)\n\n if (roundedValue !== hoveredValue) onHover?.(roundedValue)\n },\n [disabled, getHoveredValue, hoveredValue, readOnly, onHover],\n )\n\n const getContainerProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ref: mergeRefs(ref, containerRef),\n ...omitObject(rest, [\"aria-readonly\"]),\n ...props,\n id,\n onMouseEnter: handlerAll(\n onMouseEnter,\n props.onMouseEnter,\n rest.onMouseEnter,\n ),\n onMouseMove: handlerAll(onMouseMove, props.onMouseMove, rest.onMouseMove),\n onMouseLeave: handlerAll(\n onMouseLeave,\n props.onMouseLeave,\n rest.onMouseLeave,\n ),\n onTouchStart: handlerAll(\n onTouchStart,\n props.onTouchStart,\n rest.onTouchStart,\n ),\n onTouchEnd: handlerAll(onTouchEnd, props.onTouchEnd, rest.onTouchEnd),\n }),\n [\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onTouchEnd,\n onTouchStart,\n id,\n rest,\n ],\n )\n\n const getGroupProps: RequiredMotionUIPropGetter<\n \"div\",\n {\n value: number\n }\n > = useCallback(\n ({ value, ...props }, ref = null) => {\n const isActive = !readOnly && Math.ceil(hoveredValue) === value\n\n return {\n ref,\n whileTap: !disabled && !readOnly ? { y: -4 } : undefined,\n ...props,\n tabIndex: -1,\n \"data-active\": dataAttr(isActive),\n }\n },\n [disabled, hoveredValue, readOnly],\n )\n\n const children = Array(resolvedItems)\n .fill(0)\n .map((_, index) => {\n const value = index + 1\n\n return (\n <RatingGroup\n key={value}\n value={value}\n color={runIfFunc(color, value)}\n items={index === 0 ? resolvedFractions + 1 : resolvedFractions}\n />\n )\n })\n\n return {\n getContainerProps,\n getGroupProps,\n id,\n name,\n value,\n roundedValue,\n hoveredValue,\n resolvedValue,\n isOutside,\n setValue,\n setHoveredValue,\n decimal,\n highlightSelectedOnly,\n formControlProps,\n groupProps,\n itemProps,\n inputProps,\n children,\n emptyIcon,\n filledIcon,\n }\n}\n\nexport type UseRatingReturn = ReturnType<typeof useRating>\n\nexport type UseRatingItemProps = {\n groupValue: number\n fractionValue: number\n value: number\n}\n\nexport const useRatingItem = ({\n groupValue,\n fractionValue,\n value,\n}: UseRatingItemProps) => {\n const {\n id,\n name,\n formControlProps,\n isOutside,\n highlightSelectedOnly,\n roundedValue,\n resolvedValue,\n setValue,\n setHoveredValue,\n } = useRatingContext()\n const { readOnly, disabled } = formControlProps\n const [isFocused, setFocused] = useState<boolean>(false)\n const [isFocusVisible, setIsFocusVisible] = useState<boolean>(false)\n const isActive = value === resolvedValue\n const isChecked = value === roundedValue\n const isFilled = highlightSelectedOnly\n ? value === resolvedValue\n : value <= resolvedValue\n\n const onBlur = useCallback(() => {\n setFocused(false)\n\n if (isOutside) setHoveredValue(-1)\n }, [isOutside, setHoveredValue])\n\n const onInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (readOnly || disabled) return\n\n const value = parseFloat(ev.target.value)\n\n setHoveredValue(value)\n },\n [disabled, readOnly, setHoveredValue],\n )\n\n const onChange = useCallback(\n (value: number) => {\n if (readOnly || disabled) return\n\n setValue(value)\n },\n [disabled, readOnly, setValue],\n )\n\n const onMouseDown = useCallback(() => {\n if (readOnly || disabled) return\n\n onChange(value)\n }, [disabled, onChange, readOnly, value])\n\n const onTouchStart = useCallback(() => {\n if (readOnly || disabled) return\n\n onChange(value)\n }, [disabled, onChange, readOnly, value])\n\n const getItemProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n const zIndex = isActive ? 1 : -1\n\n return {\n ref,\n htmlFor: `${id}-${groupValue}-${value}`,\n ...formControlProps,\n ...props,\n zIndex: fractionValue !== 1 ? zIndex : undefined,\n onMouseDown: handlerAll(onMouseDown, props.onMouseDown),\n onTouchStart: handlerAll(onTouchStart, props.onTouchStart),\n \"data-active\": dataAttr(isActive),\n \"data-filled\": dataAttr(isFilled),\n \"data-focus\": dataAttr(isFocused),\n \"data-focus-visible\": dataAttr(isFocused && isFocusVisible),\n }\n },\n [\n formControlProps,\n fractionValue,\n groupValue,\n id,\n isActive,\n isFilled,\n isFocusVisible,\n isFocused,\n onMouseDown,\n onTouchStart,\n value,\n ],\n )\n\n const getInputProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => {\n return {\n ref,\n \"aria-label\": `${value}`,\n ...formControlProps,\n ...props,\n style: {\n border: \"0px\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n height: \"1px\",\n width: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\",\n },\n type: \"radio\",\n id: `${id}-${groupValue}-${value}`,\n name,\n value,\n checked: isChecked,\n onChange: handlerAll(onInputChange, props.onChange),\n onFocus: handlerAll(() => setFocused(true), props.onFocus),\n onBlur: handlerAll(onBlur, props.onBlur),\n onKeyDown: handlerAll(\n (ev) => (ev.key === \" \" ? onChange(value) : void 0),\n props.onKeyDown,\n ),\n \"data-active\": dataAttr(isActive),\n \"data-checked\": dataAttr(isChecked),\n }\n },\n [\n value,\n formControlProps,\n id,\n groupValue,\n name,\n isChecked,\n onInputChange,\n onBlur,\n isActive,\n onChange,\n ],\n )\n\n useEffect(() => {\n return trackFocusVisible(setIsFocusVisible)\n }, [])\n\n return {\n isActive,\n isChecked,\n isFilled,\n getItemProps,\n getInputProps,\n }\n}\n\nexport type UseRatingItemReturn = ReturnType<typeof useRatingItem>\n","import { forwardRef } from \"@yamada-ui/core\"\nimport type { CSSUIObject } from \"@yamada-ui/core\"\nimport type { MotionProps } from \"@yamada-ui/motion\"\nimport { Motion } from \"@yamada-ui/motion\"\nimport { cx, runIfFunc } from \"@yamada-ui/utils\"\nimport { RatingItem } from \"./rating-item\"\nimport { getRoundedValue, useRatingContext } from \"./use-rating\"\n\ntype RatingGroupOptions = {\n value: number\n items: number\n}\n\nexport type RatingGroupProps = MotionProps<\"div\"> & RatingGroupOptions\n\nexport const RatingGroup = forwardRef<RatingGroupProps, \"div\">(\n ({ className, value: groupValue, items, color, ...rest }, ref) => {\n const { styles, decimal, groupProps, getGroupProps } = useRatingContext()\n\n const computedGroupProps = runIfFunc(groupProps, groupValue)\n\n const css: CSSUIObject = { ...styles.group }\n\n return (\n <Motion\n className={cx(\"ui-rating__group\", className)}\n __css={css}\n {...getGroupProps(\n { value: groupValue, ...computedGroupProps, ...rest },\n ref,\n )}\n >\n {Array(items)\n .fill(0)\n .map((_, index) => {\n const fractionValue =\n decimal * (groupValue === 1 ? index : index + 1)\n const value = getRoundedValue(\n groupValue - 1 + fractionValue,\n decimal,\n )\n\n return (\n <RatingItem\n key={`${groupValue}-${fractionValue}`}\n groupValue={groupValue}\n value={value}\n fractionValue={fractionValue}\n color={color}\n />\n )\n })}\n </Motion>\n )\n },\n)\n","import { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport { cx, getValidChildren, isString, runIfFunc } from \"@yamada-ui/utils\"\nimport { cloneElement, type FC } from \"react\"\nimport type { UseRatingItemProps } from \"./use-rating\"\nimport { useRatingContext, useRatingItem } from \"./use-rating\"\n\nexport type RatingItemProps = HTMLUIProps<\"input\"> & UseRatingItemProps\n\nexport const RatingItem = forwardRef<RatingItemProps, \"input\">(\n ({ className, groupValue, value, fractionValue, color, ...rest }, ref) => {\n const {\n styles,\n inputProps,\n emptyIcon = <StarIcon />,\n filledIcon = <StarIcon />,\n itemProps,\n } = useRatingContext()\n const { isActive, isFilled, getInputProps, getItemProps } = useRatingItem({\n value,\n groupValue,\n fractionValue,\n })\n\n const computedItemProps = runIfFunc(itemProps, value)\n const computedInputProps = runIfFunc(inputProps, value)\n\n const customColor = color\n ? {\n _filled: {\n color: isString(color) ? [color, color] : color,\n },\n }\n : {}\n\n const css: CSSUIObject = {\n display: \"block\",\n lineHeight: \"0\",\n ...styles.item,\n ...customColor,\n }\n\n return (\n <>\n <ui.input {...getInputProps(computedInputProps, ref)} />\n\n <ui.label\n className={cx(\"ui-rating__item\", className)}\n __css={css}\n {...getItemProps({ ...computedItemProps, ...rest })}\n >\n <RatingIcon\n clipPath={\n fractionValue !== 1\n ? `inset(0 ${isActive ? 100 - fractionValue * 100 : 100}% 0 0)`\n : undefined\n }\n >\n {isFilled\n ? runIfFunc(filledIcon, groupValue)\n : runIfFunc(emptyIcon, groupValue)}\n </RatingIcon>\n </ui.label>\n </>\n )\n },\n)\n\ntype RatingIconProps = HTMLUIProps<\"div\">\n\nconst RatingIcon: FC<RatingIconProps> = ({ className, children, ...rest }) => {\n const { styles } = useRatingContext()\n\n const validChildren = getValidChildren(children)\n\n const cloneChildren = validChildren.map((child) =>\n cloneElement(child, {\n focusable: false,\n \"aria-hidden\": true,\n style: {\n maxWidth: \"1em\",\n maxHeight: \"1em\",\n },\n }),\n )\n\n const css: CSSUIObject = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...styles.icon,\n }\n\n return (\n <ui.div\n className={cx(\"ui-rating__item__icon\", className)}\n __css={css}\n {...rest}\n >\n {cloneChildren}\n </ui.div>\n )\n}\n\ntype StarIconProps = IconProps\n\nconst StarIcon: FC<StarIconProps> = ({ ...rest }) => {\n return (\n <Icon\n viewBox=\"0 0 24 24\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...rest}\n >\n <path d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\" />\n </Icon>\n )\n}\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport {\n createContext,\n cx,\n findChildren,\n getValidChildren,\n isEmpty,\n omitChildren,\n} from \"@yamada-ui/utils\"\nimport type { ReactNode } from \"react\"\nimport {\n StatHelperMessage,\n type StatHelperMessageProps,\n} from \"./stat-helper-message\"\nimport { StatIcon, type StatIconProps } from \"./stat-icon\"\nimport { StatLabel, type StatLabelProps } from \"./stat-label\"\nimport { StatNumber, type StatNumberProps } from \"./stat-number\"\n\ntype StatContext = Record<string, CSSUIObject>\n\nexport const [StatProvider, useStat] = createContext<StatContext>({\n name: \"StatContext\",\n errorMessage: `useStat returned is 'undefined'. Seems you forgot to wrap the components in \"<Stat />\"`,\n})\n\ntype StatOptions = {\n /**\n * The stat label to use.\n */\n label?: ReactNode\n /**\n * Props for stat label component.\n */\n labelProps?: StatLabelProps\n /**\n * The stat number to use.\n */\n number?: ReactNode\n /**\n * Props for stat number component.\n */\n numberProps?: StatNumberProps\n /**\n * The stat icon to use.\n */\n icon?: StatIconProps[\"type\"]\n /**\n * Props for stat icon component.\n */\n iconProps?: Omit<StatIconProps, \"type\">\n /**\n * The stat helper message to use.\n */\n helperMessage?: ReactNode\n /**\n * Props for stat helper message component.\n */\n helperMessageProps?: StatHelperMessageProps\n /**\n * If `true`, container will center its children regardless of their width.\n *\n * @default false\n */\n centerContent?: boolean\n}\n\nexport type StatProps = HTMLUIProps<\"dl\"> & ThemeProps<\"Stat\"> & StatOptions\n\n/**\n * `Stat` is used to show numbers and data in a box.\n *\n * @see Docs https://yamada-ui.com/components/data-display/stat\n */\nexport const Stat = forwardRef<StatProps, \"dl\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Stat\", props)\n const {\n className,\n label,\n labelProps,\n number,\n numberProps,\n icon,\n iconProps,\n helperMessage,\n helperMessageProps,\n centerContent = false,\n children,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const css: CSSUIObject = {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: centerContent ? \"center\" : \"flex-start\",\n ...styles.container,\n }\n\n const validChildren = getValidChildren(children)\n\n const [customStatLabel] = findChildren(validChildren, StatLabel)\n const [customStatNumber] = findChildren(validChildren, StatNumber)\n const [customStatHelperMessage] = findChildren(\n validChildren,\n StatHelperMessage,\n )\n\n const cloneChildren = !isEmpty(validChildren)\n ? omitChildren(validChildren, StatLabel, StatNumber, StatHelperMessage)\n : children\n\n return (\n <StatProvider value={styles}>\n <ui.dl\n ref={ref}\n className={cx(\"ui-stat\", className)}\n __css={css}\n {...rest}\n >\n {customStatLabel ?? <StatLabel {...labelProps}>{label}</StatLabel>}\n {customStatNumber ?? <StatNumber {...numberProps}>{number}</StatNumber>}\n {customStatHelperMessage ?? (\n <StatHelperMessage {...helperMessageProps}>\n {icon ? <StatIcon type={icon} {...iconProps} /> : null}\n {helperMessage}\n </StatHelperMessage>\n )}\n\n {cloneChildren}\n </ui.dl>\n </StatProvider>\n )\n})\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { forwardRef, ui } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useStat } from \"./stat\"\n\nexport type StatHelperMessageProps = HTMLUIProps<\"dd\">\n\nexport const StatHelperMessage = forwardRef<StatHelperMessageProps, \"dd\">(\n ({ className, ...rest }, ref) => {\n const styles = useStat()\n\n const css: CSSUIObject = { ...styles.helperMessage }\n\n return (\n <ui.dd\n ref={ref}\n className={cx(\"ui-stat__helper-message\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { CSSUIObject } from \"@yamada-ui/core\"\nimport { forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useStat } from \"./stat\"\n\ntype StatIconOptions = {\n /**\n * @default \"increase\"\n */\n type?: \"increase\" | \"decrease\"\n}\n\nexport type StatIconProps = IconProps & StatIconOptions\n\nexport const StatIcon = forwardRef<StatIconProps, \"svg\">(\n ({ className, type = \"increase\", ...rest }, ref) => {\n const styles = useStat()\n\n const css: CSSUIObject = { ...styles.icon }\n\n return (\n <Icon\n ref={ref}\n className={cx(\"ui-stat__icon\", className)}\n aria-label={type === \"increase\" ? \"Increased by\" : \"Decreased by\"}\n viewBox=\"0 0 24 24\"\n __css={css}\n {...rest}\n >\n {type === \"increase\" ? (\n <path\n fill=\"var(--ui-increase)\"\n d=\"M12.8,5.4c-0.377-0.504-1.223-0.504-1.6,0l-9,12c-0.228,0.303-0.264,0.708-0.095,1.047 C2.275,18.786,2.621,19,3,19h18c0.379,0,0.725-0.214,0.895-0.553c0.169-0.339,0.133-0.744-0.095-1.047L12.8,5.4z\"\n />\n ) : (\n <path\n fill=\"var(--ui-decrease)\"\n d=\"M21,5H3C2.621,5,2.275,5.214,2.105,5.553C1.937,5.892,1.973,6.297,2.2,6.6l9,12 c0.188,0.252,0.485,0.4,0.8,0.4s0.611-0.148,0.8-0.4l9-12c0.228-0.303,0.264-0.708,0.095-1.047C21.725,5.214,21.379,5,21,5z\"\n />\n )}\n </Icon>\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { forwardRef, ui } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useStat } from \"./stat\"\n\nexport type StatLabelProps = HTMLUIProps<\"dt\">\n\nexport const StatLabel = forwardRef<StatLabelProps, \"dt\">(\n ({ className, ...rest }, ref) => {\n const styles = useStat()\n\n const css: CSSUIObject = { ...styles.label }\n\n return (\n <ui.dt\n ref={ref}\n className={cx(\"ui-stat__label\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { forwardRef, ui } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useStat } from \"./stat\"\n\nexport type StatNumberProps = HTMLUIProps<\"dd\">\n\nexport const StatNumber = forwardRef<StatNumberProps, \"dd\">(\n ({ className, ...rest }, ref) => {\n const styles = useStat()\n\n const css: CSSUIObject = {\n ...styles.number,\n }\n\n return (\n <ui.dd\n ref={ref}\n className={cx(\"ui-stat__number\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ForwardedRef } from \"react\"\nimport { PanelGroup } from \"react-resizable-panels\"\nimport type { UseResizableProps } from \"./use-resizable\"\nimport { ResizableProvider, useResizable } from \"./use-resizable\"\n\ntype ResizableOptions = {\n /**\n * Ref for resizable container element.\n */\n containerRef?: ForwardedRef<HTMLDivElement>\n}\n\n/**\n * `Resizable` is accessible resizable panel groups and layouts with keyboard support.\n *\n * @see Docs https://yamada-ui.com/components/data-display/resizable\n */\nexport type ResizableProps = Omit<HTMLUIProps<\"div\">, \"direction\"> &\n ThemeProps<\"Resizable\"> &\n Omit<UseResizableProps, \"ref\"> &\n ResizableOptions\n\nexport const Resizable = forwardRef<ResizableProps, \"div\">(\n ({ direction = \"horizontal\", ...props }, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Resizable\", {\n direction,\n ...props,\n })\n const { className, children, containerRef, ...computedProps } =\n omitThemeProps(mergedProps)\n const { getContainerProps, getGroupProps, ...rest } = useResizable({\n ref,\n ...computedProps,\n })\n\n const css: CSSUIObject = { w: \"100%\", h: \"100%\", ...styles.container }\n\n return (\n <ResizableProvider value={{ styles, ...rest }}>\n <ui.div\n className={cx(\"ui-resizable\", className)}\n __css={css}\n {...getContainerProps({}, containerRef)}\n >\n <PanelGroup {...getGroupProps()}>{children}</PanelGroup>\n </ui.div>\n </ResizableProvider>\n )\n },\n)\n","import * as React from 'react';\nimport { compare } from 'stacking-order';\n\n// This module exists to work around Webpack issue https://github.com/webpack/webpack/issues/14814\n\n// eslint-disable-next-line no-restricted-imports\n\nconst {\n createElement,\n createContext,\n createRef,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState\n} = React;\n\n// `toString()` prevents bundlers from trying to `import { useId } from 'react'`\nconst useId = React[\"useId\".toString()];\n\nconst PanelGroupContext = createContext(null);\nPanelGroupContext.displayName = \"PanelGroupContext\";\n\nconst wrappedUseId = typeof useId === \"function\" ? useId : () => null;\nlet counter = 0;\nfunction useUniqueId(idFromParams = null) {\n const idFromUseId = wrappedUseId();\n const idRef = useRef(idFromParams || idFromUseId || null);\n if (idRef.current === null) {\n idRef.current = \"\" + counter++;\n }\n return idFromParams !== null && idFromParams !== void 0 ? idFromParams : idRef.current;\n}\n\nfunction PanelWithForwardedRef({\n children,\n className: classNameFromProps = \"\",\n collapsedSize,\n collapsible,\n defaultSize,\n forwardedRef,\n id: idFromProps,\n maxSize,\n minSize,\n onCollapse,\n onExpand,\n onResize,\n order,\n style: styleFromProps,\n tagName: Type = \"div\",\n ...rest\n}) {\n const context = useContext(PanelGroupContext);\n if (context === null) {\n throw Error(`Panel components must be rendered within a PanelGroup container`);\n }\n const {\n collapsePanel,\n expandPanel,\n getPanelSize,\n getPanelStyle,\n groupId,\n isPanelCollapsed,\n reevaluatePanelConstraints,\n registerPanel,\n resizePanel,\n unregisterPanel\n } = context;\n const panelId = useUniqueId(idFromProps);\n const panelDataRef = useRef({\n callbacks: {\n onCollapse,\n onExpand,\n onResize\n },\n constraints: {\n collapsedSize,\n collapsible,\n defaultSize,\n maxSize,\n minSize\n },\n id: panelId,\n idIsFromProps: idFromProps !== undefined,\n order\n });\n useRef({\n didLogMissingDefaultSizeWarning: false\n });\n useImperativeHandle(forwardedRef, () => ({\n collapse: () => {\n collapsePanel(panelDataRef.current);\n },\n expand: () => {\n expandPanel(panelDataRef.current);\n },\n getId() {\n return panelId;\n },\n getSize() {\n return getPanelSize(panelDataRef.current);\n },\n isCollapsed() {\n return isPanelCollapsed(panelDataRef.current);\n },\n isExpanded() {\n return !isPanelCollapsed(panelDataRef.current);\n },\n resize: size => {\n resizePanel(panelDataRef.current, size);\n }\n }), [collapsePanel, expandPanel, getPanelSize, isPanelCollapsed, panelId, resizePanel]);\n const style = getPanelStyle(panelDataRef.current, defaultSize);\n return createElement(Type, {\n ...rest,\n children,\n className: classNameFromProps,\n id: idFromProps,\n style: {\n ...style,\n ...styleFromProps\n },\n // CSS selectors\n \"data-panel\": \"\",\n \"data-panel-collapsible\": collapsible || undefined,\n \"data-panel-group-id\": groupId,\n \"data-panel-id\": panelId,\n \"data-panel-size\": parseFloat(\"\" + style.flexGrow).toFixed(1)\n });\n}\nconst Panel = forwardRef((props, ref) => createElement(PanelWithForwardedRef, {\n ...props,\n forwardedRef: ref\n}));\nPanelWithForwardedRef.displayName = \"Panel\";\nPanel.displayName = \"forwardRef(Panel)\";\n\nlet currentCursorStyle = null;\nlet styleElement = null;\nfunction getCursorStyle(state, constraintFlags) {\n if (constraintFlags) {\n const horizontalMin = (constraintFlags & EXCEEDED_HORIZONTAL_MIN) !== 0;\n const horizontalMax = (constraintFlags & EXCEEDED_HORIZONTAL_MAX) !== 0;\n const verticalMin = (constraintFlags & EXCEEDED_VERTICAL_MIN) !== 0;\n const verticalMax = (constraintFlags & EXCEEDED_VERTICAL_MAX) !== 0;\n if (horizontalMin) {\n if (verticalMin) {\n return \"se-resize\";\n } else if (verticalMax) {\n return \"ne-resize\";\n } else {\n return \"e-resize\";\n }\n } else if (horizontalMax) {\n if (verticalMin) {\n return \"sw-resize\";\n } else if (verticalMax) {\n return \"nw-resize\";\n } else {\n return \"w-resize\";\n }\n } else if (verticalMin) {\n return \"s-resize\";\n } else if (verticalMax) {\n return \"n-resize\";\n }\n }\n switch (state) {\n case \"horizontal\":\n return \"ew-resize\";\n case \"intersection\":\n return \"move\";\n case \"vertical\":\n return \"ns-resize\";\n }\n}\nfunction resetGlobalCursorStyle() {\n if (styleElement !== null) {\n document.head.removeChild(styleElement);\n currentCursorStyle = null;\n styleElement = null;\n }\n}\nfunction setGlobalCursorStyle(state, constraintFlags) {\n const style = getCursorStyle(state, constraintFlags);\n if (currentCursorStyle === style) {\n return;\n }\n currentCursorStyle = style;\n if (styleElement === null) {\n styleElement = document.createElement(\"style\");\n document.head.appendChild(styleElement);\n }\n styleElement.innerHTML = `*{cursor: ${style}!important;}`;\n}\n\nfunction isKeyDown(event) {\n return event.type === \"keydown\";\n}\nfunction isMouseEvent(event) {\n return event.type.startsWith(\"mouse\");\n}\nfunction isTouchEvent(event) {\n return event.type.startsWith(\"touch\");\n}\n\nfunction getResizeEventCoordinates(event) {\n if (isMouseEvent(event)) {\n return {\n x: event.pageX,\n y: event.pageY\n };\n } else if (isTouchEvent(event)) {\n const touch = event.touches[0];\n if (touch && touch.pageX && touch.pageY) {\n return {\n x: touch.pageX,\n y: touch.pageY\n };\n }\n }\n return {\n x: Infinity,\n y: Infinity\n };\n}\n\nfunction getInputType() {\n if (typeof matchMedia === \"function\") {\n return matchMedia(\"(pointer:coarse)\").matches ? \"coarse\" : \"fine\";\n }\n}\n\nfunction intersects(rectOne, rectTwo, strict) {\n if (strict) {\n return rectOne.x < rectTwo.x + rectTwo.width && rectOne.x + rectOne.width > rectTwo.x && rectOne.y < rectTwo.y + rectTwo.height && rectOne.y + rectOne.height > rectTwo.y;\n } else {\n return rectOne.x <= rectTwo.x + rectTwo.width && rectOne.x + rectOne.width >= rectTwo.x && rectOne.y <= rectTwo.y + rectTwo.height && rectOne.y + rectOne.height >= rectTwo.y;\n }\n}\n\nconst EXCEEDED_HORIZONTAL_MIN = 0b0001;\nconst EXCEEDED_HORIZONTAL_MAX = 0b0010;\nconst EXCEEDED_VERTICAL_MIN = 0b0100;\nconst EXCEEDED_VERTICAL_MAX = 0b1000;\nconst isCoarsePointer = getInputType() === \"coarse\";\nlet intersectingHandles = [];\nlet isPointerDown = false;\nlet ownerDocumentCounts = new Map();\nlet panelConstraintFlags = new Map();\nconst registeredResizeHandlers = new Set();\nfunction registerResizeHandle(resizeHandleId, element, direction, hitAreaMargins, setResizeHandlerState) {\n var _ownerDocumentCounts$;\n const {\n ownerDocument\n } = element;\n const data = {\n direction,\n element,\n hitAreaMargins,\n setResizeHandlerState\n };\n const count = (_ownerDocumentCounts$ = ownerDocumentCounts.get(ownerDocument)) !== null && _ownerDocumentCounts$ !== void 0 ? _ownerDocumentCounts$ : 0;\n ownerDocumentCounts.set(ownerDocument, count + 1);\n registeredResizeHandlers.add(data);\n updateListeners();\n return function unregisterResizeHandle() {\n var _ownerDocumentCounts$2;\n panelConstraintFlags.delete(resizeHandleId);\n registeredResizeHandlers.delete(data);\n const count = (_ownerDocumentCounts$2 = ownerDocumentCounts.get(ownerDocument)) !== null && _ownerDocumentCounts$2 !== void 0 ? _ownerDocumentCounts$2 : 1;\n ownerDocumentCounts.set(ownerDocument, count - 1);\n updateListeners();\n if (count === 1) {\n ownerDocumentCounts.delete(ownerDocument);\n }\n };\n}\nfunction handlePointerDown(event) {\n const {\n target\n } = event;\n const {\n x,\n y\n } = getResizeEventCoordinates(event);\n isPointerDown = true;\n recalculateIntersectingHandles({\n target,\n x,\n y\n });\n updateListeners();\n if (intersectingHandles.length > 0) {\n updateResizeHandlerStates(\"down\", event);\n event.preventDefault();\n }\n}\nfunction handlePointerMove(event) {\n const {\n x,\n y\n } = getResizeEventCoordinates(event);\n if (!isPointerDown) {\n const {\n target\n } = event;\n\n // Recalculate intersecting handles whenever the pointer moves, except if it has already been pressed\n // at that point, the handles may not move with the pointer (depending on constraints)\n // but the same set of active handles should be locked until the pointer is released\n recalculateIntersectingHandles({\n target,\n x,\n y\n });\n }\n updateResizeHandlerStates(\"move\", event);\n\n // Update cursor based on return value(s) from active handles\n updateCursor();\n if (intersectingHandles.length > 0) {\n event.preventDefault();\n }\n}\nfunction handlePointerUp(event) {\n const {\n target\n } = event;\n const {\n x,\n y\n } = getResizeEventCoordinates(event);\n panelConstraintFlags.clear();\n isPointerDown = false;\n if (intersectingHandles.length > 0) {\n event.preventDefault();\n }\n updateResizeHandlerStates(\"up\", event);\n recalculateIntersectingHandles({\n target,\n x,\n y\n });\n updateCursor();\n updateListeners();\n}\nfunction recalculateIntersectingHandles({\n target,\n x,\n y\n}) {\n intersectingHandles.splice(0);\n let targetElement = null;\n if (target instanceof HTMLElement) {\n targetElement = target;\n }\n registeredResizeHandlers.forEach(data => {\n const {\n element: dragHandleElement,\n hitAreaMargins\n } = data;\n const dragHandleRect = dragHandleElement.getBoundingClientRect();\n const {\n bottom,\n left,\n right,\n top\n } = dragHandleRect;\n const margin = isCoarsePointer ? hitAreaMargins.coarse : hitAreaMargins.fine;\n const eventIntersects = x >= left - margin && x <= right + margin && y >= top - margin && y <= bottom + margin;\n if (eventIntersects) {\n // TRICKY\n // We listen for pointers events at the root in order to support hit area margins\n // (determining when the pointer is close enough to an element to be considered a \"hit\")\n // Clicking on an element \"above\" a handle (e.g. a modal) should prevent a hit though\n // so at this point we need to compare stacking order of a potentially intersecting drag handle,\n // and the element that was actually clicked/touched\n if (targetElement !== null && dragHandleElement !== targetElement && !dragHandleElement.contains(targetElement) && !targetElement.contains(dragHandleElement) &&\n // Calculating stacking order has a cost, so we should avoid it if possible\n // That is why we only check potentially intersecting handles,\n // and why we skip if the event target is within the handle's DOM\n compare(targetElement, dragHandleElement) > 0) {\n // If the target is above the drag handle, then we also need to confirm they overlap\n // If they are beside each other (e.g. a panel and its drag handle) then the handle is still interactive\n //\n // It's not enough to compare only the target\n // The target might be a small element inside of a larger container\n // (For example, a SPAN or a DIV inside of a larger modal dialog)\n let currentElement = targetElement;\n let didIntersect = false;\n while (currentElement) {\n if (currentElement.contains(dragHandleElement)) {\n break;\n } else if (intersects(currentElement.getBoundingClientRect(), dragHandleRect, true)) {\n didIntersect = true;\n break;\n }\n currentElement = currentElement.parentElement;\n }\n if (didIntersect) {\n return;\n }\n }\n intersectingHandles.push(data);\n }\n });\n}\nfunction reportConstraintsViolation(resizeHandleId, flag) {\n panelConstraintFlags.set(resizeHandleId, flag);\n}\nfunction updateCursor() {\n let intersectsHorizontal = false;\n let intersectsVertical = false;\n intersectingHandles.forEach(data => {\n const {\n direction\n } = data;\n if (direction === \"horizontal\") {\n intersectsHorizontal = true;\n } else {\n intersectsVertical = true;\n }\n });\n let constraintFlags = 0;\n panelConstraintFlags.forEach(flag => {\n constraintFlags |= flag;\n });\n if (intersectsHorizontal && intersectsVertical) {\n setGlobalCursorStyle(\"intersection\", constraintFlags);\n } else if (intersectsHorizontal) {\n setGlobalCursorStyle(\"horizontal\", constraintFlags);\n } else if (intersectsVertical) {\n setGlobalCursorStyle(\"vertical\", constraintFlags);\n } else {\n resetGlobalCursorStyle();\n }\n}\nfunction updateListeners() {\n ownerDocumentCounts.forEach((_, ownerDocument) => {\n const {\n body\n } = ownerDocument;\n body.removeEventListener(\"contextmenu\", handlePointerUp);\n body.removeEventListener(\"mousedown\", handlePointerDown);\n body.removeEventListener(\"mouseleave\", handlePointerMove);\n body.removeEventListener(\"mousemove\", handlePointerMove);\n body.removeEventListener(\"touchmove\", handlePointerMove);\n body.removeEventListener(\"touchstart\", handlePointerDown);\n });\n window.removeEventListener(\"mouseup\", handlePointerUp);\n window.removeEventListener(\"touchcancel\", handlePointerUp);\n window.removeEventListener(\"touchend\", handlePointerUp);\n if (registerResizeHandle.length > 0) {\n if (isPointerDown) {\n if (intersectingHandles.length > 0) {\n ownerDocumentCounts.forEach((count, ownerDocument) => {\n const {\n body\n } = ownerDocument;\n if (count > 0) {\n body.addEventListener(\"contextmenu\", handlePointerUp);\n body.addEventListener(\"mouseleave\", handlePointerMove);\n body.addEventListener(\"mousemove\", handlePointerMove);\n body.addEventListener(\"touchmove\", handlePointerMove, {\n passive: false\n });\n }\n });\n }\n window.addEventListener(\"mouseup\", handlePointerUp);\n window.addEventListener(\"touchcancel\", handlePointerUp);\n window.addEventListener(\"touchend\", handlePointerUp);\n } else {\n ownerDocumentCounts.forEach((count, ownerDocument) => {\n const {\n body\n } = ownerDocument;\n if (count > 0) {\n body.addEventListener(\"mousedown\", handlePointerDown);\n body.addEventListener(\"mousemove\", handlePointerMove);\n body.addEventListener(\"touchmove\", handlePointerMove, {\n passive: false\n });\n body.addEventListener(\"touchstart\", handlePointerDown);\n }\n });\n }\n }\n}\nfunction updateResizeHandlerStates(action, event) {\n registeredResizeHandlers.forEach(data => {\n const {\n setResizeHandlerState\n } = data;\n const isActive = intersectingHandles.includes(data);\n setResizeHandlerState(action, isActive, event);\n });\n}\n\nfunction assert(expectedCondition, message = \"Assertion failed!\") {\n if (!expectedCondition) {\n console.error(message);\n throw Error(message);\n }\n}\n\nconst PRECISION = 10;\n\nfunction fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {\n actual = parseFloat(actual.toFixed(fractionDigits));\n expected = parseFloat(expected.toFixed(fractionDigits));\n const delta = actual - expected;\n if (delta === 0) {\n return 0;\n } else {\n return delta > 0 ? 1 : -1;\n }\n}\n\nfunction fuzzyNumbersEqual(actual, expected, fractionDigits) {\n return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;\n}\n\n// Panel size must be in percentages; pixel values should be pre-converted\nfunction resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex,\n size\n}) {\n const panelConstraints = panelConstraintsArray[panelIndex];\n assert(panelConstraints != null);\n let {\n collapsedSize = 0,\n collapsible,\n maxSize = 100,\n minSize = 0\n } = panelConstraints;\n if (fuzzyCompareNumbers(size, minSize) < 0) {\n if (collapsible) {\n // Collapsible panels should snap closed or open only once they cross the halfway point between collapsed and min size.\n const halfwayPoint = (collapsedSize + minSize) / 2;\n if (fuzzyCompareNumbers(size, halfwayPoint) < 0) {\n size = collapsedSize;\n } else {\n size = minSize;\n }\n } else {\n size = minSize;\n }\n }\n size = Math.min(maxSize, size);\n size = parseFloat(size.toFixed(PRECISION));\n return size;\n}\n\n// All units must be in percentages; pixel values should be pre-converted\nfunction adjustLayoutByDelta({\n delta,\n layout: prevLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n trigger\n}) {\n if (fuzzyNumbersEqual(delta, 0)) {\n return prevLayout;\n }\n const nextLayout = [...prevLayout];\n const [firstPivotIndex, secondPivotIndex] = pivotIndices;\n assert(firstPivotIndex != null);\n assert(secondPivotIndex != null);\n let deltaApplied = 0;\n\n //const DEBUG = [];\n //DEBUG.push(`adjustLayoutByDelta() ${prevLayout.join(\", \")}`);\n //DEBUG.push(` delta: ${delta}`);\n //DEBUG.push(` pivotIndices: ${pivotIndices.join(\", \")}`);\n //DEBUG.push(` trigger: ${trigger}`);\n //DEBUG.push(\"\");\n\n // A resizing panel affects the panels before or after it.\n //\n // A negative delta means the panel(s) immediately after the resize handle should grow/expand by decreasing its offset.\n // Other panels may also need to shrink/contract (and shift) to make room, depending on the min weights.\n //\n // A positive delta means the panel(s) immediately before the resize handle should \"expand\".\n // This is accomplished by shrinking/contracting (and shifting) one or more of the panels after the resize handle.\n\n {\n // If this is a resize triggered by a keyboard event, our logic for expanding/collapsing is different.\n // We no longer check the halfway threshold because this may prevent the panel from expanding at all.\n if (trigger === \"keyboard\") {\n {\n // Check if we should expand a collapsed panel\n const index = delta < 0 ? secondPivotIndex : firstPivotIndex;\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints);\n\n //DEBUG.push(`edge case check 1: ${index}`);\n //DEBUG.push(` -> collapsible? ${constraints.collapsible}`);\n if (panelConstraints.collapsible) {\n const prevSize = prevLayout[index];\n assert(prevSize != null);\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints);\n const {\n collapsedSize = 0,\n minSize = 0\n } = panelConstraints;\n if (fuzzyNumbersEqual(prevSize, collapsedSize)) {\n const localDelta = minSize - prevSize;\n //DEBUG.push(` -> expand delta: ${localDelta}`);\n\n if (fuzzyCompareNumbers(localDelta, Math.abs(delta)) > 0) {\n delta = delta < 0 ? 0 - localDelta : localDelta;\n //DEBUG.push(` -> delta: ${delta}`);\n }\n }\n }\n }\n\n {\n // Check if we should collapse a panel at its minimum size\n const index = delta < 0 ? firstPivotIndex : secondPivotIndex;\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints);\n const {\n collapsible\n } = panelConstraints;\n\n //DEBUG.push(`edge case check 2: ${index}`);\n //DEBUG.push(` -> collapsible? ${collapsible}`);\n if (collapsible) {\n const prevSize = prevLayout[index];\n assert(prevSize != null);\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints);\n const {\n collapsedSize = 0,\n minSize = 0\n } = panelConstraints;\n if (fuzzyNumbersEqual(prevSize, minSize)) {\n const localDelta = prevSize - collapsedSize;\n //DEBUG.push(` -> expand delta: ${localDelta}`);\n\n if (fuzzyCompareNumbers(localDelta, Math.abs(delta)) > 0) {\n delta = delta < 0 ? 0 - localDelta : localDelta;\n //DEBUG.push(` -> delta: ${delta}`);\n }\n }\n }\n }\n }\n //DEBUG.push(\"\");\n }\n\n {\n // Pre-calculate max available delta in the opposite direction of our pivot.\n // This will be the maximum amount we're allowed to expand/contract the panels in the primary direction.\n // If this amount is less than the requested delta, adjust the requested delta.\n // If this amount is greater than the requested delta, that's useful information too–\n // as an expanding panel might change from collapsed to min size.\n\n const increment = delta < 0 ? 1 : -1;\n let index = delta < 0 ? secondPivotIndex : firstPivotIndex;\n let maxAvailableDelta = 0;\n\n //DEBUG.push(\"pre calc...\");\n while (true) {\n const prevSize = prevLayout[index];\n assert(prevSize != null);\n const maxSafeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: index,\n size: 100\n });\n const delta = maxSafeSize - prevSize;\n //DEBUG.push(` ${index}: ${prevSize} -> ${maxSafeSize}`);\n\n maxAvailableDelta += delta;\n index += increment;\n if (index < 0 || index >= panelConstraintsArray.length) {\n break;\n }\n }\n\n //DEBUG.push(` -> max available delta: ${maxAvailableDelta}`);\n const minAbsDelta = Math.min(Math.abs(delta), Math.abs(maxAvailableDelta));\n delta = delta < 0 ? 0 - minAbsDelta : minAbsDelta;\n //DEBUG.push(` -> adjusted delta: ${delta}`);\n //DEBUG.push(\"\");\n }\n\n {\n // Delta added to a panel needs to be subtracted from other panels (within the constraints that those panels allow).\n\n const pivotIndex = delta < 0 ? firstPivotIndex : secondPivotIndex;\n let index = pivotIndex;\n while (index >= 0 && index < panelConstraintsArray.length) {\n const deltaRemaining = Math.abs(delta) - Math.abs(deltaApplied);\n const prevSize = prevLayout[index];\n assert(prevSize != null);\n const unsafeSize = prevSize - deltaRemaining;\n const safeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: index,\n size: unsafeSize\n });\n if (!fuzzyNumbersEqual(prevSize, safeSize)) {\n deltaApplied += prevSize - safeSize;\n nextLayout[index] = safeSize;\n if (deltaApplied.toPrecision(3).localeCompare(Math.abs(delta).toPrecision(3), undefined, {\n numeric: true\n }) >= 0) {\n break;\n }\n }\n if (delta < 0) {\n index--;\n } else {\n index++;\n }\n }\n }\n //DEBUG.push(`after 1: ${nextLayout.join(\", \")}`);\n //DEBUG.push(` deltaApplied: ${deltaApplied}`);\n //DEBUG.push(\"\");\n\n // If we were unable to resize any of the panels panels, return the previous state.\n // This will essentially bailout and ignore e.g. drags past a panel's boundaries\n if (fuzzyNumbersEqual(deltaApplied, 0)) {\n //console.log(DEBUG.join(\"\\n\"));\n return prevLayout;\n }\n {\n // Now distribute the applied delta to the panels in the other direction\n const pivotIndex = delta < 0 ? secondPivotIndex : firstPivotIndex;\n const prevSize = prevLayout[pivotIndex];\n assert(prevSize != null);\n const unsafeSize = prevSize + deltaApplied;\n const safeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: pivotIndex,\n size: unsafeSize\n });\n\n // Adjust the pivot panel before, but only by the amount that surrounding panels were able to shrink/contract.\n nextLayout[pivotIndex] = safeSize;\n\n // Edge case where expanding or contracting one panel caused another one to change collapsed state\n if (!fuzzyNumbersEqual(safeSize, unsafeSize)) {\n let deltaRemaining = unsafeSize - safeSize;\n const pivotIndex = delta < 0 ? secondPivotIndex : firstPivotIndex;\n let index = pivotIndex;\n while (index >= 0 && index < panelConstraintsArray.length) {\n const prevSize = nextLayout[index];\n assert(prevSize != null);\n const unsafeSize = prevSize + deltaRemaining;\n const safeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: index,\n size: unsafeSize\n });\n if (!fuzzyNumbersEqual(prevSize, safeSize)) {\n deltaRemaining -= safeSize - prevSize;\n nextLayout[index] = safeSize;\n }\n if (fuzzyNumbersEqual(deltaRemaining, 0)) {\n break;\n }\n if (delta > 0) {\n index--;\n } else {\n index++;\n }\n }\n }\n }\n //DEBUG.push(`after 2: ${nextLayout.join(\", \")}`);\n //DEBUG.push(` deltaApplied: ${deltaApplied}`);\n //DEBUG.push(\"\");\n\n const totalSize = nextLayout.reduce((total, size) => size + total, 0);\n //DEBUG.push(`total size: ${totalSize}`);\n //console.log(DEBUG.join(\"\\n\"));\n\n if (!fuzzyNumbersEqual(totalSize, 100)) {\n return prevLayout;\n }\n return nextLayout;\n}\n\nfunction getResizeHandleElementsForGroup(groupId, scope = document) {\n return Array.from(scope.querySelectorAll(`[data-panel-resize-handle-id][data-panel-group-id=\"${groupId}\"]`));\n}\n\nfunction getResizeHandleElementIndex(groupId, id, scope = document) {\n const handles = getResizeHandleElementsForGroup(groupId, scope);\n const index = handles.findIndex(handle => handle.getAttribute(\"data-panel-resize-handle-id\") === id);\n return index !== null && index !== void 0 ? index : null;\n}\n\nfunction determinePivotIndices(groupId, dragHandleId, panelGroupElement) {\n const index = getResizeHandleElementIndex(groupId, dragHandleId, panelGroupElement);\n return index != null ? [index, index + 1] : [-1, -1];\n}\n\nfunction getPanelGroupElement(id, rootElement = document) {\n var _dataset;\n //If the root element is the PanelGroup\n if (rootElement instanceof HTMLElement && (rootElement === null || rootElement === void 0 ? void 0 : (_dataset = rootElement.dataset) === null || _dataset === void 0 ? void 0 : _dataset.panelGroupId) == id) {\n return rootElement;\n }\n\n //Else query children\n const element = rootElement.querySelector(`[data-panel-group][data-panel-group-id=\"${id}\"]`);\n if (element) {\n return element;\n }\n return null;\n}\n\nfunction getResizeHandleElement(id, scope = document) {\n const element = scope.querySelector(`[data-panel-resize-handle-id=\"${id}\"]`);\n if (element) {\n return element;\n }\n return null;\n}\n\nfunction getResizeHandlePanelIds(groupId, handleId, panelsArray, scope = document) {\n var _panelsArray$index$id, _panelsArray$index, _panelsArray$id, _panelsArray;\n const handle = getResizeHandleElement(handleId, scope);\n const handles = getResizeHandleElementsForGroup(groupId, scope);\n const index = handle ? handles.indexOf(handle) : -1;\n const idBefore = (_panelsArray$index$id = (_panelsArray$index = panelsArray[index]) === null || _panelsArray$index === void 0 ? void 0 : _panelsArray$index.id) !== null && _panelsArray$index$id !== void 0 ? _panelsArray$index$id : null;\n const idAfter = (_panelsArray$id = (_panelsArray = panelsArray[index + 1]) === null || _panelsArray === void 0 ? void 0 : _panelsArray.id) !== null && _panelsArray$id !== void 0 ? _panelsArray$id : null;\n return [idBefore, idAfter];\n}\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nfunction useWindowSplitterPanelGroupBehavior({\n committedValuesRef,\n eagerValuesRef,\n groupId,\n layout,\n panelDataArray,\n panelGroupElement,\n setLayout\n}) {\n useRef({\n didWarnAboutMissingResizeHandle: false\n });\n useEffect(() => {\n if (!panelGroupElement) {\n return;\n }\n const eagerValues = eagerValuesRef.current;\n assert(eagerValues);\n const {\n panelDataArray\n } = eagerValues;\n const groupElement = getPanelGroupElement(groupId, panelGroupElement);\n assert(groupElement != null, `No group found for id \"${groupId}\"`);\n const handles = getResizeHandleElementsForGroup(groupId, panelGroupElement);\n assert(handles);\n const cleanupFunctions = handles.map(handle => {\n const handleId = handle.getAttribute(\"data-panel-resize-handle-id\");\n assert(handleId);\n const [idBefore, idAfter] = getResizeHandlePanelIds(groupId, handleId, panelDataArray, panelGroupElement);\n if (idBefore == null || idAfter == null) {\n return () => {};\n }\n const onKeyDown = event => {\n if (event.defaultPrevented) {\n return;\n }\n switch (event.key) {\n case \"Enter\":\n {\n event.preventDefault();\n const index = panelDataArray.findIndex(panelData => panelData.id === idBefore);\n if (index >= 0) {\n const panelData = panelDataArray[index];\n assert(panelData);\n const size = layout[index];\n const {\n collapsedSize = 0,\n collapsible,\n minSize = 0\n } = panelData.constraints;\n if (size != null && collapsible) {\n const nextLayout = adjustLayoutByDelta({\n delta: fuzzyNumbersEqual(size, collapsedSize) ? minSize - collapsedSize : collapsedSize - size,\n layout,\n panelConstraints: panelDataArray.map(panelData => panelData.constraints),\n pivotIndices: determinePivotIndices(groupId, handleId, panelGroupElement),\n trigger: \"keyboard\"\n });\n if (layout !== nextLayout) {\n setLayout(nextLayout);\n }\n }\n }\n break;\n }\n }\n };\n handle.addEventListener(\"keydown\", onKeyDown);\n return () => {\n handle.removeEventListener(\"keydown\", onKeyDown);\n };\n });\n return () => {\n cleanupFunctions.forEach(cleanupFunction => cleanupFunction());\n };\n }, [panelGroupElement, committedValuesRef, eagerValuesRef, groupId, layout, panelDataArray, setLayout]);\n}\n\nfunction areEqual(arrayA, arrayB) {\n if (arrayA.length !== arrayB.length) {\n return false;\n }\n for (let index = 0; index < arrayA.length; index++) {\n if (arrayA[index] !== arrayB[index]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getResizeEventCursorPosition(direction, event) {\n const isHorizontal = direction === \"horizontal\";\n const {\n x,\n y\n } = getResizeEventCoordinates(event);\n return isHorizontal ? x : y;\n}\n\nfunction calculateDragOffsetPercentage(event, dragHandleId, direction, initialDragState, panelGroupElement) {\n const isHorizontal = direction === \"horizontal\";\n const handleElement = getResizeHandleElement(dragHandleId, panelGroupElement);\n assert(handleElement);\n const groupId = handleElement.getAttribute(\"data-panel-group-id\");\n assert(groupId);\n let {\n initialCursorPosition\n } = initialDragState;\n const cursorPosition = getResizeEventCursorPosition(direction, event);\n const groupElement = getPanelGroupElement(groupId, panelGroupElement);\n assert(groupElement);\n const groupRect = groupElement.getBoundingClientRect();\n const groupSizeInPixels = isHorizontal ? groupRect.width : groupRect.height;\n const offsetPixels = cursorPosition - initialCursorPosition;\n const offsetPercentage = offsetPixels / groupSizeInPixels * 100;\n return offsetPercentage;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementX\nfunction calculateDeltaPercentage(event, dragHandleId, direction, initialDragState, keyboardResizeBy, panelGroupElement) {\n if (isKeyDown(event)) {\n const isHorizontal = direction === \"horizontal\";\n let delta = 0;\n if (event.shiftKey) {\n delta = 100;\n } else if (keyboardResizeBy != null) {\n delta = keyboardResizeBy;\n } else {\n delta = 10;\n }\n let movement = 0;\n switch (event.key) {\n case \"ArrowDown\":\n movement = isHorizontal ? 0 : delta;\n break;\n case \"ArrowLeft\":\n movement = isHorizontal ? -delta : 0;\n break;\n case \"ArrowRight\":\n movement = isHorizontal ? delta : 0;\n break;\n case \"ArrowUp\":\n movement = isHorizontal ? 0 : -delta;\n break;\n case \"End\":\n movement = 100;\n break;\n case \"Home\":\n movement = -100;\n break;\n }\n return movement;\n } else {\n if (initialDragState == null) {\n return 0;\n }\n return calculateDragOffsetPercentage(event, dragHandleId, direction, initialDragState, panelGroupElement);\n }\n}\n\n// Layout should be pre-converted into percentages\nfunction callPanelCallbacks(panelsArray, layout, panelIdToLastNotifiedSizeMap) {\n layout.forEach((size, index) => {\n const panelData = panelsArray[index];\n assert(panelData);\n const {\n callbacks,\n constraints,\n id: panelId\n } = panelData;\n const {\n collapsedSize = 0,\n collapsible\n } = constraints;\n const lastNotifiedSize = panelIdToLastNotifiedSizeMap[panelId];\n if (lastNotifiedSize == null || size !== lastNotifiedSize) {\n panelIdToLastNotifiedSizeMap[panelId] = size;\n const {\n onCollapse,\n onExpand,\n onResize\n } = callbacks;\n if (onResize) {\n onResize(size, lastNotifiedSize);\n }\n if (collapsible && (onCollapse || onExpand)) {\n if (onExpand && (lastNotifiedSize == null || lastNotifiedSize === collapsedSize) && size !== collapsedSize) {\n onExpand();\n }\n if (onCollapse && (lastNotifiedSize == null || lastNotifiedSize !== collapsedSize) && size === collapsedSize) {\n onCollapse();\n }\n }\n }\n });\n}\n\nfunction compareLayouts(a, b) {\n if (a.length !== b.length) {\n return false;\n } else {\n for (let index = 0; index < a.length; index++) {\n if (a[index] != b[index]) {\n return false;\n }\n }\n }\n return true;\n}\n\n// This method returns a number between 1 and 100 representing\n\n// the % of the group's overall space this panel should occupy.\nfunction computePanelFlexBoxStyle({\n defaultSize,\n dragState,\n layout,\n panelData,\n panelIndex,\n precision = 3\n}) {\n const size = layout[panelIndex];\n let flexGrow;\n if (size == null) {\n // Initial render (before panels have registered themselves)\n // In order to support server rendering, fall back to default size if provided\n flexGrow = defaultSize != undefined ? defaultSize.toPrecision(precision) : \"1\";\n } else if (panelData.length === 1) {\n // Special case: Single panel group should always fill full width/height\n flexGrow = \"1\";\n } else {\n flexGrow = size.toPrecision(precision);\n }\n return {\n flexBasis: 0,\n flexGrow,\n flexShrink: 1,\n // Without this, Panel sizes may be unintentionally overridden by their content\n overflow: \"hidden\",\n // Disable pointer events inside of a panel during resize\n // This avoid edge cases like nested iframes\n pointerEvents: dragState !== null ? \"none\" : undefined\n };\n}\n\nfunction debounce(callback, durationMs = 10) {\n let timeoutId = null;\n let callable = (...args) => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n callback(...args);\n }, durationMs);\n };\n return callable;\n}\n\n// PanelGroup might be rendering in a server-side environment where localStorage is not available\n// or on a browser with cookies/storage disabled.\n// In either case, this function avoids accessing localStorage until needed,\n// and avoids throwing user-visible errors.\nfunction initializeDefaultStorage(storageObject) {\n try {\n if (typeof localStorage !== \"undefined\") {\n // Bypass this check for future calls\n storageObject.getItem = name => {\n return localStorage.getItem(name);\n };\n storageObject.setItem = (name, value) => {\n localStorage.setItem(name, value);\n };\n } else {\n throw new Error(\"localStorage not supported in this environment\");\n }\n } catch (error) {\n console.error(error);\n storageObject.getItem = () => null;\n storageObject.setItem = () => {};\n }\n}\n\nfunction getPanelGroupKey(autoSaveId) {\n return `react-resizable-panels:${autoSaveId}`;\n}\n\n// Note that Panel ids might be user-provided (stable) or useId generated (non-deterministic)\n// so they should not be used as part of the serialization key.\n// Using the min/max size attributes should work well enough as a backup.\n// Pre-sorting by minSize allows remembering layouts even if panels are re-ordered/dragged.\nfunction getPanelKey(panels) {\n return panels.map(panel => {\n const {\n constraints,\n id,\n idIsFromProps,\n order\n } = panel;\n if (idIsFromProps) {\n return id;\n } else {\n return order ? `${order}:${JSON.stringify(constraints)}` : JSON.stringify(constraints);\n }\n }).sort((a, b) => a.localeCompare(b)).join(\",\");\n}\nfunction loadSerializedPanelGroupState(autoSaveId, storage) {\n try {\n const panelGroupKey = getPanelGroupKey(autoSaveId);\n const serialized = storage.getItem(panelGroupKey);\n if (serialized) {\n const parsed = JSON.parse(serialized);\n if (typeof parsed === \"object\" && parsed != null) {\n return parsed;\n }\n }\n } catch (error) {}\n return null;\n}\nfunction savePanelGroupState(autoSaveId, panels, panelSizesBeforeCollapse, sizes, storage) {\n var _loadSerializedPanelG2;\n const panelGroupKey = getPanelGroupKey(autoSaveId);\n const panelKey = getPanelKey(panels);\n const state = (_loadSerializedPanelG2 = loadSerializedPanelGroupState(autoSaveId, storage)) !== null && _loadSerializedPanelG2 !== void 0 ? _loadSerializedPanelG2 : {};\n state[panelKey] = {\n expandToSizes: Object.fromEntries(panelSizesBeforeCollapse.entries()),\n layout: sizes\n };\n try {\n storage.setItem(panelGroupKey, JSON.stringify(state));\n } catch (error) {\n console.error(error);\n }\n}\n\n// All units must be in percentages; pixel values should be pre-converted\nfunction validatePanelGroupLayout({\n layout: prevLayout,\n panelConstraints\n}) {\n const nextLayout = [...prevLayout];\n const nextLayoutTotalSize = nextLayout.reduce((accumulated, current) => accumulated + current, 0);\n\n // Validate layout expectations\n if (nextLayout.length !== panelConstraints.length) {\n throw Error(`Invalid ${panelConstraints.length} panel layout: ${nextLayout.map(size => `${size}%`).join(\", \")}`);\n } else if (!fuzzyNumbersEqual(nextLayoutTotalSize, 100)) {\n for (let index = 0; index < panelConstraints.length; index++) {\n const unsafeSize = nextLayout[index];\n assert(unsafeSize != null);\n const safeSize = 100 / nextLayoutTotalSize * unsafeSize;\n nextLayout[index] = safeSize;\n }\n }\n let remainingSize = 0;\n\n // First pass: Validate the proposed layout given each panel's constraints\n for (let index = 0; index < panelConstraints.length; index++) {\n const unsafeSize = nextLayout[index];\n assert(unsafeSize != null);\n const safeSize = resizePanel({\n panelConstraints,\n panelIndex: index,\n size: unsafeSize\n });\n if (unsafeSize != safeSize) {\n remainingSize += unsafeSize - safeSize;\n nextLayout[index] = safeSize;\n }\n }\n\n // If there is additional, left over space, assign it to any panel(s) that permits it\n // (It's not worth taking multiple additional passes to evenly distribute)\n if (!fuzzyNumbersEqual(remainingSize, 0)) {\n for (let index = 0; index < panelConstraints.length; index++) {\n const prevSize = nextLayout[index];\n assert(prevSize != null);\n const unsafeSize = prevSize + remainingSize;\n const safeSize = resizePanel({\n panelConstraints,\n panelIndex: index,\n size: unsafeSize\n });\n if (prevSize !== safeSize) {\n remainingSize -= safeSize - prevSize;\n nextLayout[index] = safeSize;\n\n // Once we've used up the remainder, bail\n if (fuzzyNumbersEqual(remainingSize, 0)) {\n break;\n }\n }\n }\n }\n return nextLayout;\n}\n\nconst LOCAL_STORAGE_DEBOUNCE_INTERVAL = 100;\nconst defaultStorage = {\n getItem: name => {\n initializeDefaultStorage(defaultStorage);\n return defaultStorage.getItem(name);\n },\n setItem: (name, value) => {\n initializeDefaultStorage(defaultStorage);\n defaultStorage.setItem(name, value);\n }\n};\nconst debounceMap = {};\nfunction PanelGroupWithForwardedRef({\n autoSaveId = null,\n children,\n className: classNameFromProps = \"\",\n direction,\n forwardedRef,\n id: idFromProps = null,\n onLayout = null,\n keyboardResizeBy = null,\n storage = defaultStorage,\n style: styleFromProps,\n tagName: Type = \"div\",\n ...rest\n}) {\n const groupId = useUniqueId(idFromProps);\n const panelGroupElementRef = useRef(null);\n const [dragState, setDragState] = useState(null);\n const [layout, setLayout] = useState([]);\n const panelIdToLastNotifiedSizeMapRef = useRef({});\n const panelSizeBeforeCollapseRef = useRef(new Map());\n const prevDeltaRef = useRef(0);\n const committedValuesRef = useRef({\n autoSaveId,\n direction,\n dragState,\n id: groupId,\n keyboardResizeBy,\n onLayout,\n storage\n });\n const eagerValuesRef = useRef({\n layout,\n panelDataArray: [],\n panelDataArrayChanged: false\n });\n useRef({\n didLogIdAndOrderWarning: false,\n didLogPanelConstraintsWarning: false,\n prevPanelIds: []\n });\n useImperativeHandle(forwardedRef, () => ({\n getId: () => committedValuesRef.current.id,\n getLayout: () => {\n const {\n layout\n } = eagerValuesRef.current;\n return layout;\n },\n setLayout: unsafeLayout => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n const safeLayout = validatePanelGroupLayout({\n layout: unsafeLayout,\n panelConstraints: panelDataArray.map(panelData => panelData.constraints)\n });\n if (!areEqual(prevLayout, safeLayout)) {\n setLayout(safeLayout);\n eagerValuesRef.current.layout = safeLayout;\n if (onLayout) {\n onLayout(safeLayout);\n }\n callPanelCallbacks(panelDataArray, safeLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n }), []);\n useWindowSplitterPanelGroupBehavior({\n committedValuesRef,\n eagerValuesRef,\n groupId,\n layout,\n panelDataArray: eagerValuesRef.current.panelDataArray,\n setLayout,\n panelGroupElement: panelGroupElementRef.current\n });\n useEffect(() => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n\n // If this panel has been configured to persist sizing information, save sizes to local storage.\n if (autoSaveId) {\n if (layout.length === 0 || layout.length !== panelDataArray.length) {\n return;\n }\n let debouncedSave = debounceMap[autoSaveId];\n\n // Limit the frequency of localStorage updates.\n if (debouncedSave == null) {\n debouncedSave = debounce(savePanelGroupState, LOCAL_STORAGE_DEBOUNCE_INTERVAL);\n debounceMap[autoSaveId] = debouncedSave;\n }\n\n // Clone mutable data before passing to the debounced function,\n // else we run the risk of saving an incorrect combination of mutable and immutable values to state.\n const clonedPanelDataArray = [...panelDataArray];\n const clonedPanelSizesBeforeCollapse = new Map(panelSizeBeforeCollapseRef.current);\n debouncedSave(autoSaveId, clonedPanelDataArray, clonedPanelSizesBeforeCollapse, layout, storage);\n }\n }, [autoSaveId, layout, storage]);\n\n // DEV warnings\n useEffect(() => {\n });\n\n // External APIs are safe to memoize via committed values ref\n const collapsePanel = useCallback(panelData => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n if (panelData.constraints.collapsible) {\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n const {\n collapsedSize = 0,\n panelSize,\n pivotIndices\n } = panelDataHelper(panelDataArray, panelData, prevLayout);\n assert(panelSize != null);\n if (panelSize !== collapsedSize) {\n // Store size before collapse;\n // This is the size that gets restored if the expand() API is used.\n panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);\n const isLastPanel = findPanelDataIndex(panelDataArray, panelData) === panelDataArray.length - 1;\n const delta = isLastPanel ? panelSize - collapsedSize : collapsedSize - panelSize;\n const nextLayout = adjustLayoutByDelta({\n delta,\n layout: prevLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n trigger: \"imperative-api\"\n });\n if (!compareLayouts(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n }\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const expandPanel = useCallback(panelData => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n if (panelData.constraints.collapsible) {\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n const {\n collapsedSize = 0,\n panelSize,\n minSize = 0,\n pivotIndices\n } = panelDataHelper(panelDataArray, panelData, prevLayout);\n if (panelSize === collapsedSize) {\n // Restore this panel to the size it was before it was collapsed, if possible.\n const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);\n const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;\n const isLastPanel = findPanelDataIndex(panelDataArray, panelData) === panelDataArray.length - 1;\n const delta = isLastPanel ? panelSize - baseSize : baseSize - panelSize;\n const nextLayout = adjustLayoutByDelta({\n delta,\n layout: prevLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n trigger: \"imperative-api\"\n });\n if (!compareLayouts(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n }\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const getPanelSize = useCallback(panelData => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n panelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n assert(panelSize != null);\n return panelSize;\n }, []);\n\n // This API should never read from committedValuesRef\n const getPanelStyle = useCallback((panelData, defaultSize) => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n const panelIndex = findPanelDataIndex(panelDataArray, panelData);\n return computePanelFlexBoxStyle({\n defaultSize,\n dragState,\n layout,\n panelData: panelDataArray,\n panelIndex\n });\n }, [dragState, layout]);\n\n // External APIs are safe to memoize via committed values ref\n const isPanelCollapsed = useCallback(panelData => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n collapsedSize = 0,\n collapsible,\n panelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n return collapsible === true && panelSize === collapsedSize;\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const isPanelExpanded = useCallback(panelData => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n collapsedSize = 0,\n collapsible,\n panelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n assert(panelSize != null);\n return !collapsible || panelSize > collapsedSize;\n }, []);\n const registerPanel = useCallback(panelData => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n panelDataArray.push(panelData);\n panelDataArray.sort((panelA, panelB) => {\n const orderA = panelA.order;\n const orderB = panelB.order;\n if (orderA == null && orderB == null) {\n return 0;\n } else if (orderA == null) {\n return -1;\n } else if (orderB == null) {\n return 1;\n } else {\n return orderA - orderB;\n }\n });\n eagerValuesRef.current.panelDataArrayChanged = true;\n }, []);\n const registerResizeHandle = useCallback(dragHandleId => {\n return function resizeHandler(event) {\n event.preventDefault();\n const panelGroupElement = panelGroupElementRef.current;\n if (!panelGroupElement) {\n return () => null;\n }\n const {\n direction,\n dragState,\n id: groupId,\n keyboardResizeBy,\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n initialLayout\n } = dragState !== null && dragState !== void 0 ? dragState : {};\n const pivotIndices = determinePivotIndices(groupId, dragHandleId, panelGroupElement);\n let delta = calculateDeltaPercentage(event, dragHandleId, direction, dragState, keyboardResizeBy, panelGroupElement);\n if (delta === 0) {\n return;\n }\n\n // Support RTL layouts\n const isHorizontal = direction === \"horizontal\";\n if (document.dir === \"rtl\" && isHorizontal) {\n delta = -delta;\n }\n const panelConstraints = panelDataArray.map(panelData => panelData.constraints);\n const nextLayout = adjustLayoutByDelta({\n delta,\n layout: initialLayout !== null && initialLayout !== void 0 ? initialLayout : prevLayout,\n panelConstraints,\n pivotIndices,\n trigger: isKeyDown(event) ? \"keyboard\" : \"mouse-or-touch\"\n });\n const layoutChanged = !compareLayouts(prevLayout, nextLayout);\n\n // Only update the cursor for layout changes triggered by touch/mouse events (not keyboard)\n // Update the cursor even if the layout hasn't changed (we may need to show an invalid cursor state)\n if (isMouseEvent(event) || isTouchEvent(event)) {\n // Watch for multiple subsequent deltas; this might occur for tiny cursor movements.\n // In this case, Panel sizes might not change–\n // but updating cursor in this scenario would cause a flicker.\n if (prevDeltaRef.current != delta) {\n prevDeltaRef.current = delta;\n if (!layoutChanged) {\n // If the pointer has moved too far to resize the panel any further, note this so we can update the cursor.\n // This mimics VS Code behavior.\n if (isHorizontal) {\n reportConstraintsViolation(dragHandleId, delta < 0 ? EXCEEDED_HORIZONTAL_MIN : EXCEEDED_HORIZONTAL_MAX);\n } else {\n reportConstraintsViolation(dragHandleId, delta < 0 ? EXCEEDED_VERTICAL_MIN : EXCEEDED_VERTICAL_MAX);\n }\n } else {\n reportConstraintsViolation(dragHandleId, 0);\n }\n }\n }\n if (layoutChanged) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n };\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const resizePanel = useCallback((panelData, unsafePanelSize) => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n const {\n panelSize,\n pivotIndices\n } = panelDataHelper(panelDataArray, panelData, prevLayout);\n assert(panelSize != null);\n const isLastPanel = findPanelDataIndex(panelDataArray, panelData) === panelDataArray.length - 1;\n const delta = isLastPanel ? panelSize - unsafePanelSize : unsafePanelSize - panelSize;\n const nextLayout = adjustLayoutByDelta({\n delta,\n layout: prevLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n trigger: \"imperative-api\"\n });\n if (!compareLayouts(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }, []);\n const reevaluatePanelConstraints = useCallback((panelData, prevConstraints) => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n collapsedSize: prevCollapsedSize = 0,\n collapsible: prevCollapsible\n } = prevConstraints;\n const {\n collapsedSize: nextCollapsedSize = 0,\n collapsible: nextCollapsible,\n maxSize: nextMaxSize = 100,\n minSize: nextMinSize = 0\n } = panelData.constraints;\n const {\n panelSize: prevPanelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n assert(prevPanelSize != null);\n if (prevCollapsible && nextCollapsible && prevPanelSize === prevCollapsedSize) {\n if (prevCollapsedSize !== nextCollapsedSize) {\n resizePanel(panelData, nextCollapsedSize);\n }\n } else if (prevPanelSize < nextMinSize) {\n resizePanel(panelData, nextMinSize);\n } else if (prevPanelSize > nextMaxSize) {\n resizePanel(panelData, nextMaxSize);\n }\n }, [resizePanel]);\n const startDragging = useCallback((dragHandleId, event) => {\n const {\n direction\n } = committedValuesRef.current;\n const {\n layout\n } = eagerValuesRef.current;\n if (!panelGroupElementRef.current) {\n return;\n }\n const handleElement = getResizeHandleElement(dragHandleId, panelGroupElementRef.current);\n assert(handleElement);\n const initialCursorPosition = getResizeEventCursorPosition(direction, event);\n setDragState({\n dragHandleId,\n dragHandleRect: handleElement.getBoundingClientRect(),\n initialCursorPosition,\n initialLayout: layout\n });\n }, []);\n const stopDragging = useCallback(() => {\n setDragState(null);\n }, []);\n const unregisterPanel = useCallback(panelData => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n const index = findPanelDataIndex(panelDataArray, panelData);\n if (index >= 0) {\n panelDataArray.splice(index, 1);\n\n // TRICKY\n // When a panel is removed from the group, we should delete the most recent prev-size entry for it.\n // If we don't do this, then a conditionally rendered panel might not call onResize when it's re-mounted.\n // Strict effects mode makes this tricky though because all panels will be registered, unregistered, then re-registered on mount.\n delete panelIdToLastNotifiedSizeMapRef.current[panelData.id];\n eagerValuesRef.current.panelDataArrayChanged = true;\n }\n }, []);\n const context = useMemo(() => ({\n collapsePanel,\n direction,\n dragState,\n expandPanel,\n getPanelSize,\n getPanelStyle,\n groupId,\n isPanelCollapsed,\n isPanelExpanded,\n reevaluatePanelConstraints,\n registerPanel,\n registerResizeHandle,\n resizePanel,\n startDragging,\n stopDragging,\n unregisterPanel,\n panelGroupElement: panelGroupElementRef.current\n }), [collapsePanel, dragState, direction, expandPanel, getPanelSize, getPanelStyle, groupId, isPanelCollapsed, isPanelExpanded, reevaluatePanelConstraints, registerPanel, registerResizeHandle, resizePanel, startDragging, stopDragging, unregisterPanel]);\n const style = {\n display: \"flex\",\n flexDirection: direction === \"horizontal\" ? \"row\" : \"column\",\n height: \"100%\",\n overflow: \"hidden\",\n width: \"100%\"\n };\n return createElement(PanelGroupContext.Provider, {\n value: context\n }, createElement(Type, {\n ...rest,\n children,\n className: classNameFromProps,\n id: idFromProps,\n ref: panelGroupElementRef,\n style: {\n ...style,\n ...styleFromProps\n },\n // CSS selectors\n \"data-panel-group\": \"\",\n \"data-panel-group-direction\": direction,\n \"data-panel-group-id\": groupId\n }));\n}\nconst PanelGroup = forwardRef((props, ref) => createElement(PanelGroupWithForwardedRef, {\n ...props,\n forwardedRef: ref\n}));\nPanelGroupWithForwardedRef.displayName = \"PanelGroup\";\nPanelGroup.displayName = \"forwardRef(PanelGroup)\";\nfunction findPanelDataIndex(panelDataArray, panelData) {\n return panelDataArray.findIndex(prevPanelData => prevPanelData === panelData || prevPanelData.id === panelData.id);\n}\nfunction panelDataHelper(panelDataArray, panelData, layout) {\n const panelIndex = findPanelDataIndex(panelDataArray, panelData);\n const isLastPanel = panelIndex === panelDataArray.length - 1;\n const pivotIndices = isLastPanel ? [panelIndex - 1, panelIndex] : [panelIndex, panelIndex + 1];\n const panelSize = layout[panelIndex];\n return {\n ...panelData.constraints,\n panelSize,\n pivotIndices\n };\n}\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nfunction useWindowSplitterResizeHandlerBehavior({\n disabled,\n handleId,\n resizeHandler,\n panelGroupElement\n}) {\n useEffect(() => {\n if (disabled || resizeHandler == null || panelGroupElement == null) {\n return;\n }\n const handleElement = getResizeHandleElement(handleId, panelGroupElement);\n if (handleElement == null) {\n return;\n }\n const onKeyDown = event => {\n if (event.defaultPrevented) {\n return;\n }\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowLeft\":\n case \"ArrowRight\":\n case \"ArrowUp\":\n case \"End\":\n case \"Home\":\n {\n event.preventDefault();\n resizeHandler(event);\n break;\n }\n case \"F6\":\n {\n event.preventDefault();\n const groupId = handleElement.getAttribute(\"data-panel-group-id\");\n assert(groupId);\n const handles = getResizeHandleElementsForGroup(groupId, panelGroupElement);\n const index = getResizeHandleElementIndex(groupId, handleId, panelGroupElement);\n assert(index !== null);\n const nextIndex = event.shiftKey ? index > 0 ? index - 1 : handles.length - 1 : index + 1 < handles.length ? index + 1 : 0;\n const nextHandle = handles[nextIndex];\n nextHandle.focus();\n break;\n }\n }\n };\n handleElement.addEventListener(\"keydown\", onKeyDown);\n return () => {\n handleElement.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [panelGroupElement, disabled, handleId, resizeHandler]);\n}\n\nfunction PanelResizeHandle({\n children = null,\n className: classNameFromProps = \"\",\n disabled = false,\n hitAreaMargins,\n id: idFromProps,\n onDragging,\n style: styleFromProps = {},\n tabIndex = 0,\n tagName: Type = \"div\",\n ...rest\n}) {\n const elementRef = useRef(null);\n\n // Use a ref to guard against users passing inline props\n const callbacksRef = useRef({\n onDragging\n });\n useEffect(() => {\n callbacksRef.current.onDragging = onDragging;\n });\n const panelGroupContext = useContext(PanelGroupContext);\n if (panelGroupContext === null) {\n throw Error(`PanelResizeHandle components must be rendered within a PanelGroup container`);\n }\n const {\n direction,\n groupId,\n registerResizeHandle: registerResizeHandleWithParentGroup,\n startDragging,\n stopDragging,\n panelGroupElement\n } = panelGroupContext;\n const resizeHandleId = useUniqueId(idFromProps);\n const [state, setState] = useState(\"inactive\");\n const [isFocused, setIsFocused] = useState(false);\n const [resizeHandler, setResizeHandler] = useState(null);\n const committedValuesRef = useRef({\n state\n });\n useEffect(() => {\n if (disabled) {\n setResizeHandler(null);\n } else {\n const resizeHandler = registerResizeHandleWithParentGroup(resizeHandleId);\n setResizeHandler(() => resizeHandler);\n }\n }, [disabled, resizeHandleId, registerResizeHandleWithParentGroup]);\n useEffect(() => {\n var _hitAreaMargins$coars, _hitAreaMargins$fine;\n if (disabled || resizeHandler == null) {\n return;\n }\n const element = elementRef.current;\n assert(element);\n const setResizeHandlerState = (action, isActive, event) => {\n if (isActive) {\n switch (action) {\n case \"down\":\n {\n setState(\"drag\");\n startDragging(resizeHandleId, event);\n const {\n onDragging\n } = callbacksRef.current;\n if (onDragging) {\n onDragging(true);\n }\n break;\n }\n case \"move\":\n {\n const {\n state\n } = committedValuesRef.current;\n if (state !== \"drag\") {\n setState(\"hover\");\n }\n resizeHandler(event);\n break;\n }\n case \"up\":\n {\n setState(\"hover\");\n stopDragging();\n const {\n onDragging\n } = callbacksRef.current;\n if (onDragging) {\n onDragging(false);\n }\n break;\n }\n }\n } else {\n setState(\"inactive\");\n }\n };\n return registerResizeHandle(resizeHandleId, element, direction, {\n // Coarse inputs (e.g. finger/touch)\n coarse: (_hitAreaMargins$coars = hitAreaMargins === null || hitAreaMargins === void 0 ? void 0 : hitAreaMargins.coarse) !== null && _hitAreaMargins$coars !== void 0 ? _hitAreaMargins$coars : 15,\n // Fine inputs (e.g. mouse)\n fine: (_hitAreaMargins$fine = hitAreaMargins === null || hitAreaMargins === void 0 ? void 0 : hitAreaMargins.fine) !== null && _hitAreaMargins$fine !== void 0 ? _hitAreaMargins$fine : 5\n }, setResizeHandlerState);\n }, [direction, disabled, hitAreaMargins, registerResizeHandleWithParentGroup, resizeHandleId, resizeHandler, startDragging, stopDragging]);\n useWindowSplitterResizeHandlerBehavior({\n disabled,\n handleId: resizeHandleId,\n resizeHandler,\n panelGroupElement\n });\n const style = {\n touchAction: \"none\",\n userSelect: \"none\"\n };\n return createElement(Type, {\n ...rest,\n children,\n className: classNameFromProps,\n id: idFromProps,\n onBlur: () => setIsFocused(false),\n onFocus: () => setIsFocused(true),\n ref: elementRef,\n role: \"separator\",\n style: {\n ...style,\n ...styleFromProps\n },\n tabIndex,\n // CSS selectors\n \"data-panel-group-direction\": direction,\n \"data-panel-group-id\": groupId,\n \"data-resize-handle\": \"\",\n \"data-resize-handle-active\": state === \"drag\" ? \"pointer\" : isFocused ? \"keyboard\" : undefined,\n \"data-resize-handle-state\": state,\n \"data-panel-resize-handle-enabled\": !disabled,\n \"data-panel-resize-handle-id\": resizeHandleId\n });\n}\nPanelResizeHandle.displayName = \"PanelResizeHandle\";\n\nfunction getPanelElement(id, scope = document) {\n const element = scope.querySelector(`[data-panel-id=\"${id}\"]`);\n if (element) {\n return element;\n }\n return null;\n}\n\nfunction getPanelElementsForGroup(groupId, scope = document) {\n return Array.from(scope.querySelectorAll(`[data-panel][data-panel-group-id=\"${groupId}\"]`));\n}\n\nfunction getIntersectingRectangle(rectOne, rectTwo, strict) {\n if (!intersects(rectOne, rectTwo, strict)) {\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n return {\n x: Math.max(rectOne.x, rectTwo.x),\n y: Math.max(rectOne.y, rectTwo.y),\n width: Math.min(rectOne.x + rectOne.width, rectTwo.x + rectTwo.width) - Math.max(rectOne.x, rectTwo.x),\n height: Math.min(rectOne.y + rectOne.height, rectTwo.y + rectTwo.height) - Math.max(rectOne.y, rectTwo.y)\n };\n}\n\nexport { Panel, PanelGroup, PanelResizeHandle, assert, getIntersectingRectangle, getPanelElement, getPanelElementsForGroup, getPanelGroupElement, getResizeHandleElement, getResizeHandleElementIndex, getResizeHandleElementsForGroup, getResizeHandlePanelIds, intersects };\n","import type { CSSUIObject, HTMLUIProps, UIPropGetter } from \"@yamada-ui/core\"\nimport type { PropGetter } from \"@yamada-ui/utils\"\nimport { createContext, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport type { ForwardedRef, RefObject } from \"react\"\nimport { useCallback, useEffect, useId, useState } from \"react\"\nimport {\n getPanelElement,\n getPanelGroupElement,\n getResizeHandleElement,\n} from \"react-resizable-panels\"\nimport type {\n PanelResizeHandleProps,\n PanelGroupProps,\n PanelProps,\n PanelGroupOnLayout,\n PanelGroupStorage,\n ImperativePanelHandle,\n} from \"react-resizable-panels\"\n\ntype GroupPropGetter = (props?: Partial<PanelGroupProps>) => PanelGroupProps\ntype ItemPropGetter = (props?: HTMLUIProps<\"div\"> & PanelProps) => PanelProps\ntype TriggerPropGetter = (\n props?: PanelResizeHandleProps,\n) => PanelResizeHandleProps\n\ntype As = { as?: keyof HTMLElementTagNameMap }\n\ntype ResizableGroupProps = Omit<\n Partial<PanelGroupProps>,\n \"id\" | \"tagName\" | \"children\"\n> &\n As\ntype ResizableItemProps = Omit<PanelProps, \"id\" | \"tagName\" | \"children\"> & As\ntype ResizableTriggerProps = Omit<\n PanelResizeHandleProps,\n \"id\" | \"tagName\" | \"children\"\n> &\n As\n\nexport type ResizableStorage = PanelGroupStorage\nexport type ResizableItemControl = ImperativePanelHandle\n\ntype ResizableContext = {\n isDisabled: boolean\n styles: Record<string, CSSUIObject>\n}\n\nexport const [ResizableProvider, useResizableContext] =\n createContext<ResizableContext>({\n name: \"ResizableContext\",\n errorMessage: `useResizableContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Resizable />\"`,\n })\n\nexport type UseResizableProps = {\n /**\n * id assigned to resizable element.\n */\n id?: string\n /**\n * Ref for resizable element.\n */\n ref?: ForwardedRef<HTMLElement>\n /**\n * The direction of the resizable.\n *\n * @default \"horizontal\"\n */\n direction?: \"horizontal\" | \"vertical\"\n /**\n * If `true`, the resizable trigger will be disabled.\n */\n isDisabled?: boolean\n /**\n * Unit to resize by keyboard operation.\n *\n * @default 10\n */\n keyboardStep?: number\n /**\n * Key of value saved in storage.\n * By default, it is saved to `local storage`.\n */\n storageKey?: string\n /**\n * A callback that gets and sets a value in custom storage.\n */\n storage?: PanelGroupStorage\n /**\n * The callback invoked when resizable items are resized.\n */\n onLayout?: PanelGroupOnLayout\n /**\n * Props for resizable component.\n */\n groupProps?: ResizableGroupProps\n}\n\nexport const useResizable = ({\n id,\n direction = \"horizontal\",\n storageKey,\n keyboardStep,\n isDisabled = false,\n onLayout,\n storage,\n ref,\n groupProps,\n ...rest\n}: UseResizableProps) => {\n id ??= useId()\n\n const getContainerProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({ ...props, ref, ...rest }),\n [rest],\n )\n\n const getGroupProps: GroupPropGetter = useCallback(\n (props = {}) => {\n const { as, ...rest } = groupProps ?? {}\n\n return {\n ...props,\n id,\n direction,\n tagName: as,\n autoSaveId: storageKey,\n keyboardResizeBy: keyboardStep,\n onLayout,\n storage,\n ...rest,\n }\n },\n [id, direction, groupProps, storageKey, keyboardStep, onLayout, storage],\n )\n\n useEffect(() => {\n if (!id) return\n\n const el = getPanelGroupElement(id)\n\n // @ts-expect-error\n if (ref) ref.current = el\n }, [ref, id])\n\n return {\n isDisabled,\n getContainerProps,\n getGroupProps,\n }\n}\n\nexport type UseResizableReturn = ReturnType<typeof useResizable>\n\ntype UseResizableItemOptions = {\n /**\n * id assigned to resizable item element.\n */\n id?: string\n /**\n * Ref for resizable item element.\n */\n ref?: ForwardedRef<HTMLElement>\n /**\n * If `true`, the resizable item can be collapsed.\n *\n * @default false\n */\n collapsible?: boolean\n /**\n * The collapsed size of the resizable item.\n */\n collapsedSize?: number\n /**\n * The initial size of the resizable item.\n */\n defaultSize?: number\n /**\n * The minimum allowed value of the resizable item.\n */\n minSize?: number\n /**\n * The maximum allowed value of the resizable item.\n */\n maxSize?: number\n /**\n * The callback invoked when resizable item are collapsed.\n */\n onCollapse?: () => void\n /**\n * The callback invoked when resizable item are expanded.\n */\n onExpand?: () => void\n /**\n * The callback invoked when resizable item are resized.\n */\n onResize?: (size: number, prevSize: number | undefined) => void\n /**\n * Order for the resizable item.\n */\n order?: number\n /**\n * Ref of the resizable item callback.\n */\n controlRef?: RefObject<ResizableItemControl>\n /**\n * Props for resizable item container element.\n */\n containerProps?: Omit<HTMLUIProps<\"div\">, \"as\"> & ResizableItemProps\n}\n\nexport type UseResizableItemProps = Omit<\n HTMLUIProps<\"div\">,\n keyof UseResizableItemOptions\n> &\n UseResizableItemOptions\n\nexport const useResizableItem = ({\n id,\n ref,\n collapsedSize,\n collapsible,\n defaultSize,\n maxSize,\n minSize,\n onCollapse,\n onExpand,\n onResize,\n order,\n controlRef,\n containerProps,\n ...innerProps\n}: UseResizableItemProps) => {\n id ??= useId()\n\n const getPanelProps: ItemPropGetter = useCallback(\n (props = {}) => {\n const { as, ...rest } = containerProps ?? {}\n\n return {\n ...props,\n ref: controlRef,\n id,\n tagName: as,\n collapsible,\n defaultSize,\n maxSize,\n minSize,\n collapsedSize,\n onCollapse,\n onExpand,\n onResize,\n order,\n ...rest,\n }\n },\n [\n id,\n controlRef,\n containerProps,\n collapsedSize,\n collapsible,\n defaultSize,\n maxSize,\n minSize,\n onCollapse,\n onExpand,\n onResize,\n order,\n ],\n )\n\n const getItemProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({ ...props, ref, ...innerProps }),\n [innerProps],\n )\n\n useEffect(() => {\n if (!id) return\n\n const el = getPanelElement(id)\n\n // @ts-expect-error\n if (ref) ref.current = el\n }, [ref, id])\n\n return {\n getPanelProps,\n getItemProps,\n }\n}\n\nexport type UseResizableItemReturn = ReturnType<typeof useResizableItem>\n\ntype UseResizableTriggerOptions = {\n /**\n * id assigned to resizable trigger element.\n */\n id?: string\n /**\n * Ref for resizable trigger element.\n */\n ref?: ForwardedRef<HTMLElement>\n /**\n * If `true`, the resizable trigger will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * The callback invoked when resizable trigger are dragged.\n */\n onDragging?: (isDragging: boolean) => void\n}\n\nexport type UseResizableTriggerProps = HTMLUIProps<\"div\"> &\n ResizableTriggerProps &\n UseResizableTriggerOptions\n\nexport const useResizableTrigger = ({\n id,\n ref,\n as,\n disabled,\n isDisabled,\n onDragging,\n ...rest\n}: UseResizableTriggerProps) => {\n id ??= useId()\n\n const { isDisabled: isGroupDisabled } = useResizableContext()\n const [isActive, setIsActive] = useState<boolean>(false)\n\n const trulyDisabled = disabled || isDisabled || isGroupDisabled\n\n const getTriggerProps: TriggerPropGetter = useCallback(\n (props = {}) => ({\n ...props,\n id,\n tagName: as,\n disabled: trulyDisabled,\n onDragging: handlerAll(onDragging, (isActive) => setIsActive(isActive)),\n ...rest,\n \"data-active\": dataAttr(isActive),\n style: {\n ...props.style,\n ...rest.style,\n ...(trulyDisabled ? { cursor: \"default\" } : {}),\n },\n }),\n [id, as, trulyDisabled, onDragging, rest, isActive],\n )\n\n const getIconProps: UIPropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n ref,\n \"data-active\": dataAttr(isActive),\n }),\n [isActive],\n )\n\n useEffect(() => {\n if (!id) return\n\n const el = getResizeHandleElement(id)\n\n // @ts-expect-error\n if (ref) ref.current = el\n }, [ref, id])\n\n return {\n getTriggerProps,\n getIconProps,\n }\n}\n\nexport type UseResizableTriggerReturn = ReturnType<typeof useResizableTrigger>\n","import type { CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ForwardedRef } from \"react\"\nimport { Panel } from \"react-resizable-panels\"\nimport type { UseResizableItemProps } from \"./use-resizable\"\nimport { useResizableContext, useResizableItem } from \"./use-resizable\"\n\nconst panelProps = new Set([\"order\"])\n\nconst UIPanel = ui(Panel, { disableStyleProp: (prop) => panelProps.has(prop) })\n\ntype ResizableItemOptions = {\n /**\n * Ref for resizable item inner element.\n */\n innerRef?: ForwardedRef<HTMLDivElement>\n}\n\nexport type ResizableItemProps = Omit<UseResizableItemProps, \"ref\"> &\n ResizableItemOptions\n\nexport const ResizableItem = forwardRef<ResizableItemProps, \"div\">(\n (\n {\n className,\n children,\n innerRef,\n w,\n width,\n minW,\n minWidth,\n maxW,\n maxWidth,\n h,\n height,\n minH,\n minHeight,\n maxH,\n maxHeight,\n boxSize,\n ...rest\n },\n ref,\n ) => {\n const { styles } = useResizableContext()\n const { getPanelProps, getItemProps } = useResizableItem({\n ref,\n ...rest,\n })\n\n const css: CSSUIObject = { boxSize: \"100%\", ...styles.item }\n\n return (\n <UIPanel\n {...getPanelProps({\n w,\n width,\n minW,\n minWidth,\n maxW,\n maxWidth,\n h,\n height,\n minH,\n minHeight,\n maxH,\n maxHeight,\n boxSize,\n })}\n >\n <ui.div\n className={cx(\"ui-resizable__item\", className)}\n __css={css}\n {...getItemProps({}, innerRef)}\n >\n {children}\n </ui.div>\n </UIPanel>\n )\n },\n)\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { IconProps } from \"@yamada-ui/icon\"\nimport { Icon } from \"@yamada-ui/icon\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { FC, ReactElement } from \"react\"\nimport { PanelResizeHandle } from \"react-resizable-panels\"\nimport type { UseResizableTriggerProps } from \"./use-resizable\"\nimport { useResizableContext, useResizableTrigger } from \"./use-resizable\"\n\ntype ResizableTriggerOptions = {\n /**\n * The resizable trigger icon to use.\n */\n icon?: ReactElement\n /**\n * Props for resizable trigger icon component.\n */\n iconProps?: HTMLUIProps<\"div\">\n}\n\nexport type ResizableTriggerProps = Omit<HTMLUIProps<\"div\">, \"as\"> &\n Omit<UseResizableTriggerProps, \"ref\"> &\n ResizableTriggerOptions\n\nexport const ResizableTrigger = forwardRef<ResizableTriggerProps, \"div\", false>(\n ({ className, icon, children, iconProps, ...rest }, ref) => {\n const { styles } = useResizableContext()\n const { getTriggerProps, getIconProps } = useResizableTrigger({\n ref,\n ...rest,\n })\n\n const css: CSSUIObject = { position: \"relative\", ...styles.trigger }\n\n return (\n <ui.div\n as={PanelResizeHandle}\n className={cx(\"ui-resizable__trigger\", className)}\n __css={css}\n {...getTriggerProps()}\n >\n {icon ? (\n <ui.div\n className=\"ui-resizable__trigger__icon\"\n __css={{\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"auto\",\n translateY: \"-50%\",\n translateX: \"-50%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n ...styles.icon,\n }}\n {...getIconProps(iconProps)}\n >\n {icon}\n </ui.div>\n ) : null}\n\n {children}\n </ui.div>\n )\n },\n)\n\nexport type ResizableTriggerIconProps = IconProps\n\nexport const ResizableTriggerIcon: FC<ResizableTriggerIconProps> = (rest) => {\n return (\n <Icon viewBox=\"0 0 23 39\" w=\"0.5rem\" h=\"1rem\" {...rest}>\n <path\n d=\"M 5 0 C 7.761 0 10 2.239 10 5 C 10 7.761 7.761 10 5 10 C 2.239 10 0 7.761 0 5 C 0 2.239 2.239 0 5 0 Z\"\n fill=\"currentColor\"\n />\n\n <path\n d=\"M 19 0 C 21.761 0 24 2.239 24 5 C 24 7.761 21.761 10 19 10 C 16.239 10 14 7.761 14 5 C 14 2.239 16.239 0 19 0 Z\"\n fill=\"currentColor\"\n />\n\n <path\n d=\"M 19 14 C 21.761 14 24 16.239 24 19 C 24 21.761 21.761 24 19 24 C 16.239 24 14 21.761 14 19 C 14 16.239 16.239 14 19 14 Z\"\n fill=\"currentColor\"\n />\n\n <path\n d=\"M 5 14 C 7.761 14 10 16.239 10 19 C 10 21.761 7.761 24 5 24 C 2.239 24 0 21.761 0 19 C 0 16.239 2.239 14 5 14 Z\"\n fill=\"currentColor\"\n />\n\n <path\n d=\"M 5 28 C 7.761 28 10 30.239 10 33 C 10 35.761 7.761 38 5 38 C 2.239 38 0 35.761 0 33 C 0 30.239 2.239 28 5 28 Z\"\n fill=\"currentColor\"\n />\n\n <path\n d=\"M 19 28 C 21.761 28 24 30.239 24 33 C 24 35.761 21.761 38 19 38 C 16.239 38 14 35.761 14 33 C 14 30.239 16.239 28 19 28 Z\"\n fill=\"currentColor\"\n />\n </Icon>\n )\n}\n","import type { AlertProps } from \"@yamada-ui/alert\"\nimport {\n Alert,\n AlertDescription,\n AlertIcon,\n AlertTitle,\n} from \"@yamada-ui/alert\"\nimport { CloseButton } from \"@yamada-ui/close-button\"\nimport type {\n CSSUIObject,\n CSSUIProps,\n SnackComponentProps,\n SnackConfigOptions,\n} from \"@yamada-ui/core\"\nimport { forwardRef, ui, useTheme } from \"@yamada-ui/core\"\nimport { cx, merge } from \"@yamada-ui/utils\"\nimport type { FC, ReactNode } from \"react\"\nimport { useCallback, useMemo, useState } from \"react\"\n\nconst createRender = (options: UseSnacksOptions): FC<SnackComponentProps> => {\n const { component } = options\n\n const Render: FC<SnackComponentProps> = (props) => {\n if (typeof component === \"function\") {\n return component({ ...props, ...options }) as JSX.Element\n } else {\n return <Snack {...props} {...options} />\n }\n }\n\n return Render\n}\n\nexport type Snack = {\n id: string | number\n duration: UseSnacksOptions[\"duration\"]\n status: UseSnacksOptions[\"status\"]\n message: (props: SnackComponentProps) => ReactNode\n onClose: () => void\n onCloseComplete?: () => void\n boxShadow?: CSSUIProps[\"boxShadow\"]\n style?: CSSUIObject\n}\n\nlet counter = 0\n\ntype SnackMethodsOptions = Omit<\n UseSnacksOptions,\n \"direction\" | \"limit\" | \"startIndex\"\n> &\n Partial<Pick<Snack, \"id\" | \"onCloseComplete\">>\n\nexport type UseSnacksOptions = SnackConfigOptions\n\n/**\n * `useSnacks` is a custom hook for controlling notifications used in forms and the like.\n *\n * @see Docs https://yamada-ui.com/hooks/use-snacks\n */\nexport const useSnacks = (defaultOptions: UseSnacksOptions = {}) => {\n const [items, setItems] = useState<Snack[]>([])\n const { theme } = useTheme()\n\n const themeOptions = useMemo(\n () => theme.__config.snacks?.options ?? {},\n [theme],\n )\n\n const computedOptions = useMemo(\n () => merge<UseSnacksOptions>(themeOptions, defaultOptions),\n [defaultOptions, themeOptions],\n )\n const { direction, startIndex, limit = 3 } = computedOptions\n\n const getOptions = useCallback(\n (options: SnackMethodsOptions) => merge(computedOptions, options),\n [computedOptions],\n )\n\n const snack = useMemo(() => {\n const methods = (options: SnackMethodsOptions = {}) => {\n options = getOptions(options)\n\n const message = createRender(options)\n\n counter += 1\n\n let {\n id = counter,\n duration,\n onCloseComplete,\n status,\n boxShadow,\n style,\n } = options\n\n const onClose = () =>\n setItems((prev) => prev.filter((child) => child.id !== id))\n\n const snack: Snack = {\n id,\n status,\n duration,\n message,\n onClose,\n onCloseComplete,\n boxShadow,\n style,\n }\n\n setItems((prev) => [\n ...prev.splice(-1 * ((limit ?? Infinity) - 1)),\n snack,\n ])\n\n return id\n }\n\n methods.update = (\n id: string | number,\n options: Omit<SnackMethodsOptions, \"id\">,\n ) => {\n options = getOptions(options)\n\n setItems((prev) =>\n prev.map((props) => {\n if (props.id === id) {\n return { ...props, ...options, message: createRender(options) }\n } else {\n return props\n }\n }),\n )\n }\n\n methods.closeAll = () => {\n setItems([])\n }\n\n methods.close = (id: string | number) => {\n setItems((prev) => prev.filter((props) => props.id !== id))\n }\n\n methods.isActive = (id: string | number) =>\n !!items.find((props) => props.id === id)\n\n return methods\n }, [items, limit, getOptions])\n\n const snacks = useMemo(\n () => ({ direction, startIndex, items }),\n [direction, startIndex, items],\n )\n\n return { snack, snacks }\n}\n\nexport type UseSnacksReturn = ReturnType<typeof useSnacks>\n\nexport type SnackProps = Omit<AlertProps, keyof UseSnacksOptions> &\n UseSnacksOptions & {\n index: number\n onClose?: () => void\n }\n\nconst defaultBoxShadow: CSSUIProps[\"boxShadow\"] = [\n \"0 -1px 3px 0 rgba(0, 0, 0, 0.1), 0 -1px 2px 0 rgba(0, 0, 0, 0.06), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)\",\n \"0px 0px 0px 1px rgba(0, 0, 0, 0.1), 0px -1px 2px rgba(0, 0, 0, 0.2), 0px 1px 2px rgba(0, 0, 0, 0.2)\",\n]\n\nconst Snack = forwardRef<SnackProps, \"div\">(\n (\n {\n variant = \"basic\",\n colorScheme,\n status,\n icon,\n title,\n description,\n isClosable = true,\n boxShadow = defaultBoxShadow,\n className,\n index,\n onClose,\n },\n ref,\n ) => {\n return (\n <Alert\n ref={ref}\n className={cx(\"ui-snack\", className)}\n status={status}\n variant={variant}\n colorScheme={colorScheme}\n alignItems=\"start\"\n boxShadow={index ? boxShadow : undefined}\n pe={isClosable ? 8 : undefined}\n >\n <AlertIcon\n variant={icon?.variant}\n className=\"ui-snack__icon\"\n {...(icon?.color ? { color: icon.color } : {})}\n >\n {icon?.children}\n </AlertIcon>\n\n <ui.div flex=\"1\">\n {title ? (\n <AlertTitle className=\"ui-snack__title\" lineClamp={1}>\n {title}\n </AlertTitle>\n ) : null}\n {description ? (\n <AlertDescription className=\"ui-snack__desc\" lineClamp={3}>\n {description}\n </AlertDescription>\n ) : null}\n </ui.div>\n\n {isClosable ? (\n <CloseButton\n className=\"ui-snack__close-button\"\n size=\"sm\"\n onClick={onClose}\n position=\"absolute\"\n top={2}\n right={2}\n />\n ) : null}\n </Alert>\n )\n },\n)\n","import type { CSSUIObject, ThemeConfig } from \"@yamada-ui/core\"\nimport { ui, forwardRef, useTheme } from \"@yamada-ui/core\"\nimport type { MotionProps, MotionVariants } from \"@yamada-ui/motion\"\nimport { AnimatePresence, Motion, useIsPresent } from \"@yamada-ui/motion\"\nimport { useTimeout } from \"@yamada-ui/use-timeout\"\nimport { useToken } from \"@yamada-ui/use-token\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { calc, cx, noop, runIfFunc, useUpdateEffect } from \"@yamada-ui/utils\"\nimport type { RefObject } from \"react\"\nimport { createRef, memo, useEffect, useMemo, useRef, useState } from \"react\"\nimport type { Snack, UseSnacksOptions, UseSnacksReturn } from \"./use-snacks\"\n\nconst defaultContainerVariants: MotionVariants = {\n initial: { padding: 0 },\n animate: ({ gutter }) => ({\n padding: `${gutter[0]} 0 ${gutter[1]}`,\n transition: { duration: 0.4 },\n }),\n exit: { padding: 0 },\n}\n\nconst defaultListVariants: MotionVariants = {\n initial: { opacity: 1, height: 0 },\n animate: ({ height }) => ({\n opacity: 1,\n height,\n transition: { duration: 0.4 },\n }),\n exit: { opacity: 0, height: 0 },\n}\n\ntype SnacksOptions = {\n snacks: UseSnacksReturn[\"snacks\"]\n /**\n * The variants of the snacks container.\n * Check the docs to see the variants of possible modifiers you can pass.\n *\n * @see Docs https://www.framer.com/motion/animation/#variants\n */\n containerVariants?: MotionVariants\n /**\n * The variants of the snacks list.\n * Check the docs to see the variants of possible modifiers you can pass.\n *\n * @see Docs https://www.framer.com/motion/animation/#variants\n */\n listVariants?: MotionVariants\n /**\n * Props for the snacks list element.\n */\n listProps?: MotionProps\n}\n\nexport type SnacksProps = Omit<MotionProps<\"div\">, \"direction\"> &\n SnacksOptions &\n Pick<UseSnacksOptions, \"direction\" | \"startIndex\"> &\n Pick<Required<ThemeConfig>[\"snacks\"], \"variants\" | \"gutter\" | \"negateMargin\">\n\nexport const Snacks = forwardRef<SnacksProps, \"div\">(\n (\n {\n className,\n snacks,\n containerVariants = defaultContainerVariants,\n listVariants = defaultListVariants,\n listProps,\n ...props\n },\n ref,\n ) => {\n const { items, ...computedSnacks } = snacks\n const count = items.length\n\n const refMap = useRef<Map<number, RefObject<HTMLLIElement>>>(new Map())\n const [height, setHeight] = useState<number>(0)\n const [isExist, setIsExist] = useState<boolean>(!!count)\n const { theme } = useTheme()\n const {\n variants,\n direction = \"top\",\n startIndex = 0,\n gutter = [0, 0],\n gap = \"fallback(4, 1rem)\",\n negateMargin = true,\n ...rest\n } = useMemo(\n () => ({ ...computedSnacks, ...theme.__config.snacks, ...props }),\n [computedSnacks, theme, props],\n )\n const top = useToken<string | number>(\"spaces\", useValue(gutter[0])) ?? 0\n const bottom = useToken<string | number>(\"spaces\", useValue(gutter[1])) ?? 0\n const negatedTop = calc(top).negate().toString()\n const negatedBottom = calc(bottom).negate().toString()\n const isShow = !!count || isExist\n\n const css: CSSUIObject = {\n w: \"100%\",\n var: [{ __prefix: \"ui\", name: \"space\", token: \"spaces\", value: gap }],\n margin: negateMargin ? `${negatedTop} 0 ${negatedBottom}` : undefined,\n }\n\n useEffect(() => {\n let height = 0\n\n if (!count) return\n\n const refs = [...refMap.current.values()].slice(0, count)\n\n for (const ref of refs) {\n if (!ref.current) continue\n\n let { offsetHeight, offsetTop } = ref.current\n\n offsetHeight += offsetTop\n\n if (offsetHeight > height) height = offsetHeight\n }\n\n setHeight(height)\n }, [count, direction])\n\n useUpdateEffect(() => {\n if (!!count) setIsExist(true)\n }, [count])\n\n return (\n <AnimatePresence initial={false}>\n {isShow ? (\n <Motion\n ref={ref}\n className={cx(\"ui-snacks\", className)}\n __css={css}\n variants={containerVariants}\n custom={{ gutter: [top, bottom] }}\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n {...rest}\n >\n <Motion\n as=\"ul\"\n className=\"ui-snacks__list\"\n variants={listVariants}\n custom={{ height }}\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n __css={{\n position: \"relative\",\n w: \"100%\",\n }}\n {...listProps}\n >\n <AnimatePresence\n onExitComplete={() => {\n if (!count) setIsExist(false)\n }}\n >\n {items.map((props, index) => {\n const ref = createRef<HTMLLIElement>()\n\n refMap.current.set(index, ref)\n\n return (\n <SnackComponent\n key={props.id}\n ref={ref}\n index={index}\n lastIndex={count - index - 1}\n startIndex={startIndex}\n variants={variants}\n direction={direction}\n {...props}\n />\n )\n })}\n </AnimatePresence>\n </Motion>\n </Motion>\n ) : null}\n </AnimatePresence>\n )\n },\n)\n\nconst defaultItemVariants: MotionVariants = {\n initial: ({ index, direction }) => ({\n opacity: 0,\n ...(index ? { y: (direction === \"top\" ? -1 : 1) * 16 } : {}),\n }),\n animate: ({ index }) => ({\n opacity: 1,\n y: 0,\n transition: {\n delay: !index ? 0.4 : 0,\n duration: 0.4,\n ease: [0.4, 0, 0.2, 1],\n },\n }),\n exit: {\n opacity: 0,\n transition: {\n duration: 0.2,\n ease: [0.4, 0, 1, 1],\n },\n },\n}\n\ntype SnackComponentOptions = {\n index: number\n lastIndex: number\n}\n\ntype SnackComponentProps = Snack &\n Pick<SnacksProps, \"variants\"> &\n Pick<Required<SnacksProps>, \"direction\" | \"startIndex\"> &\n SnackComponentOptions\n\nconst SnackComponent = memo(\n forwardRef<SnackComponentProps, \"li\">(\n (\n {\n index,\n lastIndex,\n startIndex,\n direction,\n variants = defaultItemVariants,\n duration = null,\n message,\n onClose: onCloseProp,\n onCloseComplete,\n style,\n },\n ref,\n ) => {\n const [delay, setDelay] = useState(duration)\n const isPresent = useIsPresent()\n\n const onClose = isPresent ? onCloseProp : noop\n const onMouseEnter = () => setDelay(null)\n const onMouseLeave = () => setDelay(duration)\n\n const zIndex = startIndex + index\n const space = `calc(var(--ui-space) * ${\n direction === \"top\" ? lastIndex : index\n })`\n\n const css: CSSUIObject = {\n position: \"absolute\",\n top: space,\n left: 0,\n right: 0,\n zIndex,\n w: \"100%\",\n maxW: \"100%\",\n ...style,\n }\n\n useUpdateEffect(() => {\n if (!isPresent) onCloseComplete?.()\n }, [isPresent])\n\n useUpdateEffect(() => {\n setDelay(duration)\n }, [duration])\n\n useTimeout(onClose, delay)\n\n return (\n <ui.li ref={ref} className=\"ui-snacks__item\" __css={css}>\n <Motion\n className=\"ui-snacks__item-inner\"\n layout\n variants={variants}\n custom={{ index, lastIndex, direction }}\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n onHoverStart={onMouseEnter}\n onHoverEnd={onMouseLeave}\n >\n {runIfFunc(message, { index, onClose })}\n </Motion>\n </ui.li>\n )\n },\n ),\n)\n\nSnackComponent.displayName = \"SnackComponent\"\n","import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { UseInfiniteScrollProps } from \"@yamada-ui/use-infinite-scroll\"\nimport { useInfiniteScroll } from \"@yamada-ui/use-infinite-scroll\"\nimport { cx, mergeRefs } from \"@yamada-ui/utils\"\nimport type { ReactNode } from \"react\"\nimport { useMemo, useRef } from \"react\"\n\ntype InfiniteScrollAreaOptions = {\n /**\n * Props for infinite scroll area trigger component.\n */\n triggerProps?: HTMLUIProps<\"div\">\n /**\n * The infinite scroll area loading to use.\n */\n loading?: ReactNode\n /**\n * The infinite scroll area finish to use.\n */\n finish?: ReactNode\n}\n\nexport type InfiniteScrollAreaProps = Omit<\n HTMLUIProps<\"div\">,\n keyof UseInfiniteScrollProps\n> &\n UseInfiniteScrollProps &\n InfiniteScrollAreaOptions\n\n/**\n * `InfiniteScrollArea` is for providing infinite scroll functionality.\n * This feature provides a smooth scrolling experience by automatically loading and displaying the next dataset when the user reaches the end of the page.\n *\n * @see Docs https://yamada-ui.com/components/data-display/infinite-scroll-area\n */\nexport const InfiniteScrollArea = forwardRef<InfiniteScrollAreaProps, \"div\">(\n (\n {\n rootRef: rootRefProp,\n orientation = \"vertical\",\n rootMargin,\n threshold,\n startIndex,\n onLoad,\n resetRef,\n indexRef,\n className,\n children,\n triggerProps,\n loading,\n finish,\n isDisabled,\n isReverse,\n initialLoad,\n ...rest\n },\n ref,\n ) => {\n const isVertical = orientation === \"vertical\"\n const rootRef = useRef<HTMLDivElement>(null)\n const { ref: triggerRef, isFinish } = useInfiniteScroll({\n orientation,\n rootRef: rootRefProp ?? rootRef,\n rootMargin,\n threshold,\n startIndex,\n onLoad,\n resetRef,\n indexRef,\n isDisabled,\n isReverse,\n initialLoad,\n })\n\n const css: CSSUIObject = useMemo(\n () => ({\n w: \"100%\",\n display: \"flex\",\n flexDirection: isVertical ? \"column\" : \"row\",\n gap: \"1rem\",\n }),\n [isVertical],\n )\n\n const hasFinish = !!finish\n const showTrigger = !isDisabled && (hasFinish || !isFinish)\n\n return (\n <ui.div\n ref={mergeRefs(rootRef, ref)}\n className={cx(\"ui-infinite-scroll-area\", className)}\n __css={css}\n {...rest}\n >\n {isReverse && showTrigger ? (\n <InfiniteScrollTrigger ref={triggerRef} {...triggerProps}>\n {isFinish ? finish : loading}\n </InfiniteScrollTrigger>\n ) : null}\n\n {children}\n\n {!isReverse && showTrigger ? (\n <InfiniteScrollTrigger ref={triggerRef} {...triggerProps}>\n {isFinish ? finish : loading}\n </InfiniteScrollTrigger>\n ) : null}\n </ui.div>\n )\n },\n)\n\ntype InfiniteScrollTrigger = HTMLUIProps<\"div\">\n\nconst InfiniteScrollTrigger = forwardRef<InfiniteScrollTrigger, \"div\">(\n ({ className, ...rest }, ref) => {\n const css: CSSUIObject = useMemo(\n () => ({\n w: \"100%\",\n flex: 1,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }),\n [],\n )\n\n return (\n <ui.div\n ref={ref}\n className={cx(\"ui-infinite-scroll-area__trigger\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import {\n assignRef,\n isElement,\n useCallbackRef,\n useUnmountEffect,\n} from \"@yamada-ui/utils\"\nimport type { RefObject } from \"react\"\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\n\nconst isScrollable = (el: HTMLElement, isVertical: boolean) => {\n const style = getComputedStyle(el)\n\n if ([\"auto\", \"scroll\", \"overlay\"].includes(style.overflow)) return true\n\n if (isVertical) {\n return [\"auto\", \"scroll\", \"overlay\"].includes(style.overflowY)\n } else {\n return [\"auto\", \"scroll\", \"overlay\"].includes(style.overflowX)\n }\n}\n\nconst onScroll = ({\n root,\n isVertical,\n isReverse,\n behavior,\n position,\n}: {\n root: HTMLElement | null | undefined\n isVertical: boolean\n isReverse?: boolean\n behavior?: ScrollBehavior\n position?: number\n}) => {\n let options: ScrollToOptions\n const el =\n isElement(root) && isScrollable(root, isVertical) ? root : document.body\n\n if (isVertical) {\n options = { top: position ?? (isReverse ? el.scrollHeight : 0), behavior }\n } else {\n options = { left: position ?? (isReverse ? el.scrollWidth : 0), behavior }\n }\n\n if (el === document.body) {\n window.scrollTo(options)\n } else {\n el.scrollTo(options)\n }\n}\n\nconst getScrollPosition = (\n root: HTMLElement | null | undefined,\n isVertical: boolean,\n) => {\n const el =\n isElement(root) && isScrollable(root, isVertical) ? root : document.body\n\n if (isVertical) {\n return el.scrollHeight - el.scrollTop\n } else {\n return el.scrollWidth - el.scrollLeft\n }\n}\n\nexport type UseInfiniteScrollProps = Omit<IntersectionObserverInit, \"root\"> & {\n /**\n * The orientation of the infinite scroll.\n *\n * @default 'vertical'\n */\n orientation?: \"vertical\" | \"horizontal\"\n /**\n * The element that is used as the viewport for checking visibility of the target.\n * Defaults to the browser viewport if not specified or if `null`.\n */\n rootRef?: RefObject<HTMLElement>\n /**\n * Margin around the root. Can have values similar to the CSS margin property,\n * e.g. \"10px 20px 30px 40px\" (top, right, bottom, left).\n */\n rootMargin?: string\n /**\n * Either a single number or an array of numbers which indicate at what percentage of the target's visibility the observer's callback should be executed.\n */\n threshold?: number | number[]\n /**\n * If set the `onLoad` function will start from the given index.\n * If `initialLoad` is `true`, index starts from `0`.\n *\n * @default 1\n */\n startIndex?: number\n /**\n * The callback invoked when trigger is intersect.\n */\n onLoad?: ({\n index,\n entry,\n finish,\n }: {\n index: number\n finish: () => void\n entry?: IntersectionObserverEntry\n }) => Promise<void>\n /**\n * Ref to a reset function.\n */\n resetRef?: RefObject<(index?: number, runScroll?: boolean) => void>\n /**\n * Ref to a reset index function.\n */\n indexRef?: RefObject<(index: number) => void>\n /**\n * If `true`, the infinite scroll is disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true`, reverse direction.\n *\n * @default false\n */\n isReverse?: boolean\n /**\n * If `true`, invoke `onLoad` function for the first time.\n *\n * @default false\n */\n initialLoad?: boolean\n /**\n * Determines whether scrolling is instant or animates smoothly.\n */\n behavior?: ScrollBehavior\n}\n\n/**\n * `useInfiniteScroll` is a custom hook for providing infinite scroll functionality.\n *\n * @see Docs https://yamada-ui.com/hooks/use-infinite-scroll\n */\nexport const useInfiniteScroll = <T extends HTMLElement = HTMLDivElement>({\n orientation = \"vertical\",\n rootRef,\n rootMargin,\n threshold,\n initialLoad = false,\n startIndex = initialLoad ? 0 : 1,\n onLoad: onLoadProp,\n resetRef,\n indexRef: indexRefProp,\n isDisabled = false,\n isReverse = false,\n behavior,\n}: UseInfiniteScrollProps = {}) => {\n const ref = useRef<T>(null)\n const indexRef = useRef<number>(startIndex)\n const processingRef = useRef<boolean>(false)\n const observerRef = useRef<IntersectionObserver | undefined>(undefined)\n const isMountedRef = useRef<boolean>(false)\n const prevScrollPosition = useRef<number>(0)\n const [isFinish, setIsFinish] = useState<boolean>(false)\n const onLoad = useCallbackRef(onLoadProp)\n const isVertical = orientation === \"vertical\"\n const options: IntersectionObserverInit = useMemo(() => {\n const root = rootRef?.current\n\n return { root, rootMargin, threshold }\n }, [rootMargin, rootRef, threshold])\n\n const onReset = useCallback(\n (index: number = 1, runScroll: boolean = true) => {\n indexRef.current = index\n\n setIsFinish(false)\n\n if (runScroll) {\n const root = rootRef?.current\n\n onScroll({ root, isVertical, isReverse, behavior })\n }\n\n if (isDisabled) return\n\n setTimeout(() => {\n const observer = observerRef.current\n const el = ref.current\n\n if (el) observer?.observe(el)\n })\n },\n [isDisabled, isReverse, rootRef, isVertical, behavior],\n )\n\n const onFinish = useCallback(() => {\n const observer = observerRef.current\n const el = ref.current\n\n if (el) observer?.unobserve(el)\n\n setIsFinish(true)\n }, [])\n\n const createObserver = useCallback(() => {\n const observer = new IntersectionObserver(async ([entry]) => {\n if (!entry.isIntersecting || processingRef.current) return\n\n const props = { index: indexRef.current, entry, finish: onFinish }\n\n processingRef.current = true\n\n const root = rootRef?.current\n\n if (isReverse) {\n prevScrollPosition.current = getScrollPosition(root, isVertical)\n }\n\n await onLoad?.(props)\n\n if (isReverse) {\n const position = prevScrollPosition.current\n\n onScroll({ root, isVertical, position })\n }\n\n indexRef.current += 1\n processingRef.current = false\n }, options)\n\n return observer\n }, [onFinish, onLoad, options, rootRef, isReverse, isVertical])\n\n useEffect(() => {\n const setupObserver = async () => {\n const el = ref.current\n const isMounted = isMountedRef.current\n const index = indexRef.current\n\n if (initialLoad && !isMounted) {\n processingRef.current = true\n\n await onLoad({ index, finish: onFinish })\n\n indexRef.current += 1\n processingRef.current = false\n }\n\n if (isDisabled) return\n\n observerRef.current = createObserver()\n\n const observer = observerRef.current\n\n if (isReverse && !isMounted) {\n const root = rootRef?.current\n\n onScroll({ root, isVertical, isReverse })\n\n isMountedRef.current = true\n }\n\n setTimeout(() => {\n if (el) observer.observe(el)\n })\n\n return () => {\n if (el) observer.unobserve(el)\n }\n }\n\n setupObserver()\n }, [\n createObserver,\n initialLoad,\n isDisabled,\n isReverse,\n isVertical,\n onFinish,\n onLoad,\n rootRef,\n ])\n\n useUnmountEffect(() => (isMountedRef.current = false))\n\n assignRef(resetRef, onReset)\n assignRef(indexRefProp, (index) => (indexRef.current = index))\n\n return { ref, isFinish }\n}\n","import type {\n CSSUIObject,\n ComponentArgs,\n HTMLUIProps,\n ThemeProps,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { Ripple, useRipple } from \"@yamada-ui/ripple\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport {\n cx,\n dataAttr,\n handlerAll,\n isArray,\n isUndefined,\n} from \"@yamada-ui/utils\"\nimport type { ForwardedRef, ReactElement, Ref } from \"react\"\nimport { useMemo } from \"react\"\nimport { useToggleGroup } from \"./toggle-group\"\n\ntype ToggleOptions<Y extends string | number = string> = {\n /**\n * The value of the toggle button.\n */\n value?: Y\n /**\n * If `true`, the toggle button will be selected.\n */\n isSelected?: boolean\n /**\n *If `true`, the toggle button will be initially selected.\n *\n @default false\n */\n defaultIsSelected?: boolean\n /**\n * The callback invoked when selected state changes.\n */\n onChange?: (isSelected: boolean) => void\n /**\n * The icon to be used in the button.\n */\n icon?: ReactElement\n /**\n * If true, the toggle button is full rounded. Else, it'll be slightly round.\n *\n * @default false\n */\n isRounded?: boolean\n /**\n * If `true`, the toggle button is represented as active.\n *\n * @default false\n */\n isActive?: boolean\n /**\n * If `true`, the toggle button will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true`, the toggle button will be readonly.\n *\n * @default false\n */\n isReadOnly?: boolean\n /**\n * If `true`, disable ripple effects when pressing a element.\n *\n * @default false\n */\n disableRipple?: boolean\n}\n\nexport type ToggleProps<Y extends string | number = string> = Omit<\n HTMLUIProps<\"button\">,\n \"onChange\"\n> &\n ThemeProps<\"Toggle\"> &\n ToggleOptions<Y>\n\n/**\n * `Toggle` is a two-state button that can be either on or off.\n *\n * @see Docs https://yamada-ui.com/components/forms/toggle\n */\nexport const Toggle = forwardRef(\n <Y extends string | number = string>(\n props: ToggleProps<Y>,\n ref: ForwardedRef<HTMLButtonElement>,\n ) => {\n const {\n value: groupValue,\n onChange: onChangeGroup,\n isControlled,\n ...group\n } = useToggleGroup() ?? {}\n const [styles, mergedProps] = useMultiComponentStyle(\"Toggle\", {\n ...group,\n ...props,\n })\n const {\n value,\n className,\n icon,\n isSelected: isSelectedProp,\n defaultIsSelected = false,\n onChange,\n isRounded,\n isActive,\n isDisabled = group?.isDisabled,\n isReadOnly = group?.isReadOnly,\n disableRipple,\n children,\n ...rest\n } = omitThemeProps(mergedProps)\n const [isSelected, setIsSelected] = useControllableState({\n value: isSelectedProp,\n defaultValue: defaultIsSelected,\n onChange,\n })\n\n if (isControlled && isUndefined(value)) {\n console.warn(`Toggle: value is required. Please set the value.`)\n }\n\n const isMulti = isArray(groupValue)\n const isIncluded = isMulti\n ? groupValue.includes(value ?? \"\")\n : value === groupValue\n const trulySelected = isControlled ? isIncluded : isSelected\n const { onPointerDown, ...rippleProps } = useRipple({\n ...rest,\n isDisabled: disableRipple || isDisabled,\n })\n\n const onClick = () => {\n setIsSelected((prev) => !prev)\n onChangeGroup?.(value)\n }\n\n const css: CSSUIObject = useMemo(\n () => ({\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"0.5rem\",\n appearance: \"none\",\n userSelect: \"none\",\n position: \"relative\",\n verticalAlign: \"middle\",\n overflow: \"hidden\",\n outline: \"none\",\n pointerEvents: isReadOnly ? \"none\" : \"auto\",\n ...styles,\n ...(isRounded ? { borderRadius: \"9999px\" } : {}),\n }),\n [isRounded, styles, isReadOnly],\n )\n\n return (\n <ui.button\n ref={ref}\n type=\"button\"\n tabIndex={isReadOnly ? -1 : 0}\n disabled={isDisabled}\n data-active={dataAttr(isActive)}\n data-selected={dataAttr(trulySelected)}\n data-readonly={dataAttr(isReadOnly)}\n aria-pressed={trulySelected}\n className={cx(\"ui-toggle\", className)}\n __css={css}\n {...rest}\n onClick={handlerAll(rest.onClick, onClick)}\n onPointerDown={onPointerDown}\n >\n {children || icon}\n\n <Ripple isDisabled={disableRipple || isDisabled} {...rippleProps} />\n </ui.button>\n )\n },\n) as {\n <Y extends string | number = string>(\n props: ToggleProps<Y> & { ref?: Ref<HTMLInputElement> },\n ): JSX.Element\n} & ComponentArgs\n\nToggle.displayName = \"Toggle\"\n","import type {\n CSSUIObject,\n ComponentArgs,\n HTMLUIProps,\n ThemeProps,\n} from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport {\n createContext,\n cx,\n isArray,\n isUndefined,\n useUpdateEffect,\n} from \"@yamada-ui/utils\"\nimport type { ForwardedRef, Ref } from \"react\"\nimport { useCallback, useMemo, useRef } from \"react\"\n\ntype ToggleGroupContext = ThemeProps<\"Button\"> & {\n isControlled: boolean\n value?: string | number | (string | number)[]\n onChange?: <M extends string | number = string>(value: M | undefined) => void\n isDisabled?: boolean\n isReadOnly?: boolean\n}\n\nconst [ToggleGroupProvider, useToggleGroup] = createContext<ToggleGroupContext>(\n {\n strict: false,\n name: \"ToggleGroupContext\",\n },\n)\n\nexport { useToggleGroup }\n\ntype ToggleGroupOptions<\n Y extends string | number | (string | number)[] = string,\n> = {\n /**\n * The value of the toggle button group.\n */\n value?: Y extends any[] ? Y : Y | undefined\n /**\n * The initial value of the toggle button group.\n */\n defaultValue?: Y extends any[] ? Y : Y | undefined\n /**\n * The callback fired when any children toggle button is selected or unselected.\n */\n onChange?: (value: Y extends Array<any> ? Y : Y | undefined) => void\n /**\n * The CSS `flex-direction` property.\n */\n direction?: CSSUIObject[\"flexDirection\"]\n /**\n * If `true`, all wrapped toggle button will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true`, all wrapped toggle button will be readonly.\n *\n * @default false\n */\n isReadOnly?: boolean\n}\n\n/**\n * `ToggleGroup` is a set of two-state buttons that can be toggled on or off.\n *\n * @see Docs https://yamada-ui.com/components/forms/toggle\n */\nexport type ToggleGroupProps<\n Y extends string | number | (string | number)[] = string,\n> = Omit<HTMLUIProps<\"div\">, \"direction\" | \"onChange\"> &\n ThemeProps<\"Toggle\"> &\n ToggleGroupOptions<Y>\n\nexport const ToggleGroup = forwardRef(\n <Y extends string | number | (string | number)[] = string>(\n {\n value: valueProp,\n defaultValue,\n onChange: onChangeProp,\n className,\n size,\n variant,\n direction: flexDirection,\n isDisabled,\n isReadOnly,\n ...rest\n }: ToggleGroupProps<Y>,\n ref: ForwardedRef<HTMLDivElement>,\n ) => {\n type Value = Y extends any[] ? Y : Y | undefined\n\n const [value, setValue] = useControllableState<Value>({\n value: valueProp,\n defaultValue,\n onChange: onChangeProp,\n })\n const isControlledRef = useRef<boolean>(!isUndefined(value))\n\n const onChange = useCallback(\n <M extends string | number = Y extends Array<any> ? Y[number] : Y>(\n value: M | undefined,\n ) => {\n if (isUndefined(value)) return\n\n setValue((prev) => {\n if (isArray(prev)) {\n const isIncluded = prev.includes(value)\n\n if (isIncluded) {\n return prev.filter((prevValue) => prevValue !== value) as Value\n } else {\n return [...prev, value] as Value\n }\n } else {\n if (value === (prev as string | number | undefined)) {\n return undefined as Value\n } else {\n return value as unknown as Value\n }\n }\n })\n },\n [setValue],\n )\n\n const css: CSSUIObject = {\n display: \"inline-flex\",\n gap: \"0.5rem\",\n flexDirection,\n }\n\n const values: ToggleGroupContext = useMemo(\n () => ({\n value,\n size,\n variant,\n isDisabled,\n isReadOnly,\n isControlled: isControlledRef.current,\n onChange,\n }),\n [value, size, variant, isDisabled, isReadOnly, onChange],\n )\n\n useUpdateEffect(() => {\n if (isUndefined(value)) return\n\n isControlledRef.current = true\n }, [valueProp])\n\n return (\n <ToggleGroupProvider value={values}>\n <ui.div\n ref={ref}\n role=\"group\"\n className={cx(\"ui-toggle-group\", className)}\n __css={css}\n {...rest}\n />\n </ToggleGroupProvider>\n )\n },\n) as {\n <Y extends string | number | (string | number)[] = string>(\n props: ToggleGroupProps<Y> & { ref?: Ref<HTMLDivElement> },\n ): JSX.Element\n} & ComponentArgs\n\nToggleGroup.displayName = \"ToggleGroup\"\n"],"mappings":"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","names":["exports","module","exports","module","copy","format","err","const","let","compare","Drawer","import_core","Accordion","AlphaSlider","Autocomplete","Avatar","Badge","Breadcrumb","Card","Checkbox","ColorPicker","ColorSelector","ColorSwatch","Container","Dialog","Divider","Drawer","Editable","FileInput","FormControl","Grid","Heading","HueSlider","Image","Indicator","Input","Kbd","Link","List","Mark","Menu","Modal","MultiAutocomplete","MultiSelect","NativeSelect","NativeTable","NumberInput","Pagination","PinInput","Popover","Progress","Radio","RangeSlider","Rating","Reorder","Resizable","SaturationSlider","ScrollArea","SegmentedControl","Select","Skeleton","Slider","Stat","Stepper","Switch","Tabs","Tag","Textarea","Toggle","Tooltip","import_core","import_core","get","lightValue","darkValue","import_utils","import_core","import_core","import_utils","import_jsx_runtime","import_core","import_jsx_runtime","import_core","import_jsx_runtime","import_core","import_jsx_runtime","import_core","import_jsx_runtime","import_core","import_jsx_runtime","import_core","import_jsx_runtime","import_jsx_runtime","import_core","import_utils","import_react","import_utils","import_react","import_jsx_runtime","initialState","start","message","duration","loadingCount","import_motion","import_core","import_utils","import_jsx_runtime","Icon","import_core","import_utils","import_react","import_jsx_runtime","Render","initialState","notices","id","notice","placements","placement","import_core","import_motion","import_portal","import_utils","import_react","import_jsx_runtime","top","bottom","right","left","import_utils","Alert","import_core","import_core","import_utils","get","import_core","import_core","import_core","import_core","import_utils","import_core","import_utils","get","import_core","import_utils","import_core","import_core","import_utils","get","import_utils","import_utils","import_core","CloseButton","import_core","import_core","import_core","import_core","import_core","import_utils","import_core","import_utils","import_core","import_utils","import_core","import_utils","import_core","import_utils","import_core","import_core","import_core","import_utils","import_core","import_utils","import_core","import_core","import_core","import_core","import_utils","import_core","import_core","import_core","import_utils","import_utils","import_utils","import_utils","get","import_utils","import_core","import_utils","import_core","import_utils","get","import_core","import_utils","get","Alert","CloseButton","import_utils","import_react","import_jsx_runtime","environment","import_jsx_runtime","config","environment","import_utils","merge","mergeObject","get","import_utils","import_utils","import_core","import_utils","import_react","import_utils","import_react","compare","max","values","import_utils","import_react","import_jsx_runtime","DescendantsContextProvider","useDescendants","Accordion","useDescendants","DescendantsContextProvider","import_core","import_utils","import_react","import_core","import_utils","import_jsx_runtime","import_core","import_transitions","import_utils","import_jsx_runtime","import_jsx_runtime","isOpen","onFocus","onClick","ref","import_core","import_utils","import_jsx_runtime","Badge","import_core","import_utils","import_react","import_jsx_runtime","Breadcrumb","import_core","import_utils","import_jsx_runtime","Card","import_core","import_core","import_utils","import_react","import_jsx_runtime","FormControl","onFocus","onBlur","import_motion","import_utils","import_react","modality","import_utils","import_react","import_core","import_core","import_jsx_runtime","import_core","import_core","import_utils","import_jsx_runtime","Grid","get","import_core","import_utils","import_react","import_jsx_runtime","Container","import_core","import_utils","import_react","import_jsx_runtime","ref","css","import_core","import_core","import_utils","import_react","import_jsx_runtime","Divider","import_core","import_utils","import_react","import_jsx_runtime","import_utils","import_react","import_jsx_runtime","props","value","props","Checkbox","import_jsx_runtime","isFocusVisible","onBlur","onFocus","props","_a","Checkbox","CheckIcon","import_core","import_utils","import_react","import_utils","import_react","onFocus","import_utils","import_react","import_jsx_runtime","onBlur","props","Editable","import_button","import_core","import_utils","import_react","import_jsx_runtime","onClick","import_core","import_core","import_utils","import_jsx_runtime","Heading","import_core","import_utils","import_jsx_runtime","import_utils","import_react","import_jsx_runtime","text","Mark","import_core","import_utils","import_react","import_utils","import_react","sizes","import_jsx_runtime","Image","import_core","import_utils","import_jsx_runtime","Input","import_core","import_core","import_utils","import_react","import_jsx_runtime","FileInput","onClick","value","import_utils","import_react","import_jsx_runtime","_a","_b","Input","FileInput","import_core","import_utils","import_jsx_runtime","placementStyles","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","Kbd","import_core","import_utils","import_jsx_runtime","Link","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","List","import_core","import_core","import_core","import_react","import_utils","import_react","animations","import_utils","import_react","mode","isElement","name","style","isElement","getComputedStyle","isElement","getComputedStyle","window","min","max","toPaddingObject","popperOffsets","min","max","offset","effect","popper","getComputedStyle","effect","window","hash","getComputedStyle","getComputedStyle","isElement","clippingParents","getComputedStyle","reference","isElement","popperOffsets","offset","placements","placement","placements","placement","_loop","_i","checks","offset","distance","popperOffsets","offset","min","max","fn","merged","defaultModifiers","createPopper","reference","popper","options","isElement","fn","state","effect","noopFn","import_use_value","import_utils","import_react","transforms","offset","flip","preventOverflow","reference","popper","import_utils","import_react","import_jsx_runtime","Popover","trigger","props","import_react","import_react","import_close_button","import_core","import_utils","import_jsx_runtime","onClick","import_core","import_motion","import_transitions","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_utils","import_react","import_jsx_runtime","DescendantsContextProvider","useDescendants","Menu","useDescendants","DescendantsContextProvider","Popover","import_core","import_utils","import_react","import_jsx_runtime","Button","import_core","import_utils","import_react","import_jsx_runtime","ev","import_core","import_utils","import_react","isValidElement","onClick","import_utils","import_react","import_jsx_runtime","onClick","onFocus","CheckIcon","import_core","import_utils","import_jsx_runtime","import_utils","import_react","import_jsx_runtime","onClick","import_core","import_utils","import_jsx_runtime","import_core","import_motion","import_portal","import_transitions","import_use_value","import_utils","import_react","import_react_remove_scroll","import_jsx_runtime","Modal","import_core","import_motion","import_transitions","import_utils","import_jsx_runtime","onClick","import_close_button","import_core","import_utils","import_jsx_runtime","onClick","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_button","import_core","import_utils","import_jsx_runtime","Dialog","Modal","import_core","import_utils","import_react","import_jsx_runtime","NativeSelect","props","items","label","i","import_core","import_utils","import_react","min","max","_a","_b","countDecimal","clamp","value","cast","import_utils","import_react","import_utils","import_react","import_jsx_runtime","min","max","onFocus","_a","onBlur","cast","counter","value","parse","isFocused","props","NumberInput","Stepper","import_core","import_utils","import_react","import_jsx_runtime","DescendantsContextProvider","useDescendants","useDescendant","PinInput","values","value","props","onChange","nextValue","index","onFocus","onBlur","import_core","import_utils","import_jsx_runtime","Progress","min","max","import_core","import_use_value","import_utils","import_jsx_runtime","min","max","import_core","import_utils","import_react","import_utils","import_react","import_jsx_runtime","isEvent","onFocus","props","value","props","Radio","import_jsx_runtime","isFocusVisible","onBlur","onFocus","props","Radio","import_core","import_motion","import_utils","import_react","import_jsx_runtime","DescendantsContextProvider","useDescendants","useDescendant","SegmentedControl","isFocusVisible","onFocus","onBlur","props","ref","value","import_core","import_portal","import_utils","import_core","import_utils","import_react","import_core","import_utils","import_react","import_utils","import_react","isEmpty","selectedValues","value","onClick","onFocus","onBlur","_a","props","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_jsx_runtime","Select","props","items","label","i","isEmpty","Popover","import_core","import_portal","import_utils","import_react","import_jsx_runtime","MultiSelect","value","props","items","label","i","isEmpty","Popover","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","CheckIcon","import_core","import_react","import_utils","runNextFrame","isProcessing","import_react","handlers","info","timestamp","ev","end","import_utils","import_react","sizes","count","import_utils","import_react","import_jsx_runtime","min","max","isInteractive","value","step","bottom","left","focusThumbOnChange","props","Slider","import_core","import_utils","import_react","import_jsx_runtime","min","max","isInteractive","values","distance","bottom","left","id","valueBounds","step","props","RangeSlider","import_core","import_motion","import_utils","import_react","import_jsx_runtime","Switch","import_core","import_utils","import_react","import_jsx_runtime","DescendantsContextProvider","useDescendants","Tabs","useDescendants","DescendantsContextProvider","import_core","import_utils","import_react","import_jsx_runtime","import_core","import_motion","import_utils","import_jsx_runtime","min","max","import_utils","import_react","trigger","import_utils","import_jsx_runtime","onFocus","import_core","import_utils","import_react","import_jsx_runtime","import_core","import_utils","import_react","import_jsx_runtime","mode","import_core","import_utils","import_react","import_jsx_runtime","Tag","CloseButton","CloseIcon","import_core","import_utils","import_react","import_utils","import_react","import_jsx_runtime","Textarea","import_core","import_motion","import_portal","import_transitions","import_utils","import_react","import_jsx_runtime","Tooltip","offset","onClick","props","ref","trigger","import_core","import_utils","import_react","breakpoints","breakpoint","import_utils","import_react","import_core","import_utils","import_react","import_jsx_runtime","ScrollArea","isSafari","onScroll","import_core","import_portal","import_utils","import_core","import_utils","import_react","import_core","import_utils","import_react","import_jsx_runtime","defaultFormat","items","isTargetOption","label","value","props","i","isEmpty","id","index","isHit","isFocused","enabledValues","selectedValues","node","onClick","onFocus","onBlur","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_jsx_runtime","Autocomplete","isEmpty","Popover","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","CheckIcon","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_portal","import_utils","import_react","import_jsx_runtime","MultiAutocomplete","isEmpty","Popover","label","value","import_core","import_utils","import_react","import_jsx_runtime","import_core","import_jsx_runtime","defaultFormat","import_jsx_runtime","Avatar","import_core","import_utils","import_react","import_jsx_runtime","max","import_core","import_utils","import_jsx_runtime","import_core","import_motion","import_utils","import_react","import_jsx_runtime","Reorder","values","props","import_core","import_motion","import_utils","import_react","import_jsx_runtime","x","y","import_core","import_utils","import_jsx_runtime","import_core","import_use_value","import_utils","import_react","import_core","import_utils","import_jsx_runtime","import_use_value","import_utils","import_react","start","end","page","import_jsx_runtime","import_jsx_runtime","Pagination","import_core","import_react","import_use_value","import_utils","import_jsx_runtime","Skeleton","animation","import_core","import_utils","import_jsx_runtime","Skeleton","import_core","import_use_value","import_utils","import_jsx_runtime","Skeleton","import_core","import_utils","import_react","import_utils","import_react","import_jsx_runtime","Stepper","steps","rest","import_react","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","CheckIcon","import_core","import_utils","import_jsx_runtime","NativeTable","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_use_value","import_utils","import_react","import_jsx_runtime","offset","Indicator","import_react","import_react","DEFAULT_OPTIONS","initialState","import_utils","import_react","import_utils","import_react","import_utils","import_react","getWindow","value","query","mql","import_utils","import_react","hasCopied","copy","import_core","import_utils","import_core","import_utils","import_button","import_core","import_utils","import_utils","import_react","import_utils","import_react","h","s","a","channels","value","v","props","import_jsx_runtime","import_core","import_utils","import_core","import_utils","import_utils","import_react","min","max","step","left","value","focusThumbOnChange","isInteractive","props","import_jsx_runtime","min","max","AlphaSlider","props","import_core","import_utils","import_jsx_runtime","defaultOverlays","min","max","HueSlider","props","import_jsx_runtime","HueSlider","AlphaSlider","import_core","import_utils","import_jsx_runtime","defaultOverlays","ColorSwatch","props","import_jsx_runtime","ColorSwatch","import_core","import_utils","import_react","import_jsx_runtime","min","max","Input","import_core","import_utils","import_jsx_runtime","ColorSwatch","import_core","import_utils","import_utils","import_react","defaultOverlays","step","bottom","left","s","v","value","h","focusThumbOnChange","isInteractive","props","import_jsx_runtime","SaturationSlider","props","import_jsx_runtime","ColorSelector","SaturationSlider","import_core","import_portal","import_utils","import_react","import_core","import_utils","import_react","value","_a","import_jsx_runtime","ColorPicker","Popover","ColorSelector","ColorSwatch","import_core","import_utils","import_utils","import_react","import_core","import_motion","import_utils","import_core","import_utils","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","left","hoveredValue","value","roundedValue","props","isFocusVisible","onBlur","import_jsx_runtime","Rating","import_core","import_utils","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_jsx_runtime","Stat","import_core","import_utils","createElement","createContext","createRef","forwardRef","useCallback","useContext","useEffect","useLayoutEffect","useMemo","useRef","useState","useId","counter","order","resizePanel","count","bottom","left","right","top","trigger","panelConstraints","delta","pivotIndex","prevSize","unsafeSize","safeSize","panelDataArray","panelData","debounce","sizes","layout","onLayout","registerResizeHandle","direction","dragState","groupId","keyboardResizeBy","resizeHandler","onDragging","state","import_utils","import_react","ref","rest","order","isActive","import_jsx_runtime","Resizable","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_close_button","import_core","import_utils","import_react","import_jsx_runtime","createRender","Render","counter","snack","import_core","import_motion","import_use_value","import_utils","import_react","import_jsx_runtime","top","bottom","height","ref","props","import_core","import_utils","import_react","import_utils","import_react","import_jsx_runtime","import_core","import_utils","import_react","import_core","import_utils","import_react","import_jsx_runtime","value","import_jsx_runtime","Toggle","onClick","import_transitions","import_utils","import_react","import_jsx_runtime","Drawer","Modal"]}
1
+ {"version":3,"sources":["../src/drawer.tsx","../src/modal.tsx","../src/modal-overlay.tsx","../src/modal-close-button.tsx","../src/modal-header.tsx","../src/modal-body.tsx","../src/modal-footer.tsx","../src/dialog.tsx"],"sourcesContent":["import type { CSSUIObject, HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport type { MotionPanInfo } from \"@yamada-ui/motion\"\nimport type { SlideProps } from \"@yamada-ui/transitions\"\nimport { Slide } from \"@yamada-ui/transitions\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport {\n createContext,\n getValidChildren,\n findChildren,\n cx,\n omitObject,\n isArray,\n} from \"@yamada-ui/utils\"\nimport type { FC } from \"react\"\nimport { useCallback, useMemo } from \"react\"\nimport { useModal } from \"./modal\"\nimport type {\n ModalProps,\n ModalOverlayProps,\n ModalCloseButtonProps,\n ModalHeaderProps,\n ModalBodyProps,\n ModalFooterProps,\n} from \"./\"\nimport {\n Modal,\n ModalOverlay,\n ModalCloseButton,\n ModalHeader,\n ModalBody,\n ModalFooter,\n} from \"./\"\n\ntype DrawerOptions = {\n /**\n * The placement of the drawer.\n *\n * @default 'right'\n */\n placement?: SlideProps[\"placement\"]\n /**\n * If `true` and drawer's placement is `top` or `bottom`, the drawer will occupy the viewport height (100dvh).\n */\n isFullHeight?: boolean\n /**\n * If `true`, then the drawer will close on drag.\n *\n * @default false\n */\n closeOnDrag?: boolean\n /**\n * If `true`, display the drag bar when `closeOnDrag` is `true`.\n *\n * @default true\n */\n withDragBar?: boolean\n /**\n * Applies constraints on the permitted draggable area.\n *\n * @default 0\n */\n dragConstraints?: number\n /**\n * The degree of movement allowed outside constraints. 0 = no movement, 1 = full movement.\n *\n * @default 0.1\n */\n dragElastic?: number\n /**\n * Offset from being dragged to closing.\n *\n * @default 80\n */\n dragOffset?: number\n /**\n * Velocity of the drag that triggers close.\n *\n * @default 100\n */\n dragVelocity?: number\n /**\n * Props for the blank area when `closeOnDrag` is `true`.\n */\n blankForDragProps?: CSSUIObject\n}\n\nexport type DrawerProps = Omit<\n ModalProps,\n | \"scrollBehavior\"\n | \"animation\"\n | \"outside\"\n | \"placement\"\n | \"dragConstraints\"\n | \"dragElastic\"\n | keyof ThemeProps\n> &\n ThemeProps<\"Drawer\"> &\n DrawerOptions\n\ntype DrawerContext = Record<string, CSSUIObject>\n\nconst [DrawerProvider, useDrawer] = createContext<DrawerContext>({\n name: `DrawerContext`,\n errorMessage: `useDrawer returned is 'undefined'. Seems you forgot to wrap the components in \"<Drawer />\" `,\n})\n\n/**\n * `Drawer` is a component for a panel that appears from the edge of the screen.\n *\n * @see Docs https://yamada-ui.com/components/overlay/drawer\n */\nexport const Drawer = forwardRef<DrawerProps, \"div\">(\n ({ size, placement = \"right\", closeOnDrag = false, ...props }, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Drawer\", {\n size,\n placement,\n closeOnDrag,\n ...props,\n })\n const {\n children,\n isOpen,\n onClose,\n onOverlayClick,\n onEsc,\n onCloseComplete,\n withCloseButton = !closeOnDrag,\n withOverlay = true,\n withDragBar = true,\n allowPinchZoom,\n autoFocus,\n restoreFocus,\n initialFocusRef,\n finalFocusRef,\n blockScrollOnMount,\n closeOnOverlay,\n closeOnEsc,\n lockFocusAcrossFrames,\n duration = { enter: 0.4, exit: 0.3 },\n dragConstraints = 0,\n dragElastic = 0.1,\n dragOffset = 80,\n dragVelocity = 100,\n blankForDragProps,\n portalProps,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const validChildren = getValidChildren(children)\n\n const [customDrawerOverlay, ...cloneChildren] = findChildren(\n validChildren,\n DrawerOverlay,\n )\n\n return (\n <DrawerProvider value={styles}>\n <Modal\n ref={ref}\n {...{\n isOpen,\n onClose,\n onOverlayClick,\n onEsc,\n onCloseComplete,\n withCloseButton: false,\n withOverlay: false,\n allowPinchZoom,\n autoFocus,\n restoreFocus,\n initialFocusRef,\n finalFocusRef,\n blockScrollOnMount,\n closeOnOverlay,\n closeOnEsc,\n lockFocusAcrossFrames,\n duration,\n portalProps,\n }}\n >\n {customDrawerOverlay ?? (withOverlay ? <DrawerOverlay /> : null)}\n\n <DrawerContent\n {...{\n dragConstraints,\n dragElastic,\n dragOffset,\n dragVelocity,\n withCloseButton,\n withDragBar,\n blankForDragProps,\n ...omitObject(rest, [\"isFullHeight\"]),\n placement,\n closeOnDrag,\n }}\n >\n {cloneChildren}\n </DrawerContent>\n </Modal>\n </DrawerProvider>\n )\n },\n)\n\ntype DrawerContentProps = Omit<\n DrawerProps,\n \"color\" | \"transition\" | \"isOpen\" | keyof ThemeProps\n> &\n Required<\n Pick<\n DrawerProps,\n | \"placement\"\n | \"dragConstraints\"\n | \"dragElastic\"\n | \"dragOffset\"\n | \"dragVelocity\"\n >\n >\n\nexport const DrawerContent = forwardRef<DrawerContentProps, \"div\", false>(\n (\n {\n className,\n children,\n placement: _placement,\n withCloseButton,\n withDragBar,\n closeOnDrag,\n dragConstraints,\n dragElastic,\n dragOffset,\n dragVelocity,\n blankForDragProps,\n ...rest\n },\n ref,\n ) => {\n const { isOpen, onClose, duration } = useModal()\n const styles = useDrawer()\n const placement = useValue(_placement)\n\n const validChildren = getValidChildren(children)\n\n const [customDrawerCloseButton, ...cloneChildren] = findChildren(\n validChildren,\n DrawerCloseButton,\n )\n\n const blankForDragBg = useMemo(() => {\n const propBg =\n rest.backgroundColor ?? rest.bgColor ?? rest.background ?? rest.bg\n const styleBg =\n styles.container?.backgroundColor ??\n styles.container?.bgColor ??\n styles.container?.background ??\n styles.container?.bg\n const computedBg = propBg ?? styleBg\n\n return isArray(computedBg) ? computedBg : [computedBg]\n }, [rest, styles])\n\n const blankForDrag = useMemo<CSSUIObject>(() => {\n let position: CSSUIObject = {}\n\n switch (placement) {\n case \"top\":\n position = { top: \"calc(-100dvh + 1px)\", left: 0, right: 0 }\n break\n\n case \"bottom\":\n position = { bottom: \"calc(-100dvh + 1px)\", left: 0, right: 0 }\n break\n\n case \"left\":\n position = { left: \"calc(-100% + 1px)\", top: 0, bottom: 0 }\n break\n\n case \"right\":\n position = { right: \"calc(-100% + 1px)\", top: 0, bottom: 0 }\n break\n }\n\n const [lightBg, darkBg] = blankForDragBg\n\n return {\n _after: {\n content: '\"\"',\n display: \"block\",\n w: \"100%\",\n h: \"100dvh\",\n bg: lightBg,\n position: \"absolute\",\n ...position,\n ...blankForDragProps,\n },\n _dark: {\n _after: {\n bg: darkBg,\n },\n },\n }\n }, [placement, blankForDragBg, blankForDragProps])\n\n const css = useMemo<CSSUIObject>(\n () => ({\n display: \"flex\",\n flexDirection:\n placement === \"top\" || placement === \"bottom\" ? \"column\" : \"row\",\n outline: 0,\n ...(closeOnDrag ? blankForDrag : {}),\n ...styles.container,\n }),\n [blankForDrag, closeOnDrag, placement, styles],\n )\n\n const getDragDirectionRestriction = useCallback(\n (value: number) => {\n switch (placement) {\n case \"top\":\n return { bottom: value }\n case \"bottom\":\n return { top: value }\n case \"left\":\n return { right: value }\n case \"right\":\n return { left: value }\n }\n },\n [placement],\n )\n\n const getDragDirection = useCallback(() => {\n switch (placement) {\n case \"top\":\n case \"bottom\":\n return \"y\"\n case \"left\":\n case \"right\":\n return \"x\"\n }\n }, [placement])\n\n const isCloseByDragInfo = useCallback(\n (info: MotionPanInfo) => {\n switch (placement) {\n case \"top\":\n return (\n info.velocity.y <= dragVelocity * -1 ||\n info.offset.y <= dragOffset * -1\n )\n case \"bottom\":\n return (\n info.velocity.y >= dragVelocity || info.offset.y >= dragOffset\n )\n case \"left\":\n return (\n info.velocity.x <= dragVelocity * -1 ||\n info.offset.x <= dragOffset * -1\n )\n case \"right\":\n return (\n info.velocity.x >= dragVelocity || info.offset.x >= dragOffset\n )\n }\n },\n [placement, dragVelocity, dragOffset],\n )\n\n return (\n <Slide\n ref={ref}\n className={cx(\"ui-drawer\", className)}\n isOpen={isOpen}\n placement={placement}\n duration={duration}\n drag={closeOnDrag ? getDragDirection() : false}\n dragConstraints={getDragDirectionRestriction(dragConstraints)}\n dragElastic={getDragDirectionRestriction(dragElastic)}\n dragSnapToOrigin\n dragMomentum={false}\n onDragEnd={(_, info) => {\n if (isCloseByDragInfo(info)) onClose?.()\n }}\n tabIndex={-1}\n __css={css}\n {...rest}\n >\n {customDrawerCloseButton ??\n (withCloseButton && onClose ? <DrawerCloseButton /> : null)}\n\n {withDragBar &&\n closeOnDrag &&\n (placement === \"bottom\" || placement === \"right\") ? (\n <DrawerDragBar />\n ) : null}\n\n <ui.div\n className=\"ui-drawer__inner\"\n __css={{ display: \"flex\", flexDirection: \"column\", ...styles.inner }}\n >\n {cloneChildren}\n </ui.div>\n\n {withDragBar &&\n closeOnDrag &&\n (placement === \"top\" || placement === \"left\") ? (\n <DrawerDragBar />\n ) : null}\n </Slide>\n )\n },\n)\n\nexport type DrawerOverlayProps = ModalOverlayProps\n\nexport const DrawerOverlay = forwardRef<DrawerOverlayProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const styles = useDrawer()\n\n const css: CSSUIObject = { ...styles.overlay }\n\n return (\n <ModalOverlay\n ref={ref}\n className={cx(\"ui-drawer__overlay\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DrawerDragBarProps = HTMLUIProps<\"div\">\n\nexport const DrawerDragBar: FC<DrawerDragBarProps> = ({\n className,\n ...rest\n}) => {\n const styles = useDrawer()\n\n const css: CSSUIObject = { ...styles.dragBar }\n\n return (\n <ui.div\n className={cx(\"ui-drawer__drag-bar\", className)}\n __css={css}\n {...rest}\n />\n )\n}\n\nexport type DrawerCloseButtonProps = ModalCloseButtonProps\n\nexport const DrawerCloseButton = forwardRef<DrawerCloseButtonProps, \"button\">(\n ({ className, ...rest }, ref) => {\n const styles = useDrawer()\n\n const css: CSSUIObject = { ...styles.closeButton }\n\n return (\n <ModalCloseButton\n ref={ref}\n className={cx(\"ui-drawer__close-button\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DrawerHeaderProps = ModalHeaderProps\n\nexport const DrawerHeader = forwardRef<DrawerHeaderProps, \"header\">(\n ({ className, ...rest }, ref) => {\n const styles = useDrawer()\n\n const css: CSSUIObject = { ...styles.header }\n\n return (\n <ModalHeader\n ref={ref}\n className={cx(\"ui-drawer__header\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DrawerBodyProps = ModalBodyProps\n\nexport const DrawerBody = forwardRef<DrawerBodyProps, \"main\">(\n ({ className, ...rest }, ref) => {\n const styles = useDrawer()\n\n const css: CSSUIObject = { ...styles.body }\n\n return (\n <ModalBody\n ref={ref}\n className={cx(\"ui-drawer__body\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DrawerFooterProps = ModalFooterProps\n\nexport const DrawerFooter = forwardRef<DrawerFooterProps, \"footer\">(\n ({ className, ...rest }, ref) => {\n const styles = useDrawer()\n\n const css: CSSUIObject = { ...styles.footer }\n\n return (\n <ModalFooter\n ref={ref}\n className={cx(\"ui-drawer__footer\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type {\n ThemeProps,\n CSSUIObject,\n CSSUIProps,\n Token,\n} from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n omitThemeProps,\n useMultiComponentStyle,\n} from \"@yamada-ui/core\"\nimport type { FocusLockProps } from \"@yamada-ui/focus-lock\"\nimport { FocusLock } from \"@yamada-ui/focus-lock\"\nimport type { MotionProps, MotionTransitionProperties } from \"@yamada-ui/motion\"\nimport { AnimatePresence, Motion } from \"@yamada-ui/motion\"\nimport type { PortalProps } from \"@yamada-ui/portal\"\nimport { Portal } from \"@yamada-ui/portal\"\nimport { scaleFadeProps, slideFadeProps } from \"@yamada-ui/transitions\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport {\n cx,\n createContext,\n getValidChildren,\n findChildren,\n} from \"@yamada-ui/utils\"\nimport type { KeyboardEvent } from \"react\"\nimport { cloneElement, useCallback } from \"react\"\nimport { RemoveScroll } from \"react-remove-scroll\"\nimport { DrawerContent } from \"./drawer\"\nimport {\n DrawerOverlay,\n DialogOverlay,\n DialogCloseButton,\n ModalOverlay,\n ModalCloseButton,\n} from \"./\"\n\ntype ModalContext = ModalOptions & {\n styles: Record<string, CSSUIObject>\n}\n\nconst [ModalProvider, useModal] = createContext<ModalContext>({\n name: `ModalContext`,\n errorMessage: `useModal returned is 'undefined'. Seems you forgot to wrap the components in \"<Modal />\" `,\n})\n\nexport { useModal }\n\ntype ModalOptions = Pick<\n FocusLockProps,\n | \"autoFocus\"\n | \"initialFocusRef\"\n | \"finalFocusRef\"\n | \"restoreFocus\"\n | \"lockFocusAcrossFrames\"\n> & {\n /**\n * If `true`, the open will be opened.\n */\n isOpen: boolean\n /**\n * Callback invoked to close the modal.\n */\n onClose?: () => void\n /**\n * Callback fired when the overlay is clicked.\n */\n onOverlayClick?: () => void\n /**\n * Callback fired when the escape key is pressed and focus is within modal.\n */\n onEsc?(): void\n /**\n * Callback function to run side effects after the modal has closed.\n */\n onCloseComplete?: () => void\n /**\n * The placement of the modal.\n *\n * @default 'center'\n */\n placement?: Token<\n | \"center\"\n | \"top\"\n | \"right\"\n | \"bottom\"\n | \"left\"\n | \"top-left\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-right\"\n >\n /**\n * The CSS `padding` property.\n */\n outside?: CSSUIProps[\"p\"]\n /**\n * If `true`, display the modal close button.\n *\n * @default true\n */\n withCloseButton?: boolean\n /**\n * If `true`, display the modal overlay.\n *\n * @default true\n */\n withOverlay?: boolean\n /**\n * Handle zoom or pinch gestures on iOS devices when scroll locking is enabled.\n *\n * @default false.\n */\n allowPinchZoom?: boolean\n /**\n * Where scroll behavior should originate.\n *\n * - `inside`: scroll only occurs within the `ModalBody`.\n * - `outside`: the entire `ModalContent` will scroll within the viewport.\n *\n * @default 'inside'\n */\n scrollBehavior?: \"inside\" | \"outside\"\n /**\n * If `true`, scrolling will be disabled on the `body` when the modal opens.\n *\n * @default true\n */\n blockScrollOnMount?: boolean\n /**\n * If `true`, the modal will close when the overlay is clicked.\n *\n * @default true\n */\n closeOnOverlay?: boolean\n /**\n * If `true`, the modal will close when the `Esc` key is pressed.\n *\n * @default true\n */\n closeOnEsc?: boolean\n /**\n * The animation of the tooltip.\n *\n * @default 'scale'\n */\n animation?: \"scale\" | \"top\" | \"right\" | \"left\" | \"bottom\" | \"none\"\n /**\n * The animation duration.\n */\n duration?: MotionTransitionProperties[\"duration\"]\n /**\n * Props to be forwarded to the portal component.\n */\n portalProps?: Omit<PortalProps, \"children\">\n}\n\nexport type ModalProps = Omit<\n MotionProps<\"section\">,\n \"scrollBehavior\" | \"animation\" | \"color\" | \"transition\"\n> &\n ThemeProps<\"Modal\"> &\n ModalOptions\n\n/**\n * `Modal` is a component that is displayed over the main content to focus the user's attention solely on the information.\n *\n * @see Docs https://yamada-ui.com/components/overlay/modal\n */\nexport const Modal = forwardRef<ModalProps, \"section\">(\n ({ size, ...props }, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Modal\", {\n size,\n ...props,\n })\n const {\n className,\n children,\n isOpen,\n onClose,\n onOverlayClick,\n onEsc,\n onCloseComplete,\n placement: _placement = \"center\",\n outside = \"fallback(4, 1rem)\",\n withCloseButton = true,\n withOverlay = true,\n allowPinchZoom = false,\n scrollBehavior = \"inside\",\n autoFocus,\n restoreFocus,\n initialFocusRef,\n finalFocusRef,\n blockScrollOnMount = true,\n closeOnOverlay = true,\n closeOnEsc = true,\n lockFocusAcrossFrames = true,\n animation = \"scale\",\n duration,\n portalProps,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent) => {\n if (ev.key !== \"Escape\") return\n\n ev.stopPropagation()\n\n if (closeOnEsc) onClose?.()\n\n onEsc?.()\n },\n [closeOnEsc, onClose, onEsc],\n )\n\n const validChildren = getValidChildren(children)\n\n const [customModalOverlay, ...cloneChildren] = findChildren(\n validChildren,\n ModalOverlay,\n DialogOverlay,\n DrawerOverlay,\n )\n\n let [drawerContent] = findChildren(validChildren, DrawerContent)\n\n if (drawerContent)\n drawerContent = cloneElement(drawerContent, { onKeyDown })\n\n const placement = useValue(_placement)\n\n const css: CSSUIObject = {\n position: \"fixed\",\n top: 0,\n left: 0,\n zIndex: \"fallback(jeice, 110)\",\n w: \"100vw\",\n h: \"100dvh\",\n p: size !== \"full\" ? outside : undefined,\n display: \"flex\",\n justifyContent: placement.includes(\"left\")\n ? \"flex-start\"\n : placement.includes(\"right\")\n ? \"flex-end\"\n : \"center\",\n alignItems: placement.includes(\"top\")\n ? \"flex-start\"\n : placement.includes(\"bottom\")\n ? \"flex-end\"\n : \"center\",\n }\n\n return (\n <ModalProvider\n value={{\n isOpen,\n onClose,\n onOverlayClick,\n withCloseButton,\n scrollBehavior,\n closeOnOverlay,\n animation,\n duration,\n styles,\n }}\n >\n <AnimatePresence onExitComplete={onCloseComplete}>\n {isOpen ? (\n <Portal {...portalProps}>\n <FocusLock\n autoFocus={autoFocus}\n initialFocusRef={initialFocusRef}\n finalFocusRef={finalFocusRef}\n restoreFocus={restoreFocus}\n lockFocusAcrossFrames={lockFocusAcrossFrames}\n >\n <RemoveScroll\n allowPinchZoom={allowPinchZoom}\n enabled={blockScrollOnMount}\n forwardProps\n >\n <ui.div __css={css}>\n {customModalOverlay ??\n (withOverlay && size !== \"full\" ? (\n <ModalOverlay />\n ) : null)}\n\n {drawerContent ?? (\n <ModalContent\n ref={ref}\n className={className}\n onKeyDown={onKeyDown}\n {...rest}\n >\n {cloneChildren}\n </ModalContent>\n )}\n </ui.div>\n </RemoveScroll>\n </FocusLock>\n </Portal>\n ) : null}\n </AnimatePresence>\n </ModalProvider>\n )\n },\n)\n\ntype ModalContentProps = Omit<\n MotionProps<\"section\">,\n \"scrollBehavior\" | \"animation\" | \"color\" | \"transition\"\n>\n\nconst getModalContentProps = (\n animation: ModalProps[\"animation\"] = \"scale\",\n duration?: MotionTransitionProperties[\"duration\"],\n) => {\n switch (animation) {\n case \"scale\":\n return {\n ...scaleFadeProps,\n custom: { scale: 0.95, reverse: true, duration },\n }\n case \"top\":\n return {\n ...slideFadeProps,\n custom: { offsetY: -16, reverse: true, duration },\n }\n case \"right\":\n return {\n ...slideFadeProps,\n custom: { offsetX: 16, reverse: true, duration },\n }\n case \"left\":\n return {\n ...slideFadeProps,\n custom: { offsetX: -16, reverse: true, duration },\n }\n case \"bottom\":\n return {\n ...slideFadeProps,\n custom: { offsetY: 16, reverse: true, duration },\n }\n }\n}\n\nconst ModalContent = forwardRef<ModalContentProps, \"section\", false>(\n ({ className, children, __css, ...rest }, ref) => {\n const {\n styles,\n scrollBehavior,\n withCloseButton,\n onClose,\n animation,\n duration,\n } = useModal()\n\n const validChildren = getValidChildren(children)\n\n const [customModalCloseButton, ...cloneChildren] = findChildren(\n validChildren,\n ModalCloseButton,\n DialogCloseButton,\n )\n\n const props =\n animation !== \"none\" ? getModalContentProps(animation, duration) : {}\n\n const css: CSSUIObject = {\n position: \"relative\",\n maxH: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n overflow: scrollBehavior === \"inside\" ? \"hidden\" : \"auto\",\n outline: 0,\n ...(__css ? __css : styles.container),\n }\n\n return (\n <Motion\n as=\"section\"\n ref={ref}\n className={cx(\"ui-modal\", className)}\n tabIndex={-1}\n __css={css}\n {...props}\n {...rest}\n >\n {customModalCloseButton ??\n (withCloseButton && onClose ? <ModalCloseButton /> : null)}\n\n {cloneChildren}\n </Motion>\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport type { HTMLMotionProps } from \"@yamada-ui/motion\"\nimport { motion } from \"@yamada-ui/motion\"\nimport { fadeProps } from \"@yamada-ui/transitions\"\nimport { cx, handlerAll } from \"@yamada-ui/utils\"\nimport { useModal } from \"./modal\"\n\nexport type ModalOverlayProps = HTMLUIProps<\"div\"> &\n Omit<HTMLMotionProps<\"div\">, \"color\" | \"transition\">\n\nexport const ModalOverlay = forwardRef<ModalOverlayProps, \"div\">(\n ({ className, __css, onClick, ...rest }, ref) => {\n const {\n styles,\n closeOnOverlay,\n onOverlayClick,\n onClose,\n animation,\n duration,\n } = useModal()\n\n const css: CSSUIObject = {\n position: \"fixed\",\n top: 0,\n left: 0,\n w: \"100vw\",\n h: \"100vh\",\n ...(__css ? __css : styles.overlay),\n }\n\n const props = animation !== \"none\" ? fadeProps : {}\n\n return (\n <ui.div\n as={motion.div}\n ref={ref}\n className={cx(\"ui-modal__overlay\", className)}\n custom={{ duration }}\n __css={css}\n onClick={handlerAll(onClick, onOverlayClick, (ev) => {\n ev.stopPropagation()\n if (closeOnOverlay) onClose?.()\n })}\n {...props}\n {...rest}\n />\n )\n },\n)\n","import type { CloseButtonProps } from \"@yamada-ui/close-button\"\nimport { CloseButton } from \"@yamada-ui/close-button\"\nimport type { CSSUIObject } from \"@yamada-ui/core\"\nimport { forwardRef } from \"@yamada-ui/core\"\nimport { cx, handlerAll } from \"@yamada-ui/utils\"\nimport { useModal } from \"./modal\"\n\nexport type ModalCloseButtonProps = CloseButtonProps\n\nexport const ModalCloseButton = forwardRef<ModalCloseButtonProps, \"button\">(\n ({ onClick, __css, ...rest }, ref) => {\n const { styles, onClose } = useModal()\n\n const css: CSSUIObject = {\n position: \"absolute\",\n ...(__css ? __css : styles.closeButton),\n }\n\n return (\n <CloseButton\n ref={ref}\n className={cx(\"ui-modal__close-button\")}\n __css={css}\n onClick={handlerAll(onClick, (ev) => {\n ev.stopPropagation()\n onClose?.()\n })}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useModal } from \"./modal\"\n\nexport type ModalHeaderProps = HTMLUIProps<\"header\">\n\nexport const ModalHeader = forwardRef<ModalHeaderProps, \"header\">(\n ({ className, __css, ...rest }, ref) => {\n const { styles } = useModal()\n\n const css: CSSUIObject = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n ...(__css ? __css : styles.header),\n }\n\n return (\n <ui.header\n ref={ref}\n className={cx(\"ui-modal__header\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useModal } from \"./modal\"\n\nexport type ModalBodyProps = HTMLUIProps<\"main\">\n\nexport const ModalBody = forwardRef<ModalBodyProps, \"main\">(\n ({ className, __css, ...rest }, ref) => {\n const { styles, scrollBehavior } = useModal()\n\n const css: CSSUIObject = {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n overflow: scrollBehavior === \"inside\" ? \"auto\" : undefined,\n ...(__css ? __css : styles.body),\n }\n\n return (\n <ui.main\n ref={ref}\n className={cx(\"ui-modal__body\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { HTMLUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useModal } from \"./modal\"\n\nexport type ModalFooterProps = HTMLUIProps<\"footer\">\n\nexport const ModalFooter = forwardRef<ModalFooterProps, \"footer\">(\n ({ className, __css, ...rest }, ref) => {\n const { styles } = useModal()\n\n const css: CSSUIObject = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n ...(__css ? __css : styles.footer),\n }\n\n return (\n <ui.footer\n ref={ref}\n className={cx(\"ui-modal__footer\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n","import type { ButtonProps } from \"@yamada-ui/button\"\nimport { Button } from \"@yamada-ui/button\"\nimport type { CloseButtonProps } from \"@yamada-ui/close-button\"\nimport type { CSSUIObject, ThemeProps } from \"@yamada-ui/core\"\nimport {\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport {\n createContext,\n getValidChildren,\n findChildren,\n omitChildren,\n isValidElement,\n isEmpty,\n cx,\n} from \"@yamada-ui/utils\"\nimport type { ReactNode } from \"react\"\nimport type {\n ModalProps,\n ModalOverlayProps,\n ModalHeaderProps,\n ModalBodyProps,\n ModalFooterProps,\n} from \"./\"\nimport {\n Modal,\n ModalOverlay,\n ModalCloseButton,\n ModalHeader,\n ModalBody,\n ModalFooter,\n} from \"./\"\n\ntype DialogOptions = {\n /**\n * The dialog header to use.\n */\n header?: ReactNode\n /**\n * The dialog footer to use.\n */\n footer?: ReactNode\n /**\n * The dialog cancel to use.\n */\n cancel?: ReactNode | ButtonProps\n /**\n * The dialog other to use.\n */\n other?: ReactNode | ButtonProps\n /**\n * The dialog success to use.\n */\n success?: ReactNode | ButtonProps\n /**\n * The callback invoked when cancel button clicked.\n */\n onCancel?: (onClose: (() => void) | undefined) => void\n /**\n * The callback invoked when other button clicked.\n */\n onOther?: (onClose: (() => void) | undefined) => void\n /**\n * The callback invoked when success button clicked.\n */\n onSuccess?: (onClose: (() => void) | undefined) => void\n}\n\nexport type DialogProps = Omit<ModalProps, keyof ThemeProps> &\n ThemeProps<\"Dialog\"> &\n DialogOptions\n\ntype DialogContext = Record<string, CSSUIObject>\n\nconst [DialogProvider, useDialog] = createContext<DialogContext>({\n name: `DialogContext`,\n errorMessage: `useDialog returned is 'undefined'. Seems you forgot to wrap the components in \"<Dialog />\" `,\n})\n\n/**\n * `Dialog` is a component used to confirm or interrupt user actions.\n *\n * @see Docs https://yamada-ui.com/components/overlay/dialog\n */\nexport const Dialog = forwardRef<DialogProps, \"section\", false>(\n ({ size, ...props }, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"Dialog\", {\n size,\n ...props,\n })\n const {\n className,\n children,\n withOverlay = true,\n withCloseButton = true,\n header,\n footer,\n cancel,\n other,\n success,\n onClose,\n onCancel,\n onOther,\n onSuccess,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const validChildren = getValidChildren(children)\n\n const [customDialogOverlay] = findChildren(validChildren, DialogOverlay)\n const [customDialogCloseButton] = findChildren(\n validChildren,\n DialogCloseButton,\n )\n const [customDialogHeader] = findChildren(validChildren, DialogHeader)\n const [customDialogBody] = findChildren(validChildren, DialogBody)\n const [customDialogFooter] = findChildren(validChildren, DialogFooter)\n\n const cloneChildren = !isEmpty(validChildren)\n ? omitChildren(\n validChildren,\n DialogOverlay,\n DialogCloseButton,\n DialogHeader,\n DialogBody,\n DialogFooter,\n )\n : children\n\n const css: CSSUIObject = { ...styles.container }\n\n const cancelButtonProps: ButtonProps = isValidElement(cancel)\n ? { children: cancel }\n : cancel\n const otherButtonProps: ButtonProps = isValidElement(other)\n ? { children: other }\n : other\n const successButtonProps: ButtonProps = isValidElement(success)\n ? { children: success }\n : success\n\n if (cancelButtonProps && !cancelButtonProps.variant)\n cancelButtonProps.variant = \"ghost\"\n if (otherButtonProps && !otherButtonProps.colorScheme)\n otherButtonProps.colorScheme = \"secondary\"\n if (successButtonProps && !successButtonProps.colorScheme)\n successButtonProps.colorScheme = \"primary\"\n\n return (\n <DialogProvider value={styles}>\n <Modal\n ref={ref}\n className={cx(\"ui-dialog\", className)}\n __css={css}\n {...{\n size,\n onClose,\n withOverlay: false,\n withCloseButton: false,\n ...rest,\n }}\n >\n {customDialogOverlay ??\n (withOverlay && size !== \"full\" ? <DialogOverlay /> : null)}\n {customDialogCloseButton ??\n (withCloseButton && onClose ? <DialogCloseButton /> : null)}\n {customDialogHeader ??\n (header ? <DialogHeader>{header}</DialogHeader> : null)}\n {customDialogBody ??\n (cloneChildren ? <DialogBody>{cloneChildren}</DialogBody> : null)}\n {customDialogFooter ??\n (footer ||\n cancelButtonProps ||\n otherButtonProps ||\n successButtonProps ? (\n <DialogFooter>\n {footer ?? (\n <>\n {cancelButtonProps ? (\n <Button\n onClick={() => onCancel?.(onClose)}\n {...cancelButtonProps}\n />\n ) : null}\n {otherButtonProps ? (\n <Button\n onClick={() => onOther?.(onClose)}\n {...otherButtonProps}\n />\n ) : null}\n {successButtonProps ? (\n <Button\n onClick={() => onSuccess?.(onClose)}\n {...successButtonProps}\n />\n ) : null}\n </>\n )}\n </DialogFooter>\n ) : null)}\n </Modal>\n </DialogProvider>\n )\n },\n)\n\nexport type DialogOverlayProps = ModalOverlayProps\n\nexport const DialogOverlay = forwardRef<DialogOverlayProps, \"div\">(\n ({ className, ...rest }, ref) => {\n const styles = useDialog()\n\n const css: CSSUIObject = { ...styles.overlay }\n\n return (\n <ModalOverlay\n ref={ref}\n className={cx(\"ui-dialog__overlay\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DialogCloseButtonProps = CloseButtonProps\n\nexport const DialogCloseButton = forwardRef<DialogCloseButtonProps, \"button\">(\n ({ className, ...rest }, ref) => {\n const styles = useDialog()\n\n const css: CSSUIObject = { ...styles.closeButton }\n\n return (\n <ModalCloseButton\n ref={ref}\n className={cx(\"ui-dialog__close-button\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DialogHeaderProps = ModalHeaderProps\n\nexport const DialogHeader = forwardRef<DialogHeaderProps, \"header\">(\n ({ className, ...rest }, ref) => {\n const styles = useDialog()\n\n const css: CSSUIObject = { ...styles.header }\n\n return (\n <ModalHeader\n ref={ref}\n className={cx(\"ui-dialog__header\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DialogBodyProps = ModalBodyProps\n\nexport const DialogBody = forwardRef<DialogBodyProps, \"main\">(\n ({ className, ...rest }, ref) => {\n const styles = useDialog()\n\n const css: CSSUIObject = { ...styles.body }\n\n return (\n <ModalBody\n ref={ref}\n className={cx(\"ui-dialog__body\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n\nexport type DialogFooterProps = ModalFooterProps\n\nexport const DialogFooter = forwardRef<DialogFooterProps, \"footer\">(\n ({ className, ...rest }, ref) => {\n const styles = useDialog()\n\n const css: CSSUIObject = { ...styles.footer }\n\n return (\n <ModalFooter\n ref={ref}\n className={cx(\"ui-dialog__footer\", className)}\n __css={css}\n {...rest}\n />\n )\n },\n)\n"],"mappings":"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","names":["import_core","import_transitions","import_use_value","import_utils","import_react","import_core","import_motion","import_transitions","import_utils","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_core","import_utils","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}