paris 0.23.1 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +17 -17
- package/dist/helpers/OpenChangeEffect.d.ts +11 -0
- package/dist/helpers/OpenChangeEffect.js +16 -0
- package/dist/helpers/OpenChangeEffect.js.map +1 -0
- package/dist/helpers/renderEnhancer.d.ts +7 -0
- package/dist/helpers/renderEnhancer.js +20 -0
- package/dist/helpers/renderEnhancer.js.map +1 -0
- package/dist/helpers/useControllableState.d.ts +7 -0
- package/dist/helpers/useControllableState.js +49 -0
- package/dist/helpers/useControllableState.js.map +1 -0
- package/dist/helpers/useIsMounted.d.ts +1 -0
- package/dist/helpers/useResizeObserver.d.ts +12 -0
- package/dist/stories/accordion/Accordion.d.ts +47 -0
- package/dist/stories/accordion/Accordion.js +82 -0
- package/dist/stories/accordion/Accordion.js.map +1 -0
- package/dist/stories/accordion/Accordion.module.css +130 -0
- package/dist/stories/accordion/Accordion.module.scss.js +26 -0
- package/dist/stories/accordion/Accordion.module.scss.js.map +1 -0
- package/dist/stories/accordion/index.js +2 -0
- package/dist/stories/accordion/index.js.map +1 -0
- package/dist/stories/accordionselect/AccordionSelect.d.ts +102 -0
- package/dist/stories/accordionselect/AccordionSelect.js +137 -0
- package/dist/stories/accordionselect/AccordionSelect.js.map +1 -0
- package/dist/stories/accordionselect/AccordionSelect.module.css +106 -0
- package/dist/stories/accordionselect/AccordionSelect.module.scss.js +27 -0
- package/dist/stories/accordionselect/AccordionSelect.module.scss.js.map +1 -0
- package/dist/stories/accordionselect/index.js +2 -0
- package/dist/stories/accordionselect/index.js.map +1 -0
- package/dist/stories/avatar/Avatar.d.ts +22 -0
- package/dist/stories/avatar/Avatar.js +37 -0
- package/dist/stories/avatar/Avatar.js.map +1 -0
- package/dist/stories/avatar/Avatar.module.css +7 -0
- package/dist/stories/avatar/Avatar.module.scss.js +7 -0
- package/dist/stories/avatar/Avatar.module.scss.js.map +1 -0
- package/dist/stories/avatar/index.js +2 -0
- package/dist/stories/avatar/index.js.map +1 -0
- package/dist/stories/button/Button.d.ts +120 -0
- package/dist/stories/button/Button.js +123 -0
- package/dist/stories/button/Button.js.map +1 -0
- package/dist/stories/button/Button.module.css +137 -0
- package/dist/stories/button/Button.module.scss.js +35 -0
- package/dist/stories/button/Button.module.scss.js.map +1 -0
- package/dist/stories/button/index.js +2 -0
- package/dist/stories/button/index.js.map +1 -0
- package/dist/stories/callout/Callout.d.ts +22 -0
- package/dist/stories/callout/Callout.js +21 -0
- package/dist/stories/callout/Callout.js.map +1 -0
- package/dist/stories/callout/Callout.module.css +35 -0
- package/dist/stories/callout/Callout.module.scss.js +15 -0
- package/dist/stories/callout/Callout.module.scss.js.map +1 -0
- package/dist/stories/callout/index.js +2 -0
- package/dist/stories/callout/index.js.map +1 -0
- package/dist/stories/card/Card.d.ts +30 -0
- package/dist/stories/card/Card.js +22 -0
- package/dist/stories/card/Card.js.map +1 -0
- package/dist/stories/card/Card.module.css +39 -0
- package/dist/stories/card/Card.module.scss.js +17 -0
- package/dist/stories/card/Card.module.scss.js.map +1 -0
- package/dist/stories/card/index.js +2 -0
- package/dist/stories/card/index.js.map +1 -0
- package/dist/stories/cardbutton/CardButton.d.ts +50 -0
- package/dist/stories/cardbutton/CardButton.js +53 -0
- package/dist/stories/cardbutton/CardButton.js.map +1 -0
- package/dist/stories/cardbutton/CardButton.module.css +77 -0
- package/dist/stories/cardbutton/CardButton.module.scss.js +19 -0
- package/dist/stories/cardbutton/CardButton.module.scss.js.map +1 -0
- package/dist/stories/cardbutton/index.js +2 -0
- package/dist/stories/cardbutton/index.js.map +1 -0
- package/dist/stories/checkbox/Checkbox.d.ts +31 -0
- package/dist/stories/checkbox/Checkbox.js +99 -0
- package/dist/stories/checkbox/Checkbox.js.map +1 -0
- package/dist/stories/checkbox/Checkbox.module.css +155 -0
- package/dist/stories/checkbox/Checkbox.module.scss.js +32 -0
- package/dist/stories/checkbox/Checkbox.module.scss.js.map +1 -0
- package/dist/stories/checkbox/index.js +2 -0
- package/dist/stories/checkbox/index.js.map +1 -0
- package/dist/stories/codeinput/CodeInput.d.ts +47 -0
- package/dist/stories/codeinput/CodeInput.js +105 -0
- package/dist/stories/codeinput/CodeInput.js.map +1 -0
- package/dist/stories/codeinput/CodeInput.module.css +63 -0
- package/dist/stories/codeinput/CodeInput.module.scss.js +13 -0
- package/dist/stories/codeinput/CodeInput.module.scss.js.map +1 -0
- package/dist/stories/codeinput/index.js +2 -0
- package/dist/stories/codeinput/index.js.map +1 -0
- package/dist/stories/combobox/Combobox.d.ts +125 -0
- package/dist/stories/combobox/Combobox.js +257 -0
- package/dist/stories/combobox/Combobox.js.map +1 -0
- package/dist/stories/combobox/index.js +2 -0
- package/dist/stories/combobox/index.js.map +1 -0
- package/dist/stories/dialog/Dialog.d.ts +103 -0
- package/dist/stories/dialog/Dialog.js +187 -0
- package/dist/stories/dialog/Dialog.js.map +1 -0
- package/dist/stories/dialog/Dialog.module.css +185 -0
- package/dist/stories/dialog/Dialog.module.scss.js +48 -0
- package/dist/stories/dialog/Dialog.module.scss.js.map +1 -0
- package/dist/stories/dialog/index.js +2 -0
- package/dist/stories/dialog/index.js.map +1 -0
- package/dist/stories/drawer/Drawer.d.ts +143 -0
- package/dist/stories/drawer/Drawer.js +357 -0
- package/dist/stories/drawer/Drawer.js.map +1 -0
- package/dist/stories/drawer/Drawer.module.css +406 -0
- package/dist/stories/drawer/Drawer.module.scss.js +96 -0
- package/dist/stories/drawer/Drawer.module.scss.js.map +1 -0
- package/dist/stories/drawer/DrawerActions.d.ts +5 -0
- package/dist/stories/drawer/DrawerActions.js +23 -0
- package/dist/stories/drawer/DrawerActions.js.map +1 -0
- package/dist/stories/drawer/DrawerBottomPanel.d.ts +9 -0
- package/dist/stories/drawer/DrawerBottomPanel.js +48 -0
- package/dist/stories/drawer/DrawerBottomPanel.js.map +1 -0
- package/dist/stories/drawer/DrawerContext.d.ts +11 -0
- package/dist/stories/drawer/DrawerContext.js +23 -0
- package/dist/stories/drawer/DrawerContext.js.map +1 -0
- package/dist/stories/drawer/DrawerPage.d.ts +12 -0
- package/dist/stories/drawer/DrawerPage.js +22 -0
- package/dist/stories/drawer/DrawerPage.js.map +1 -0
- package/dist/stories/drawer/DrawerPageContext.d.ts +12 -0
- package/dist/stories/drawer/DrawerPageContext.js +23 -0
- package/dist/stories/drawer/DrawerPageContext.js.map +1 -0
- package/dist/stories/drawer/DrawerPaginationContext.d.ts +9 -0
- package/dist/stories/drawer/DrawerPaginationContext.js +17 -0
- package/dist/stories/drawer/DrawerPaginationContext.js.map +1 -0
- package/dist/stories/drawer/DrawerProgressBar.d.ts +15 -0
- package/dist/stories/drawer/DrawerProgressBar.js +60 -0
- package/dist/stories/drawer/DrawerProgressBar.js.map +1 -0
- package/dist/stories/drawer/DrawerSlotContext.d.ts +34 -0
- package/dist/stories/drawer/DrawerSlotContext.js +120 -0
- package/dist/stories/drawer/DrawerSlotContext.js.map +1 -0
- package/dist/stories/drawer/DrawerTitle.d.ts +5 -0
- package/dist/stories/drawer/DrawerTitle.js +29 -0
- package/dist/stories/drawer/DrawerTitle.js.map +1 -0
- package/dist/stories/drawer/index.js +10 -0
- package/dist/stories/drawer/index.js.map +1 -0
- package/dist/stories/field/Field.d.ts +54 -0
- package/dist/stories/field/Field.js +91 -0
- package/dist/stories/field/Field.js.map +1 -0
- package/dist/stories/field/index.js +2 -0
- package/dist/stories/field/index.js.map +1 -0
- package/dist/stories/icon/ArrowRight.d.ts +2 -0
- package/dist/stories/icon/ArrowRight.js +13 -0
- package/dist/stories/icon/ArrowRight.js.map +1 -0
- package/dist/stories/icon/Check.d.ts +2 -0
- package/dist/stories/icon/Check.js +13 -0
- package/dist/stories/icon/Check.js.map +1 -0
- package/dist/stories/icon/ChevronLeft.d.ts +2 -0
- package/dist/stories/icon/ChevronLeft.js +13 -0
- package/dist/stories/icon/ChevronLeft.js.map +1 -0
- package/dist/stories/icon/ChevronRight.d.ts +2 -0
- package/dist/stories/icon/ChevronRight.js +13 -0
- package/dist/stories/icon/ChevronRight.js.map +1 -0
- package/dist/stories/icon/Close.d.ts +2 -0
- package/dist/stories/icon/Close.js +13 -0
- package/dist/stories/icon/Close.js.map +1 -0
- package/dist/stories/icon/Ellipsis.d.ts +2 -0
- package/dist/stories/icon/Ellipsis.js +13 -0
- package/dist/stories/icon/Ellipsis.js.map +1 -0
- package/{src/stories/icon/Icon.tsx → dist/stories/icon/Icon.d.ts} +2 -8
- package/dist/stories/icon/Icon.js +8 -0
- package/dist/stories/icon/Icon.js.map +1 -0
- package/dist/stories/icon/Info.d.ts +2 -0
- package/dist/stories/icon/Info.js +13 -0
- package/dist/stories/icon/Info.js.map +1 -0
- package/dist/stories/icon/NotificationDot.d.ts +2 -0
- package/dist/stories/icon/NotificationDot.js +7 -0
- package/dist/stories/icon/NotificationDot.js.map +1 -0
- package/dist/stories/icon/Spinner.d.ts +2 -0
- package/dist/stories/icon/Spinner.js +24 -0
- package/dist/stories/icon/Spinner.js.map +1 -0
- package/dist/stories/icon/index.js +11 -0
- package/dist/stories/icon/index.js.map +1 -0
- package/dist/stories/informationaltooltip/InformationalTooltip.d.ts +68 -0
- package/dist/stories/informationaltooltip/InformationalTooltip.js +85 -0
- package/dist/stories/informationaltooltip/InformationalTooltip.js.map +1 -0
- package/dist/stories/informationaltooltip/InformationalTooltip.module.css +22 -0
- package/dist/stories/informationaltooltip/InformationalTooltip.module.scss.js +11 -0
- package/dist/stories/informationaltooltip/InformationalTooltip.module.scss.js.map +1 -0
- package/dist/stories/informationaltooltip/index.js +2 -0
- package/dist/stories/informationaltooltip/index.js.map +1 -0
- package/dist/stories/input/Input.d.ts +57 -0
- package/dist/stories/input/Input.js +108 -0
- package/dist/stories/input/Input.js.map +1 -0
- package/dist/stories/input/Input.module.css +165 -0
- package/dist/stories/input/Input.module.scss.js +23 -0
- package/dist/stories/input/Input.module.scss.js.map +1 -0
- package/dist/stories/input/index.js +2 -0
- package/dist/stories/input/index.js.map +1 -0
- package/dist/stories/markdown/Markdown.d.ts +36 -0
- package/dist/stories/markdown/Markdown.js +141 -0
- package/dist/stories/markdown/Markdown.js.map +1 -0
- package/dist/stories/markdown/Markdown.module.css +301 -0
- package/dist/stories/markdown/Markdown.module.scss.js +73 -0
- package/dist/stories/markdown/Markdown.module.scss.js.map +1 -0
- package/dist/stories/markdown/index.js +2 -0
- package/dist/stories/markdown/index.js.map +1 -0
- package/dist/stories/markdowneditor/FixedToolbar.d.ts +19 -0
- package/dist/stories/markdowneditor/FixedToolbar.js +212 -0
- package/dist/stories/markdowneditor/FixedToolbar.js.map +1 -0
- package/dist/stories/markdowneditor/FixedToolbar.module.css +24 -0
- package/dist/stories/markdowneditor/FixedToolbar.module.scss.js +11 -0
- package/dist/stories/markdowneditor/FixedToolbar.module.scss.js.map +1 -0
- package/dist/stories/markdowneditor/FloatingToolbar.d.ts +15 -0
- package/dist/stories/markdowneditor/FloatingToolbar.js +66 -0
- package/dist/stories/markdowneditor/FloatingToolbar.js.map +1 -0
- package/dist/stories/markdowneditor/FloatingToolbar.module.css +18 -0
- package/dist/stories/markdowneditor/FloatingToolbar.module.scss.js +9 -0
- package/dist/stories/markdowneditor/FloatingToolbar.module.scss.js.map +1 -0
- package/dist/stories/markdowneditor/LinkPopover.d.ts +11 -0
- package/dist/stories/markdowneditor/LinkPopover.js +106 -0
- package/dist/stories/markdowneditor/LinkPopover.js.map +1 -0
- package/dist/stories/markdowneditor/LinkPopover.module.css +113 -0
- package/dist/stories/markdowneditor/LinkPopover.module.scss.js +21 -0
- package/dist/stories/markdowneditor/LinkPopover.module.scss.js.map +1 -0
- package/{src/stories/markdowneditor/MarkdownEditor.tsx → dist/stories/markdowneditor/MarkdownEditor.d.ts} +5 -68
- package/dist/stories/markdowneditor/MarkdownEditor.js +62 -0
- package/dist/stories/markdowneditor/MarkdownEditor.js.map +1 -0
- package/dist/stories/markdowneditor/MarkdownEditor.module.css +325 -0
- package/dist/stories/markdowneditor/MarkdownEditor.module.scss.js +11 -0
- package/dist/stories/markdowneditor/MarkdownEditor.module.scss.js.map +1 -0
- package/dist/stories/markdowneditor/MarkdownEditorContext.d.ts +10 -0
- package/dist/stories/markdowneditor/MarkdownEditorContext.js +11 -0
- package/dist/stories/markdowneditor/MarkdownEditorContext.js.map +1 -0
- package/dist/stories/markdowneditor/ToolbarButton.d.ts +22 -0
- package/dist/stories/markdowneditor/ToolbarButton.js +33 -0
- package/dist/stories/markdowneditor/ToolbarButton.js.map +1 -0
- package/dist/stories/markdowneditor/ToolbarButton.module.css +30 -0
- package/dist/stories/markdowneditor/ToolbarButton.module.scss.js +7 -0
- package/dist/stories/markdowneditor/ToolbarButton.module.scss.js.map +1 -0
- package/dist/stories/markdowneditor/features.d.ts +10 -0
- package/dist/stories/markdowneditor/features.js +79 -0
- package/dist/stories/markdowneditor/features.js.map +1 -0
- package/dist/stories/markdowneditor/index.js +7 -0
- package/dist/stories/markdowneditor/index.js.map +1 -0
- package/dist/stories/markdowneditor/useMarkdownEditor.d.ts +19 -0
- package/dist/stories/markdowneditor/useMarkdownEditor.js +50 -0
- package/dist/stories/markdowneditor/useMarkdownEditor.js.map +1 -0
- package/dist/stories/menu/Menu.d.ts +48 -0
- package/dist/stories/menu/Menu.js +31 -0
- package/dist/stories/menu/Menu.js.map +1 -0
- package/dist/stories/menu/Menu.module.css +59 -0
- package/dist/stories/menu/Menu.module.scss.js +12 -0
- package/dist/stories/menu/Menu.module.scss.js.map +1 -0
- package/dist/stories/menu/index.js +2 -0
- package/dist/stories/menu/index.js.map +1 -0
- package/dist/stories/pagination/index.js +2 -0
- package/dist/stories/pagination/index.js.map +1 -0
- package/dist/stories/pagination/usePagination.d.ts +47 -0
- package/dist/stories/pagination/usePagination.js +52 -0
- package/dist/stories/pagination/usePagination.js.map +1 -0
- package/dist/stories/popover/Popover.d.ts +29 -0
- package/dist/stories/popover/Popover.js +56 -0
- package/dist/stories/popover/Popover.js.map +1 -0
- package/dist/stories/popover/Popover.module.css +20 -0
- package/dist/stories/popover/Popover.module.scss.js +8 -0
- package/dist/stories/popover/Popover.module.scss.js.map +1 -0
- package/dist/stories/popover/index.js +2 -0
- package/dist/stories/popover/index.js.map +1 -0
- package/dist/stories/select/Select.d.ts +112 -0
- package/dist/stories/select/Select.js +283 -0
- package/dist/stories/select/Select.js.map +1 -0
- package/dist/stories/select/Select.module.css +236 -0
- package/dist/stories/select/Select.module.scss.js +47 -0
- package/dist/stories/select/Select.module.scss.js.map +1 -0
- package/dist/stories/select/index.js +2 -0
- package/dist/stories/select/index.js.map +1 -0
- package/dist/stories/styledlink/StyledLink.d.ts +20 -0
- package/dist/stories/styledlink/StyledLink.js +15 -0
- package/dist/stories/styledlink/StyledLink.js.map +1 -0
- package/dist/stories/styledlink/StyledLink.module.css +10 -0
- package/dist/stories/styledlink/StyledLink.module.scss.js +7 -0
- package/dist/stories/styledlink/StyledLink.module.scss.js.map +1 -0
- package/dist/stories/styledlink/index.js +2 -0
- package/dist/stories/styledlink/index.js.map +1 -0
- package/dist/stories/table/Table.d.ts +76 -0
- package/dist/stories/table/Table.js +91 -0
- package/dist/stories/table/Table.js.map +1 -0
- package/dist/stories/table/Table.module.css +60 -0
- package/dist/stories/table/Table.module.scss.js +21 -0
- package/dist/stories/table/Table.module.scss.js.map +1 -0
- package/dist/stories/table/index.js +2 -0
- package/dist/stories/table/index.js.map +1 -0
- package/dist/stories/tabs/Tabs.d.ts +74 -0
- package/dist/stories/tabs/Tabs.js +128 -0
- package/dist/stories/tabs/Tabs.js.map +1 -0
- package/dist/stories/tabs/Tabs.module.css +144 -0
- package/dist/stories/tabs/Tabs.module.scss.js +37 -0
- package/dist/stories/tabs/Tabs.module.scss.js.map +1 -0
- package/dist/stories/tabs/index.js +2 -0
- package/dist/stories/tabs/index.js.map +1 -0
- package/dist/stories/tag/Tag.d.ts +36 -0
- package/dist/stories/tag/Tag.js +52 -0
- package/dist/stories/tag/Tag.js.map +1 -0
- package/dist/stories/tag/Tag.module.css +164 -0
- package/dist/stories/tag/Tag.module.scss.js +38 -0
- package/dist/stories/tag/Tag.module.scss.js.map +1 -0
- package/dist/stories/tag/index.js +2 -0
- package/dist/stories/tag/index.js.map +1 -0
- package/dist/stories/text/Text.d.ts +52 -0
- package/dist/stories/text/Text.js +37 -0
- package/dist/stories/text/Text.js.map +1 -0
- package/dist/stories/text/Text.module.css +54 -0
- package/dist/stories/text/Text.module.scss.js +19 -0
- package/dist/stories/text/Text.module.scss.js.map +1 -0
- package/{src → dist}/stories/text/Typography.module.css +20 -20
- package/dist/stories/text/Typography.module.css.js +45 -0
- package/dist/stories/text/Typography.module.css.js.map +1 -0
- package/dist/stories/text/index.js +2 -0
- package/dist/stories/text/index.js.map +1 -0
- package/dist/stories/textarea/TextArea.d.ts +28 -0
- package/dist/stories/textarea/TextArea.js +102 -0
- package/dist/stories/textarea/TextArea.js.map +1 -0
- package/dist/stories/textarea/index.js +2 -0
- package/dist/stories/textarea/index.js.map +1 -0
- package/{src/stories/theme/tw-preflight.css → dist/stories/theme/global.css} +86 -110
- package/dist/stories/theme/index.js +4 -0
- package/dist/stories/theme/index.js.map +1 -0
- package/dist/stories/theme/themes.d.ts +513 -0
- package/dist/stories/theme/themes.js +854 -0
- package/dist/stories/theme/themes.js.map +1 -0
- package/dist/stories/theme/tokens.d.ts +128 -0
- package/dist/stories/theme/tokens.js +130 -0
- package/dist/stories/theme/tokens.js.map +1 -0
- package/dist/stories/tilt/Tilt.d.ts +70 -0
- package/dist/stories/tilt/Tilt.js +256 -0
- package/dist/stories/tilt/Tilt.js.map +1 -0
- package/dist/stories/tilt/Tilt.module.css +22 -0
- package/dist/stories/tilt/Tilt.module.scss.js +11 -0
- package/dist/stories/tilt/Tilt.module.scss.js.map +1 -0
- package/dist/stories/tilt/index.js +2 -0
- package/dist/stories/tilt/index.js.map +1 -0
- package/{src/stories/toast/Toast.tsx → dist/stories/toast/Toast.d.ts} +3 -17
- package/dist/stories/toast/Toast.js +19 -0
- package/dist/stories/toast/Toast.js.map +1 -0
- package/dist/stories/toast/Toast.module.css +17 -0
- package/dist/stories/toast/Toast.module.scss.js +7 -0
- package/dist/stories/toast/Toast.module.scss.js.map +1 -0
- package/dist/stories/toast/index.js +3 -0
- package/dist/stories/toast/index.js.map +1 -0
- package/dist/stories/utility/EasingFunctions.d.ts +1 -0
- package/dist/stories/utility/EasingFunctions.js +6 -0
- package/dist/stories/utility/EasingFunctions.js.map +1 -0
- package/dist/stories/utility/RemoveFromDOM.d.ts +11 -0
- package/dist/stories/utility/RemoveFromDOM.js +7 -0
- package/dist/stories/utility/RemoveFromDOM.js.map +1 -0
- package/dist/stories/utility/TextWhenString.d.ts +6 -0
- package/dist/stories/utility/TextWhenString.js +13 -0
- package/dist/stories/utility/TextWhenString.js.map +1 -0
- package/dist/stories/utility/VisuallyHidden.d.ts +13 -0
- package/dist/stories/utility/VisuallyHidden.js +8 -0
- package/dist/stories/utility/VisuallyHidden.js.map +1 -0
- package/dist/stories/utility/index.js +5 -0
- package/dist/stories/utility/index.js.map +1 -0
- package/dist/styles.css +3307 -0
- package/dist/types/Enhancer.d.ts +4 -0
- package/package.json +148 -44
- package/src/helpers/OpenChangeEffect.tsx +0 -21
- package/src/helpers/renderEnhancer.tsx +0 -20
- package/src/helpers/useControllableState.test.ts +0 -88
- package/src/helpers/useControllableState.ts +0 -59
- package/src/helpers/useIsMounted.ts +0 -17
- package/src/helpers/useResizeObserver.ts +0 -94
- package/src/pages/_app.tsx +0 -6
- package/src/pages/_document.tsx +0 -13
- package/src/pages/index.tsx +0 -116
- package/src/stories/Pagination.mdx +0 -73
- package/src/stories/Tokens.mdx +0 -46
- package/src/stories/Welcome.mdx +0 -8
- package/src/stories/accordion/Accordion.module.scss +0 -163
- package/src/stories/accordion/Accordion.stories.ts +0 -48
- package/src/stories/accordion/Accordion.test.tsx +0 -142
- package/src/stories/accordion/Accordion.tsx +0 -148
- package/src/stories/accordionselect/AccordionSelect.module.scss +0 -119
- package/src/stories/accordionselect/AccordionSelect.stories.ts +0 -38
- package/src/stories/accordionselect/AccordionSelect.test.tsx +0 -327
- package/src/stories/accordionselect/AccordionSelect.tsx +0 -249
- package/src/stories/avatar/Avatar.module.scss +0 -7
- package/src/stories/avatar/Avatar.stories.ts +0 -22
- package/src/stories/avatar/Avatar.test.tsx +0 -77
- package/src/stories/avatar/Avatar.tsx +0 -55
- package/src/stories/button/Button.module.scss +0 -167
- package/src/stories/button/Button.stories.ts +0 -93
- package/src/stories/button/Button.test.tsx +0 -266
- package/src/stories/button/Button.tsx +0 -226
- package/src/stories/callout/Callout.module.scss +0 -43
- package/src/stories/callout/Callout.stories.ts +0 -52
- package/src/stories/callout/Callout.test.tsx +0 -79
- package/src/stories/callout/Callout.tsx +0 -43
- package/src/stories/card/Card.module.scss +0 -42
- package/src/stories/card/Card.stories.ts +0 -38
- package/src/stories/card/Card.test.tsx +0 -81
- package/src/stories/card/Card.tsx +0 -54
- package/src/stories/cardbutton/CardButton.module.scss +0 -88
- package/src/stories/cardbutton/CardButton.stories.tsx +0 -24
- package/src/stories/cardbutton/CardButton.test.tsx +0 -174
- package/src/stories/cardbutton/CardButton.tsx +0 -100
- package/src/stories/checkbox/Checkbox.module.scss +0 -198
- package/src/stories/checkbox/Checkbox.stories.ts +0 -87
- package/src/stories/checkbox/Checkbox.test.tsx +0 -584
- package/src/stories/checkbox/Checkbox.tsx +0 -123
- package/src/stories/codeinput/CodeInput.module.scss +0 -77
- package/src/stories/codeinput/CodeInput.stories.ts +0 -51
- package/src/stories/codeinput/CodeInput.test.tsx +0 -56
- package/src/stories/codeinput/CodeInput.tsx +0 -160
- package/src/stories/combobox/Combobox.module.scss +0 -5
- package/src/stories/combobox/Combobox.stories.ts +0 -270
- package/src/stories/combobox/Combobox.test.tsx +0 -275
- package/src/stories/combobox/Combobox.tsx +0 -396
- package/src/stories/dialog/Dialog.module.scss +0 -211
- package/src/stories/dialog/Dialog.stories.tsx +0 -93
- package/src/stories/dialog/Dialog.test.tsx +0 -244
- package/src/stories/dialog/Dialog.tsx +0 -283
- package/src/stories/drawer/Drawer.module.scss +0 -479
- package/src/stories/drawer/Drawer.stories.tsx +0 -494
- package/src/stories/drawer/Drawer.test.tsx +0 -734
- package/src/stories/drawer/Drawer.tsx +0 -548
- package/src/stories/drawer/DrawerActions.tsx +0 -28
- package/src/stories/drawer/DrawerBottomPanel.tsx +0 -55
- package/src/stories/drawer/DrawerContext.tsx +0 -31
- package/src/stories/drawer/DrawerPage.tsx +0 -37
- package/src/stories/drawer/DrawerPageContext.tsx +0 -35
- package/src/stories/drawer/DrawerPaginationContext.tsx +0 -22
- package/src/stories/drawer/DrawerProgressBar.tsx +0 -72
- package/src/stories/drawer/DrawerSlotContext.tsx +0 -172
- package/src/stories/drawer/DrawerTitle.tsx +0 -35
- package/src/stories/field/Field.stories.ts +0 -36
- package/src/stories/field/Field.test.tsx +0 -146
- package/src/stories/field/Field.tsx +0 -145
- package/src/stories/icon/ArrowRight.tsx +0 -11
- package/src/stories/icon/Check.tsx +0 -11
- package/src/stories/icon/ChevronLeft.tsx +0 -11
- package/src/stories/icon/ChevronRight.tsx +0 -11
- package/src/stories/icon/Close.tsx +0 -11
- package/src/stories/icon/Ellipsis.tsx +0 -11
- package/src/stories/icon/Icon.module.scss +0 -5
- package/src/stories/icon/Icon.stories.ts +0 -33
- package/src/stories/icon/Icon.test.tsx +0 -59
- package/src/stories/icon/Info.tsx +0 -11
- package/src/stories/icon/NotificationDot.tsx +0 -8
- package/src/stories/icon/Spinner.tsx +0 -17
- package/src/stories/informationaltooltip/InformationalTooltip.module.scss +0 -23
- package/src/stories/informationaltooltip/InformationalTooltip.stories.tsx +0 -61
- package/src/stories/informationaltooltip/InformationalTooltip.test.tsx +0 -178
- package/src/stories/informationaltooltip/InformationalTooltip.tsx +0 -170
- package/src/stories/input/Input.module.scss +0 -217
- package/src/stories/input/Input.stories.ts +0 -110
- package/src/stories/input/Input.test.tsx +0 -174
- package/src/stories/input/Input.tsx +0 -181
- package/src/stories/markdown/Markdown.module.scss +0 -384
- package/src/stories/markdown/Markdown.stories.ts +0 -203
- package/src/stories/markdown/Markdown.test.tsx +0 -228
- package/src/stories/markdown/Markdown.tsx +0 -293
- package/src/stories/markdowneditor/FixedToolbar.module.scss +0 -24
- package/src/stories/markdowneditor/FixedToolbar.tsx +0 -274
- package/src/stories/markdowneditor/FloatingToolbar.module.scss +0 -21
- package/src/stories/markdowneditor/FloatingToolbar.tsx +0 -94
- package/src/stories/markdowneditor/LinkPopover.module.scss +0 -124
- package/src/stories/markdowneditor/LinkPopover.tsx +0 -135
- package/src/stories/markdowneditor/MarkdownEditor.module.scss +0 -405
- package/src/stories/markdowneditor/MarkdownEditor.stories.tsx +0 -226
- package/src/stories/markdowneditor/MarkdownEditor.test.tsx +0 -115
- package/src/stories/markdowneditor/MarkdownEditorContext.tsx +0 -20
- package/src/stories/markdowneditor/ToolbarButton.module.scss +0 -35
- package/src/stories/markdowneditor/ToolbarButton.tsx +0 -52
- package/src/stories/markdowneditor/features.ts +0 -92
- package/src/stories/markdowneditor/useMarkdownEditor.ts +0 -75
- package/src/stories/menu/Menu.module.scss +0 -71
- package/src/stories/menu/Menu.stories.tsx +0 -37
- package/src/stories/menu/Menu.test.tsx +0 -254
- package/src/stories/menu/Menu.tsx +0 -95
- package/src/stories/pagination/usePagination.test.ts +0 -259
- package/src/stories/pagination/usePagination.ts +0 -117
- package/src/stories/popover/Popover.module.scss +0 -22
- package/src/stories/popover/Popover.stories.ts +0 -20
- package/src/stories/popover/Popover.test.tsx +0 -152
- package/src/stories/popover/Popover.tsx +0 -89
- package/src/stories/select/Select.module.scss +0 -311
- package/src/stories/select/Select.stories.ts +0 -153
- package/src/stories/select/Select.test.tsx +0 -341
- package/src/stories/select/Select.tsx +0 -398
- package/src/stories/styledlink/StyledLink.module.scss +0 -11
- package/src/stories/styledlink/StyledLink.stories.ts +0 -28
- package/src/stories/styledlink/StyledLink.test.tsx +0 -59
- package/src/stories/styledlink/StyledLink.tsx +0 -33
- package/src/stories/table/Table.module.scss +0 -74
- package/src/stories/table/Table.stories.ts +0 -62
- package/src/stories/table/Table.test.tsx +0 -156
- package/src/stories/table/Table.tsx +0 -182
- package/src/stories/tabs/Tabs.module.scss +0 -185
- package/src/stories/tabs/Tabs.stories.tsx +0 -209
- package/src/stories/tabs/Tabs.test.tsx +0 -167
- package/src/stories/tabs/Tabs.tsx +0 -191
- package/src/stories/tag/Tag.module.scss +0 -189
- package/src/stories/tag/Tag.stories.ts +0 -58
- package/src/stories/tag/Tag.test.tsx +0 -90
- package/src/stories/tag/Tag.tsx +0 -84
- package/src/stories/text/Text.module.scss +0 -39
- package/src/stories/text/Text.stories.ts +0 -195
- package/src/stories/text/Text.test.tsx +0 -81
- package/src/stories/text/Text.tsx +0 -108
- package/src/stories/textarea/TextArea.stories.ts +0 -39
- package/src/stories/textarea/TextArea.test.tsx +0 -147
- package/src/stories/textarea/TextArea.tsx +0 -112
- package/src/stories/theme/global.scss +0 -6
- package/src/stories/theme/themes.ts +0 -1509
- package/src/stories/theme/tokens.ts +0 -149
- package/src/stories/theme/util.scss +0 -8
- package/src/stories/tilt/Tilt.module.scss +0 -22
- package/src/stories/tilt/Tilt.stories.tsx +0 -42
- package/src/stories/tilt/Tilt.test.tsx +0 -203
- package/src/stories/tilt/Tilt.tsx +0 -375
- package/src/stories/toast/Toast.module.scss +0 -20
- package/src/stories/toast/Toast.stories.tsx +0 -31
- package/src/stories/toast/Toast.test.tsx +0 -86
- package/src/stories/utility/Dropdown.module.scss +0 -28
- package/src/stories/utility/EasingFunctions.ts +0 -3
- package/src/stories/utility/RemoveFromDOM.tsx +0 -15
- package/src/stories/utility/TextWhenString.tsx +0 -15
- package/src/stories/utility/Utility.test.tsx +0 -96
- package/src/stories/utility/VisuallyHidden.tsx +0 -18
- package/src/styles/Home.module.css +0 -268
- package/src/styles/globals.css +0 -3
- package/src/test/render.tsx +0 -20
- package/src/test/setup.ts +0 -32
- package/src/types/Enhancer.ts +0 -3
- /package/{src/stories/accordion/index.ts → dist/stories/accordion/index.d.ts} +0 -0
- /package/{src/stories/accordionselect/index.ts → dist/stories/accordionselect/index.d.ts} +0 -0
- /package/{src/stories/avatar/index.ts → dist/stories/avatar/index.d.ts} +0 -0
- /package/{src/stories/button/index.ts → dist/stories/button/index.d.ts} +0 -0
- /package/{src/stories/callout/index.ts → dist/stories/callout/index.d.ts} +0 -0
- /package/{src/stories/card/index.ts → dist/stories/card/index.d.ts} +0 -0
- /package/{src/stories/cardbutton/index.ts → dist/stories/cardbutton/index.d.ts} +0 -0
- /package/{src/stories/checkbox/index.ts → dist/stories/checkbox/index.d.ts} +0 -0
- /package/{src/stories/codeinput/index.ts → dist/stories/codeinput/index.d.ts} +0 -0
- /package/{src/stories/combobox/index.ts → dist/stories/combobox/index.d.ts} +0 -0
- /package/{src/stories/dialog/index.ts → dist/stories/dialog/index.d.ts} +0 -0
- /package/{src/stories/drawer/index.ts → dist/stories/drawer/index.d.ts} +0 -0
- /package/{src/stories/field/index.ts → dist/stories/field/index.d.ts} +0 -0
- /package/{src/stories/icon/index.ts → dist/stories/icon/index.d.ts} +0 -0
- /package/{src/stories/informationaltooltip/index.ts → dist/stories/informationaltooltip/index.d.ts} +0 -0
- /package/{src/stories/input/index.ts → dist/stories/input/index.d.ts} +0 -0
- /package/{src/stories/markdown/index.ts → dist/stories/markdown/index.d.ts} +0 -0
- /package/{src/stories/markdowneditor/index.ts → dist/stories/markdowneditor/index.d.ts} +0 -0
- /package/{src/stories/menu/index.ts → dist/stories/menu/index.d.ts} +0 -0
- /package/{src/stories/pagination/index.ts → dist/stories/pagination/index.d.ts} +0 -0
- /package/{src/stories/popover/index.ts → dist/stories/popover/index.d.ts} +0 -0
- /package/{src/stories/select/index.ts → dist/stories/select/index.d.ts} +0 -0
- /package/{src/stories/styledlink/index.ts → dist/stories/styledlink/index.d.ts} +0 -0
- /package/{src/stories/table/index.ts → dist/stories/table/index.d.ts} +0 -0
- /package/{src/stories/tabs/index.ts → dist/stories/tabs/index.d.ts} +0 -0
- /package/{src/stories/tag/index.ts → dist/stories/tag/index.d.ts} +0 -0
- /package/{src/stories/text/index.ts → dist/stories/text/index.d.ts} +0 -0
- /package/{src/stories/textarea/index.ts → dist/stories/textarea/index.d.ts} +0 -0
- /package/{src/stories/theme/index.ts → dist/stories/theme/index.d.ts} +0 -0
- /package/{src/stories/tilt/index.ts → dist/stories/tilt/index.d.ts} +0 -0
- /package/{src/stories/toast/index.ts → dist/stories/toast/index.d.ts} +0 -0
- /package/{src/stories/utility/index.ts → dist/stories/utility/index.d.ts} +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import './MarkdownEditor.module.css';const root = "paris_root_AbYRN";
|
|
2
|
+
const editorContainer = "paris_editorContainer_9v7gh";
|
|
3
|
+
const editorContent = "paris_editorContent_WTm2y";
|
|
4
|
+
const styles = {
|
|
5
|
+
root: root,
|
|
6
|
+
editorContainer: editorContainer,
|
|
7
|
+
editorContent: editorContent
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export { styles as default, editorContainer, editorContent, root };
|
|
11
|
+
//# sourceMappingURL=MarkdownEditor.module.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownEditor.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Editor } from '@tiptap/react';
|
|
2
|
+
import { MarkdownEditorFeature } from './features';
|
|
3
|
+
export type ImageUploadHandler = (file: File) => Promise<string>;
|
|
4
|
+
export type MarkdownEditorContextValue = {
|
|
5
|
+
editor: Editor | null;
|
|
6
|
+
features: Set<MarkdownEditorFeature>;
|
|
7
|
+
handleImageUpload?: ImageUploadHandler;
|
|
8
|
+
};
|
|
9
|
+
export declare const MarkdownEditorContext: import('react').Context<MarkdownEditorContextValue>;
|
|
10
|
+
export declare const useMarkdownEditorContext: () => MarkdownEditorContextValue;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useContext, createContext } from 'react';
|
|
3
|
+
|
|
4
|
+
const MarkdownEditorContext = createContext({
|
|
5
|
+
editor: null,
|
|
6
|
+
features: /* @__PURE__ */ new Set()
|
|
7
|
+
});
|
|
8
|
+
const useMarkdownEditorContext = () => useContext(MarkdownEditorContext);
|
|
9
|
+
|
|
10
|
+
export { MarkdownEditorContext, useMarkdownEditorContext };
|
|
11
|
+
//# sourceMappingURL=MarkdownEditorContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownEditorContext.js","sources":["../../../src/stories/markdowneditor/MarkdownEditorContext.tsx"],"sourcesContent":["'use client';\n\nimport type { Editor } from '@tiptap/react';\nimport { createContext, useContext } from 'react';\nimport type { MarkdownEditorFeature } from './features';\n\nexport type ImageUploadHandler = (file: File) => Promise<string>;\n\nexport type MarkdownEditorContextValue = {\n editor: Editor | null;\n features: Set<MarkdownEditorFeature>;\n handleImageUpload?: ImageUploadHandler;\n};\n\nexport const MarkdownEditorContext = createContext<MarkdownEditorContextValue>({\n editor: null,\n features: new Set(),\n});\n\nexport const useMarkdownEditorContext = () => useContext(MarkdownEditorContext);\n"],"names":[],"mappings":";;;AAcO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0C;AAAA,CAAA,CAC3E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAc,CAAA,CAAA,CAAA,CAAA;AAClB,CAAC,CAAA;AAEM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef, FC, ReactNode } from 'react';
|
|
2
|
+
export type ToolbarButtonProps = {
|
|
3
|
+
/** Whether the button is currently active (e.g., bold is on). */
|
|
4
|
+
isActive?: boolean;
|
|
5
|
+
/** The action to perform when clicked. */
|
|
6
|
+
onAction: () => void;
|
|
7
|
+
/** Whether the button is disabled. */
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
/** Icon or label content. */
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
/** Optional tooltip text. */
|
|
12
|
+
tooltip?: string;
|
|
13
|
+
/** Prop overrides for the button element. */
|
|
14
|
+
overrides?: {
|
|
15
|
+
button?: ComponentPropsWithoutRef<'button'>;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* A toolbar button used in FixedToolbar and FloatingToolbar.
|
|
20
|
+
* Uses onMouseDown instead of onClick to prevent stealing editor focus.
|
|
21
|
+
*/
|
|
22
|
+
export declare const ToolbarButton: FC<ToolbarButtonProps>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { clsx } from 'clsx';
|
|
4
|
+
import styles from './ToolbarButton.module.scss.js';
|
|
5
|
+
|
|
6
|
+
const ToolbarButton = ({
|
|
7
|
+
isActive = false,
|
|
8
|
+
onAction,
|
|
9
|
+
disabled = false,
|
|
10
|
+
children,
|
|
11
|
+
tooltip,
|
|
12
|
+
overrides
|
|
13
|
+
}) => {
|
|
14
|
+
return /* @__PURE__ */ jsx(
|
|
15
|
+
"button",
|
|
16
|
+
{
|
|
17
|
+
type: "button",
|
|
18
|
+
title: tooltip,
|
|
19
|
+
disabled,
|
|
20
|
+
"data-active": isActive,
|
|
21
|
+
...overrides?.button,
|
|
22
|
+
className: clsx(styles.button, overrides?.button?.className),
|
|
23
|
+
onMouseDown: (e) => {
|
|
24
|
+
e.preventDefault();
|
|
25
|
+
if (!disabled) onAction();
|
|
26
|
+
},
|
|
27
|
+
children
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export { ToolbarButton };
|
|
33
|
+
//# sourceMappingURL=ToolbarButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolbarButton.js","sources":["../../../src/stories/markdowneditor/ToolbarButton.tsx"],"sourcesContent":["'use client';\n\nimport { clsx } from 'clsx';\nimport type { ComponentPropsWithoutRef, FC, ReactNode } from 'react';\nimport styles from './ToolbarButton.module.scss';\n\nexport type ToolbarButtonProps = {\n /** Whether the button is currently active (e.g., bold is on). */\n isActive?: boolean;\n /** The action to perform when clicked. */\n onAction: () => void;\n /** Whether the button is disabled. */\n disabled?: boolean;\n /** Icon or label content. */\n children: ReactNode;\n /** Optional tooltip text. */\n tooltip?: string;\n /** Prop overrides for the button element. */\n overrides?: {\n button?: ComponentPropsWithoutRef<'button'>;\n };\n};\n\n/**\n * A toolbar button used in FixedToolbar and FloatingToolbar.\n * Uses onMouseDown instead of onClick to prevent stealing editor focus.\n */\nexport const ToolbarButton: FC<ToolbarButtonProps> = ({\n isActive = false,\n onAction,\n disabled = false,\n children,\n tooltip,\n overrides,\n}) => {\n return (\n <button\n type=\"button\"\n title={tooltip}\n disabled={disabled}\n data-active={isActive}\n {...overrides?.button}\n className={clsx(styles.button, overrides?.button?.className)}\n onMouseDown={(e) => {\n e.preventDefault();\n if (!disabled) onAction();\n }}\n >\n {children}\n </button>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
.paris_button_o-kCm {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
justify-content: center;
|
|
5
|
+
width: 28px;
|
|
6
|
+
height: 28px;
|
|
7
|
+
border: none;
|
|
8
|
+
border-radius: 6px;
|
|
9
|
+
background: transparent;
|
|
10
|
+
color: var(--pte-new-colors-contentSecondary);
|
|
11
|
+
cursor: pointer;
|
|
12
|
+
padding: 0;
|
|
13
|
+
font-size: 13px;
|
|
14
|
+
font-family: inherit;
|
|
15
|
+
transition: background-color var(--pte-new-animations-interaction, 150ms) ease, color var(--pte-new-animations-interaction, 150ms) ease;
|
|
16
|
+
flex-shrink: 0;
|
|
17
|
+
}
|
|
18
|
+
.paris_button_o-kCm:hover {
|
|
19
|
+
background-color: var(--pte-new-colors-backgroundSecondary);
|
|
20
|
+
color: var(--pte-new-colors-contentPrimary);
|
|
21
|
+
}
|
|
22
|
+
.paris_button_o-kCm[data-active=true] {
|
|
23
|
+
background-color: var(--pte-new-colors-borderSubtle);
|
|
24
|
+
color: var(--pte-new-colors-contentPrimary);
|
|
25
|
+
}
|
|
26
|
+
.paris_button_o-kCm:disabled {
|
|
27
|
+
color: var(--pte-new-colors-contentDisabled);
|
|
28
|
+
cursor: not-allowed;
|
|
29
|
+
background: transparent;
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolbarButton.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Extensions } from '@tiptap/react';
|
|
2
|
+
export declare const FEATURES: readonly ["bold", "italic", "strikethrough", "heading", "blockquote", "horizontalRule", "bulletList", "orderedList", "taskList", "codeBlock", "code", "link", "image", "table"];
|
|
3
|
+
export type MarkdownEditorFeature = (typeof FEATURES)[number];
|
|
4
|
+
export declare const ALL_FEATURES: MarkdownEditorFeature[];
|
|
5
|
+
/**
|
|
6
|
+
* Builds the Tiptap extensions array based on enabled features.
|
|
7
|
+
* Always includes: Document, Paragraph, Text, History, Markdown, Placeholder.
|
|
8
|
+
* Conditionally includes StarterKit sub-extensions and standalone extensions.
|
|
9
|
+
*/
|
|
10
|
+
export declare function buildExtensions(features: Set<MarkdownEditorFeature>, placeholder?: string): Extensions;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import Image from '@tiptap/extension-image';
|
|
2
|
+
import Placeholder from '@tiptap/extension-placeholder';
|
|
3
|
+
import { Table } from '@tiptap/extension-table';
|
|
4
|
+
import TableCell from '@tiptap/extension-table-cell';
|
|
5
|
+
import TableHeader from '@tiptap/extension-table-header';
|
|
6
|
+
import TableRow from '@tiptap/extension-table-row';
|
|
7
|
+
import TaskItem from '@tiptap/extension-task-item';
|
|
8
|
+
import TaskList from '@tiptap/extension-task-list';
|
|
9
|
+
import { Markdown } from '@tiptap/markdown';
|
|
10
|
+
import StarterKit from '@tiptap/starter-kit';
|
|
11
|
+
|
|
12
|
+
const FEATURES = [
|
|
13
|
+
"bold",
|
|
14
|
+
"italic",
|
|
15
|
+
"strikethrough",
|
|
16
|
+
"heading",
|
|
17
|
+
"blockquote",
|
|
18
|
+
"horizontalRule",
|
|
19
|
+
"bulletList",
|
|
20
|
+
"orderedList",
|
|
21
|
+
"taskList",
|
|
22
|
+
"codeBlock",
|
|
23
|
+
"code",
|
|
24
|
+
"link",
|
|
25
|
+
"image",
|
|
26
|
+
"table"
|
|
27
|
+
];
|
|
28
|
+
const ALL_FEATURES = [...FEATURES];
|
|
29
|
+
function buildExtensions(features, placeholder) {
|
|
30
|
+
const extensions = [
|
|
31
|
+
StarterKit.configure({
|
|
32
|
+
bold: features.has("bold") ? {} : false,
|
|
33
|
+
italic: features.has("italic") ? {} : false,
|
|
34
|
+
strike: features.has("strikethrough") ? {} : false,
|
|
35
|
+
heading: features.has("heading") ? { levels: [1, 2, 3, 4, 5, 6] } : false,
|
|
36
|
+
blockquote: features.has("blockquote") ? {} : false,
|
|
37
|
+
horizontalRule: features.has("horizontalRule") ? {} : false,
|
|
38
|
+
bulletList: features.has("bulletList") ? {} : false,
|
|
39
|
+
orderedList: features.has("orderedList") ? {} : false,
|
|
40
|
+
listItem: features.has("bulletList") || features.has("orderedList") ? {} : false,
|
|
41
|
+
codeBlock: features.has("codeBlock") ? {} : false,
|
|
42
|
+
code: features.has("code") ? {} : false,
|
|
43
|
+
link: features.has("link") ? {
|
|
44
|
+
openOnClick: false,
|
|
45
|
+
HTMLAttributes: {
|
|
46
|
+
rel: "noopener noreferrer",
|
|
47
|
+
target: "_blank"
|
|
48
|
+
}
|
|
49
|
+
} : false
|
|
50
|
+
}),
|
|
51
|
+
Markdown,
|
|
52
|
+
Placeholder.configure({
|
|
53
|
+
placeholder: placeholder ?? "",
|
|
54
|
+
showOnlyCurrent: false
|
|
55
|
+
})
|
|
56
|
+
];
|
|
57
|
+
if (features.has("taskList")) {
|
|
58
|
+
extensions.push(TaskList);
|
|
59
|
+
extensions.push(TaskItem.configure({ nested: true }));
|
|
60
|
+
}
|
|
61
|
+
if (features.has("table")) {
|
|
62
|
+
extensions.push(Table.configure({ resizable: false }));
|
|
63
|
+
extensions.push(TableRow);
|
|
64
|
+
extensions.push(TableCell);
|
|
65
|
+
extensions.push(TableHeader);
|
|
66
|
+
}
|
|
67
|
+
if (features.has("image")) {
|
|
68
|
+
extensions.push(
|
|
69
|
+
Image.configure({
|
|
70
|
+
inline: false,
|
|
71
|
+
allowBase64: true
|
|
72
|
+
})
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
return extensions;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export { ALL_FEATURES, FEATURES, buildExtensions };
|
|
79
|
+
//# sourceMappingURL=features.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features.js","sources":["../../../src/stories/markdowneditor/features.ts"],"sourcesContent":["import Image from '@tiptap/extension-image';\nimport Placeholder from '@tiptap/extension-placeholder';\nimport { Table } from '@tiptap/extension-table';\nimport TableCell from '@tiptap/extension-table-cell';\nimport TableHeader from '@tiptap/extension-table-header';\nimport TableRow from '@tiptap/extension-table-row';\nimport TaskItem from '@tiptap/extension-task-item';\nimport TaskList from '@tiptap/extension-task-list';\nimport { Markdown } from '@tiptap/markdown';\nimport type { Extensions } from '@tiptap/react';\nimport StarterKit from '@tiptap/starter-kit';\n\nexport const FEATURES = [\n 'bold',\n 'italic',\n 'strikethrough',\n 'heading',\n 'blockquote',\n 'horizontalRule',\n 'bulletList',\n 'orderedList',\n 'taskList',\n 'codeBlock',\n 'code',\n 'link',\n 'image',\n 'table',\n] as const;\n\nexport type MarkdownEditorFeature = (typeof FEATURES)[number];\n\nexport const ALL_FEATURES: MarkdownEditorFeature[] = [...FEATURES];\n\n/**\n * Builds the Tiptap extensions array based on enabled features.\n * Always includes: Document, Paragraph, Text, History, Markdown, Placeholder.\n * Conditionally includes StarterKit sub-extensions and standalone extensions.\n */\nexport function buildExtensions(features: Set<MarkdownEditorFeature>, placeholder?: string): Extensions {\n const extensions: Extensions = [\n StarterKit.configure({\n bold: features.has('bold') ? {} : false,\n italic: features.has('italic') ? {} : false,\n strike: features.has('strikethrough') ? {} : false,\n heading: features.has('heading') ? { levels: [1, 2, 3, 4, 5, 6] } : false,\n blockquote: features.has('blockquote') ? {} : false,\n horizontalRule: features.has('horizontalRule') ? {} : false,\n bulletList: features.has('bulletList') ? {} : false,\n orderedList: features.has('orderedList') ? {} : false,\n listItem: features.has('bulletList') || features.has('orderedList') ? {} : false,\n codeBlock: features.has('codeBlock') ? {} : false,\n code: features.has('code') ? {} : false,\n link: features.has('link')\n ? {\n openOnClick: false,\n HTMLAttributes: {\n rel: 'noopener noreferrer',\n target: '_blank',\n },\n }\n : false,\n }),\n Markdown,\n Placeholder.configure({\n placeholder: placeholder ?? '',\n showOnlyCurrent: false,\n }),\n ];\n\n if (features.has('taskList')) {\n extensions.push(TaskList);\n extensions.push(TaskItem.configure({ nested: true }));\n }\n\n if (features.has('table')) {\n extensions.push(Table.configure({ resizable: false }));\n extensions.push(TableRow);\n extensions.push(TableCell);\n extensions.push(TableHeader);\n }\n\n if (features.has('image')) {\n extensions.push(\n Image.configure({\n inline: false,\n allowBase64: true,\n }),\n );\n }\n\n return extensions;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { FixedToolbar } from './FixedToolbar.js';
|
|
2
|
+
export { FloatingToolbar } from './FloatingToolbar.js';
|
|
3
|
+
export { ALL_FEATURES, FEATURES } from './features.js';
|
|
4
|
+
export { MarkdownEditor } from './MarkdownEditor.js';
|
|
5
|
+
export { useMarkdownEditorContext } from './MarkdownEditorContext.js';
|
|
6
|
+
export { ToolbarButton } from './ToolbarButton.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { MarkdownEditorFeature } from './features';
|
|
2
|
+
export type UseMarkdownEditorOptions = {
|
|
3
|
+
/** The markdown string value (controlled). */
|
|
4
|
+
value: string;
|
|
5
|
+
/** Fires with the updated markdown string on every edit. */
|
|
6
|
+
onChange?: (value: string) => void;
|
|
7
|
+
/** Whitelist of formatting features. Defaults to ALL_FEATURES. */
|
|
8
|
+
features?: MarkdownEditorFeature[];
|
|
9
|
+
/** Placeholder text when the editor is empty. */
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
/** Whether the editor is editable. @default true */
|
|
12
|
+
editable?: boolean;
|
|
13
|
+
/** Whether to autofocus the editor on mount. @default false */
|
|
14
|
+
autofocus?: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare function useMarkdownEditor({ value, onChange, features, placeholder, editable, autofocus, }: UseMarkdownEditorOptions): {
|
|
17
|
+
editor: import('@tiptap/core').Editor | null;
|
|
18
|
+
featureSet: Set<"blockquote" | "code" | "link" | "table" | "image" | "heading" | "bold" | "italic" | "strikethrough" | "horizontalRule" | "bulletList" | "orderedList" | "taskList" | "codeBlock">;
|
|
19
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useEditor } from '@tiptap/react';
|
|
3
|
+
import { useMemo, useRef, useEffect } from 'react';
|
|
4
|
+
import { ALL_FEATURES, buildExtensions } from './features.js';
|
|
5
|
+
|
|
6
|
+
function useMarkdownEditor({
|
|
7
|
+
value,
|
|
8
|
+
onChange,
|
|
9
|
+
features = ALL_FEATURES,
|
|
10
|
+
placeholder,
|
|
11
|
+
editable = true,
|
|
12
|
+
autofocus = false
|
|
13
|
+
}) {
|
|
14
|
+
const featureSet = useMemo(() => new Set(features), [features]);
|
|
15
|
+
const extensions = useMemo(() => buildExtensions(featureSet, placeholder), [featureSet, placeholder]);
|
|
16
|
+
const lastOnChangeValue = useRef(value);
|
|
17
|
+
const editor = useEditor({
|
|
18
|
+
extensions,
|
|
19
|
+
// Empty strings produce no DOM nodes with contentType: 'markdown',
|
|
20
|
+
// which breaks the placeholder. Only use markdown parsing for non-empty content.
|
|
21
|
+
content: value || void 0,
|
|
22
|
+
contentType: value ? "markdown" : void 0,
|
|
23
|
+
editable,
|
|
24
|
+
autofocus,
|
|
25
|
+
immediatelyRender: false,
|
|
26
|
+
onUpdate: ({ editor: ed }) => {
|
|
27
|
+
const markdown = ed.getMarkdown();
|
|
28
|
+
lastOnChangeValue.current = markdown;
|
|
29
|
+
onChange?.(markdown);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (!editor || editor.isDestroyed) return;
|
|
34
|
+
if (value === lastOnChangeValue.current) return;
|
|
35
|
+
const currentMarkdown = editor.getMarkdown();
|
|
36
|
+
if (value !== currentMarkdown) {
|
|
37
|
+
editor.commands.setContent(value, { contentType: "markdown", emitUpdate: false });
|
|
38
|
+
lastOnChangeValue.current = value;
|
|
39
|
+
}
|
|
40
|
+
}, [editor, value]);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (editor && !editor.isDestroyed) {
|
|
43
|
+
editor.setEditable(editable);
|
|
44
|
+
}
|
|
45
|
+
}, [editor, editable]);
|
|
46
|
+
return { editor, featureSet };
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export { useMarkdownEditor };
|
|
50
|
+
//# sourceMappingURL=useMarkdownEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMarkdownEditor.js","sources":["../../../src/stories/markdowneditor/useMarkdownEditor.ts"],"sourcesContent":["'use client';\n\nimport { useEditor } from '@tiptap/react';\nimport { useEffect, useMemo, useRef } from 'react';\nimport type { MarkdownEditorFeature } from './features';\nimport { ALL_FEATURES, buildExtensions } from './features';\n\nexport type UseMarkdownEditorOptions = {\n /** The markdown string value (controlled). */\n value: string;\n /** Fires with the updated markdown string on every edit. */\n onChange?: (value: string) => void;\n /** Whitelist of formatting features. Defaults to ALL_FEATURES. */\n features?: MarkdownEditorFeature[];\n /** Placeholder text when the editor is empty. */\n placeholder?: string;\n /** Whether the editor is editable. @default true */\n editable?: boolean;\n /** Whether to autofocus the editor on mount. @default false */\n autofocus?: boolean;\n};\n\nexport function useMarkdownEditor({\n value,\n onChange,\n features = ALL_FEATURES,\n placeholder,\n editable = true,\n autofocus = false,\n}: UseMarkdownEditorOptions) {\n const featureSet = useMemo(() => new Set(features), [features]);\n const extensions = useMemo(() => buildExtensions(featureSet, placeholder), [featureSet, placeholder]);\n\n // Track the last value we sent via onChange to prevent circular updates\n const lastOnChangeValue = useRef(value);\n\n const editor = useEditor({\n extensions,\n // Empty strings produce no DOM nodes with contentType: 'markdown',\n // which breaks the placeholder. Only use markdown parsing for non-empty content.\n content: value || undefined,\n contentType: value ? 'markdown' : undefined,\n editable,\n autofocus,\n immediatelyRender: false,\n onUpdate: ({ editor: ed }) => {\n const markdown = ed.getMarkdown();\n lastOnChangeValue.current = markdown;\n onChange?.(markdown);\n },\n });\n\n // Sync external value changes into the editor (controlled mode)\n useEffect(() => {\n if (!editor || editor.isDestroyed) return;\n\n // Skip if this value came from our own onChange\n if (value === lastOnChangeValue.current) return;\n\n const currentMarkdown = editor.getMarkdown();\n if (value !== currentMarkdown) {\n editor.commands.setContent(value, { contentType: 'markdown', emitUpdate: false });\n lastOnChangeValue.current = value;\n }\n }, [editor, value]);\n\n // Sync editable state\n useEffect(() => {\n if (editor && !editor.isDestroyed) {\n editor.setEditable(editable);\n }\n }, [editor, editable]);\n\n return { editor, featureSet };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { MenuButtonProps, MenuItemProps, MenuItemsProps, MenuProps } from '@headlessui/react';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Wraps the `HeadlessMenu` component from `@headlessui/react` to provide a styled dropdown menu.
|
|
5
|
+
*
|
|
6
|
+
* This component serves as the root of the menu and should wrap `MenuButton`, `MenuItems`, and `MenuItem` components.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
*
|
|
10
|
+
* ```tsx
|
|
11
|
+
* <Menu>
|
|
12
|
+
* <MenuButton>Options</MenuButton>
|
|
13
|
+
* <MenuItems>
|
|
14
|
+
* <MenuItem>Item 1</MenuItem>
|
|
15
|
+
* <MenuItem>Item 2</MenuItem>
|
|
16
|
+
* </MenuItems>
|
|
17
|
+
* </Menu>
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare const Menu: FC<MenuProps<React.ElementType> & {
|
|
21
|
+
onOpenChange?: (open: boolean) => void;
|
|
22
|
+
}>;
|
|
23
|
+
/**
|
|
24
|
+
* Renders a button that toggles the display of `MenuItems` in a `Menu`.
|
|
25
|
+
*
|
|
26
|
+
* Should be used inside a `Menu` component to serve as the toggle for `MenuItems`.
|
|
27
|
+
*/
|
|
28
|
+
export declare const MenuButton: FC<MenuButtonProps<React.ElementType>>;
|
|
29
|
+
/**
|
|
30
|
+
* Container for menu item options, rendering the list of `MenuItem` components.
|
|
31
|
+
*
|
|
32
|
+
* Positions the menu items relative to the `MenuButton` based on the `position` prop.
|
|
33
|
+
*
|
|
34
|
+
* @param position - Controls the positioning of the menu items ('left' or 'right').
|
|
35
|
+
*/
|
|
36
|
+
export declare const MenuItems: FC<MenuItemsProps<React.ElementType> & {
|
|
37
|
+
position?: 'left' | 'right';
|
|
38
|
+
}>;
|
|
39
|
+
/**
|
|
40
|
+
* Represents an individual item within a `MenuItems` container.
|
|
41
|
+
*
|
|
42
|
+
* Should be used inside `MenuItems` to represent selectable options in the menu.
|
|
43
|
+
*
|
|
44
|
+
* @param isNew - Whether the menu items should be styled as new items.
|
|
45
|
+
*/
|
|
46
|
+
export declare const MenuItem: FC<MenuItemProps<React.ElementType> & {
|
|
47
|
+
isNew?: boolean;
|
|
48
|
+
}>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
|
+
import { Menu as Menu$1, MenuButton as MenuButton$1, MenuItem as MenuItem$1, MenuItems as MenuItems$1 } from '@headlessui/react';
|
|
4
|
+
import { clsx } from 'clsx';
|
|
5
|
+
import { OpenChangeEffect } from '../../helpers/OpenChangeEffect.js';
|
|
6
|
+
import styles from './Menu.module.scss.js';
|
|
7
|
+
|
|
8
|
+
const Menu = ({
|
|
9
|
+
className,
|
|
10
|
+
children,
|
|
11
|
+
onOpenChange,
|
|
12
|
+
...props
|
|
13
|
+
}) => /* @__PURE__ */ jsx(Menu$1, { as: "div", className: clsx(styles.menu, className), ...props, children: ({ open, close }) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
14
|
+
/* @__PURE__ */ jsx(OpenChangeEffect, { open, onOpenChange }),
|
|
15
|
+
typeof children === "function" ? children({ open, close }) : children
|
|
16
|
+
] }) });
|
|
17
|
+
const MenuButton = ({ className, children, ...props }) => /* @__PURE__ */ jsx(MenuButton$1, { className: clsx(styles.menuButton, className), ...props, children });
|
|
18
|
+
const MenuItems = ({ className, children, position = "left", ...props }) => /* @__PURE__ */ jsx(
|
|
19
|
+
MenuItems$1,
|
|
20
|
+
{
|
|
21
|
+
transition: true,
|
|
22
|
+
anchor: position === "left" ? "bottom start" : "bottom end",
|
|
23
|
+
className: clsx(styles.menuItems, className),
|
|
24
|
+
...props,
|
|
25
|
+
children
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
const MenuItem = ({ className, children, isNew = false, ...props }) => /* @__PURE__ */ jsx(MenuItem$1, { className: clsx(styles.menuItem, isNew && styles.newItem, className), ...props, children });
|
|
29
|
+
|
|
30
|
+
export { Menu, MenuButton, MenuItem, MenuItems };
|
|
31
|
+
//# sourceMappingURL=Menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.js","sources":["../../../src/stories/menu/Menu.tsx"],"sourcesContent":["'use client';\n\nimport type { MenuButtonProps, MenuItemProps, MenuItemsProps, MenuProps } from '@headlessui/react';\nimport {\n Menu as HeadlessMenu,\n MenuButton as HMenuButton,\n MenuItem as HMenuItem,\n MenuItems as HMenuItems,\n} from '@headlessui/react';\nimport { clsx } from 'clsx';\nimport type { FC } from 'react';\nimport { OpenChangeEffect } from '../../helpers/OpenChangeEffect';\n\nimport styles from './Menu.module.scss';\n\n/**\n * Wraps the `HeadlessMenu` component from `@headlessui/react` to provide a styled dropdown menu.\n *\n * This component serves as the root of the menu and should wrap `MenuButton`, `MenuItems`, and `MenuItem` components.\n *\n * Usage:\n *\n * ```tsx\n * <Menu>\n * <MenuButton>Options</MenuButton>\n * <MenuItems>\n * <MenuItem>Item 1</MenuItem>\n * <MenuItem>Item 2</MenuItem>\n * </MenuItems>\n * </Menu>\n * ```\n */\nexport const Menu: FC<MenuProps<React.ElementType> & { onOpenChange?: (open: boolean) => void }> = ({\n className,\n children,\n onOpenChange,\n ...props\n}) => (\n <HeadlessMenu as=\"div\" className={clsx(styles.menu, className)} {...props}>\n {({ open, close }) => (\n <>\n <OpenChangeEffect open={open} onOpenChange={onOpenChange} />\n {typeof children === 'function' ? children({ open, close }) : children}\n </>\n )}\n </HeadlessMenu>\n);\n\n/**\n * Renders a button that toggles the display of `MenuItems` in a `Menu`.\n *\n * Should be used inside a `Menu` component to serve as the toggle for `MenuItems`.\n */\nexport const MenuButton: FC<MenuButtonProps<React.ElementType>> = ({ className, children, ...props }) => (\n <HMenuButton className={clsx(styles.menuButton, className)} {...props}>\n {children}\n </HMenuButton>\n);\n\n/**\n * Container for menu item options, rendering the list of `MenuItem` components.\n *\n * Positions the menu items relative to the `MenuButton` based on the `position` prop.\n *\n * @param position - Controls the positioning of the menu items ('left' or 'right').\n */\nexport const MenuItems: FC<\n MenuItemsProps<React.ElementType> & {\n position?: 'left' | 'right';\n }\n> = ({ className, children, position = 'left', ...props }) => (\n <HMenuItems\n transition\n anchor={position === 'left' ? 'bottom start' : 'bottom end'}\n className={clsx(styles.menuItems, className)}\n {...props}\n >\n {children}\n </HMenuItems>\n);\n\n/**\n * Represents an individual item within a `MenuItems` container.\n *\n * Should be used inside `MenuItems` to represent selectable options in the menu.\n *\n * @param isNew - Whether the menu items should be styled as new items.\n */\nexport const MenuItem: FC<\n MenuItemProps<React.ElementType> & {\n isNew?: boolean;\n }\n> = ({ className, children, isNew = false, ...props }) => (\n <HMenuItem className={clsx(styles.menuItem, isNew && styles.newItem, className)} {...props}>\n {children}\n </HMenuItem>\n);\n"],"names":["HeadlessMenu","HMenuButton","HMenuItems","HMenuItem"],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
.paris_menu_HYnWi {
|
|
2
|
+
position: relative;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.paris_menuItems_QbqR7 {
|
|
6
|
+
--anchor-gap: 6px;
|
|
7
|
+
border-radius: 8px;
|
|
8
|
+
background: var(--pte-new-colors-surfacePrimary);
|
|
9
|
+
box-shadow: var(--pte-new-lighting-deepBelow);
|
|
10
|
+
border: var(--pte-new-borders-dropdown-border);
|
|
11
|
+
display: flex;
|
|
12
|
+
width: 200px;
|
|
13
|
+
flex-direction: column;
|
|
14
|
+
align-items: flex-start;
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
z-index: var(--pte-new-layers-menu);
|
|
17
|
+
transition: opacity var(--pte-animations-interaction), transform var(--pte-animations-interaction);
|
|
18
|
+
opacity: 1;
|
|
19
|
+
transform: translateY(0);
|
|
20
|
+
}
|
|
21
|
+
.paris_menuItems_QbqR7[data-closed] {
|
|
22
|
+
opacity: 0;
|
|
23
|
+
transform: translateY(-8px);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.paris_menuItem_snmkz {
|
|
27
|
+
width: 100%;
|
|
28
|
+
padding: 8px 14px;
|
|
29
|
+
display: flex;
|
|
30
|
+
align-items: center;
|
|
31
|
+
justify-content: space-between;
|
|
32
|
+
color: var(--pte-new-colors-contentPrimary);
|
|
33
|
+
border-bottom: 0.5px solid var(--pte-new-colors-borderMedium);
|
|
34
|
+
}
|
|
35
|
+
.paris_menuItem_snmkz:last-child {
|
|
36
|
+
border-bottom: none;
|
|
37
|
+
}
|
|
38
|
+
.paris_menuItem_snmkz:hover {
|
|
39
|
+
background-color: var(--pte-new-colors-overlayMedium);
|
|
40
|
+
}
|
|
41
|
+
@keyframes paris_gradientFlow_ZffNc {
|
|
42
|
+
0% {
|
|
43
|
+
background-position: 0%;
|
|
44
|
+
}
|
|
45
|
+
100% {
|
|
46
|
+
background-position: 125%;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.paris_newItem_LE830 {
|
|
51
|
+
background: radial-gradient(circle, rgba(20, 239, 172, 0.2) 0%, rgba(38, 237, 237, 0.05) 75%);
|
|
52
|
+
background-size: 150% 100%;
|
|
53
|
+
animation: paris_gradientFlow_ZffNc 2.5s ease-in-out infinite alternate;
|
|
54
|
+
background-position: 0%;
|
|
55
|
+
}
|
|
56
|
+
.paris_newItem_LE830:hover {
|
|
57
|
+
background-color: unset;
|
|
58
|
+
animation-play-state: paused;
|
|
59
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import './Menu.module.css';const menu = "paris_menu_HYnWi";
|
|
2
|
+
const menuItems = "paris_menuItems_QbqR7";
|
|
3
|
+
const menuItem = "paris_menuItem_snmkz";
|
|
4
|
+
const newItem = "paris_newItem_LE830";
|
|
5
|
+
const styles = {
|
|
6
|
+
menu: menu,
|
|
7
|
+
menuItems: menuItems,
|
|
8
|
+
menuItem: menuItem,
|
|
9
|
+
newItem: newItem};
|
|
10
|
+
|
|
11
|
+
export { styles as default, menu, menuItem, menuItems, newItem };
|
|
12
|
+
//# sourceMappingURL=Menu.module.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export type PaginationState<T extends string[] | readonly string[] = string[]> = {
|
|
2
|
+
/**
|
|
3
|
+
* The current page key.
|
|
4
|
+
*/
|
|
5
|
+
currentPage: T[number];
|
|
6
|
+
/**
|
|
7
|
+
* Open a page and add it to the history.
|
|
8
|
+
* @param page - The page's unique key.
|
|
9
|
+
*/
|
|
10
|
+
open: (page: T[number]) => void;
|
|
11
|
+
/**
|
|
12
|
+
* Check if the current page can go back.
|
|
13
|
+
*/
|
|
14
|
+
canGoBack: () => boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Go back to the previous page.
|
|
17
|
+
*
|
|
18
|
+
* If the current page is the first page, nothing happens.
|
|
19
|
+
*/
|
|
20
|
+
back: () => void;
|
|
21
|
+
/**
|
|
22
|
+
* Check if the current page can go forward.
|
|
23
|
+
*/
|
|
24
|
+
canGoForward: () => boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Go forward to the next page.
|
|
27
|
+
*
|
|
28
|
+
* If there is no next page, nothing happens.
|
|
29
|
+
*/
|
|
30
|
+
forward: () => void;
|
|
31
|
+
/**
|
|
32
|
+
* The page history.
|
|
33
|
+
*/
|
|
34
|
+
history: T[number][];
|
|
35
|
+
/**
|
|
36
|
+
* Clear the page history and reset to the initial page.
|
|
37
|
+
*/
|
|
38
|
+
reset: () => void;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* A hook to create a page history and navigate between pages.
|
|
42
|
+
*
|
|
43
|
+
* In TypeScript, you can pass in a string array to the generic type to explicitly define the page keys, which will add type safety and auto-completion for each method.
|
|
44
|
+
*
|
|
45
|
+
* @param initialPage - The initial page key.
|
|
46
|
+
*/
|
|
47
|
+
export declare const usePagination: <T extends string[] | readonly string[] = string[]>(initialPage: T[number]) => PaginationState<T>;
|