@charcoal-ui/react 6.0.0-rc.9 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_lib/compat.d.ts.map +1 -1
- package/dist/_lib/createDivComponent.cjs +0 -1
- package/dist/_lib/createDivComponent.cjs.map +1 -1
- package/dist/_lib/createDivComponent.d.ts +1 -1
- package/dist/_lib/createDivComponent.js.map +1 -1
- package/dist/_lib/index.cjs.map +1 -1
- package/dist/_lib/index.js.map +1 -1
- package/dist/_lib/useClassNames.cjs +0 -1
- package/dist/_lib/useClassNames.cjs.map +1 -1
- package/dist/_lib/useClassNames.js.map +1 -1
- package/dist/_lib/useForwardedRef.cjs +1 -1
- package/dist/_lib/useForwardedRef.cjs.map +1 -1
- package/dist/_lib/useForwardedRef.js.map +1 -1
- package/dist/_lib/useIsomorphicLayoutEffect.cjs +0 -1
- package/dist/_lib/useIsomorphicLayoutEffect.cjs.map +1 -1
- package/dist/_lib/useIsomorphicLayoutEffect.d.ts +2 -2
- package/dist/_lib/useIsomorphicLayoutEffect.d.ts.map +1 -1
- package/dist/_lib/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/components/Button/index.d.ts +1 -1
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Button/index2.cjs +1 -1
- package/dist/components/Button/index2.cjs.map +1 -1
- package/dist/components/Button/index2.js.map +1 -1
- package/dist/components/Carousel/CarouselItem.cjs +0 -1
- package/dist/components/Carousel/CarouselItem.cjs.map +1 -1
- package/dist/components/Carousel/CarouselItem.d.ts.map +1 -1
- package/dist/components/Carousel/CarouselItem.js.map +1 -1
- package/dist/components/Carousel/carouselStore.cjs.map +1 -1
- package/dist/components/Carousel/carouselStore.js.map +1 -1
- package/dist/components/Carousel/index.d.ts +1 -1
- package/dist/components/Carousel/index.d.ts.map +1 -1
- package/dist/components/Carousel/index2.cjs +0 -1
- package/dist/components/Carousel/index2.cjs.map +1 -1
- package/dist/components/Carousel/index2.js.map +1 -1
- package/dist/components/Carousel/intersectionObserver.cjs.map +1 -1
- package/dist/components/Carousel/intersectionObserver.js.map +1 -1
- package/dist/components/Carousel/resizeObserver.cjs.map +1 -1
- package/dist/components/Carousel/resizeObserver.js.map +1 -1
- package/dist/components/Carousel/store.cjs.map +1 -1
- package/dist/components/Carousel/store.js.map +1 -1
- package/dist/components/Carousel/useCarouselScroller.cjs +0 -1
- package/dist/components/Carousel/useCarouselScroller.cjs.map +1 -1
- package/dist/components/Carousel/useCarouselScroller.js.map +1 -1
- package/dist/components/Checkbox/CheckboxInput/index.d.ts.map +1 -1
- package/dist/components/Checkbox/CheckboxInput/index2.cjs +0 -1
- package/dist/components/Checkbox/CheckboxInput/index2.cjs.map +1 -1
- package/dist/components/Checkbox/CheckboxInput/index2.js.map +1 -1
- package/dist/components/Checkbox/CheckboxWithLabel.cjs +1 -1
- package/dist/components/Checkbox/CheckboxWithLabel.cjs.map +1 -1
- package/dist/components/Checkbox/CheckboxWithLabel.d.ts +2 -2
- package/dist/components/Checkbox/CheckboxWithLabel.d.ts.map +1 -1
- package/dist/components/Checkbox/CheckboxWithLabel.js.map +1 -1
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index2.cjs +0 -1
- package/dist/components/Checkbox/index2.cjs.map +1 -1
- package/dist/components/Checkbox/index2.js.map +1 -1
- package/dist/components/Clickable/index.d.ts +1 -1
- package/dist/components/Clickable/index.d.ts.map +1 -1
- package/dist/components/Clickable/index2.cjs +1 -1
- package/dist/components/Clickable/index2.cjs.map +1 -1
- package/dist/components/Clickable/index2.js.map +1 -1
- package/dist/components/DropdownSelector/DropdownMenuItem/index2.cjs +0 -1
- package/dist/components/DropdownSelector/DropdownMenuItem/index2.cjs.map +1 -1
- package/dist/components/DropdownSelector/DropdownMenuItem/index2.js.map +1 -1
- package/dist/components/DropdownSelector/DropdownPopover.cjs +0 -1
- package/dist/components/DropdownSelector/DropdownPopover.cjs.map +1 -1
- package/dist/components/DropdownSelector/DropdownPopover.js.map +1 -1
- package/dist/components/DropdownSelector/ListItem/index.d.ts +1 -1
- package/dist/components/DropdownSelector/ListItem/index.d.ts.map +1 -1
- package/dist/components/DropdownSelector/ListItem/index2.cjs +0 -1
- package/dist/components/DropdownSelector/ListItem/index2.cjs.map +1 -1
- package/dist/components/DropdownSelector/ListItem/index2.js.map +1 -1
- package/dist/components/DropdownSelector/MenuItem/index.cjs +29 -2
- package/dist/components/DropdownSelector/MenuItem/index.cjs.map +1 -1
- package/dist/components/DropdownSelector/MenuItem/index.d.ts.map +1 -1
- package/dist/components/DropdownSelector/MenuItem/index.js +30 -2
- package/dist/components/DropdownSelector/MenuItem/index.js.map +1 -1
- package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.cjs.map +1 -1
- package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.js.map +1 -1
- package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.cjs +0 -1
- package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.cjs.map +1 -1
- package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.js.map +1 -1
- package/dist/components/DropdownSelector/MenuItemGroup/index2.cjs +0 -1
- package/dist/components/DropdownSelector/MenuItemGroup/index2.cjs.map +1 -1
- package/dist/components/DropdownSelector/MenuItemGroup/index2.js.map +1 -1
- package/dist/components/DropdownSelector/MenuList/MenuListContext.cjs +0 -1
- package/dist/components/DropdownSelector/MenuList/MenuListContext.cjs.map +1 -1
- package/dist/components/DropdownSelector/MenuList/MenuListContext.js.map +1 -1
- package/dist/components/DropdownSelector/MenuList/index2.cjs +0 -1
- package/dist/components/DropdownSelector/MenuList/index2.cjs.map +1 -1
- package/dist/components/DropdownSelector/MenuList/index2.js.map +1 -1
- package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.cjs +1 -1
- package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.cjs.map +1 -1
- package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.js.map +1 -1
- package/dist/components/DropdownSelector/Popover/index.d.ts.map +1 -1
- package/dist/components/DropdownSelector/Popover/index2.cjs +18 -1
- package/dist/components/DropdownSelector/Popover/index2.cjs.map +1 -1
- package/dist/components/DropdownSelector/Popover/index2.js +19 -1
- package/dist/components/DropdownSelector/Popover/index2.js.map +1 -1
- package/dist/components/DropdownSelector/Popover/usePreventScroll.cjs +0 -1
- package/dist/components/DropdownSelector/Popover/usePreventScroll.cjs.map +1 -1
- package/dist/components/DropdownSelector/Popover/usePreventScroll.js.map +1 -1
- package/dist/components/DropdownSelector/index.d.ts.map +1 -1
- package/dist/components/DropdownSelector/index2.cjs +27 -10
- package/dist/components/DropdownSelector/index2.cjs.map +1 -1
- package/dist/components/DropdownSelector/index2.js +26 -9
- package/dist/components/DropdownSelector/index2.js.map +1 -1
- package/dist/components/DropdownSelector/utils/findPreviewRecursive.cjs +1 -1
- package/dist/components/DropdownSelector/utils/findPreviewRecursive.cjs.map +1 -1
- package/dist/components/DropdownSelector/utils/findPreviewRecursive.js.map +1 -1
- package/dist/components/FieldLabel/index.d.ts.map +1 -1
- package/dist/components/FieldLabel/index2.cjs +1 -1
- package/dist/components/FieldLabel/index2.cjs.map +1 -1
- package/dist/components/FieldLabel/index2.js.map +1 -1
- package/dist/components/HintText/index2.cjs +0 -1
- package/dist/components/HintText/index2.cjs.map +1 -1
- package/dist/components/HintText/index2.js.map +1 -1
- package/dist/components/Icon/index.cjs +1 -1
- package/dist/components/Icon/index.cjs.map +1 -1
- package/dist/components/Icon/index.d.ts.map +1 -1
- package/dist/components/Icon/index.js.map +1 -1
- package/dist/components/IconButton/index.d.ts +1 -1
- package/dist/components/IconButton/index.d.ts.map +1 -1
- package/dist/components/IconButton/index2.cjs +1 -1
- package/dist/components/IconButton/index2.cjs.map +1 -1
- package/dist/components/IconButton/index2.js.map +1 -1
- package/dist/components/LoadingSpinner/index.d.ts.map +1 -1
- package/dist/components/LoadingSpinner/index2.cjs +0 -1
- package/dist/components/LoadingSpinner/index2.cjs.map +1 -1
- package/dist/components/LoadingSpinner/index2.js.map +1 -1
- package/dist/components/Modal/Dialog/index2.cjs +1 -1
- package/dist/components/Modal/Dialog/index2.cjs.map +1 -1
- package/dist/components/Modal/Dialog/index2.js.map +1 -1
- package/dist/components/Modal/ModalBackgroundContext.cjs +1 -1
- package/dist/components/Modal/ModalBackgroundContext.cjs.map +1 -1
- package/dist/components/Modal/ModalBackgroundContext.js.map +1 -1
- package/dist/components/Modal/ModalPlumbing.d.ts +3 -3
- package/dist/components/Modal/ModalPlumbing2.cjs +0 -1
- package/dist/components/Modal/ModalPlumbing2.cjs.map +1 -1
- package/dist/components/Modal/ModalPlumbing2.js.map +1 -1
- package/dist/components/Modal/index.d.ts.map +1 -1
- package/dist/components/Modal/index2.cjs +1 -1
- package/dist/components/Modal/index2.cjs.map +1 -1
- package/dist/components/Modal/index2.js.map +1 -1
- package/dist/components/Modal/useCustomModalOverlay.cjs +1 -1
- package/dist/components/Modal/useCustomModalOverlay.cjs.map +1 -1
- package/dist/components/Modal/useCustomModalOverlay.js.map +1 -1
- package/dist/components/Modal/useTransitionPresence.cjs +1 -3
- package/dist/components/Modal/useTransitionPresence.cjs.map +1 -1
- package/dist/components/Modal/useTransitionPresence.js +1 -2
- package/dist/components/Modal/useTransitionPresence.js.map +1 -1
- package/dist/components/MultiSelect/context.cjs +0 -1
- package/dist/components/MultiSelect/context.cjs.map +1 -1
- package/dist/components/MultiSelect/context.js.map +1 -1
- package/dist/components/MultiSelect/index.d.ts +1 -1
- package/dist/components/MultiSelect/index.d.ts.map +1 -1
- package/dist/components/MultiSelect/index2.cjs +2 -2
- package/dist/components/MultiSelect/index2.cjs.map +1 -1
- package/dist/components/MultiSelect/index2.js.map +1 -1
- package/dist/components/Pagination/PaginationContext.cjs +0 -1
- package/dist/components/Pagination/PaginationContext.cjs.map +1 -1
- package/dist/components/Pagination/PaginationContext.js.map +1 -1
- package/dist/components/Pagination/helper.cjs.map +1 -1
- package/dist/components/Pagination/helper.js.map +1 -1
- package/dist/components/Pagination/index2.cjs +26 -135
- package/dist/components/Pagination/index2.cjs.map +1 -1
- package/dist/components/Pagination/index2.js +86 -182
- package/dist/components/Pagination/index2.js.map +1 -1
- package/dist/components/Radio/RadioGroup/index2.cjs +1 -1
- package/dist/components/Radio/RadioGroup/index2.cjs.map +1 -1
- package/dist/components/Radio/RadioGroup/index2.js.map +1 -1
- package/dist/components/Radio/RadioGroupContext.cjs.map +1 -1
- package/dist/components/Radio/RadioGroupContext.js.map +1 -1
- package/dist/components/Radio/RadioInput/index.d.ts.map +1 -1
- package/dist/components/Radio/RadioInput/index2.cjs +0 -1
- package/dist/components/Radio/RadioInput/index2.cjs.map +1 -1
- package/dist/components/Radio/RadioInput/index2.js.map +1 -1
- package/dist/components/Radio/index.d.ts.map +1 -1
- package/dist/components/Radio/index2.cjs +2 -2
- package/dist/components/Radio/index2.cjs.map +1 -1
- package/dist/components/Radio/index2.js.map +1 -1
- package/dist/components/SegmentedControl/RadioGroupContext.cjs +1 -1
- package/dist/components/SegmentedControl/RadioGroupContext.cjs.map +1 -1
- package/dist/components/SegmentedControl/RadioGroupContext.js.map +1 -1
- package/dist/components/SegmentedControl/index.d.ts.map +1 -1
- package/dist/components/SegmentedControl/index2.cjs +1 -1
- package/dist/components/SegmentedControl/index2.cjs.map +1 -1
- package/dist/components/SegmentedControl/index2.js.map +1 -1
- package/dist/components/Switch/SwitchInput/index.d.ts.map +1 -1
- package/dist/components/Switch/SwitchInput/index2.cjs +0 -1
- package/dist/components/Switch/SwitchInput/index2.cjs.map +1 -1
- package/dist/components/Switch/SwitchInput/index2.js.map +1 -1
- package/dist/components/Switch/SwitchWithLabel.cjs +1 -1
- package/dist/components/Switch/SwitchWithLabel.cjs.map +1 -1
- package/dist/components/Switch/SwitchWithLabel.d.ts +2 -2
- package/dist/components/Switch/SwitchWithLabel.d.ts.map +1 -1
- package/dist/components/Switch/SwitchWithLabel.js.map +1 -1
- package/dist/components/Switch/index.d.ts +1 -1
- package/dist/components/Switch/index.d.ts.map +1 -1
- package/dist/components/Switch/index2.cjs +0 -1
- package/dist/components/Switch/index2.cjs.map +1 -1
- package/dist/components/Switch/index2.js.map +1 -1
- package/dist/components/TagItem/index.d.ts +1 -1
- package/dist/components/TagItem/index.d.ts.map +1 -1
- package/dist/components/TagItem/index2.cjs +1 -1
- package/dist/components/TagItem/index2.cjs.map +1 -1
- package/dist/components/TagItem/index2.js.map +1 -1
- package/dist/components/TextArea/index.d.ts.map +1 -1
- package/dist/components/TextArea/index2.cjs +0 -1
- package/dist/components/TextArea/index2.cjs.map +1 -1
- package/dist/components/TextArea/index2.js.map +1 -1
- package/dist/components/TextEllipsis/helper.cjs +2 -1
- package/dist/components/TextEllipsis/helper.cjs.map +1 -1
- package/dist/components/TextEllipsis/helper.d.ts.map +1 -1
- package/dist/components/TextEllipsis/helper.js +1 -1
- package/dist/components/TextEllipsis/helper.js.map +1 -1
- package/dist/components/TextEllipsis/index2.cjs +14 -98
- package/dist/components/TextEllipsis/index2.cjs.map +1 -1
- package/dist/components/TextEllipsis/index2.js +14 -93
- package/dist/components/TextEllipsis/index2.js.map +1 -1
- package/dist/components/TextField/AssistiveText/index.d.ts +1 -1
- package/dist/components/TextField/AssistiveText/index2.cjs.map +1 -1
- package/dist/components/TextField/AssistiveText/index2.js.map +1 -1
- package/dist/components/TextField/index.d.ts +1 -1
- package/dist/components/TextField/index.d.ts.map +1 -1
- package/dist/components/TextField/index2.cjs +1 -1
- package/dist/components/TextField/index2.cjs.map +1 -1
- package/dist/components/TextField/index2.js.map +1 -1
- package/dist/components/TextField/useFocusWithClick.cjs +0 -1
- package/dist/components/TextField/useFocusWithClick.cjs.map +1 -1
- package/dist/components/TextField/useFocusWithClick.js.map +1 -1
- package/dist/core/CharcoalProvider.cjs +1 -1
- package/dist/core/CharcoalProvider.cjs.map +1 -1
- package/dist/core/CharcoalProvider.js.map +1 -1
- package/dist/core/SSRProvider.cjs +1 -1
- package/dist/core/SSRProvider.cjs.map +1 -1
- package/dist/core/SSRProvider.js +1 -1
- package/dist/core/SSRProvider.js.map +1 -1
- package/dist/core/SetThemeScript.cjs +0 -1
- package/dist/core/SetThemeScript.cjs.map +1 -1
- package/dist/core/SetThemeScript.js.map +1 -1
- package/dist/core/themeHelper.cjs +0 -1
- package/dist/core/themeHelper.cjs.map +1 -1
- package/dist/core/themeHelper.d.ts +2 -2
- package/dist/core/themeHelper.d.ts.map +1 -1
- package/dist/core/themeHelper.js.map +1 -1
- package/dist/index.cjs +22 -23
- package/dist/index.css +1422 -1422
- package/dist/layered.css +1422 -1422
- package/dist/layered.css.map +1 -1
- package/package.json +10 -10
- package/src/_lib/compat.ts +1 -7
- package/src/components/Carousel/index.browser.test.tsx +1 -1
- package/src/components/Carousel/intersectionObserver.test.ts +12 -12
- package/src/components/Carousel/resizeObserver.test.ts +1 -1
- package/src/components/DropdownSelector/MenuItem/index.tsx +40 -2
- package/src/components/DropdownSelector/Popover/index.tsx +20 -1
- package/src/components/DropdownSelector/index.browser.test.tsx +94 -0
- package/src/components/DropdownSelector/index.test.tsx +57 -2
- package/src/components/DropdownSelector/index.tsx +37 -12
- package/src/components/FieldLabel/index.tsx +1 -2
- package/src/components/Icon/index.tsx +2 -1
- package/src/components/LoadingSpinner/__snapshots__/index.css.snap +1 -1
- package/src/components/LoadingSpinner/index.css +1 -1
- package/src/components/Modal/__snapshots__/index.css.snap +1 -0
- package/src/components/Pagination/__snapshots__/index.css.snap +1 -1
- package/src/components/Pagination/index.css +1 -1
- package/src/components/TextEllipsis/TextEllipsis.story.tsx +1 -1
- package/src/css.d.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalPlumbing2.js","names":[
|
|
1
|
+
{"version":3,"file":"ModalPlumbing2.js","names":[],"sources":["../../../src/components/Modal/ModalPlumbing.tsx"],"sourcesContent":["import { ModalContext } from '.'\nimport { useContext } from 'react'\n\nimport './ModalPlumbing.css'\nimport { createDivComponent } from '../../_lib/createDivComponent'\n\nexport function ModalHeader() {\n const modalCtx = useContext(ModalContext)\n return (\n <div\n className=\"charcoal-modal-header-root\"\n data-bottom-sheet={modalCtx.bottomSheet}\n >\n <div className=\"charcoal-modal-header-title\">{modalCtx.title}</div>\n </div>\n )\n}\n\nexport const ModalAlign = createDivComponent('charcoal-modal-align')\n\nexport const ModalBody = createDivComponent('charcoal-modal-body')\n\nexport const ModalButtons = createDivComponent('charcoal-modal-buttons')\n"],"mappings":";;;;;;;;AAMA,SAAgB,cAAc;CAC5B,MAAM,WAAW,WAAW,YAAY;CACxC,OACE,oBAAC,OAAD;EACE,WAAU;EACV,qBAAmB,SAAS;YAE5B,oBAAC,OAAD;GAAK,WAAU;aAA+B,SAAS;EAAW;CAC/D;AAET;AAEA,MAAa,aAAa,mBAAmB,sBAAsB;AAEnE,MAAa,YAAY,mBAAmB,qBAAqB;AAEjE,MAAa,eAAe,mBAAmB,wBAAwB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAmB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAG3D,OAAO,EACL,yBAAyB,EAG1B,MAAM,yBAAyB,CAAA;AAGhC,OAAO,aAAa,CAAA;AAKpB,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;AAC1C,MAAM,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAElC,MAAM,MAAM,UAAU,GAAG,yBAAyB,GAChD,eAAe,GAAG;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B;;;OAGG;IACH,eAAe,CAAC,EAAE,WAAW,CAAA;CAC9B,CAAA;;;;cAfW,KAAK,CAAC,SAAS;aAChB,MAAM;WACR,MAAM;WACN,IAAI;kBACG,WAAW;YACjB,OAAO;aACN,MAAM,IAAI;gBACP,MAAM;2BACK,MAAM;IAE7B;;;OAGG;sBACe,WAAW
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAmB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAG3D,OAAO,EACL,yBAAyB,EAG1B,MAAM,yBAAyB,CAAA;AAGhC,OAAO,aAAa,CAAA;AAKpB,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;AAC1C,MAAM,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAElC,MAAM,MAAM,UAAU,GAAG,yBAAyB,GAChD,eAAe,GAAG;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B;;;OAGG;IACH,eAAe,CAAC,EAAE,WAAW,CAAA;CAC9B,CAAA;;;;cAfW,KAAK,CAAC,SAAS;aAChB,MAAM;WACR,MAAM;WACN,IAAI;kBACG,WAAW;YACjB,OAAO;aACN,MAAM,IAAI;gBACP,MAAM;2BACK,MAAM;IAE7B;;;OAGG;sBACe,WAAW;;;AAiIjC,eAAO,MAAM,YAAY;IACvB;;OAEG;gBACS,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;WACtC,MAAM;YACL,MAAM,IAAI;iBACL,OAAO;iBACP,WAAW;EAOxB,CAAA;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,2CAUpE;AAED,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,kDAYrE"}
|
|
@@ -7,7 +7,7 @@ const require_useCustomModalOverlay = require('./useCustomModalOverlay.cjs');
|
|
|
7
7
|
const require_useTransitionPresence = require('./useTransitionPresence.cjs');
|
|
8
8
|
require('./index.cjs');
|
|
9
9
|
let react = require("react");
|
|
10
|
-
react = require_runtime.__toESM(react);
|
|
10
|
+
react = require_runtime.__toESM(react, 1);
|
|
11
11
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
12
|
let react_aria_Overlay = require("react-aria/Overlay");
|
|
13
13
|
let react_aria_useObjectRef = require("react-aria/useObjectRef");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index2.cjs","names":[
|
|
1
|
+
{"version":3,"file":"index2.cjs","names":[],"sources":["../../../src/components/Modal/index.tsx"],"sourcesContent":["import { useContext, forwardRef, memo } from 'react'\nimport * as React from 'react'\nimport type { AriaDialogProps } from 'react-aria/useDialog'\nimport Button, { ButtonProps } from '../Button'\nimport IconButton, { IconButtonProps } from '../IconButton'\nimport { Dialog } from './Dialog'\nimport { ModalBackgroundContext } from './ModalBackgroundContext'\nimport {\n CharcoalModalOverlayProps,\n useCharcoalModalOverlay,\n useWindowWidth,\n} from './useCustomModalOverlay'\nimport { useTransitionPresence } from './useTransitionPresence'\n\nimport './index.css'\n\nimport { Overlay } from 'react-aria/Overlay'\nimport { useObjectRef } from 'react-aria/useObjectRef'\n\nexport type BottomSheet = boolean | 'full'\nexport type Size = 'S' | 'M' | 'L'\n\nexport type ModalProps = CharcoalModalOverlayProps &\n AriaDialogProps & {\n children: React.ReactNode\n zIndex?: number\n title: string\n size?: Size\n bottomSheet?: BottomSheet\n isOpen: boolean\n onClose: () => void\n className?: string\n closeButtonAriaLabel?: string\n\n /**\n * https://github.com/adobe/react-spectrum/issues/3787\n * Next.jsで使用する際に発生するエラーの一時的な回避策でdocument.bodyを指定する必要がある\n */\n portalContainer?: HTMLElement\n }\n\nconst DEFAULT_Z_INDEX = 10\n\n/**\n * モーダルコンポーネント。\n *\n * @example アプリケーションルートで `<OverlayProvider>` ないし `<CharcoalProvider>` で囲った上で利用する\n * ```tsx\n * import {\n * OverlayProvider,\n * Modal,\n * ModalHeader,\n * ModalBody,\n * ModalButtons\n * } from '@charcoal-ui/react'\n *\n * <OverlayProvider>\n * <App>\n * <Modal title=\"Title\" isOpen={state.isOpen} onClose={() => state.close()} isDismissable>\n * <ModalHeader />\n * <ModalBody>\n * ...\n * <ModalButtons>...</ModalButtons>\n * </ModalBody>\n * </Modal>\n * </App>\n * </OverlayProvider>\n * ```\n */\nconst Modal = forwardRef<HTMLDivElement, ModalProps>(function ModalInner(\n { children, zIndex = DEFAULT_Z_INDEX, portalContainer, ...props },\n external,\n) {\n const {\n title,\n size = 'M',\n bottomSheet = false,\n isDismissable,\n onClose,\n className,\n isOpen = false,\n closeButtonAriaLabel = 'Close',\n } = props\n\n const ref = useObjectRef<HTMLDivElement>(external)\n\n const { modalProps, underlayProps } = useCharcoalModalOverlay(\n {\n ...props,\n isKeyboardDismissDisabled:\n isDismissable === undefined || isDismissable === false,\n },\n {\n onClose,\n isOpen,\n },\n ref,\n )\n\n const isMobile = (useWindowWidth() ?? Infinity) < 744\n const transitionEnabled = isMobile && bottomSheet !== false\n const showDismiss = !isMobile || bottomSheet !== true\n\n const bgRef = React.useRef<HTMLDivElement>(null)\n\n const { isPresent, animationState, handleTransitionEnd } =\n useTransitionPresence(isOpen, transitionEnabled, bgRef, ref)\n\n const handleClick = React.useCallback(\n (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n if (e.currentTarget === e.target) {\n onClose()\n }\n },\n [onClose],\n )\n\n if (!isPresent) {\n return null\n }\n\n return (\n <Overlay portalContainer={portalContainer}>\n <div\n className=\"charcoal-modal-background\"\n ref={bgRef}\n {...underlayProps}\n style={{ zIndex }}\n data-bottom-sheet={bottomSheet}\n data-animation={transitionEnabled ? animationState : undefined}\n onClick={handleClick}\n onTransitionEnd={handleTransitionEnd}\n >\n <ModalBackgroundContext.Provider value={bgRef.current}>\n <Dialog\n ref={ref}\n {...modalProps}\n size={size}\n bottomSheet={bottomSheet}\n className={className}\n >\n <ModalContext.Provider\n value={{\n titleProps: {},\n title,\n close: onClose,\n showDismiss,\n bottomSheet,\n }}\n >\n {children}\n {isDismissable === true && (\n <ModalCloseButton\n aria-label={closeButtonAriaLabel}\n onClick={onClose}\n />\n )}\n </ModalContext.Provider>\n </Dialog>\n </ModalBackgroundContext.Provider>\n </div>\n </Overlay>\n )\n})\n\nexport default memo(Modal)\n\nexport const ModalContext = React.createContext<{\n /**\n * @deprecated\n */\n titleProps: React.HTMLAttributes<HTMLElement>\n title: string\n close?: () => void\n showDismiss: boolean\n bottomSheet: BottomSheet\n}>({\n titleProps: {},\n title: '',\n close: undefined,\n showDismiss: true,\n bottomSheet: false,\n})\n\nexport function ModalCloseButton(props: Omit<IconButtonProps, 'icon'>) {\n return (\n <IconButton\n className=\"charcoal-modal-close-button\"\n size=\"S\"\n icon=\"24/Close\"\n type=\"button\"\n {...props}\n />\n )\n}\n\nexport function ModalDismissButton({ children, ...props }: ButtonProps) {\n const { close, showDismiss } = useContext(ModalContext)\n\n if (!showDismiss) {\n return null\n }\n\n return (\n <Button {...props} onClick={close} fullWidth>\n {children}\n </Button>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;AAyCA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BxB,MAAM,8BAA+C,SAAS,WAC5D,EAAE,UAAU,SAAS,iBAAiB,iBAAiB,GAAG,SAC1D,UACA;CACA,MAAM,EACJ,OACA,OAAO,KACP,cAAc,OACd,eACA,SACA,WACA,SAAS,OACT,uBAAuB,YACrB;CAEJ,MAAM,gDAAmC,QAAQ;CAEjD,MAAM,EAAE,YAAY,kBAAkB,sDACpC;EACE,GAAG;EACH,2BACE,kBAAkB,UAAa,kBAAkB;CACrD,GACA;EACE;EACA;CACF,GACA,GACF;CAEA,MAAM,YAAY,6CAAe,KAAK,YAAY;CAClD,MAAM,oBAAoB,YAAY,gBAAgB;CACtD,MAAM,cAAc,CAAC,YAAY,gBAAgB;CAEjD,MAAM,QAAQ,MAAM,OAAuB,IAAI;CAE/C,MAAM,EAAE,WAAW,gBAAgB,wBACjC,oDAAsB,QAAQ,mBAAmB,OAAO,GAAG;CAE7D,MAAM,cAAc,MAAM,aACvB,MAAoD;EACnD,IAAI,EAAE,kBAAkB,EAAE,QACxB,QAAQ;CAEZ,GACA,CAAC,OAAO,CACV;CAEA,IAAI,CAAC,WACH,OAAO;CAGT,OACE,2CAAC,4BAAD;EAA0B;YACxB,2CAAC,OAAD;GACE,WAAU;GACV,KAAK;GACL,GAAI;GACJ,OAAO,EAAE,OAAO;GAChB,qBAAmB;GACnB,kBAAgB,oBAAoB,iBAAiB;GACrD,SAAS;GACT,iBAAiB;aAEjB,2CAAC,sDAAuB,UAAxB;IAAiC,OAAO,MAAM;cAC5C,2CAAC,wBAAD;KACO;KACL,GAAI;KACE;KACO;KACF;eAEX,4CAAC,aAAa,UAAd;MACE,OAAO;OACL,YAAY,CAAC;OACb;OACA,OAAO;OACP;OACA;MACF;gBAPF,CASG,UACA,kBAAkB,QACjB,2CAAC,kBAAD;OACE,cAAY;OACZ,SAAS;MAAQ,EAGA;;IACjB;GACuB;EAC9B;CACE;AAEb,CAAC;AAED,oCAAoB,KAAK;AAEzB,MAAa,eAAe,MAAM,cAS/B;CACD,YAAY,CAAC;CACb,OAAO;CACP,OAAO;CACP,aAAa;CACb,aAAa;AACf,CAAC;AAED,SAAgB,iBAAiB,OAAsC;CACrE,OACE,2CAAC,uBAAD;EACE,WAAU;EACV,MAAK;EACL,MAAK;EACL,MAAK;EACL,GAAI;CAAM;AAGhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index2.js","names":[
|
|
1
|
+
{"version":3,"file":"index2.js","names":[],"sources":["../../../src/components/Modal/index.tsx"],"sourcesContent":["import { useContext, forwardRef, memo } from 'react'\nimport * as React from 'react'\nimport type { AriaDialogProps } from 'react-aria/useDialog'\nimport Button, { ButtonProps } from '../Button'\nimport IconButton, { IconButtonProps } from '../IconButton'\nimport { Dialog } from './Dialog'\nimport { ModalBackgroundContext } from './ModalBackgroundContext'\nimport {\n CharcoalModalOverlayProps,\n useCharcoalModalOverlay,\n useWindowWidth,\n} from './useCustomModalOverlay'\nimport { useTransitionPresence } from './useTransitionPresence'\n\nimport './index.css'\n\nimport { Overlay } from 'react-aria/Overlay'\nimport { useObjectRef } from 'react-aria/useObjectRef'\n\nexport type BottomSheet = boolean | 'full'\nexport type Size = 'S' | 'M' | 'L'\n\nexport type ModalProps = CharcoalModalOverlayProps &\n AriaDialogProps & {\n children: React.ReactNode\n zIndex?: number\n title: string\n size?: Size\n bottomSheet?: BottomSheet\n isOpen: boolean\n onClose: () => void\n className?: string\n closeButtonAriaLabel?: string\n\n /**\n * https://github.com/adobe/react-spectrum/issues/3787\n * Next.jsで使用する際に発生するエラーの一時的な回避策でdocument.bodyを指定する必要がある\n */\n portalContainer?: HTMLElement\n }\n\nconst DEFAULT_Z_INDEX = 10\n\n/**\n * モーダルコンポーネント。\n *\n * @example アプリケーションルートで `<OverlayProvider>` ないし `<CharcoalProvider>` で囲った上で利用する\n * ```tsx\n * import {\n * OverlayProvider,\n * Modal,\n * ModalHeader,\n * ModalBody,\n * ModalButtons\n * } from '@charcoal-ui/react'\n *\n * <OverlayProvider>\n * <App>\n * <Modal title=\"Title\" isOpen={state.isOpen} onClose={() => state.close()} isDismissable>\n * <ModalHeader />\n * <ModalBody>\n * ...\n * <ModalButtons>...</ModalButtons>\n * </ModalBody>\n * </Modal>\n * </App>\n * </OverlayProvider>\n * ```\n */\nconst Modal = forwardRef<HTMLDivElement, ModalProps>(function ModalInner(\n { children, zIndex = DEFAULT_Z_INDEX, portalContainer, ...props },\n external,\n) {\n const {\n title,\n size = 'M',\n bottomSheet = false,\n isDismissable,\n onClose,\n className,\n isOpen = false,\n closeButtonAriaLabel = 'Close',\n } = props\n\n const ref = useObjectRef<HTMLDivElement>(external)\n\n const { modalProps, underlayProps } = useCharcoalModalOverlay(\n {\n ...props,\n isKeyboardDismissDisabled:\n isDismissable === undefined || isDismissable === false,\n },\n {\n onClose,\n isOpen,\n },\n ref,\n )\n\n const isMobile = (useWindowWidth() ?? Infinity) < 744\n const transitionEnabled = isMobile && bottomSheet !== false\n const showDismiss = !isMobile || bottomSheet !== true\n\n const bgRef = React.useRef<HTMLDivElement>(null)\n\n const { isPresent, animationState, handleTransitionEnd } =\n useTransitionPresence(isOpen, transitionEnabled, bgRef, ref)\n\n const handleClick = React.useCallback(\n (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n if (e.currentTarget === e.target) {\n onClose()\n }\n },\n [onClose],\n )\n\n if (!isPresent) {\n return null\n }\n\n return (\n <Overlay portalContainer={portalContainer}>\n <div\n className=\"charcoal-modal-background\"\n ref={bgRef}\n {...underlayProps}\n style={{ zIndex }}\n data-bottom-sheet={bottomSheet}\n data-animation={transitionEnabled ? animationState : undefined}\n onClick={handleClick}\n onTransitionEnd={handleTransitionEnd}\n >\n <ModalBackgroundContext.Provider value={bgRef.current}>\n <Dialog\n ref={ref}\n {...modalProps}\n size={size}\n bottomSheet={bottomSheet}\n className={className}\n >\n <ModalContext.Provider\n value={{\n titleProps: {},\n title,\n close: onClose,\n showDismiss,\n bottomSheet,\n }}\n >\n {children}\n {isDismissable === true && (\n <ModalCloseButton\n aria-label={closeButtonAriaLabel}\n onClick={onClose}\n />\n )}\n </ModalContext.Provider>\n </Dialog>\n </ModalBackgroundContext.Provider>\n </div>\n </Overlay>\n )\n})\n\nexport default memo(Modal)\n\nexport const ModalContext = React.createContext<{\n /**\n * @deprecated\n */\n titleProps: React.HTMLAttributes<HTMLElement>\n title: string\n close?: () => void\n showDismiss: boolean\n bottomSheet: BottomSheet\n}>({\n titleProps: {},\n title: '',\n close: undefined,\n showDismiss: true,\n bottomSheet: false,\n})\n\nexport function ModalCloseButton(props: Omit<IconButtonProps, 'icon'>) {\n return (\n <IconButton\n className=\"charcoal-modal-close-button\"\n size=\"S\"\n icon=\"24/Close\"\n type=\"button\"\n {...props}\n />\n )\n}\n\nexport function ModalDismissButton({ children, ...props }: ButtonProps) {\n const { close, showDismiss } = useContext(ModalContext)\n\n if (!showDismiss) {\n return null\n }\n\n return (\n <Button {...props} onClick={close} fullWidth>\n {children}\n </Button>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;AAyCA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BxB,MAAM,QAAQ,WAAuC,SAAS,WAC5D,EAAE,UAAU,SAAS,iBAAiB,iBAAiB,GAAG,SAC1D,UACA;CACA,MAAM,EACJ,OACA,OAAO,KACP,cAAc,OACd,eACA,SACA,WACA,SAAS,OACT,uBAAuB,YACrB;CAEJ,MAAM,MAAM,aAA6B,QAAQ;CAEjD,MAAM,EAAE,YAAY,kBAAkB,wBACpC;EACE,GAAG;EACH,2BACE,kBAAkB,UAAa,kBAAkB;CACrD,GACA;EACE;EACA;CACF,GACA,GACF;CAEA,MAAM,YAAY,eAAe,KAAK,YAAY;CAClD,MAAM,oBAAoB,YAAY,gBAAgB;CACtD,MAAM,cAAc,CAAC,YAAY,gBAAgB;CAEjD,MAAM,QAAQ,QAAM,OAAuB,IAAI;CAE/C,MAAM,EAAE,WAAW,gBAAgB,wBACjC,sBAAsB,QAAQ,mBAAmB,OAAO,GAAG;CAE7D,MAAM,cAAc,QAAM,aACvB,MAAoD;EACnD,IAAI,EAAE,kBAAkB,EAAE,QACxB,QAAQ;CAEZ,GACA,CAAC,OAAO,CACV;CAEA,IAAI,CAAC,WACH,OAAO;CAGT,OACE,oBAAC,SAAD;EAA0B;YACxB,oBAAC,OAAD;GACE,WAAU;GACV,KAAK;GACL,GAAI;GACJ,OAAO,EAAE,OAAO;GAChB,qBAAmB;GACnB,kBAAgB,oBAAoB,iBAAiB;GACrD,SAAS;GACT,iBAAiB;aAEjB,oBAAC,uBAAuB,UAAxB;IAAiC,OAAO,MAAM;cAC5C,oBAAC,QAAD;KACO;KACL,GAAI;KACE;KACO;KACF;eAEX,qBAAC,aAAa,UAAd;MACE,OAAO;OACL,YAAY,CAAC;OACb;OACA,OAAO;OACP;OACA;MACF;gBAPF,CASG,UACA,kBAAkB,QACjB,oBAAC,kBAAD;OACE,cAAY;OACZ,SAAS;MAAQ,EAGA;;IACjB;GACuB;EAC9B;CACE;AAEb,CAAC;AAED,oBAAe,KAAK,KAAK;AAEzB,MAAa,eAAe,QAAM,cAS/B;CACD,YAAY,CAAC;CACb,OAAO;CACP,OAAO;CACP,aAAa;CACb,aAAa;AACf,CAAC;AAED,SAAgB,iBAAiB,OAAsC;CACrE,OACE,oBAAC,YAAD;EACE,WAAU;EACV,MAAK;EACL,MAAK;EACL,MAAK;EACL,GAAI;CAAM;AAGhB"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
|
|
3
3
|
const require_usePreventScroll = require('../DropdownSelector/Popover/usePreventScroll.cjs');
|
|
4
4
|
let react = require("react");
|
|
5
|
-
react = require_runtime.__toESM(react);
|
|
5
|
+
react = require_runtime.__toESM(react, 1);
|
|
6
6
|
let react_aria_private_overlays_ariaHideOutside = require("react-aria/private/overlays/ariaHideOutside");
|
|
7
7
|
let react_aria_private_overlays_Overlay = require("react-aria/private/overlays/Overlay");
|
|
8
8
|
let react_aria_useOverlay = require("react-aria/useOverlay");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCustomModalOverlay.cjs","names":[
|
|
1
|
+
{"version":3,"file":"useCustomModalOverlay.cjs","names":[],"sources":["../../../src/components/Modal/useCustomModalOverlay.tsx"],"sourcesContent":["import * as React from 'react'\nimport { ariaHideOutside } from 'react-aria/private/overlays/ariaHideOutside'\nimport { useOverlayFocusContain } from 'react-aria/private/overlays/Overlay'\nimport { usePreventScroll } from '../DropdownSelector/Popover/usePreventScroll'\n\nimport {\n AriaModalOverlayProps,\n ModalOverlayAria,\n} from 'react-aria/useModalOverlay'\nimport { useOverlay } from 'react-aria/useOverlay'\n\n/**\n * We want to enable scrolling on the modal background,\n * but `useModalOverlay` (specifically, `useOverlay` within it) detects pointer events on the scrollbar.\n * Therefore, to prevent this issue, we need to override `shouldCloseOnInteractOutside` in `useModalOverlay`.\n */\nexport type CharcoalModalOverlayProps = AriaModalOverlayProps & {\n overflowClip?: boolean\n}\nexport function useCharcoalModalOverlay(\n props: CharcoalModalOverlayProps,\n state: { isOpen: boolean; onClose: () => void },\n ref: React.RefObject<HTMLElement | null>,\n): ModalOverlayAria {\n const { overlayProps, underlayProps } = useOverlay(\n {\n ...props,\n isOpen: state.isOpen,\n onClose: state.onClose,\n shouldCloseOnInteractOutside: () => false,\n },\n ref,\n )\n\n usePreventScroll(\n typeof document !== 'undefined' ? document.body : null,\n state.isOpen,\n props.overflowClip,\n )\n\n useOverlayFocusContain()\n\n React.useEffect(() => {\n if (state.isOpen && ref.current) {\n return ariaHideOutside([ref.current])\n }\n }, [state.isOpen, ref])\n\n return {\n modalProps: overlayProps,\n underlayProps,\n }\n}\n\nfunction isWindowDefined() {\n return typeof window !== 'undefined'\n}\n\nexport function useWindowWidth() {\n const [width, setWidth] = React.useState(\n isWindowDefined() ? window.innerWidth : null,\n )\n React.useEffect(() => {\n const handleResize = () => {\n setWidth(window.innerWidth)\n }\n window.addEventListener('resize', handleResize)\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n })\n return width\n}\n"],"mappings":";;;;;;;;;;AAmBA,SAAgB,wBACd,OACA,OACA,KACkB;CAClB,MAAM,EAAE,cAAc,wDACpB;EACE,GAAG;EACH,QAAQ,MAAM;EACd,SAAS,MAAM;EACf,oCAAoC;CACtC,GACA,GACF;CAEA,0CACE,OAAO,aAAa,cAAc,SAAS,OAAO,MAClD,MAAM,QACN,MAAM,YACR;CAEA,gEAAuB;CAEvB,MAAM,gBAAgB;EACpB,IAAI,MAAM,UAAU,IAAI,SACtB,wEAAuB,CAAC,IAAI,OAAO,CAAC;CAExC,GAAG,CAAC,MAAM,QAAQ,GAAG,CAAC;CAEtB,OAAO;EACL,YAAY;EACZ;CACF;AACF;AAEA,SAAS,kBAAkB;CACzB,OAAO,OAAO,WAAW;AAC3B;AAEA,SAAgB,iBAAiB;CAC/B,MAAM,CAAC,OAAO,YAAY,MAAM,SAC9B,gBAAgB,IAAI,OAAO,aAAa,IAC1C;CACA,MAAM,gBAAgB;EACpB,MAAM,qBAAqB;GACzB,SAAS,OAAO,UAAU;EAC5B;EACA,OAAO,iBAAiB,UAAU,YAAY;EAC9C,aAAa;GACX,OAAO,oBAAoB,UAAU,YAAY;EACnD;CACF,CAAC;CACD,OAAO;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCustomModalOverlay.js","names":[
|
|
1
|
+
{"version":3,"file":"useCustomModalOverlay.js","names":[],"sources":["../../../src/components/Modal/useCustomModalOverlay.tsx"],"sourcesContent":["import * as React from 'react'\nimport { ariaHideOutside } from 'react-aria/private/overlays/ariaHideOutside'\nimport { useOverlayFocusContain } from 'react-aria/private/overlays/Overlay'\nimport { usePreventScroll } from '../DropdownSelector/Popover/usePreventScroll'\n\nimport {\n AriaModalOverlayProps,\n ModalOverlayAria,\n} from 'react-aria/useModalOverlay'\nimport { useOverlay } from 'react-aria/useOverlay'\n\n/**\n * We want to enable scrolling on the modal background,\n * but `useModalOverlay` (specifically, `useOverlay` within it) detects pointer events on the scrollbar.\n * Therefore, to prevent this issue, we need to override `shouldCloseOnInteractOutside` in `useModalOverlay`.\n */\nexport type CharcoalModalOverlayProps = AriaModalOverlayProps & {\n overflowClip?: boolean\n}\nexport function useCharcoalModalOverlay(\n props: CharcoalModalOverlayProps,\n state: { isOpen: boolean; onClose: () => void },\n ref: React.RefObject<HTMLElement | null>,\n): ModalOverlayAria {\n const { overlayProps, underlayProps } = useOverlay(\n {\n ...props,\n isOpen: state.isOpen,\n onClose: state.onClose,\n shouldCloseOnInteractOutside: () => false,\n },\n ref,\n )\n\n usePreventScroll(\n typeof document !== 'undefined' ? document.body : null,\n state.isOpen,\n props.overflowClip,\n )\n\n useOverlayFocusContain()\n\n React.useEffect(() => {\n if (state.isOpen && ref.current) {\n return ariaHideOutside([ref.current])\n }\n }, [state.isOpen, ref])\n\n return {\n modalProps: overlayProps,\n underlayProps,\n }\n}\n\nfunction isWindowDefined() {\n return typeof window !== 'undefined'\n}\n\nexport function useWindowWidth() {\n const [width, setWidth] = React.useState(\n isWindowDefined() ? window.innerWidth : null,\n )\n React.useEffect(() => {\n const handleResize = () => {\n setWidth(window.innerWidth)\n }\n window.addEventListener('resize', handleResize)\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n })\n return width\n}\n"],"mappings":";;;;;;;;AAmBA,SAAgB,wBACd,OACA,OACA,KACkB;CAClB,MAAM,EAAE,cAAc,kBAAkB,WACtC;EACE,GAAG;EACH,QAAQ,MAAM;EACd,SAAS,MAAM;EACf,oCAAoC;CACtC,GACA,GACF;CAEA,iBACE,OAAO,aAAa,cAAc,SAAS,OAAO,MAClD,MAAM,QACN,MAAM,YACR;CAEA,uBAAuB;CAEvB,QAAM,gBAAgB;EACpB,IAAI,MAAM,UAAU,IAAI,SACtB,OAAO,gBAAgB,CAAC,IAAI,OAAO,CAAC;CAExC,GAAG,CAAC,MAAM,QAAQ,GAAG,CAAC;CAEtB,OAAO;EACL,YAAY;EACZ;CACF;AACF;AAEA,SAAS,kBAAkB;CACzB,OAAO,OAAO,WAAW;AAC3B;AAEA,SAAgB,iBAAiB;CAC/B,MAAM,CAAC,OAAO,YAAY,QAAM,SAC9B,gBAAgB,IAAI,OAAO,aAAa,IAC1C;CACA,QAAM,gBAAgB;EACpB,MAAM,qBAAqB;GACzB,SAAS,OAAO,UAAU;EAC5B;EACA,OAAO,iBAAiB,UAAU,YAAY;EAC9C,aAAa;GACX,OAAO,oBAAoB,UAAU,YAAY;EACnD;CACF,CAAC;CACD,OAAO;AACT"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
|
|
3
2
|
const require_useIsomorphicLayoutEffect = require('../../_lib/useIsomorphicLayoutEffect.cjs');
|
|
4
3
|
let react = require("react");
|
|
5
4
|
|
|
6
5
|
//#region src/components/Modal/useTransitionPresence.ts
|
|
7
|
-
const MODAL_TRANSITION_DURATION_MS = 400;
|
|
8
6
|
/**
|
|
9
7
|
* アニメーション終了時の状態遷移。
|
|
10
8
|
* 途中で open/close が切り替わって state が既に進んでいた場合は何もしない
|
|
@@ -39,7 +37,7 @@ function useTransitionPresence(isOpen, enabled, backgroundRef, dialogRef) {
|
|
|
39
37
|
const isAnimating = state === "entering" || state === "exiting";
|
|
40
38
|
(0, react.useEffect)(() => {
|
|
41
39
|
if (!isAnimating) return;
|
|
42
|
-
const timer = setTimeout(() => setState(settle),
|
|
40
|
+
const timer = setTimeout(() => setState(settle), 500);
|
|
43
41
|
return () => clearTimeout(timer);
|
|
44
42
|
}, [isAnimating, state]);
|
|
45
43
|
const handleTransitionEnd = (0, react.useCallback)((e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTransitionPresence.cjs","names":[
|
|
1
|
+
{"version":3,"file":"useTransitionPresence.cjs","names":[],"sources":["../../../src/components/Modal/useTransitionPresence.ts"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useState,\n RefObject,\n TransitionEvent,\n} from 'react'\nimport { useIsomorphicLayoutEffect } from '../../_lib/useIsomorphicLayoutEffect'\n\n// index.css の transition-duration と一致させること\nexport const MODAL_TRANSITION_DURATION_MS = 400\n\ntype AnimationState = 'exited' | 'entering' | 'entered' | 'exiting'\n\n/**\n * アニメーション終了時の状態遷移。\n * 途中で open/close が切り替わって state が既に進んでいた場合は何もしない\n */\nfunction settle(state: AnimationState): AnimationState {\n if (state === 'entering') return 'entered'\n if (state === 'exiting') return 'exited'\n return state\n}\n\n/**\n * CSS transition によるモーダルの開閉アニメーションを管理する。\n * exit アニメーションが終わるまで DOM をマウントしたままにする\n *\n * @param isOpen モーダルを開くべきか\n * @param enabled アニメーションを行うか(false なら即座にマウント・アンマウント)\n * @param backgroundRef 背景要素。マウント直後の layout flush に使う\n * @param dialogRef transform をアニメーションさせる要素(ダイアログ)\n */\nexport function useTransitionPresence(\n isOpen: boolean,\n enabled: boolean,\n backgroundRef: RefObject<HTMLElement>,\n dialogRef: RefObject<HTMLElement>,\n) {\n // 開いた状態で初回マウントされた場合もアニメーションさせるため常に 'exited' から始める。\n // enabled でない場合は下の layout effect が描画前に 'entered' へ進める\n const [state, setState] = useState<AnimationState>('exited')\n\n useIsomorphicLayoutEffect(() => {\n if (!enabled) {\n setState(isOpen ? 'entered' : 'exited')\n } else if (isOpen) {\n // 閉じた状態のスタイルを確定させ、enter の transition が発火するようにする。\n // dialogRef は子コンポーネントの passive effect で張られるためこの時点では\n // まだ古い/null のことがあり、同じ commit で同期的に張られる背景要素を読む\n if (backgroundRef.current) void backgroundRef.current.offsetHeight\n setState((s) => (s === 'exited' || s === 'exiting' ? 'entering' : s))\n } else {\n setState((s) => (s === 'exited' ? s : 'exiting'))\n }\n }, [isOpen, enabled, backgroundRef])\n\n // safety net: transitionend が来なくても(トランジションのキャンセル、\n // reduced-motion、バックグラウンドタブ等)モーダルが永遠に残らないようにする\n const isAnimating = state === 'entering' || state === 'exiting'\n useEffect(() => {\n if (!isAnimating) return\n // transitionend と同時刻に発火して競合しないよう少し遅らせる\n const timer = setTimeout(\n () => setState(settle),\n MODAL_TRANSITION_DURATION_MS + 100,\n )\n return () => clearTimeout(timer)\n }, [isAnimating, state])\n\n // 背景 div に付ける。ダイアログの transform の transitionend だけが\n // 開閉アニメーションの終了を意味する(他のトランジションもバブルしてくるため絞り込む)。\n // propertyName は index.css がアニメーションさせるプロパティと一致させること。\n // なお enter 完了直後の close では、完了済み enter の transitionend が\n // 'exiting' へ遷移した後に届いて exit アニメーションが省略される可能性が\n // 理論上あるが、サブフレーム幅のレースで実害は見た目のみのため許容している\n const handleTransitionEnd = useCallback(\n (e: TransitionEvent<HTMLElement>) => {\n const isDialogSlide =\n e.target === dialogRef.current && e.propertyName === 'transform'\n if (isDialogSlide) {\n setState(settle)\n }\n },\n [dialogRef],\n )\n\n return {\n // enabled でないときは isOpen だけで即座にマウント・アンマウントする\n // (state 経由にすると close 時に開いたツリーを丸ごと 1 回余計に描画する)\n isPresent: enabled ? isOpen || state !== 'exited' : isOpen,\n animationState: state,\n handleTransitionEnd,\n }\n}\n"],"mappings":";;;;;;;;;AAkBA,SAAS,OAAO,OAAuC;CACrD,IAAI,UAAU,YAAY,OAAO;CACjC,IAAI,UAAU,WAAW,OAAO;CAChC,OAAO;AACT;;;;;;;;;;AAWA,SAAgB,sBACd,QACA,SACA,eACA,WACA;CAGA,MAAM,CAAC,OAAO,gCAAqC,QAAQ;CAE3D,kEAAgC;EAC9B,IAAI,CAAC,SACH,SAAS,SAAS,YAAY,QAAQ;OACjC,IAAI,QAAQ;GAIjB,IAAI,cAAc,SAAS,AAAK,cAAc,QAAQ;GACtD,UAAU,MAAO,MAAM,YAAY,MAAM,YAAY,aAAa,CAAE;EACtE,OACE,UAAU,MAAO,MAAM,WAAW,IAAI,SAAU;CAEpD,GAAG;EAAC;EAAQ;EAAS;CAAa,CAAC;CAInC,MAAM,cAAc,UAAU,cAAc,UAAU;CACtD,2BAAgB;EACd,IAAI,CAAC,aAAa;EAElB,MAAM,QAAQ,iBACN,SAAS,MAAM,GACrB,GACF;EACA,aAAa,aAAa,KAAK;CACjC,GAAG,CAAC,aAAa,KAAK,CAAC;CAQvB,MAAM,8CACH,MAAoC;EAGnC,IADE,EAAE,WAAW,UAAU,WAAW,EAAE,iBAAiB,aAErD,SAAS,MAAM;CAEnB,GACA,CAAC,SAAS,CACZ;CAEA,OAAO;EAGL,WAAW,UAAU,UAAU,UAAU,WAAW;EACpD,gBAAgB;EAChB;CACF;AACF"}
|
|
@@ -3,7 +3,6 @@ import { useIsomorphicLayoutEffect } from "../../_lib/useIsomorphicLayoutEffect.
|
|
|
3
3
|
import { useCallback, useEffect, useState } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/components/Modal/useTransitionPresence.ts
|
|
6
|
-
const MODAL_TRANSITION_DURATION_MS = 400;
|
|
7
6
|
/**
|
|
8
7
|
* アニメーション終了時の状態遷移。
|
|
9
8
|
* 途中で open/close が切り替わって state が既に進んでいた場合は何もしない
|
|
@@ -38,7 +37,7 @@ function useTransitionPresence(isOpen, enabled, backgroundRef, dialogRef) {
|
|
|
38
37
|
const isAnimating = state === "entering" || state === "exiting";
|
|
39
38
|
useEffect(() => {
|
|
40
39
|
if (!isAnimating) return;
|
|
41
|
-
const timer = setTimeout(() => setState(settle),
|
|
40
|
+
const timer = setTimeout(() => setState(settle), 500);
|
|
42
41
|
return () => clearTimeout(timer);
|
|
43
42
|
}, [isAnimating, state]);
|
|
44
43
|
const handleTransitionEnd = useCallback((e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTransitionPresence.js","names":[
|
|
1
|
+
{"version":3,"file":"useTransitionPresence.js","names":[],"sources":["../../../src/components/Modal/useTransitionPresence.ts"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useState,\n RefObject,\n TransitionEvent,\n} from 'react'\nimport { useIsomorphicLayoutEffect } from '../../_lib/useIsomorphicLayoutEffect'\n\n// index.css の transition-duration と一致させること\nexport const MODAL_TRANSITION_DURATION_MS = 400\n\ntype AnimationState = 'exited' | 'entering' | 'entered' | 'exiting'\n\n/**\n * アニメーション終了時の状態遷移。\n * 途中で open/close が切り替わって state が既に進んでいた場合は何もしない\n */\nfunction settle(state: AnimationState): AnimationState {\n if (state === 'entering') return 'entered'\n if (state === 'exiting') return 'exited'\n return state\n}\n\n/**\n * CSS transition によるモーダルの開閉アニメーションを管理する。\n * exit アニメーションが終わるまで DOM をマウントしたままにする\n *\n * @param isOpen モーダルを開くべきか\n * @param enabled アニメーションを行うか(false なら即座にマウント・アンマウント)\n * @param backgroundRef 背景要素。マウント直後の layout flush に使う\n * @param dialogRef transform をアニメーションさせる要素(ダイアログ)\n */\nexport function useTransitionPresence(\n isOpen: boolean,\n enabled: boolean,\n backgroundRef: RefObject<HTMLElement>,\n dialogRef: RefObject<HTMLElement>,\n) {\n // 開いた状態で初回マウントされた場合もアニメーションさせるため常に 'exited' から始める。\n // enabled でない場合は下の layout effect が描画前に 'entered' へ進める\n const [state, setState] = useState<AnimationState>('exited')\n\n useIsomorphicLayoutEffect(() => {\n if (!enabled) {\n setState(isOpen ? 'entered' : 'exited')\n } else if (isOpen) {\n // 閉じた状態のスタイルを確定させ、enter の transition が発火するようにする。\n // dialogRef は子コンポーネントの passive effect で張られるためこの時点では\n // まだ古い/null のことがあり、同じ commit で同期的に張られる背景要素を読む\n if (backgroundRef.current) void backgroundRef.current.offsetHeight\n setState((s) => (s === 'exited' || s === 'exiting' ? 'entering' : s))\n } else {\n setState((s) => (s === 'exited' ? s : 'exiting'))\n }\n }, [isOpen, enabled, backgroundRef])\n\n // safety net: transitionend が来なくても(トランジションのキャンセル、\n // reduced-motion、バックグラウンドタブ等)モーダルが永遠に残らないようにする\n const isAnimating = state === 'entering' || state === 'exiting'\n useEffect(() => {\n if (!isAnimating) return\n // transitionend と同時刻に発火して競合しないよう少し遅らせる\n const timer = setTimeout(\n () => setState(settle),\n MODAL_TRANSITION_DURATION_MS + 100,\n )\n return () => clearTimeout(timer)\n }, [isAnimating, state])\n\n // 背景 div に付ける。ダイアログの transform の transitionend だけが\n // 開閉アニメーションの終了を意味する(他のトランジションもバブルしてくるため絞り込む)。\n // propertyName は index.css がアニメーションさせるプロパティと一致させること。\n // なお enter 完了直後の close では、完了済み enter の transitionend が\n // 'exiting' へ遷移した後に届いて exit アニメーションが省略される可能性が\n // 理論上あるが、サブフレーム幅のレースで実害は見た目のみのため許容している\n const handleTransitionEnd = useCallback(\n (e: TransitionEvent<HTMLElement>) => {\n const isDialogSlide =\n e.target === dialogRef.current && e.propertyName === 'transform'\n if (isDialogSlide) {\n setState(settle)\n }\n },\n [dialogRef],\n )\n\n return {\n // enabled でないときは isOpen だけで即座にマウント・アンマウントする\n // (state 経由にすると close 時に開いたツリーを丸ごと 1 回余計に描画する)\n isPresent: enabled ? isOpen || state !== 'exited' : isOpen,\n animationState: state,\n handleTransitionEnd,\n }\n}\n"],"mappings":";;;;;;;;;AAkBA,SAAS,OAAO,OAAuC;CACrD,IAAI,UAAU,YAAY,OAAO;CACjC,IAAI,UAAU,WAAW,OAAO;CAChC,OAAO;AACT;;;;;;;;;;AAWA,SAAgB,sBACd,QACA,SACA,eACA,WACA;CAGA,MAAM,CAAC,OAAO,YAAY,SAAyB,QAAQ;CAE3D,gCAAgC;EAC9B,IAAI,CAAC,SACH,SAAS,SAAS,YAAY,QAAQ;OACjC,IAAI,QAAQ;GAIjB,IAAI,cAAc,SAAS,AAAK,cAAc,QAAQ;GACtD,UAAU,MAAO,MAAM,YAAY,MAAM,YAAY,aAAa,CAAE;EACtE,OACE,UAAU,MAAO,MAAM,WAAW,IAAI,SAAU;CAEpD,GAAG;EAAC;EAAQ;EAAS;CAAa,CAAC;CAInC,MAAM,cAAc,UAAU,cAAc,UAAU;CACtD,gBAAgB;EACd,IAAI,CAAC,aAAa;EAElB,MAAM,QAAQ,iBACN,SAAS,MAAM,GACrB,GACF;EACA,aAAa,aAAa,KAAK;CACjC,GAAG,CAAC,aAAa,KAAK,CAAC;CAQvB,MAAM,sBAAsB,aACzB,MAAoC;EAGnC,IADE,EAAE,WAAW,UAAU,WAAW,EAAE,iBAAiB,aAErD,SAAS,MAAM;CAEnB,GACA,CAAC,SAAS,CACZ;CAEA,OAAO;EAGL,WAAW,UAAU,UAAU,UAAU,WAAW;EACpD,gBAAgB;EAChB;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.cjs","names":[
|
|
1
|
+
{"version":3,"file":"context.cjs","names":[],"sources":["../../../src/components/MultiSelect/context.ts"],"sourcesContent":["import { createContext } from 'react'\n\ntype MultiSelectGroupContext = {\n name: string\n selected: string[]\n disabled: boolean\n readonly: boolean\n invalid: boolean\n onChange: ({ value, selected }: { value: string; selected: boolean }) => void\n}\n\nexport const MultiSelectGroupContext = createContext<MultiSelectGroupContext>({\n name: undefined as never,\n selected: [],\n disabled: false,\n readonly: false,\n invalid: false,\n onChange() {\n throw new Error(\n 'Cannot find `onChange()` handler. Perhaps you forgot to wrap it with `<MultiSelectGroup />` ?',\n )\n },\n})\n"],"mappings":";;;;AAWA,MAAa,mDAAiE;CAC5E,MAAM;CACN,UAAU,CAAA;CACV,UAAU;CACV,UAAU;CACV,SAAS;CACT,WAAW;EACT,MAAM,IAAI,MACR,+FACF;CACF;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/MultiSelect/context.ts"],"sourcesContent":["import { createContext } from 'react'\n\ntype MultiSelectGroupContext = {\n name: string\n selected: string[]\n disabled: boolean\n readonly: boolean\n invalid: boolean\n onChange: ({ value, selected }: { value: string; selected: boolean }) => void\n}\n\nexport const MultiSelectGroupContext = createContext<MultiSelectGroupContext>({\n name: undefined as never,\n selected: [],\n disabled: false,\n readonly: false,\n invalid: false,\n onChange() {\n throw new Error(\n 'Cannot find `onChange()` handler. Perhaps you forgot to wrap it with `<MultiSelectGroup />` ?',\n )\n },\n})\n"],"mappings":";;;;AAWA,MAAa,0BAA0B,cAAuC;CAC5E,MAAM;CACN,UAAU,CAAA;CACV,UAAU;CACV,UAAU;CACV,SAAS;CACT,WAAW;EACT,MAAM,IAAI,MACR,+FACF;CACF;AACF,CAAC"}
|
|
@@ -13,7 +13,7 @@ export type MultiSelectProps = React.PropsWithChildren<{
|
|
|
13
13
|
declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<{
|
|
14
14
|
value: string;
|
|
15
15
|
disabled?: boolean;
|
|
16
|
-
variant?:
|
|
16
|
+
variant?: 'default' | 'overlay';
|
|
17
17
|
className?: string;
|
|
18
18
|
onChange?: (payload: {
|
|
19
19
|
value: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MultiSelect/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,OAAO,aAAa,CAAA;AAEpB,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACrD,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;CACnE,CAAC,CAAA;;WALO,MAAM;eACF,OAAO;cACR,SAAS,GAAG,SAAS;gBACnB,MAAM;eACP,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MultiSelect/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,OAAO,aAAa,CAAA;AAEpB,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACrD,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;CACnE,CAAC,CAAA;;WALO,MAAM;eACF,OAAO;cACR,SAAS,GAAG,SAAS;gBACnB,MAAM;eACP,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI;;;;;AA4EpE,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAC,CAAA;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAgB,EAChB,QAAgB,EAChB,OAAe,EACf,QAAQ,GACT,EAAE,qBAAqB,2CAuCvB"}
|
|
@@ -5,10 +5,10 @@ const require_context = require('./context.cjs');
|
|
|
5
5
|
const require_index = require('../Icon/index.cjs');
|
|
6
6
|
require('./index.cjs');
|
|
7
7
|
let react = require("react");
|
|
8
|
-
react = require_runtime.__toESM(react);
|
|
8
|
+
react = require_runtime.__toESM(react, 1);
|
|
9
9
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
10
|
let warning = require("warning");
|
|
11
|
-
warning = require_runtime.__toESM(warning);
|
|
11
|
+
warning = require_runtime.__toESM(warning, 1);
|
|
12
12
|
|
|
13
13
|
//#region src/components/MultiSelect/index.tsx
|
|
14
14
|
const MultiSelect = (0, react.forwardRef)(function MultiSelectInner({ value, disabled = false, onChange, variant = "default", className, children }, ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index2.cjs","names":[
|
|
1
|
+
{"version":3,"file":"index2.cjs","names":[],"sources":["../../../src/components/MultiSelect/index.tsx"],"sourcesContent":["import { ChangeEvent, useCallback, useContext, forwardRef, memo } from 'react'\nimport * as React from 'react'\nimport warning from 'warning'\n\nimport { MultiSelectGroupContext } from './context'\nimport Icon from '../Icon'\nimport { useClassNames } from '../../_lib/useClassNames'\nimport './index.css'\n\nexport type MultiSelectProps = React.PropsWithChildren<{\n value: string\n disabled?: boolean\n variant?: 'default' | 'overlay'\n className?: string\n onChange?: (payload: { value: string; selected: boolean }) => void\n}>\n\nconst MultiSelect = forwardRef<HTMLInputElement, MultiSelectProps>(\n function MultiSelectInner(\n {\n value,\n disabled = false,\n onChange,\n variant = 'default',\n className,\n children,\n },\n ref,\n ) {\n const {\n name,\n selected,\n disabled: parentDisabled,\n readonly,\n invalid,\n onChange: parentOnChange,\n } = useContext(MultiSelectGroupContext)\n\n warning(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n name !== undefined,\n `\"name\" is not Provided for <MultiSelect>. Perhaps you forgot to wrap with <MultiSelectGroup> ?`,\n )\n\n const isSelected = selected.includes(value)\n const isDisabled = disabled || parentDisabled || readonly\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n if (!(event.currentTarget instanceof HTMLInputElement)) {\n return\n }\n if (onChange) onChange({ value, selected: event.currentTarget.checked })\n parentOnChange({ value, selected: event.currentTarget.checked })\n },\n [onChange, parentOnChange, value],\n )\n const classNames = useClassNames('charcoal-multi-select', className)\n return (\n <label aria-disabled={isDisabled} className={classNames}>\n <input\n className=\"charcoal-multi-select-input\"\n name={name}\n value={value}\n type=\"checkbox\"\n checked={isSelected}\n disabled={isDisabled}\n onChange={handleChange}\n data-overlay={variant === 'overlay'}\n aria-invalid={invalid}\n ref={ref}\n />\n <div\n className=\"charcoal-multi-select-overlay\"\n data-overlay={variant === 'overlay'}\n aria-invalid={invalid}\n aria-hidden\n >\n <Icon name=\"24/Check\" fixedSize={16} />\n </div>\n {Boolean(children) && (\n <div className=\"charcoal-multi-select-label\">{children}</div>\n )}\n </label>\n )\n },\n)\n\nexport default memo(MultiSelect)\n\nexport type MultiSelectGroupProps = React.PropsWithChildren<{\n className?: string\n style?: React.CSSProperties\n name: string\n label: string\n selected: string[]\n onChange: (selected: string[]) => void\n disabled?: boolean\n readonly?: boolean\n invalid?: boolean\n}>\n\nexport function MultiSelectGroup({\n className,\n style,\n name,\n label,\n selected,\n onChange,\n disabled = false,\n readonly = false,\n invalid = false,\n children,\n}: MultiSelectGroupProps) {\n const handleChange = useCallback(\n (payload: { value: string; selected: boolean }) => {\n const index = selected.indexOf(payload.value)\n\n if (payload.selected) {\n if (index < 0) {\n onChange([...selected, payload.value])\n }\n } else {\n if (index >= 0) {\n onChange([...selected.slice(0, index), ...selected.slice(index + 1)])\n }\n }\n },\n [onChange, selected],\n )\n\n return (\n <MultiSelectGroupContext.Provider\n value={{\n name,\n selected: Array.from(new Set(selected)),\n disabled,\n readonly,\n invalid,\n onChange: handleChange,\n }}\n >\n <div\n className={className}\n style={style}\n aria-label={label}\n data-testid=\"SelectGroup\"\n >\n {children}\n </div>\n </MultiSelectGroupContext.Provider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAiBA,MAAM,oCACJ,SAAS,iBACP,EACE,OACA,WAAW,OACX,UACA,UAAU,WACV,WACA,YAEF,KACA;CACA,MAAM,EACJ,MACA,UACA,UAAU,gBACV,UACA,SACA,UAAU,yCACG,uCAAuB;CAEtC,qBAEE,SAAS,QACT,gGACF;CAEA,MAAM,aAAa,SAAS,SAAS,KAAK;CAC1C,MAAM,aAAa,YAAY,kBAAkB;CAEjD,MAAM,uCACH,UAAyC;EACxC,IAAI,EAAE,MAAM,yBAAyB,mBACnC;EAEF,IAAI,UAAU,SAAS;GAAE;GAAO,UAAU,MAAM,cAAc;EAAQ,CAAC;EACvE,eAAe;GAAE;GAAO,UAAU,MAAM,cAAc;EAAQ,CAAC;CACjE,GACA;EAAC;EAAU;EAAgB;CAAK,CAClC;CAEA,OACE,4CAAC,SAAD;EAAO,iBAAe;EAAY,WAFjB,oCAAc,yBAAyB,SAEX;YAA7C;GACE,2CAAC,SAAD;IACE,WAAU;IACJ;IACC;IACP,MAAK;IACL,SAAS;IACT,UAAU;IACV,UAAU;IACV,gBAAc,YAAY;IAC1B,gBAAc;IACT;GAAI;GAEX,2CAAC,OAAD;IACE,WAAU;IACV,gBAAc,YAAY;IAC1B,gBAAc;IACd;cAEA,2CAAC,uBAAD;KAAM,MAAK;KAAW,WAAW;IAAG;GACjC;GACJ,QAAQ,QAAQ,KACf,2CAAC,OAAD;IAAK,WAAU;IAA+B;GAAc;EAEzD;;AAEX,CACF;AAEA,0CAAoB,WAAW;AAc/B,SAAgB,iBAAiB,EAC/B,WACA,OACA,MACA,OACA,UACA,UACA,WAAW,OACX,WAAW,OACX,UAAU,OACV,YACwB;CACxB,MAAM,uCACH,YAAkD;EACjD,MAAM,QAAQ,SAAS,QAAQ,QAAQ,KAAK;EAE5C,IAAI,QAAQ,UACV;OAAI,QAAQ,GACV,SAAS,CAAC,GAAG,UAAU,QAAQ,KAAK,CAAC;EACvC,OAEA,IAAI,SAAS,GACX,SAAS,CAAC,GAAG,SAAS,MAAM,GAAG,KAAK,GAAG,GAAG,SAAS,MAAM,QAAQ,CAAC,CAAC,CAAC;CAG1E,GACA,CAAC,UAAU,QAAQ,CACrB;CAEA,OACE,2CAAC,wCAAwB,UAAzB;EACE,OAAO;GACL;GACA,UAAU,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC;GACtC;GACA;GACA;GACA,UAAU;EACZ;YAEA,2CAAC,OAAD;GACa;GACJ;GACP,cAAY;GACZ,eAAY;GAEX;EACE;CAC2B;AAEtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index2.js","names":[
|
|
1
|
+
{"version":3,"file":"index2.js","names":[],"sources":["../../../src/components/MultiSelect/index.tsx"],"sourcesContent":["import { ChangeEvent, useCallback, useContext, forwardRef, memo } from 'react'\nimport * as React from 'react'\nimport warning from 'warning'\n\nimport { MultiSelectGroupContext } from './context'\nimport Icon from '../Icon'\nimport { useClassNames } from '../../_lib/useClassNames'\nimport './index.css'\n\nexport type MultiSelectProps = React.PropsWithChildren<{\n value: string\n disabled?: boolean\n variant?: 'default' | 'overlay'\n className?: string\n onChange?: (payload: { value: string; selected: boolean }) => void\n}>\n\nconst MultiSelect = forwardRef<HTMLInputElement, MultiSelectProps>(\n function MultiSelectInner(\n {\n value,\n disabled = false,\n onChange,\n variant = 'default',\n className,\n children,\n },\n ref,\n ) {\n const {\n name,\n selected,\n disabled: parentDisabled,\n readonly,\n invalid,\n onChange: parentOnChange,\n } = useContext(MultiSelectGroupContext)\n\n warning(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n name !== undefined,\n `\"name\" is not Provided for <MultiSelect>. Perhaps you forgot to wrap with <MultiSelectGroup> ?`,\n )\n\n const isSelected = selected.includes(value)\n const isDisabled = disabled || parentDisabled || readonly\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n if (!(event.currentTarget instanceof HTMLInputElement)) {\n return\n }\n if (onChange) onChange({ value, selected: event.currentTarget.checked })\n parentOnChange({ value, selected: event.currentTarget.checked })\n },\n [onChange, parentOnChange, value],\n )\n const classNames = useClassNames('charcoal-multi-select', className)\n return (\n <label aria-disabled={isDisabled} className={classNames}>\n <input\n className=\"charcoal-multi-select-input\"\n name={name}\n value={value}\n type=\"checkbox\"\n checked={isSelected}\n disabled={isDisabled}\n onChange={handleChange}\n data-overlay={variant === 'overlay'}\n aria-invalid={invalid}\n ref={ref}\n />\n <div\n className=\"charcoal-multi-select-overlay\"\n data-overlay={variant === 'overlay'}\n aria-invalid={invalid}\n aria-hidden\n >\n <Icon name=\"24/Check\" fixedSize={16} />\n </div>\n {Boolean(children) && (\n <div className=\"charcoal-multi-select-label\">{children}</div>\n )}\n </label>\n )\n },\n)\n\nexport default memo(MultiSelect)\n\nexport type MultiSelectGroupProps = React.PropsWithChildren<{\n className?: string\n style?: React.CSSProperties\n name: string\n label: string\n selected: string[]\n onChange: (selected: string[]) => void\n disabled?: boolean\n readonly?: boolean\n invalid?: boolean\n}>\n\nexport function MultiSelectGroup({\n className,\n style,\n name,\n label,\n selected,\n onChange,\n disabled = false,\n readonly = false,\n invalid = false,\n children,\n}: MultiSelectGroupProps) {\n const handleChange = useCallback(\n (payload: { value: string; selected: boolean }) => {\n const index = selected.indexOf(payload.value)\n\n if (payload.selected) {\n if (index < 0) {\n onChange([...selected, payload.value])\n }\n } else {\n if (index >= 0) {\n onChange([...selected.slice(0, index), ...selected.slice(index + 1)])\n }\n }\n },\n [onChange, selected],\n )\n\n return (\n <MultiSelectGroupContext.Provider\n value={{\n name,\n selected: Array.from(new Set(selected)),\n disabled,\n readonly,\n invalid,\n onChange: handleChange,\n }}\n >\n <div\n className={className}\n style={style}\n aria-label={label}\n data-testid=\"SelectGroup\"\n >\n {children}\n </div>\n </MultiSelectGroupContext.Provider>\n )\n}\n"],"mappings":";;;;;;;;;;AAiBA,MAAM,cAAc,WAClB,SAAS,iBACP,EACE,OACA,WAAW,OACX,UACA,UAAU,WACV,WACA,YAEF,KACA;CACA,MAAM,EACJ,MACA,UACA,UAAU,gBACV,UACA,SACA,UAAU,mBACR,WAAW,uBAAuB;CAEtC,QAEE,SAAS,QACT,gGACF;CAEA,MAAM,aAAa,SAAS,SAAS,KAAK;CAC1C,MAAM,aAAa,YAAY,kBAAkB;CAEjD,MAAM,eAAe,aAClB,UAAyC;EACxC,IAAI,EAAE,MAAM,yBAAyB,mBACnC;EAEF,IAAI,UAAU,SAAS;GAAE;GAAO,UAAU,MAAM,cAAc;EAAQ,CAAC;EACvE,eAAe;GAAE;GAAO,UAAU,MAAM,cAAc;EAAQ,CAAC;CACjE,GACA;EAAC;EAAU;EAAgB;CAAK,CAClC;CAEA,OACE,qBAAC,SAAD;EAAO,iBAAe;EAAY,WAFjB,cAAc,yBAAyB,SAEX;YAA7C;GACE,oBAAC,SAAD;IACE,WAAU;IACJ;IACC;IACP,MAAK;IACL,SAAS;IACT,UAAU;IACV,UAAU;IACV,gBAAc,YAAY;IAC1B,gBAAc;IACT;GAAI;GAEX,oBAAC,OAAD;IACE,WAAU;IACV,gBAAc,YAAY;IAC1B,gBAAc;IACd;cAEA,oBAAC,MAAD;KAAM,MAAK;KAAW,WAAW;IAAG;GACjC;GACJ,QAAQ,QAAQ,KACf,oBAAC,OAAD;IAAK,WAAU;IAA+B;GAAc;EAEzD;;AAEX,CACF;AAEA,0BAAe,KAAK,WAAW;AAc/B,SAAgB,iBAAiB,EAC/B,WACA,OACA,MACA,OACA,UACA,UACA,WAAW,OACX,WAAW,OACX,UAAU,OACV,YACwB;CACxB,MAAM,eAAe,aAClB,YAAkD;EACjD,MAAM,QAAQ,SAAS,QAAQ,QAAQ,KAAK;EAE5C,IAAI,QAAQ,UACV;OAAI,QAAQ,GACV,SAAS,CAAC,GAAG,UAAU,QAAQ,KAAK,CAAC;EACvC,OAEA,IAAI,SAAS,GACX,SAAS,CAAC,GAAG,SAAS,MAAM,GAAG,KAAK,GAAG,GAAG,SAAS,MAAM,QAAQ,CAAC,CAAC,CAAC;CAG1E,GACA,CAAC,UAAU,QAAQ,CACrB;CAEA,OACE,oBAAC,wBAAwB,UAAzB;EACE,OAAO;GACL;GACA,UAAU,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC;GACtC;GACA;GACA;GACA,UAAU;EACZ;YAEA,oBAAC,OAAD;GACa;GACJ;GACP,cAAY;GACZ,eAAY;GAEX;EACE;CAC2B;AAEtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaginationContext.cjs","names":[
|
|
1
|
+
{"version":3,"file":"PaginationContext.cjs","names":[],"sources":["../../../src/components/Pagination/PaginationContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nexport type Size = 'S' | 'M'\n\nexport type PageRangeDisplayed = 5 | 7\n\nexport type LinkComponentProps = {\n href: string\n className?: string\n children?: React.ReactNode\n}\n\nexport type PaginationContextValue<T extends React.ElementType = 'a'> = {\n page: number\n pageCount: number\n size: Size\n isLinkMode: boolean\n makeUrl?: (page: number) => string\n LinkComponent: T\n makeClickHandler: (value: number) => () => void\n linkProps?: Omit<React.ComponentPropsWithoutRef<T>, 'href' | 'children'>\n}\n\nexport const PaginationContext = createContext<PaginationContextValue<\n React.ElementType<LinkComponentProps>\n> | null>(null)\n\nexport function usePaginationContext<\n T extends React.ElementType = 'a',\n>(): PaginationContextValue<T> {\n const context = useContext(PaginationContext)\n if (context == null) {\n throw new Error(\n 'Pagination components must be used within a Pagination component',\n )\n }\n return context as PaginationContextValue<T>\n}\n"],"mappings":";;;;AAuBA,MAAa,6CAEH,IAAI;AAEd,SAAgB,uBAEe;CAC7B,MAAM,gCAAqB,iBAAiB;CAC5C,IAAI,WAAW,MACb,MAAM,IAAI,MACR,kEACF;CAEF,OAAO;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaginationContext.js","names":[
|
|
1
|
+
{"version":3,"file":"PaginationContext.js","names":[],"sources":["../../../src/components/Pagination/PaginationContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nexport type Size = 'S' | 'M'\n\nexport type PageRangeDisplayed = 5 | 7\n\nexport type LinkComponentProps = {\n href: string\n className?: string\n children?: React.ReactNode\n}\n\nexport type PaginationContextValue<T extends React.ElementType = 'a'> = {\n page: number\n pageCount: number\n size: Size\n isLinkMode: boolean\n makeUrl?: (page: number) => string\n LinkComponent: T\n makeClickHandler: (value: number) => () => void\n linkProps?: Omit<React.ComponentPropsWithoutRef<T>, 'href' | 'children'>\n}\n\nexport const PaginationContext = createContext<PaginationContextValue<\n React.ElementType<LinkComponentProps>\n> | null>(null)\n\nexport function usePaginationContext<\n T extends React.ElementType = 'a',\n>(): PaginationContextValue<T> {\n const context = useContext(PaginationContext)\n if (context == null) {\n throw new Error(\n 'Pagination components must be used within a Pagination component',\n )\n }\n return context as PaginationContextValue<T>\n}\n"],"mappings":";;;;AAuBA,MAAa,oBAAoB,cAEvB,IAAI;AAEd,SAAgB,uBAEe;CAC7B,MAAM,UAAU,WAAW,iBAAiB;CAC5C,IAAI,WAAW,MACb,MAAM,IAAI,MACR,kEACF;CAEF,OAAO;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.cjs","names":["
|
|
1
|
+
{"version":3,"file":"helper.cjs","names":["i"],"sources":["../../../src/components/Pagination/helper.ts"],"sourcesContent":["import { useDebugValue } from 'react'\nimport warning from 'warning'\nimport type { PageRangeDisplayed } from './PaginationContext'\n\nexport function usePaginationWindow(\n page: number,\n pageCount: number,\n pageRangeDisplayed: PageRangeDisplayed = 7,\n) {\n 'use memo'\n // ページャーのリンク生成例:\n //\n // < [ 1 ] [*2*] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] >\n //\n // < [ 1 ] [ 2 ] [ 3 ] [*4*] [ 5 ] [ 6 ] [ 7 ] >\n //\n // < [ 1 ] ... [ 4 ] [*5*] [ 6 ] [ 7 ] [ 8 ] >\n //\n // < [ 1 ] ... [ 99 ] [*100*] [ 101 ] [ 102 ] [ 103 ] >\n //\n // < [ 1 ] ... [ 99 ] [ 100 ] [ 101 ] [ 102 ] [*103*]\n //\n // [*1*] [ 2 ] >\n //\n // デザインの意図: 前後移動時のカーソル移動を最小限にする。\n\n if (process.env.NODE_ENV !== 'production') {\n warning((page | 0) === page, `\\`page\\` must be integer (${page})`)\n warning(\n (pageCount | 0) === pageCount,\n `\\`pageCount\\` must be integer (${pageCount})`,\n )\n warning(\n pageRangeDisplayed === 5 || pageRangeDisplayed === 7,\n `\\`pageRangeDisplayed\\` must be 5 or 7 (${pageRangeDisplayed})`,\n )\n }\n\n const visibleFirstPage = 1\n const visibleLastPage = Math.min(\n pageCount,\n Math.max(page + Math.floor(pageRangeDisplayed / 2), pageRangeDisplayed),\n )\n\n const window = (() => {\n if (visibleLastPage <= pageRangeDisplayed) {\n // 表示範囲が1-7ページなら省略は無い。\n return Array.from(\n { length: 1 + visibleLastPage - visibleFirstPage },\n (_, i) => visibleFirstPage + i,\n )\n } else {\n const start = visibleLastPage - (pageRangeDisplayed - 1) + 2\n // 表示範囲が1-7ページを超えるなら、\n // - 1ページ目は固定で表示する\n // - 2ページ目から現在のページの直前までは省略する\n return [\n visibleFirstPage,\n '...' as const,\n ...Array.from(\n { length: 1 + visibleLastPage - start },\n (_, i) => start + i,\n ),\n ]\n }\n })()\n\n useDebugValue(window)\n\n return window\n}\n"],"mappings":";;;;;;;;AAIA,SAAO,oBAAA,MAAA,WAAA,IAAA;CAAA;CAAA,MAAA,kCAAA,CAAA;CAAA,IAAA,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAA,KAAA,GAAA,KAAA,GAAA,MAAA,GAAA,EAAA,MAAA,OAAA,IAAA,2BAAA;EAAA,EAAA,KAAA;CAAA;CAGL,MAAA,qBAAA,OAAA,SAAA,IAAA;CAmBA,IAAI,QAAO,IAAI,aAAc,cAAY;EACvC,sBAAS,OAAO,OAAO,MAAM,6BAA6B,KAAI,EAAG;EACjE,sBACG,YAAY,OAAO,WACpB,kCAAkC,UAAS,EAC7C;EACA,qBACE,uBAAuB,KAAK,uBAAuB,GACnD,0CAA0C,mBAAkB,EAC9D;CAAC;CAIH,MAAA,kBAAwB,KAAI,IAC1B,WACA,KAAI,IAAK,OAAO,KAAI,MAAO,qBAAqB,CAAC,GAAG,kBAAkB,CACxE;CAAC,IAAA;CAGC,IAAI,mBAAmB,oBAAkB;EAAA,IAAA;EAAA,IAAA,EAAA,OAAA,iBAAA;GAEhC,KAAA,MAAK,KACV,EAAA,QAAU,IAAI,kBAVK,EAU8B,GACjD,KACF;GAAC,EAAA,KAAA;GAAA,EAAA,KAAA;EAAA,OAAA,KAAA,EAAA;EAHD,KAAO;CAGN,OAAA;EAED,MAAA,QAAc,mBAAmB,qBAAqB,KAAK;EAAC,IAAA;EAAA,IAAA,EAAA,OAAA,SAAA,EAAA,OAAA,iBAAA;GAAA,IAAA;GAAA,IAAA,EAAA,OAAA,OAAA;IASxD,MAAA,KAAA,QAAU,QAAQA;IAAC,EAAA,KAAA;IAAA,EAAA,KAAA;GAAA,OAAA,KAAA,EAAA;GALhB,KAAA;IAlBc;IAoBnB;IAAc,GACX,MAAK,KACN,EAAA,QAAU,IAAI,kBAAkB,MAAM,GACtC,EACF;GAAC;GACF,EAAA,KAAA;GAAA,EAAA,KAAA;GAAA,EAAA,KAAA;EAAA,OAAA,KAAA,EAAA;EAPD,KAAO;CAON;CAnBL,MAAA,SAAe;CAuBf,yBAAc,MAAM;CAAC,OAEd;AAAM;AAjER,SAAA,MAAA,GAAA,GAAA;CAAA,OAkCoB,IAWU;AAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","names":["
|
|
1
|
+
{"version":3,"file":"helper.js","names":["i"],"sources":["../../../src/components/Pagination/helper.ts"],"sourcesContent":["import { useDebugValue } from 'react'\nimport warning from 'warning'\nimport type { PageRangeDisplayed } from './PaginationContext'\n\nexport function usePaginationWindow(\n page: number,\n pageCount: number,\n pageRangeDisplayed: PageRangeDisplayed = 7,\n) {\n 'use memo'\n // ページャーのリンク生成例:\n //\n // < [ 1 ] [*2*] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] >\n //\n // < [ 1 ] [ 2 ] [ 3 ] [*4*] [ 5 ] [ 6 ] [ 7 ] >\n //\n // < [ 1 ] ... [ 4 ] [*5*] [ 6 ] [ 7 ] [ 8 ] >\n //\n // < [ 1 ] ... [ 99 ] [*100*] [ 101 ] [ 102 ] [ 103 ] >\n //\n // < [ 1 ] ... [ 99 ] [ 100 ] [ 101 ] [ 102 ] [*103*]\n //\n // [*1*] [ 2 ] >\n //\n // デザインの意図: 前後移動時のカーソル移動を最小限にする。\n\n if (process.env.NODE_ENV !== 'production') {\n warning((page | 0) === page, `\\`page\\` must be integer (${page})`)\n warning(\n (pageCount | 0) === pageCount,\n `\\`pageCount\\` must be integer (${pageCount})`,\n )\n warning(\n pageRangeDisplayed === 5 || pageRangeDisplayed === 7,\n `\\`pageRangeDisplayed\\` must be 5 or 7 (${pageRangeDisplayed})`,\n )\n }\n\n const visibleFirstPage = 1\n const visibleLastPage = Math.min(\n pageCount,\n Math.max(page + Math.floor(pageRangeDisplayed / 2), pageRangeDisplayed),\n )\n\n const window = (() => {\n if (visibleLastPage <= pageRangeDisplayed) {\n // 表示範囲が1-7ページなら省略は無い。\n return Array.from(\n { length: 1 + visibleLastPage - visibleFirstPage },\n (_, i) => visibleFirstPage + i,\n )\n } else {\n const start = visibleLastPage - (pageRangeDisplayed - 1) + 2\n // 表示範囲が1-7ページを超えるなら、\n // - 1ページ目は固定で表示する\n // - 2ページ目から現在のページの直前までは省略する\n return [\n visibleFirstPage,\n '...' as const,\n ...Array.from(\n { length: 1 + visibleLastPage - start },\n (_, i) => start + i,\n ),\n ]\n }\n })()\n\n useDebugValue(window)\n\n return window\n}\n"],"mappings":";;;;;;AAIA,SAAO,oBAAA,MAAA,WAAA,IAAA;CAAA;CAAA,MAAA,IAAA,EAAA,CAAA;CAAA,IAAA,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAA,KAAA,GAAA,KAAA,GAAA,MAAA,GAAA,EAAA,MAAA,OAAA,IAAA,2BAAA;EAAA,EAAA,KAAA;CAAA;CAGL,MAAA,qBAAA,OAAA,SAAA,IAAA;CAmBA,IAAI,QAAO,IAAI,aAAc,cAAY;EACvC,SAAS,OAAO,OAAO,MAAM,6BAA6B,KAAI,EAAG;EACjE,SACG,YAAY,OAAO,WACpB,kCAAkC,UAAS,EAC7C;EACA,QACE,uBAAuB,KAAK,uBAAuB,GACnD,0CAA0C,mBAAkB,EAC9D;CAAC;CAIH,MAAA,kBAAwB,KAAI,IAC1B,WACA,KAAI,IAAK,OAAO,KAAI,MAAO,qBAAqB,CAAC,GAAG,kBAAkB,CACxE;CAAC,IAAA;CAGC,IAAI,mBAAmB,oBAAkB;EAAA,IAAA;EAAA,IAAA,EAAA,OAAA,iBAAA;GAEhC,KAAA,MAAK,KACV,EAAA,QAAU,IAAI,kBAVK,EAU8B,GACjD,KACF;GAAC,EAAA,KAAA;GAAA,EAAA,KAAA;EAAA,OAAA,KAAA,EAAA;EAHD,KAAO;CAGN,OAAA;EAED,MAAA,QAAc,mBAAmB,qBAAqB,KAAK;EAAC,IAAA;EAAA,IAAA,EAAA,OAAA,SAAA,EAAA,OAAA,iBAAA;GAAA,IAAA;GAAA,IAAA,EAAA,OAAA,OAAA;IASxD,MAAA,KAAA,QAAU,QAAQA;IAAC,EAAA,KAAA;IAAA,EAAA,KAAA;GAAA,OAAA,KAAA,EAAA;GALhB,KAAA;IAlBc;IAoBnB;IAAc,GACX,MAAK,KACN,EAAA,QAAU,IAAI,kBAAkB,MAAM,GACtC,EACF;GAAC;GACF,EAAA,KAAA;GAAA,EAAA,KAAA;GAAA,EAAA,KAAA;EAAA,OAAA,KAAA,EAAA;EAPD,KAAO;CAON;CAnBL,MAAA,SAAe;CAuBf,cAAc,MAAM;CAAC,OAEd;AAAM;AAjER,SAAA,MAAA,GAAA,GAAA;CAAA,OAkCoB,IAWU;AAAC"}
|