@nlabs/gothamui 1.8.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/LICENSE +21 -0
- package/MIGRATION.md +36 -0
- package/README.md +768 -0
- package/docs/assets/gothamui-app-architecture.svg +159 -0
- package/docs/assets/gothamui-logo.png +0 -0
- package/docs/assets/gothamui-logo.svg +42 -0
- package/docs/render-performance.md +34 -0
- package/lib/actions/GothamActions.d.ts +42 -0
- package/lib/actions/GothamActions.js +67 -0
- package/lib/actions/MarkdownActions.d.ts +4 -0
- package/lib/actions/MarkdownActions.js +48 -0
- package/lib/app.d.ts +1 -0
- package/lib/app.js +198 -0
- package/lib/components/Alert/Alert.d.ts +8 -0
- package/lib/components/Alert/Alert.js +24 -0
- package/lib/components/Alert/Alert.stories.js +59 -0
- package/lib/components/AuthRoute/AuthRoute.d.ts +3 -0
- package/lib/components/AuthRoute/AuthRoute.js +21 -0
- package/lib/components/AuthRoute/AuthRoute.stories.js +45 -0
- package/lib/components/AutocompleteField/AutocompleteField.d.ts +24 -0
- package/lib/components/AutocompleteField/AutocompleteField.js +148 -0
- package/lib/components/AutocompleteField/AutocompleteField.stories.js +62 -0
- package/lib/components/Avatar/Avatar.d.ts +29 -0
- package/lib/components/Avatar/Avatar.js +154 -0
- package/lib/components/Avatar/Avatar.stories.js +105 -0
- package/lib/components/Badge/Badge.d.ts +9 -0
- package/lib/components/Badge/Badge.js +22 -0
- package/lib/components/Badge/Badge.stories.js +53 -0
- package/lib/components/Breadcrumbs/Breadcrumbs.d.ts +19 -0
- package/lib/components/Breadcrumbs/Breadcrumbs.js +74 -0
- package/lib/components/Breadcrumbs/Breadcrumbs.stories.js +95 -0
- package/lib/components/Button/Button.d.ts +25 -0
- package/lib/components/Button/Button.js +157 -0
- package/lib/components/Button/Button.stories.js +119 -0
- package/lib/components/Card/Card.d.ts +8 -0
- package/lib/components/Card/Card.js +39 -0
- package/lib/components/Card/Card.stories.js +60 -0
- package/lib/components/CategoryGrid/CategoryGrid.d.ts +15 -0
- package/lib/components/CategoryGrid/CategoryGrid.js +42 -0
- package/lib/components/CategoryGrid/CategoryGrid.stories.js +35 -0
- package/lib/components/Chat/AudioMessage/AudioMessage.css +1 -0
- package/lib/components/Chat/AudioMessage/AudioMessage.d.ts +3 -0
- package/lib/components/Chat/AudioMessage/AudioMessage.js +28 -0
- package/lib/components/Chat/Avatar/Avatar.css +1 -0
- package/lib/components/Chat/Avatar/Avatar.d.ts +3 -0
- package/lib/components/Chat/Avatar/Avatar.js +72 -0
- package/lib/components/Chat/Button/Button.css +1 -0
- package/lib/components/Chat/Button/Button.d.ts +3 -0
- package/lib/components/Chat/Button/Button.js +37 -0
- package/lib/components/Chat/Chat.stories.js +688 -0
- package/lib/components/Chat/ChatItem/ChatItem.css +1 -0
- package/lib/components/Chat/ChatItem/ChatItem.d.ts +3 -0
- package/lib/components/Chat/ChatItem/ChatItem.js +183 -0
- package/lib/components/Chat/ChatList/ChatList.css +1 -0
- package/lib/components/Chat/ChatList/ChatList.d.ts +3 -0
- package/lib/components/Chat/ChatList/ChatList.js +84 -0
- package/lib/components/Chat/Circle/Circle.d.ts +3 -0
- package/lib/components/Chat/Circle/Circle.js +27 -0
- package/lib/components/Chat/Dropdown/Dropdown.css +1 -0
- package/lib/components/Chat/Dropdown/Dropdown.d.ts +3 -0
- package/lib/components/Chat/Dropdown/Dropdown.js +66 -0
- package/lib/components/Chat/FileMessage/FileMessage.css +1 -0
- package/lib/components/Chat/FileMessage/FileMessage.d.ts +3 -0
- package/lib/components/Chat/FileMessage/FileMessage.js +77 -0
- package/lib/components/Chat/Input/Input.css +1 -0
- package/lib/components/Chat/Input/Input.d.ts +3 -0
- package/lib/components/Chat/Input/Input.js +108 -0
- package/lib/components/Chat/LocationMessage/LocationMessage.css +1 -0
- package/lib/components/Chat/LocationMessage/LocationMessage.d.ts +3 -0
- package/lib/components/Chat/LocationMessage/LocationMessage.js +36 -0
- package/lib/components/Chat/MeetingItem/MeetingItem.css +1 -0
- package/lib/components/Chat/MeetingItem/MeetingItem.d.ts +3 -0
- package/lib/components/Chat/MeetingItem/MeetingItem.js +106 -0
- package/lib/components/Chat/MeetingLink/MeetingLink.css +1 -0
- package/lib/components/Chat/MeetingLink/MeetingLink.d.ts +3 -0
- package/lib/components/Chat/MeetingLink/MeetingLink.js +26 -0
- package/lib/components/Chat/MeetingList/MeetingList.css +1 -0
- package/lib/components/Chat/MeetingList/MeetingList.d.ts +3 -0
- package/lib/components/Chat/MeetingList/MeetingList.js +52 -0
- package/lib/components/Chat/MeetingMessage/MeetingMessage.css +1 -0
- package/lib/components/Chat/MeetingMessage/MeetingMessage.d.ts +3 -0
- package/lib/components/Chat/MeetingMessage/MeetingMessage.js +227 -0
- package/lib/components/Chat/MessageBox/MessageBox.css +1 -0
- package/lib/components/Chat/MessageBox/MessageBox.d.ts +3 -0
- package/lib/components/Chat/MessageBox/MessageBox.js +263 -0
- package/lib/components/Chat/MessageList/MessageList.css +1 -0
- package/lib/components/Chat/MessageList/MessageList.d.ts +2 -0
- package/lib/components/Chat/MessageList/MessageList.js +196 -0
- package/lib/components/Chat/Navbar/Navbar.css +1 -0
- package/lib/components/Chat/Navbar/Navbar.d.ts +3 -0
- package/lib/components/Chat/Navbar/Navbar.js +21 -0
- package/lib/components/Chat/PhotoMessage/PhotoMessage.css +1 -0
- package/lib/components/Chat/PhotoMessage/PhotoMessage.d.ts +3 -0
- package/lib/components/Chat/PhotoMessage/PhotoMessage.js +73 -0
- package/lib/components/Chat/Popup/Popup.css +1 -0
- package/lib/components/Chat/Popup/Popup.d.ts +3 -0
- package/lib/components/Chat/Popup/Popup.js +45 -0
- package/lib/components/Chat/README.md +50 -0
- package/lib/components/Chat/ReplyMessage/ReplyMessage.css +1 -0
- package/lib/components/Chat/ReplyMessage/ReplyMessage.d.ts +3 -0
- package/lib/components/Chat/ReplyMessage/ReplyMessage.js +42 -0
- package/lib/components/Chat/SideBar/SideBar.css +1 -0
- package/lib/components/Chat/SideBar/SideBar.d.ts +3 -0
- package/lib/components/Chat/SideBar/SideBar.js +21 -0
- package/lib/components/Chat/SpotifyMessage/SpotifyMessage.css +1 -0
- package/lib/components/Chat/SpotifyMessage/SpotifyMessage.d.ts +3 -0
- package/lib/components/Chat/SpotifyMessage/SpotifyMessage.js +28 -0
- package/lib/components/Chat/SystemMessage/SystemMessage.css +1 -0
- package/lib/components/Chat/SystemMessage/SystemMessage.d.ts +3 -0
- package/lib/components/Chat/SystemMessage/SystemMessage.js +14 -0
- package/lib/components/Chat/VideoMessage/VideoMessage.css +1 -0
- package/lib/components/Chat/VideoMessage/VideoMessage.d.ts +3 -0
- package/lib/components/Chat/VideoMessage/VideoMessage.js +88 -0
- package/lib/components/Chat/assets/img/leftArrow.svg +6 -0
- package/lib/components/Chat/assets/img/rightArrow.svg +6 -0
- package/lib/components/Chat/index.d.ts +25 -0
- package/lib/components/Chat/index.js +27 -0
- package/lib/components/Chat/type.d.js +52 -0
- package/lib/components/Chat/utils/formatRelativeDate.d.ts +4 -0
- package/lib/components/Chat/utils/formatRelativeDate.js +110 -0
- package/lib/components/Checkbox/Checkbox.d.ts +15 -0
- package/lib/components/Checkbox/Checkbox.js +106 -0
- package/lib/components/Checkbox/Checkbox.stories.js +51 -0
- package/lib/components/ComponentUtils/renderWithAsChild.d.ts +9 -0
- package/lib/components/ComponentUtils/renderWithAsChild.js +27 -0
- package/lib/components/Container/Container.d.ts +7 -0
- package/lib/components/Container/Container.js +16 -0
- package/lib/components/Container/Container.stories.js +36 -0
- package/lib/components/DateField/DateField.d.ts +22 -0
- package/lib/components/DateField/DateField.js +145 -0
- package/lib/components/DateField/DateField.stories.js +125 -0
- package/lib/components/DateField/DatePicker.d.ts +9 -0
- package/lib/components/DateField/DatePicker.js +205 -0
- package/lib/components/DateField/DatePicker.stories.js +33 -0
- package/lib/components/DescriptionList/DescriptionList.d.ts +4 -0
- package/lib/components/DescriptionList/DescriptionList.js +19 -0
- package/lib/components/DescriptionList/DescriptionList.stories.js +34 -0
- package/lib/components/Dialog/Dialog.d.ts +25 -0
- package/lib/components/Dialog/Dialog.js +66 -0
- package/lib/components/Dialog/Dialog.stories.js +88 -0
- package/lib/components/DropUpload/DropUpload.d.ts +37 -0
- package/lib/components/DropUpload/DropUpload.js +323 -0
- package/lib/components/DropUpload/DropUpload.stories.js +48 -0
- package/lib/components/Empty/Empty.d.ts +11 -0
- package/lib/components/Empty/Empty.js +39 -0
- package/lib/components/Empty/Empty.stories.js +52 -0
- package/lib/components/EmptyState/EmptyState.d.ts +15 -0
- package/lib/components/EmptyState/EmptyState.js +44 -0
- package/lib/components/EmptyState/EmptyState.stories.js +36 -0
- package/lib/components/ErrorMessage/ErrorMessage.d.ts +7 -0
- package/lib/components/ErrorMessage/ErrorMessage.js +20 -0
- package/lib/components/ErrorMessage/ErrorMessage.stories.js +25 -0
- package/lib/components/FaqSection/FaqSection.d.ts +14 -0
- package/lib/components/FaqSection/FaqSection.js +37 -0
- package/lib/components/FaqSection/FaqSection.stories.js +31 -0
- package/lib/components/Fieldset/Fieldset.d.ts +21 -0
- package/lib/components/Fieldset/Fieldset.js +39 -0
- package/lib/components/Fieldset/Fieldset.stories.js +42 -0
- package/lib/components/Footer/Footer.d.ts +26 -0
- package/lib/components/Footer/Footer.js +119 -0
- package/lib/components/Footer/Footer.stories.js +184 -0
- package/lib/components/Form/Form.d.ts +42 -0
- package/lib/components/Form/Form.js +198 -0
- package/lib/components/Form/Form.stories.js +65 -0
- package/lib/components/Form/FormContext.d.ts +35 -0
- package/lib/components/Form/FormContext.js +71 -0
- package/lib/components/GothamRoute/GothamRoute.d.ts +0 -0
- package/lib/components/GothamRoute/GothamRoute.js +56 -0
- package/lib/components/GothamRouter/GothamRouter.d.ts +0 -0
- package/lib/components/GothamRouter/GothamRouter.js +52 -0
- package/lib/components/Heading/Heading.d.ts +7 -0
- package/lib/components/Heading/Heading.js +20 -0
- package/lib/components/Heading/Heading.stories.js +51 -0
- package/lib/components/IncentiveGrid/IncentiveGrid.d.ts +15 -0
- package/lib/components/IncentiveGrid/IncentiveGrid.js +34 -0
- package/lib/components/IncentiveGrid/IncentiveGrid.stories.js +41 -0
- package/lib/components/InputField/InputField.d.ts +25 -0
- package/lib/components/InputField/InputField.js +68 -0
- package/lib/components/InputField/InputField.stories.js +58 -0
- package/lib/components/Item/Item.d.ts +25 -0
- package/lib/components/Item/Item.js +79 -0
- package/lib/components/Item/Item.stories.js +94 -0
- package/lib/components/Kbd/Kbd.d.ts +2 -0
- package/lib/components/Kbd/Kbd.js +9 -0
- package/lib/components/Kbd/Kbd.stories.js +24 -0
- package/lib/components/Label/Label.d.ts +11 -0
- package/lib/components/Label/Label.js +23 -0
- package/lib/components/Label/Label.stories.js +38 -0
- package/lib/components/Link/Link.d.ts +7 -0
- package/lib/components/Link/Link.js +13 -0
- package/lib/components/Link/Link.stories.js +28 -0
- package/lib/components/ListContainer/ListContainer.d.ts +8 -0
- package/lib/components/ListContainer/ListContainer.js +14 -0
- package/lib/components/ListContainer/ListContainer.stories.js +45 -0
- package/lib/components/Loader/Loader.d.ts +9 -0
- package/lib/components/Loader/Loader.js +36 -0
- package/lib/components/Loader/Loader.stories.js +94 -0
- package/lib/components/LogoCloud/LogoCloud.d.ts +15 -0
- package/lib/components/LogoCloud/LogoCloud.js +43 -0
- package/lib/components/LogoCloud/LogoCloud.stories.js +28 -0
- package/lib/components/Markdown/Markdown.d.ts +8 -0
- package/lib/components/Markdown/Markdown.js +64 -0
- package/lib/components/Markdown/Markdown.stories.js +34 -0
- package/lib/components/MediaLightbox/MediaLightbox.d.ts +22 -0
- package/lib/components/MediaLightbox/MediaLightbox.js +80 -0
- package/lib/components/MediaObject/MediaObject.d.ts +8 -0
- package/lib/components/MediaObject/MediaObject.js +37 -0
- package/lib/components/MediaObject/MediaObject.stories.js +28 -0
- package/lib/components/Navbar/Navbar.d.ts +43 -0
- package/lib/components/Navbar/Navbar.js +213 -0
- package/lib/components/Navbar/Navbar.stories.js +235 -0
- package/lib/components/NotFound/NotFound.d.ts +34 -0
- package/lib/components/NotFound/NotFound.js +351 -0
- package/lib/components/NotFound/NotFound.stories.js +80 -0
- package/lib/components/Notify/Notify.d.ts +18 -0
- package/lib/components/Notify/Notify.js +178 -0
- package/lib/components/Notify/Notify.stories.js +148 -0
- package/lib/components/Notify/NotifyExample.d.ts +1 -0
- package/lib/components/Notify/NotifyExample.js +174 -0
- package/lib/components/Notify/README.md +103 -0
- package/lib/components/Pagination/Pagination.d.ts +18 -0
- package/lib/components/Pagination/Pagination.js +225 -0
- package/lib/components/Pagination/Pagination.stories.js +69 -0
- package/lib/components/PasswordStrengthMeter/PasswordStrengthMeter.d.ts +12 -0
- package/lib/components/PasswordStrengthMeter/PasswordStrengthMeter.js +88 -0
- package/lib/components/PasswordStrengthMeter/PasswordStrengthMeter.stories.js +16 -0
- package/lib/components/PaymentMethodPanel/PaymentMethodPanel.d.ts +18 -0
- package/lib/components/PaymentMethodPanel/PaymentMethodPanel.js +113 -0
- package/lib/components/PaymentMethodPanel/PaymentMethodPanel.stories.js +88 -0
- package/lib/components/Pricing/Pricing.d.ts +78 -0
- package/lib/components/Pricing/Pricing.js +764 -0
- package/lib/components/Pricing/Pricing.stories.js +146 -0
- package/lib/components/ProductGrid/ProductGrid.d.ts +23 -0
- package/lib/components/ProductGrid/ProductGrid.js +79 -0
- package/lib/components/ProductGrid/ProductGrid.stories.js +50 -0
- package/lib/components/ProgressSteps/ProgressSteps.d.ts +13 -0
- package/lib/components/ProgressSteps/ProgressSteps.js +51 -0
- package/lib/components/ProgressSteps/ProgressSteps.stories.js +35 -0
- package/lib/components/RadioField/RadioField.d.ts +16 -0
- package/lib/components/RadioField/RadioField.js +63 -0
- package/lib/components/RadioField/RadioField.stories.js +140 -0
- package/lib/components/ReviewList/ReviewList.d.ts +15 -0
- package/lib/components/ReviewList/ReviewList.js +51 -0
- package/lib/components/ReviewList/ReviewList.stories.js +29 -0
- package/lib/components/SectionHeader/SectionHeader.d.ts +9 -0
- package/lib/components/SectionHeader/SectionHeader.js +36 -0
- package/lib/components/SectionHeader/SectionHeader.stories.js +35 -0
- package/lib/components/SelectField/SelectField.d.ts +18 -0
- package/lib/components/SelectField/SelectField.js +145 -0
- package/lib/components/SelectField/SelectField.stories.js +155 -0
- package/lib/components/SelectField/SelectOption.d.ts +13 -0
- package/lib/components/SelectField/SelectOption.js +40 -0
- package/lib/components/SelectField/SelectOption.stories.js +40 -0
- package/lib/components/Separator/Separator.d.ts +6 -0
- package/lib/components/Separator/Separator.js +13 -0
- package/lib/components/Separator/Separator.stories.js +70 -0
- package/lib/components/Skeleton/Skeleton.d.ts +2 -0
- package/lib/components/Skeleton/Skeleton.js +9 -0
- package/lib/components/Skeleton/Skeleton.stories.js +24 -0
- package/lib/components/Svg/Svg.d.ts +9 -0
- package/lib/components/Svg/Svg.js +25 -0
- package/lib/components/Svg/Svg.stories.js +34 -0
- package/lib/components/Switch/Switch.d.ts +12 -0
- package/lib/components/Switch/Switch.js +54 -0
- package/lib/components/Switch/Switch.stories.js +61 -0
- package/lib/components/Table/Table.d.ts +18 -0
- package/lib/components/Table/Table.js +99 -0
- package/lib/components/Table/Table.stories.js +79 -0
- package/lib/components/Tabs/Tabs.d.ts +17 -0
- package/lib/components/Tabs/Tabs.js +85 -0
- package/lib/components/Tabs/Tabs.stories.js +45 -0
- package/lib/components/Text/Text.d.ts +5 -0
- package/lib/components/Text/Text.js +24 -0
- package/lib/components/Text/Text.stories.js +35 -0
- package/lib/components/TextField/TextField.d.ts +31 -0
- package/lib/components/TextField/TextField.js +91 -0
- package/lib/components/TextField/TextField.stories.js +158 -0
- package/lib/components/Textarea/Textarea.d.ts +5 -0
- package/lib/components/Textarea/Textarea.js +10 -0
- package/lib/components/Textarea/Textarea.stories.js +32 -0
- package/lib/components/index.d.ts +60 -0
- package/lib/components/index.js +62 -0
- package/lib/config/appConfig.d.ts +5 -0
- package/lib/config/appConfig.js +20 -0
- package/lib/constants/AuthConstants.d.ts +8 -0
- package/lib/constants/AuthConstants.js +9 -0
- package/lib/constants/GothamConstants.d.ts +24 -0
- package/lib/constants/GothamConstants.js +25 -0
- package/lib/constants/MarkdownConstants.d.ts +8 -0
- package/lib/constants/MarkdownConstants.js +9 -0
- package/lib/constants/MessageConstants.d.ts +10 -0
- package/lib/constants/MessageConstants.js +11 -0
- package/lib/docs/analytics.md +231 -0
- package/lib/docs/api-reference.md +364 -0
- package/lib/docs/comparison.md +83 -0
- package/lib/docs/containers.md +11 -0
- package/lib/docs/gettingStarted.md +338 -0
- package/lib/docs/payments.md +79 -0
- package/lib/editor/CodeEditor.d.ts +11 -0
- package/lib/editor/CodeEditor.js +15 -0
- package/lib/editor/CodeEditor.stories.js +24 -0
- package/lib/editor/index.d.ts +1 -0
- package/lib/editor/index.js +3 -0
- package/lib/errors/UserError.d.ts +8 -0
- package/lib/errors/UserError.js +12 -0
- package/lib/examples/OptimizedFormExample.d.ts +1 -0
- package/lib/examples/OptimizedFormExample.js +130 -0
- package/lib/form/index.d.ts +11 -0
- package/lib/form/index.js +13 -0
- package/lib/hooks/useIsMobile.d.ts +1 -0
- package/lib/hooks/useIsMobile.js +12 -0
- package/lib/i18n/index.d.ts +8 -0
- package/lib/i18n/index.js +7 -0
- package/lib/icons/Dual Ring-1s-100px.svg +1 -0
- package/lib/icons/gotham-logo.svg +17 -0
- package/lib/icons/gotham.svg +8 -0
- package/lib/icons/index.d.ts +5 -0
- package/lib/icons/index.js +6 -0
- package/lib/icons/pencil.svg +6 -0
- package/lib/img/arkhamjs-logo.png +0 -0
- package/lib/img/logo.png +0 -0
- package/lib/index.d.ts +25 -0
- package/lib/index.js +25 -0
- package/lib/router/index.d.ts +5 -0
- package/lib/router/index.js +6 -0
- package/lib/stores/GothamAppStore.d.ts +35 -0
- package/lib/stores/GothamAppStore.js +70 -0
- package/lib/stories/Button.d.ts +28 -0
- package/lib/stories/Button.js +22 -0
- package/lib/stories/Header.d.ts +12 -0
- package/lib/stories/Header.js +78 -0
- package/lib/stories/Page.d.ts +3 -0
- package/lib/stories/Page.js +108 -0
- package/lib/stories/assets/accessibility.png +0 -0
- package/lib/stories/assets/accessibility.svg +5 -0
- package/lib/stories/assets/addon-library.png +0 -0
- package/lib/stories/assets/assets.png +0 -0
- package/lib/stories/assets/context.png +0 -0
- package/lib/stories/assets/discord.svg +15 -0
- package/lib/stories/assets/docs.png +0 -0
- package/lib/stories/assets/figma-plugin.png +0 -0
- package/lib/stories/assets/github.svg +3 -0
- package/lib/stories/assets/share.png +0 -0
- package/lib/stories/assets/styling.png +0 -0
- package/lib/stories/assets/testing.png +0 -0
- package/lib/stories/assets/theming.png +0 -0
- package/lib/stories/assets/tutorials.svg +12 -0
- package/lib/stories/assets/youtube.svg +4 -0
- package/lib/stories/button.css +1 -0
- package/lib/stories/header.css +1 -0
- package/lib/stories/page.css +1 -0
- package/lib/styles/chat.css +1 -0
- package/lib/styles/index.css +2 -0
- package/lib/styles/tailwind.css +1 -0
- package/lib/types/assets.d.js +2 -0
- package/lib/types/gotham.d.ts +12 -0
- package/lib/types/gotham.js +3 -0
- package/lib/types/vitest-globals.d.js +3 -0
- package/lib/utils/GothamContext.d.ts +14 -0
- package/lib/utils/GothamContext.js +14 -0
- package/lib/utils/awsRum.d.ts +23 -0
- package/lib/utils/awsRum.js +50 -0
- package/lib/utils/colorUtils.d.ts +20 -0
- package/lib/utils/colorUtils.js +499 -0
- package/lib/utils/contentUtils.d.ts +2 -0
- package/lib/utils/contentUtils.js +18 -0
- package/lib/utils/i18nUtil.d.ts +1 -0
- package/lib/utils/i18nUtil.js +7 -0
- package/lib/utils/imageUtils.d.ts +5 -0
- package/lib/utils/imageUtils.js +48 -0
- package/lib/utils/interactionAnalytics.d.ts +10 -0
- package/lib/utils/interactionAnalytics.js +142 -0
- package/lib/utils/navEventQueue.d.ts +6 -0
- package/lib/utils/navEventQueue.js +50 -0
- package/lib/utils/refUtils.d.ts +2 -0
- package/lib/utils/refUtils.js +11 -0
- package/lib/utils/routeUtils.d.ts +12 -0
- package/lib/utils/routeUtils.js +109 -0
- package/lib/utils/sizeUtils.d.ts +5 -0
- package/lib/utils/sizeUtils.js +6 -0
- package/lib/utils/storyInteractions.d.ts +6 -0
- package/lib/utils/storyInteractions.js +45 -0
- package/lib/utils/storyUtils.d.ts +1 -0
- package/lib/utils/storyUtils.js +11 -0
- package/lib/utils/testUtils.d.ts +3 -0
- package/lib/utils/testUtils.js +56 -0
- package/lib/utils/timer.d.ts +21 -0
- package/lib/utils/timer.js +38 -0
- package/lib/utils/useBreakpoint.d.ts +6 -0
- package/lib/utils/useBreakpoint.js +56 -0
- package/lib/utils/viewPerformance.d.ts +34 -0
- package/lib/utils/viewPerformance.js +103 -0
- package/lib/utils/viewUtils.d.ts +9 -0
- package/lib/utils/viewUtils.js +44 -0
- package/lib/views/AuthSignInView/AuthSignInView.d.ts +20 -0
- package/lib/views/AuthSignInView/AuthSignInView.js +107 -0
- package/lib/views/AuthSignInView/AuthSignInView.stories.js +29 -0
- package/lib/views/AuthSignUpView/AuthSignUpView.d.ts +21 -0
- package/lib/views/AuthSignUpView/AuthSignUpView.js +146 -0
- package/lib/views/AuthSignUpView/AuthSignUpView.stories.js +30 -0
- package/lib/views/AuthView/AuthView.d.ts +16 -0
- package/lib/views/AuthView/AuthView.js +60 -0
- package/lib/views/AuthView/AuthView.stories.js +34 -0
- package/lib/views/DefaultView/DefaultView.d.ts +5 -0
- package/lib/views/DefaultView/DefaultView.js +134 -0
- package/lib/views/Gotham/Gotham.d.ts +44 -0
- package/lib/views/Gotham/Gotham.js +24 -0
- package/lib/views/Gotham/Gotham.stories.js +31 -0
- package/lib/views/Gotham/GothamListeners.d.ts +0 -0
- package/lib/views/Gotham/GothamListeners.js +2 -0
- package/lib/views/Gotham/GothamProvider.d.ts +43 -0
- package/lib/views/Gotham/GothamProvider.js +217 -0
- package/lib/views/Gotham/GothamRoot.d.ts +6 -0
- package/lib/views/Gotham/GothamRoot.js +69 -0
- package/lib/views/HomeView/HomeView.d.ts +10 -0
- package/lib/views/HomeView/HomeView.js +134 -0
- package/lib/views/LoaderView/LoaderView.d.ts +8 -0
- package/lib/views/LoaderView/LoaderView.js +30 -0
- package/lib/views/MenuView/MenuView.d.ts +13 -0
- package/lib/views/MenuView/MenuView.js +305 -0
- package/lib/views/NotFoundView/NotFoundView.d.ts +2 -0
- package/lib/views/NotFoundView/NotFoundView.js +12 -0
- package/lib/views/index.d.ts +11 -0
- package/lib/views/index.js +13 -0
- package/package.json +202 -0
- package/styles/tailwind.css +1 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// import {useEffect, type FC} from 'react';
|
|
2
|
+
// import {Navigate} from 'react-router';
|
|
3
|
+
// import {LazyLoad} from '..';
|
|
4
|
+
// import {GothamActions} from '../../actions/GothamActions';
|
|
5
|
+
// import {DefaultView} from '../../views/DefaultView/DefaultView';
|
|
6
|
+
// import {HomeView} from '../../views/HomeView/HomeView';
|
|
7
|
+
// import {Markdown} from '../Markdown/Markdown';
|
|
8
|
+
// import MenuView from '../../views/MenuView/MenuView';
|
|
9
|
+
// import {NotFoundView} from '../../views/NotFoundView/NotFoundView';
|
|
10
|
+
// import {Loader} from '../Loader/Loader';
|
|
11
|
+
// import type {GothamRouteData} from '../../types/gotham';
|
|
12
|
+
// import type {RouteViewProps} from '../../utils/routeUtils';
|
|
13
|
+
// export interface GothamRouteProps {
|
|
14
|
+
// readonly routeProps: GothamRouteData;
|
|
15
|
+
// readonly viewProps: RouteViewProps;
|
|
16
|
+
// }
|
|
17
|
+
// export const GothamRoute: FC<GothamRouteProps> = ({routeProps, viewProps}) => {
|
|
18
|
+
// const {isAuth: defaultIsAuth} = viewProps.gothamConfig;
|
|
19
|
+
// const {
|
|
20
|
+
// authenticate = false,
|
|
21
|
+
// component,
|
|
22
|
+
// isAuth = defaultIsAuth,
|
|
23
|
+
// path,
|
|
24
|
+
// view
|
|
25
|
+
// } = routeProps;
|
|
26
|
+
// const updatedViewProps: RouteViewProps = {loader: Loader, ...viewProps};
|
|
27
|
+
// useEffect(() => {
|
|
28
|
+
// const {title} = routeProps;
|
|
29
|
+
// const {app: {titleBarSeparator}} = viewProps.gothamConfig;
|
|
30
|
+
// GothamActions.updateTitle(title, titleBarSeparator);
|
|
31
|
+
// }, [routeProps.title, viewProps.gothamConfig?.app?.titleBarSeparator]);
|
|
32
|
+
// if(authenticate && !isAuth()) {
|
|
33
|
+
// return <Navigate to="/signin" />;
|
|
34
|
+
// }
|
|
35
|
+
// if(view) {
|
|
36
|
+
// switch(view) {
|
|
37
|
+
// case 'default':
|
|
38
|
+
// return <LazyLoad component={DefaultView} {...updatedViewProps} />;
|
|
39
|
+
// case 'home':
|
|
40
|
+
// return <LazyLoad component={HomeView} {...updatedViewProps} />;
|
|
41
|
+
// case 'markdown':
|
|
42
|
+
// return <LazyLoad component={Markdown} {...updatedViewProps} />;
|
|
43
|
+
// case 'menu':
|
|
44
|
+
// return <LazyLoad component={MenuView} {...updatedViewProps} />;
|
|
45
|
+
// case 'notfound':
|
|
46
|
+
// return <LazyLoad component={NotFoundView} {...updatedViewProps} />;
|
|
47
|
+
// default:
|
|
48
|
+
// return null;
|
|
49
|
+
// }
|
|
50
|
+
// } else if(component) {
|
|
51
|
+
// return <LazyLoad component={component} {...updatedViewProps} />;
|
|
52
|
+
// }
|
|
53
|
+
// throw new Error(`Gotham Error: Route "${path}" is missing "component" property.`);
|
|
54
|
+
// };
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0dvdGhhbVJvdXRlL0dvdGhhbVJvdXRlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG4vLyBpbXBvcnQge3VzZUVmZmVjdCwgdHlwZSBGQ30gZnJvbSAncmVhY3QnO1xuLy8gaW1wb3J0IHtOYXZpZ2F0ZX0gZnJvbSAncmVhY3Qtcm91dGVyJztcblxuLy8gaW1wb3J0IHtMYXp5TG9hZH0gZnJvbSAnLi4nO1xuLy8gaW1wb3J0IHtHb3RoYW1BY3Rpb25zfSBmcm9tICcuLi8uLi9hY3Rpb25zL0dvdGhhbUFjdGlvbnMnO1xuLy8gaW1wb3J0IHtEZWZhdWx0Vmlld30gZnJvbSAnLi4vLi4vdmlld3MvRGVmYXVsdFZpZXcvRGVmYXVsdFZpZXcnO1xuLy8gaW1wb3J0IHtIb21lVmlld30gZnJvbSAnLi4vLi4vdmlld3MvSG9tZVZpZXcvSG9tZVZpZXcnO1xuLy8gaW1wb3J0IHtNYXJrZG93bn0gZnJvbSAnLi4vTWFya2Rvd24vTWFya2Rvd24nO1xuLy8gaW1wb3J0IE1lbnVWaWV3IGZyb20gJy4uLy4uL3ZpZXdzL01lbnVWaWV3L01lbnVWaWV3Jztcbi8vIGltcG9ydCB7Tm90Rm91bmRWaWV3fSBmcm9tICcuLi8uLi92aWV3cy9Ob3RGb3VuZFZpZXcvTm90Rm91bmRWaWV3Jztcbi8vIGltcG9ydCB7TG9hZGVyfSBmcm9tICcuLi9Mb2FkZXIvTG9hZGVyJztcblxuLy8gaW1wb3J0IHR5cGUge0dvdGhhbVJvdXRlRGF0YX0gZnJvbSAnLi4vLi4vdHlwZXMvZ290aGFtJztcbi8vIGltcG9ydCB0eXBlIHtSb3V0ZVZpZXdQcm9wc30gZnJvbSAnLi4vLi4vdXRpbHMvcm91dGVVdGlscyc7XG5cbi8vIGV4cG9ydCBpbnRlcmZhY2UgR290aGFtUm91dGVQcm9wcyB7XG4vLyAgIHJlYWRvbmx5IHJvdXRlUHJvcHM6IEdvdGhhbVJvdXRlRGF0YTtcbi8vICAgcmVhZG9ubHkgdmlld1Byb3BzOiBSb3V0ZVZpZXdQcm9wcztcbi8vIH1cblxuLy8gZXhwb3J0IGNvbnN0IEdvdGhhbVJvdXRlOiBGQzxHb3RoYW1Sb3V0ZVByb3BzPiA9ICh7cm91dGVQcm9wcywgdmlld1Byb3BzfSkgPT4ge1xuLy8gICBjb25zdCB7aXNBdXRoOiBkZWZhdWx0SXNBdXRofSA9IHZpZXdQcm9wcy5nb3RoYW1Db25maWc7XG4vLyAgIGNvbnN0IHtcbi8vICAgICBhdXRoZW50aWNhdGUgPSBmYWxzZSxcbi8vICAgICBjb21wb25lbnQsXG4vLyAgICAgaXNBdXRoID0gZGVmYXVsdElzQXV0aCxcbi8vICAgICBwYXRoLFxuLy8gICAgIHZpZXdcbi8vICAgfSA9IHJvdXRlUHJvcHM7XG4vLyAgIGNvbnN0IHVwZGF0ZWRWaWV3UHJvcHM6IFJvdXRlVmlld1Byb3BzID0ge2xvYWRlcjogTG9hZGVyLCAuLi52aWV3UHJvcHN9O1xuXG4vLyAgIHVzZUVmZmVjdCgoKSA9PiB7XG4vLyAgICAgY29uc3Qge3RpdGxlfSA9IHJvdXRlUHJvcHM7XG4vLyAgICAgY29uc3Qge2FwcDoge3RpdGxlQmFyU2VwYXJhdG9yfX0gPSB2aWV3UHJvcHMuZ290aGFtQ29uZmlnO1xuLy8gICAgIEdvdGhhbUFjdGlvbnMudXBkYXRlVGl0bGUodGl0bGUsIHRpdGxlQmFyU2VwYXJhdG9yKTtcbi8vICAgfSwgW3JvdXRlUHJvcHMudGl0bGUsIHZpZXdQcm9wcy5nb3RoYW1Db25maWc/LmFwcD8udGl0bGVCYXJTZXBhcmF0b3JdKTtcblxuXG4vLyAgIGlmKGF1dGhlbnRpY2F0ZSAmJiAhaXNBdXRoKCkpIHtcbi8vICAgICByZXR1cm4gPE5hdmlnYXRlIHRvPVwiL3NpZ25pblwiIC8+O1xuLy8gICB9XG5cbi8vICAgaWYodmlldykge1xuLy8gICAgIHN3aXRjaCh2aWV3KSB7XG4vLyAgICAgICBjYXNlICdkZWZhdWx0Jzpcbi8vICAgICAgICAgcmV0dXJuIDxMYXp5TG9hZCBjb21wb25lbnQ9e0RlZmF1bHRWaWV3fSB7Li4udXBkYXRlZFZpZXdQcm9wc30gLz47XG4vLyAgICAgICBjYXNlICdob21lJzpcbi8vICAgICAgICAgcmV0dXJuIDxMYXp5TG9hZCBjb21wb25lbnQ9e0hvbWVWaWV3fSB7Li4udXBkYXRlZFZpZXdQcm9wc30gLz47XG4vLyAgICAgICBjYXNlICdtYXJrZG93bic6XG4vLyAgICAgICAgIHJldHVybiA8TGF6eUxvYWQgY29tcG9uZW50PXtNYXJrZG93bn0gey4uLnVwZGF0ZWRWaWV3UHJvcHN9IC8+O1xuLy8gICAgICAgY2FzZSAnbWVudSc6XG4vLyAgICAgICAgIHJldHVybiA8TGF6eUxvYWQgY29tcG9uZW50PXtNZW51Vmlld30gey4uLnVwZGF0ZWRWaWV3UHJvcHN9IC8+O1xuLy8gICAgICAgY2FzZSAnbm90Zm91bmQnOlxuLy8gICAgICAgICByZXR1cm4gPExhenlMb2FkIGNvbXBvbmVudD17Tm90Rm91bmRWaWV3fSB7Li4udXBkYXRlZFZpZXdQcm9wc30gLz47XG4vLyAgICAgICBkZWZhdWx0OlxuLy8gICAgICAgICByZXR1cm4gbnVsbDtcbi8vICAgICB9XG4vLyAgIH0gZWxzZSBpZihjb21wb25lbnQpIHtcbi8vICAgICByZXR1cm4gPExhenlMb2FkIGNvbXBvbmVudD17Y29tcG9uZW50fSB7Li4udXBkYXRlZFZpZXdQcm9wc30gLz47XG4vLyAgIH1cblxuLy8gICB0aHJvdyBuZXcgRXJyb3IoYEdvdGhhbSBFcnJvcjogUm91dGUgXCIke3BhdGh9XCIgaXMgbWlzc2luZyBcImNvbXBvbmVudFwiIHByb3BlcnR5LmApO1xuLy8gfTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSw0Q0FBNEM7QUFDNUMseUNBQXlDO0FBRXpDLCtCQUErQjtBQUMvQiw2REFBNkQ7QUFDN0QsbUVBQW1FO0FBQ25FLDBEQUEwRDtBQUMxRCxpREFBaUQ7QUFDakQsd0RBQXdEO0FBQ3hELHNFQUFzRTtBQUN0RSwyQ0FBMkM7QUFFM0MsMkRBQTJEO0FBQzNELDhEQUE4RDtBQUU5RCxzQ0FBc0M7QUFDdEMsMENBQTBDO0FBQzFDLHdDQUF3QztBQUN4QyxJQUFJO0FBRUosa0ZBQWtGO0FBQ2xGLDREQUE0RDtBQUM1RCxZQUFZO0FBQ1osNEJBQTRCO0FBQzVCLGlCQUFpQjtBQUNqQiw4QkFBOEI7QUFDOUIsWUFBWTtBQUNaLFdBQVc7QUFDWCxvQkFBb0I7QUFDcEIsNkVBQTZFO0FBRTdFLHNCQUFzQjtBQUN0QixrQ0FBa0M7QUFDbEMsaUVBQWlFO0FBQ2pFLDJEQUEyRDtBQUMzRCw0RUFBNEU7QUFHNUUsb0NBQW9DO0FBQ3BDLHdDQUF3QztBQUN4QyxNQUFNO0FBRU4sZUFBZTtBQUNmLHFCQUFxQjtBQUNyQix3QkFBd0I7QUFDeEIsNkVBQTZFO0FBQzdFLHFCQUFxQjtBQUNyQiwwRUFBMEU7QUFDMUUseUJBQXlCO0FBQ3pCLDBFQUEwRTtBQUMxRSxxQkFBcUI7QUFDckIsMEVBQTBFO0FBQzFFLHlCQUF5QjtBQUN6Qiw4RUFBOEU7QUFDOUUsaUJBQWlCO0FBQ2pCLHVCQUF1QjtBQUN2QixRQUFRO0FBQ1IsMkJBQTJCO0FBQzNCLHVFQUF1RTtBQUN2RSxNQUFNO0FBRU4sdUZBQXVGO0FBQ3ZGLEtBQUsifQ==
|
|
File without changes
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// /**
|
|
2
|
+
// * Copyright (c) 2018-Present, Nitrogen Labs, Inc.
|
|
3
|
+
// * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
// */
|
|
5
|
+
// import {FluxFramework} from '@nlabs/arkhamjs';
|
|
6
|
+
// import {useFluxListener} from '@nlabs/arkhamjs-utils-react';
|
|
7
|
+
// import {BrowserRouter, Routes, useNavigate} from 'react-router';
|
|
8
|
+
// import {GothamConstants} from '../../constants/GothamConstants';
|
|
9
|
+
// import {GothamConfiguration} from '../../views/Gotham/GothamProvider';
|
|
10
|
+
// import type {GothamRouteData} from '../../types/gotham';
|
|
11
|
+
// import type {FC} from 'react';
|
|
12
|
+
// export const navBack = (history) => (): void => {
|
|
13
|
+
// history.goBack();
|
|
14
|
+
// };
|
|
15
|
+
// export const navForward = (history) => (): void => {
|
|
16
|
+
// history.goForward();
|
|
17
|
+
// };
|
|
18
|
+
// export const navGoto = (navigate) => (data): void => {
|
|
19
|
+
// const {params, path = ''} = data;
|
|
20
|
+
// navigate(path, params);
|
|
21
|
+
// };
|
|
22
|
+
// export const navReplace = (history) => (data): void => {
|
|
23
|
+
// const {params, path = ''} = data;
|
|
24
|
+
// history.replace(path, params);
|
|
25
|
+
// };
|
|
26
|
+
// export const GothamRouteListeners: FC = (): null => {
|
|
27
|
+
// const navigate = useNavigate();
|
|
28
|
+
// useFluxListener(GothamConstants.NAV_BACK, navBack(navigate));
|
|
29
|
+
// useFluxListener(GothamConstants.NAV_FORWARD, navForward(navigate));
|
|
30
|
+
// useFluxListener(GothamConstants.NAV_GOTO, navGoto(navigate));
|
|
31
|
+
// useFluxListener(GothamConstants.NAV_REPLACE, navReplace(navigate));
|
|
32
|
+
// return null;
|
|
33
|
+
// };
|
|
34
|
+
// export type GothamRoutesProps = {
|
|
35
|
+
// readonly flux: FluxFramework;
|
|
36
|
+
// readonly gothamConfig: GothamConfiguration;
|
|
37
|
+
// readonly routes: GothamRouteData[];
|
|
38
|
+
// };
|
|
39
|
+
// export const GothamRoutes: FC<GothamRoutesProps> = ({
|
|
40
|
+
// flux,
|
|
41
|
+
// gothamConfig,
|
|
42
|
+
// routes
|
|
43
|
+
// }) => (
|
|
44
|
+
// <BrowserRouter>
|
|
45
|
+
// <GothamRouteListeners />
|
|
46
|
+
// <Routes>
|
|
47
|
+
// {renderRouteList(routes, flux, gothamConfig)}
|
|
48
|
+
// </Routes>
|
|
49
|
+
// </BrowserRouter>
|
|
50
|
+
// );
|
|
51
|
+
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0dvdGhhbVJvdXRlci9Hb3RoYW1Sb3V0ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIC8qKlxuLy8gICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbi8vICAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuLy8gICovXG4vLyBpbXBvcnQge0ZsdXhGcmFtZXdvcmt9IGZyb20gJ0BubGFicy9hcmtoYW1qcyc7XG4vLyBpbXBvcnQge3VzZUZsdXhMaXN0ZW5lcn0gZnJvbSAnQG5sYWJzL2Fya2hhbWpzLXV0aWxzLXJlYWN0Jztcbi8vIGltcG9ydCB7QnJvd3NlclJvdXRlciwgUm91dGVzLCB1c2VOYXZpZ2F0ZX0gZnJvbSAncmVhY3Qtcm91dGVyJztcblxuLy8gaW1wb3J0IHtHb3RoYW1Db25zdGFudHN9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9Hb3RoYW1Db25zdGFudHMnO1xuLy8gaW1wb3J0IHtHb3RoYW1Db25maWd1cmF0aW9ufSBmcm9tICcuLi8uLi92aWV3cy9Hb3RoYW0vR290aGFtUHJvdmlkZXInO1xuXG4vLyBpbXBvcnQgdHlwZSB7R290aGFtUm91dGVEYXRhfSBmcm9tICcuLi8uLi90eXBlcy9nb3RoYW0nO1xuLy8gaW1wb3J0IHR5cGUge0ZDfSBmcm9tICdyZWFjdCc7XG5cbi8vIGV4cG9ydCBjb25zdCBuYXZCYWNrID0gKGhpc3RvcnkpID0+ICgpOiB2b2lkID0+IHtcbi8vICAgaGlzdG9yeS5nb0JhY2soKTtcbi8vIH07XG5cbi8vIGV4cG9ydCBjb25zdCBuYXZGb3J3YXJkID0gKGhpc3RvcnkpID0+ICgpOiB2b2lkID0+IHtcbi8vICAgaGlzdG9yeS5nb0ZvcndhcmQoKTtcbi8vIH07XG5cbi8vIGV4cG9ydCBjb25zdCBuYXZHb3RvID0gKG5hdmlnYXRlKSA9PiAoZGF0YSk6IHZvaWQgPT4ge1xuLy8gICBjb25zdCB7cGFyYW1zLCBwYXRoID0gJyd9ID0gZGF0YTtcbi8vICAgbmF2aWdhdGUocGF0aCwgcGFyYW1zKTtcbi8vIH07XG5cbi8vIGV4cG9ydCBjb25zdCBuYXZSZXBsYWNlID0gKGhpc3RvcnkpID0+IChkYXRhKTogdm9pZCA9PiB7XG4vLyAgIGNvbnN0IHtwYXJhbXMsIHBhdGggPSAnJ30gPSBkYXRhO1xuLy8gICBoaXN0b3J5LnJlcGxhY2UocGF0aCwgcGFyYW1zKTtcbi8vIH07XG5cbi8vIGV4cG9ydCBjb25zdCBHb3RoYW1Sb3V0ZUxpc3RlbmVyczogRkMgPSAoKTogbnVsbCA9PiB7XG4vLyAgIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcblxuLy8gICB1c2VGbHV4TGlzdGVuZXIoR290aGFtQ29uc3RhbnRzLk5BVl9CQUNLLCBuYXZCYWNrKG5hdmlnYXRlKSk7XG4vLyAgIHVzZUZsdXhMaXN0ZW5lcihHb3RoYW1Db25zdGFudHMuTkFWX0ZPUldBUkQsIG5hdkZvcndhcmQobmF2aWdhdGUpKTtcbi8vICAgdXNlRmx1eExpc3RlbmVyKEdvdGhhbUNvbnN0YW50cy5OQVZfR09UTywgbmF2R290byhuYXZpZ2F0ZSkpO1xuLy8gICB1c2VGbHV4TGlzdGVuZXIoR290aGFtQ29uc3RhbnRzLk5BVl9SRVBMQUNFLCBuYXZSZXBsYWNlKG5hdmlnYXRlKSk7XG5cbi8vICAgcmV0dXJuIG51bGw7XG4vLyB9O1xuXG4vLyBleHBvcnQgdHlwZSBHb3RoYW1Sb3V0ZXNQcm9wcyA9IHtcbi8vICAgcmVhZG9ubHkgZmx1eDogRmx1eEZyYW1ld29yaztcbi8vICAgcmVhZG9ubHkgZ290aGFtQ29uZmlnOiBHb3RoYW1Db25maWd1cmF0aW9uO1xuLy8gICByZWFkb25seSByb3V0ZXM6IEdvdGhhbVJvdXRlRGF0YVtdO1xuLy8gfTtcblxuLy8gZXhwb3J0IGNvbnN0IEdvdGhhbVJvdXRlczogRkM8R290aGFtUm91dGVzUHJvcHM+ID0gKHtcbi8vICAgZmx1eCxcbi8vICAgZ290aGFtQ29uZmlnLFxuLy8gICByb3V0ZXNcbi8vIH0pID0+IChcbi8vICAgPEJyb3dzZXJSb3V0ZXI+XG4vLyAgICAgPEdvdGhhbVJvdXRlTGlzdGVuZXJzIC8+XG4vLyAgICAgPFJvdXRlcz5cbi8vICAgICAgIHtyZW5kZXJSb3V0ZUxpc3Qocm91dGVzLCBmbHV4LCBnb3RoYW1Db25maWcpfVxuLy8gICAgIDwvUm91dGVzPlxuLy8gICA8L0Jyb3dzZXJSb3V0ZXI+XG4vLyApOyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQ04scURBQXFEO0FBQ3JELDZGQUE2RjtBQUM3RixNQUFNO0FBQ04saURBQWlEO0FBQ2pELCtEQUErRDtBQUMvRCxtRUFBbUU7QUFFbkUsbUVBQW1FO0FBQ25FLHlFQUF5RTtBQUV6RSwyREFBMkQ7QUFDM0QsaUNBQWlDO0FBRWpDLG9EQUFvRDtBQUNwRCxzQkFBc0I7QUFDdEIsS0FBSztBQUVMLHVEQUF1RDtBQUN2RCx5QkFBeUI7QUFDekIsS0FBSztBQUVMLHlEQUF5RDtBQUN6RCxzQ0FBc0M7QUFDdEMsNEJBQTRCO0FBQzVCLEtBQUs7QUFFTCwyREFBMkQ7QUFDM0Qsc0NBQXNDO0FBQ3RDLG1DQUFtQztBQUNuQyxLQUFLO0FBRUwsd0RBQXdEO0FBQ3hELG9DQUFvQztBQUVwQyxrRUFBa0U7QUFDbEUsd0VBQXdFO0FBQ3hFLGtFQUFrRTtBQUNsRSx3RUFBd0U7QUFFeEUsaUJBQWlCO0FBQ2pCLEtBQUs7QUFFTCxvQ0FBb0M7QUFDcEMsa0NBQWtDO0FBQ2xDLGdEQUFnRDtBQUNoRCx3Q0FBd0M7QUFDeEMsS0FBSztBQUVMLHdEQUF3RDtBQUN4RCxVQUFVO0FBQ1Ysa0JBQWtCO0FBQ2xCLFdBQVc7QUFDWCxVQUFVO0FBQ1Ysb0JBQW9CO0FBQ3BCLCtCQUErQjtBQUMvQixlQUFlO0FBQ2Ysc0RBQXNEO0FBQ3RELGdCQUFnQjtBQUNoQixxQkFBcUI7QUFDckIsS0FBSyJ9
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
export type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
3
|
+
export type HeadingProps = {
|
|
4
|
+
readonly level?: HeadingLevel;
|
|
5
|
+
} & ComponentPropsWithoutRef<'h1'>;
|
|
6
|
+
export declare const Heading: ({ className, level, ...props }: HeadingProps) => import("react").JSX.Element;
|
|
7
|
+
export declare const Subheading: ({ className, level, ...props }: HeadingProps) => import("react").JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from '@nlabs/utils';
|
|
3
|
+
export const Heading = ({ className, level = 1, ...props })=>{
|
|
4
|
+
const Element = `h${level}`;
|
|
5
|
+
return /*#__PURE__*/ _jsx(Element, {
|
|
6
|
+
className: cn('text-2xl/8 font-semibold text-foreground sm:text-xl/8 dark:text-foreground-dark', className),
|
|
7
|
+
"data-slot": "heading",
|
|
8
|
+
...props
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
export const Subheading = ({ className, level = 2, ...props })=>{
|
|
12
|
+
const Element = `h${level}`;
|
|
13
|
+
return /*#__PURE__*/ _jsx(Element, {
|
|
14
|
+
className: cn('text-base/7 font-semibold text-foreground sm:text-sm/6 dark:text-foreground-dark', className),
|
|
15
|
+
"data-slot": "subheading",
|
|
16
|
+
...props
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0hlYWRpbmcvSGVhZGluZy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjbn0gZnJvbSAnQG5sYWJzL3V0aWxzJztcblxuaW1wb3J0IHR5cGUge0NvbXBvbmVudFByb3BzV2l0aG91dFJlZn0gZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgdHlwZSBIZWFkaW5nTGV2ZWwgPSAxIHwgMiB8IDMgfCA0IHwgNSB8IDY7XG5cbmV4cG9ydCB0eXBlIEhlYWRpbmdQcm9wcyA9IHtcbiAgcmVhZG9ubHkgbGV2ZWw/OiBIZWFkaW5nTGV2ZWw7XG59ICYgQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPCdoMSc+O1xuXG5leHBvcnQgY29uc3QgSGVhZGluZyA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgbGV2ZWwgPSAxLFxuICAuLi5wcm9wc1xufTogSGVhZGluZ1Byb3BzKSA9PiB7XG4gIGNvbnN0IEVsZW1lbnQgPSBgaCR7bGV2ZWx9YCBhcyBjb25zdDtcblxuICByZXR1cm4gKFxuICAgIDxFbGVtZW50XG4gICAgICBjbGFzc05hbWU9e2NuKCd0ZXh0LTJ4bC84IGZvbnQtc2VtaWJvbGQgdGV4dC1mb3JlZ3JvdW5kIHNtOnRleHQteGwvOCBkYXJrOnRleHQtZm9yZWdyb3VuZC1kYXJrJywgY2xhc3NOYW1lKX1cbiAgICAgIGRhdGEtc2xvdD1cImhlYWRpbmdcIlxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgU3ViaGVhZGluZyA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgbGV2ZWwgPSAyLFxuICAuLi5wcm9wc1xufTogSGVhZGluZ1Byb3BzKSA9PiB7XG4gIGNvbnN0IEVsZW1lbnQgPSBgaCR7bGV2ZWx9YCBhcyBjb25zdDtcblxuICByZXR1cm4gKFxuICAgIDxFbGVtZW50XG4gICAgICBjbGFzc05hbWU9e2NuKCd0ZXh0LWJhc2UvNyBmb250LXNlbWlib2xkIHRleHQtZm9yZWdyb3VuZCBzbTp0ZXh0LXNtLzYgZGFyazp0ZXh0LWZvcmVncm91bmQtZGFyaycsIGNsYXNzTmFtZSl9XG4gICAgICBkYXRhLXNsb3Q9XCJzdWJoZWFkaW5nXCJcbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6WyJjbiIsIkhlYWRpbmciLCJjbGFzc05hbWUiLCJsZXZlbCIsInByb3BzIiwiRWxlbWVudCIsImRhdGEtc2xvdCIsIlN1YmhlYWRpbmciXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFRQSxFQUFFLFFBQU8sZUFBZTtBQVVoQyxPQUFPLE1BQU1DLFVBQVUsQ0FBQyxFQUN0QkMsU0FBUyxFQUNUQyxRQUFRLENBQUMsRUFDVCxHQUFHQyxPQUNVO0lBQ2IsTUFBTUMsVUFBVSxDQUFDLENBQUMsRUFBRUYsT0FBTztJQUUzQixxQkFDRSxLQUFDRTtRQUNDSCxXQUFXRixHQUFHLG1GQUFtRkU7UUFDakdJLGFBQVU7UUFDVCxHQUFHRixLQUFLOztBQUdmLEVBQUU7QUFFRixPQUFPLE1BQU1HLGFBQWEsQ0FBQyxFQUN6QkwsU0FBUyxFQUNUQyxRQUFRLENBQUMsRUFDVCxHQUFHQyxPQUNVO0lBQ2IsTUFBTUMsVUFBVSxDQUFDLENBQUMsRUFBRUYsT0FBTztJQUUzQixxQkFDRSxLQUFDRTtRQUNDSCxXQUFXRixHQUFHLG9GQUFvRkU7UUFDbEdJLGFBQVU7UUFDVCxHQUFHRixLQUFLOztBQUdmLEVBQUUifQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { interactWithCanvas } from '../../utils/storyInteractions.js';
|
|
4
|
+
import { Heading, Subheading } from './Heading.js';
|
|
5
|
+
const meta = {
|
|
6
|
+
argTypes: {
|
|
7
|
+
children: {
|
|
8
|
+
control: 'text'
|
|
9
|
+
},
|
|
10
|
+
level: {
|
|
11
|
+
control: 'select',
|
|
12
|
+
options: [
|
|
13
|
+
1,
|
|
14
|
+
2,
|
|
15
|
+
3,
|
|
16
|
+
4,
|
|
17
|
+
5,
|
|
18
|
+
6
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
component: Heading,
|
|
23
|
+
parameters: {
|
|
24
|
+
layout: 'centered'
|
|
25
|
+
},
|
|
26
|
+
title: 'Components/Heading'
|
|
27
|
+
};
|
|
28
|
+
export default meta;
|
|
29
|
+
export const Default = {
|
|
30
|
+
args: {
|
|
31
|
+
children: 'Workspace overview',
|
|
32
|
+
level: 1
|
|
33
|
+
},
|
|
34
|
+
play: interactWithCanvas
|
|
35
|
+
};
|
|
36
|
+
export const WithSubheading = {
|
|
37
|
+
play: interactWithCanvas,
|
|
38
|
+
render: ()=>/*#__PURE__*/ _jsxs("div", {
|
|
39
|
+
className: "space-y-2",
|
|
40
|
+
children: [
|
|
41
|
+
/*#__PURE__*/ _jsx(Heading, {
|
|
42
|
+
children: "Workspace overview"
|
|
43
|
+
}),
|
|
44
|
+
/*#__PURE__*/ _jsx(Subheading, {
|
|
45
|
+
children: "Activity summary"
|
|
46
|
+
})
|
|
47
|
+
]
|
|
48
|
+
})
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0hlYWRpbmcvSGVhZGluZy5zdG9yaWVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtpbnRlcmFjdFdpdGhDYW52YXN9IGZyb20gJy4uLy4uL3V0aWxzL3N0b3J5SW50ZXJhY3Rpb25zLmpzJztcbmltcG9ydCB7SGVhZGluZywgU3ViaGVhZGluZ30gZnJvbSAnLi9IZWFkaW5nLmpzJztcblxuaW1wb3J0IHR5cGUge01ldGEsIFN0b3J5T2JqfSBmcm9tICdAbmxhYnMvbGV4L3N0b3J5Ym9vayc7XG5cbmNvbnN0IG1ldGE6IE1ldGE8dHlwZW9mIEhlYWRpbmc+ID0ge1xuICBhcmdUeXBlczoge1xuICAgIGNoaWxkcmVuOiB7XG4gICAgICBjb250cm9sOiAndGV4dCdcbiAgICB9LFxuICAgIGxldmVsOiB7XG4gICAgICBjb250cm9sOiAnc2VsZWN0JyxcbiAgICAgIG9wdGlvbnM6IFsxLCAyLCAzLCA0LCA1LCA2XVxuICAgIH1cbiAgfSxcbiAgY29tcG9uZW50OiBIZWFkaW5nLFxuICBwYXJhbWV0ZXJzOiB7XG4gICAgbGF5b3V0OiAnY2VudGVyZWQnXG4gIH0sXG4gIHRpdGxlOiAnQ29tcG9uZW50cy9IZWFkaW5nJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbWV0YTtcblxudHlwZSBTdG9yeSA9IFN0b3J5T2JqPHR5cGVvZiBIZWFkaW5nPjtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHQ6IFN0b3J5ID0ge1xuICBhcmdzOiB7XG4gICAgY2hpbGRyZW46ICdXb3Jrc3BhY2Ugb3ZlcnZpZXcnLFxuICAgIGxldmVsOiAxXG4gIH0sXG4gIHBsYXk6IGludGVyYWN0V2l0aENhbnZhc1xufTtcblxuZXhwb3J0IGNvbnN0IFdpdGhTdWJoZWFkaW5nOiBTdG9yeSA9IHtcbiAgcGxheTogaW50ZXJhY3RXaXRoQ2FudmFzLFxuICByZW5kZXI6ICgpID0+IChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxuICAgICAgPEhlYWRpbmc+V29ya3NwYWNlIG92ZXJ2aWV3PC9IZWFkaW5nPlxuICAgICAgPFN1YmhlYWRpbmc+QWN0aXZpdHkgc3VtbWFyeTwvU3ViaGVhZGluZz5cbiAgICA8L2Rpdj5cbiAgKVxufTtcbiJdLCJuYW1lcyI6WyJSZWFjdCIsImludGVyYWN0V2l0aENhbnZhcyIsIkhlYWRpbmciLCJTdWJoZWFkaW5nIiwibWV0YSIsImFyZ1R5cGVzIiwiY2hpbGRyZW4iLCJjb250cm9sIiwibGV2ZWwiLCJvcHRpb25zIiwiY29tcG9uZW50IiwicGFyYW1ldGVycyIsImxheW91dCIsInRpdGxlIiwiRGVmYXVsdCIsImFyZ3MiLCJwbGF5IiwiV2l0aFN1YmhlYWRpbmciLCJyZW5kZXIiLCJkaXYiLCJjbGFzc05hbWUiXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxXQUFXLFFBQVE7QUFDMUIsU0FBUUMsa0JBQWtCLFFBQU8sbUNBQW1DO0FBQ3BFLFNBQVFDLE9BQU8sRUFBRUMsVUFBVSxRQUFPLGVBQWU7QUFJakQsTUFBTUMsT0FBNkI7SUFDakNDLFVBQVU7UUFDUkMsVUFBVTtZQUNSQyxTQUFTO1FBQ1g7UUFDQUMsT0FBTztZQUNMRCxTQUFTO1lBQ1RFLFNBQVM7Z0JBQUM7Z0JBQUc7Z0JBQUc7Z0JBQUc7Z0JBQUc7Z0JBQUc7YUFBRTtRQUM3QjtJQUNGO0lBQ0FDLFdBQVdSO0lBQ1hTLFlBQVk7UUFDVkMsUUFBUTtJQUNWO0lBQ0FDLE9BQU87QUFDVDtBQUVBLGVBQWVULEtBQUs7QUFJcEIsT0FBTyxNQUFNVSxVQUFpQjtJQUM1QkMsTUFBTTtRQUNKVCxVQUFVO1FBQ1ZFLE9BQU87SUFDVDtJQUNBUSxNQUFNZjtBQUNSLEVBQUU7QUFFRixPQUFPLE1BQU1nQixpQkFBd0I7SUFDbkNELE1BQU1mO0lBQ05pQixRQUFRLGtCQUNOLE1BQUNDO1lBQUlDLFdBQVU7OzhCQUNiLEtBQUNsQjs4QkFBUTs7OEJBQ1QsS0FBQ0M7OEJBQVc7Ozs7QUFHbEIsRUFBRSJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface IncentiveItem {
|
|
3
|
+
readonly description: ReactNode;
|
|
4
|
+
readonly icon?: ReactNode;
|
|
5
|
+
readonly id?: string;
|
|
6
|
+
readonly imageAlt?: string;
|
|
7
|
+
readonly imageSrc?: string;
|
|
8
|
+
readonly title: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export interface IncentiveGridProps extends HTMLAttributes<HTMLDivElement> {
|
|
11
|
+
readonly incentives: IncentiveItem[];
|
|
12
|
+
}
|
|
13
|
+
declare const IncentiveGridComponent: ({ className, incentives, ...props }: IncentiveGridProps) => import("react").JSX.Element;
|
|
14
|
+
export declare const IncentiveGrid: import("react").MemoExoticComponent<typeof IncentiveGridComponent>;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from '@nlabs/utils';
|
|
3
|
+
import { memo } from 'react';
|
|
4
|
+
const IncentiveGridComponent = ({ className, incentives, ...props })=>/*#__PURE__*/ _jsx("div", {
|
|
5
|
+
className: cn('grid grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 lg:grid-cols-3', className),
|
|
6
|
+
"data-slot": "incentive-grid",
|
|
7
|
+
...props,
|
|
8
|
+
children: incentives.map((incentive)=>/*#__PURE__*/ _jsxs("div", {
|
|
9
|
+
className: "flex flex-col items-center text-center",
|
|
10
|
+
"data-slot": "incentive-card",
|
|
11
|
+
children: [
|
|
12
|
+
incentive.imageSrc ? /*#__PURE__*/ _jsx("img", {
|
|
13
|
+
alt: incentive.imageAlt ?? '',
|
|
14
|
+
className: "size-16 object-contain",
|
|
15
|
+
src: incentive.imageSrc
|
|
16
|
+
}) : /*#__PURE__*/ _jsx("div", {
|
|
17
|
+
className: "flex size-12 items-center justify-center rounded-md bg-primary/10 text-primary dark:bg-primary-dark/20 dark:text-primary-dark",
|
|
18
|
+
children: incentive.icon
|
|
19
|
+
}),
|
|
20
|
+
/*#__PURE__*/ _jsx("h3", {
|
|
21
|
+
className: "mt-5 text-base font-semibold text-foreground dark:text-foreground-dark",
|
|
22
|
+
children: incentive.title
|
|
23
|
+
}),
|
|
24
|
+
/*#__PURE__*/ _jsx("p", {
|
|
25
|
+
className: "mt-2 text-sm/6 text-muted-foreground dark:text-muted-foreground-dark",
|
|
26
|
+
children: incentive.description
|
|
27
|
+
})
|
|
28
|
+
]
|
|
29
|
+
}, incentive.id ?? String(incentive.title)))
|
|
30
|
+
});
|
|
31
|
+
export const IncentiveGrid = /*#__PURE__*/ memo(IncentiveGridComponent);
|
|
32
|
+
IncentiveGrid.displayName = 'IncentiveGrid';
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0luY2VudGl2ZUdyaWQvSW5jZW50aXZlR3JpZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjbn0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7bWVtb30gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7SFRNTEF0dHJpYnV0ZXMsIFJlYWN0Tm9kZX0gZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluY2VudGl2ZUl0ZW0ge1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogUmVhY3ROb2RlO1xuICByZWFkb25seSBpY29uPzogUmVhY3ROb2RlO1xuICByZWFkb25seSBpZD86IHN0cmluZztcbiAgcmVhZG9ubHkgaW1hZ2VBbHQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGltYWdlU3JjPzogc3RyaW5nO1xuICByZWFkb25seSB0aXRsZTogUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluY2VudGl2ZUdyaWRQcm9wcyBleHRlbmRzIEhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PiB7XG4gIHJlYWRvbmx5IGluY2VudGl2ZXM6IEluY2VudGl2ZUl0ZW1bXTtcbn1cblxuY29uc3QgSW5jZW50aXZlR3JpZENvbXBvbmVudCA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgaW5jZW50aXZlcyxcbiAgLi4ucHJvcHNcbn06IEluY2VudGl2ZUdyaWRQcm9wcykgPT4gKFxuICA8ZGl2IGNsYXNzTmFtZT17Y24oJ2dyaWQgZ3JpZC1jb2xzLTEgZ2FwLXgtOCBnYXAteS0xMCBzbTpncmlkLWNvbHMtMiBsZzpncmlkLWNvbHMtMycsIGNsYXNzTmFtZSl9IGRhdGEtc2xvdD1cImluY2VudGl2ZS1ncmlkXCIgey4uLnByb3BzfT5cbiAgICB7aW5jZW50aXZlcy5tYXAoKGluY2VudGl2ZSkgPT4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciB0ZXh0LWNlbnRlclwiIGRhdGEtc2xvdD1cImluY2VudGl2ZS1jYXJkXCIga2V5PXtpbmNlbnRpdmUuaWQgPz8gU3RyaW5nKGluY2VudGl2ZS50aXRsZSl9PlxuICAgICAgICB7aW5jZW50aXZlLmltYWdlU3JjID8gKFxuICAgICAgICAgIDxpbWcgYWx0PXtpbmNlbnRpdmUuaW1hZ2VBbHQgPz8gJyd9IGNsYXNzTmFtZT1cInNpemUtMTYgb2JqZWN0LWNvbnRhaW5cIiBzcmM9e2luY2VudGl2ZS5pbWFnZVNyY30gLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggc2l6ZS0xMiBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBiZy1wcmltYXJ5LzEwIHRleHQtcHJpbWFyeSBkYXJrOmJnLXByaW1hcnktZGFyay8yMCBkYXJrOnRleHQtcHJpbWFyeS1kYXJrXCI+XG4gICAgICAgICAgICB7aW5jZW50aXZlLmljb259XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIDxoMyBjbGFzc05hbWU9XCJtdC01IHRleHQtYmFzZSBmb250LXNlbWlib2xkIHRleHQtZm9yZWdyb3VuZCBkYXJrOnRleHQtZm9yZWdyb3VuZC1kYXJrXCI+e2luY2VudGl2ZS50aXRsZX08L2gzPlxuICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0yIHRleHQtc20vNiB0ZXh0LW11dGVkLWZvcmVncm91bmQgZGFyazp0ZXh0LW11dGVkLWZvcmVncm91bmQtZGFya1wiPntpbmNlbnRpdmUuZGVzY3JpcHRpb259PC9wPlxuICAgICAgPC9kaXY+XG4gICAgKSl9XG4gIDwvZGl2PlxuKTtcblxuZXhwb3J0IGNvbnN0IEluY2VudGl2ZUdyaWQgPSBtZW1vKEluY2VudGl2ZUdyaWRDb21wb25lbnQpO1xuSW5jZW50aXZlR3JpZC5kaXNwbGF5TmFtZSA9ICdJbmNlbnRpdmVHcmlkJztcbiJdLCJuYW1lcyI6WyJjbiIsIm1lbW8iLCJJbmNlbnRpdmVHcmlkQ29tcG9uZW50IiwiY2xhc3NOYW1lIiwiaW5jZW50aXZlcyIsInByb3BzIiwiZGl2IiwiZGF0YS1zbG90IiwibWFwIiwiaW5jZW50aXZlIiwiaW1hZ2VTcmMiLCJpbWciLCJhbHQiLCJpbWFnZUFsdCIsInNyYyIsImljb24iLCJoMyIsInRpdGxlIiwicCIsImRlc2NyaXB0aW9uIiwiaWQiLCJTdHJpbmciLCJJbmNlbnRpdmVHcmlkIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFRQSxFQUFFLFFBQU8sZUFBZTtBQUNoQyxTQUFRQyxJQUFJLFFBQU8sUUFBUTtBQWlCM0IsTUFBTUMseUJBQXlCLENBQUMsRUFDOUJDLFNBQVMsRUFDVEMsVUFBVSxFQUNWLEdBQUdDLE9BQ2dCLGlCQUNuQixLQUFDQztRQUFJSCxXQUFXSCxHQUFHLG1FQUFtRUc7UUFBWUksYUFBVTtRQUFrQixHQUFHRixLQUFLO2tCQUNuSUQsV0FBV0ksR0FBRyxDQUFDLENBQUNDLDBCQUNmLE1BQUNIO2dCQUFJSCxXQUFVO2dCQUF5Q0ksYUFBVTs7b0JBQy9ERSxVQUFVQyxRQUFRLGlCQUNqQixLQUFDQzt3QkFBSUMsS0FBS0gsVUFBVUksUUFBUSxJQUFJO3dCQUFJVixXQUFVO3dCQUF5QlcsS0FBS0wsVUFBVUMsUUFBUTt1Q0FFOUYsS0FBQ0o7d0JBQUlILFdBQVU7a0NBQ1pNLFVBQVVNLElBQUk7O2tDQUduQixLQUFDQzt3QkFBR2IsV0FBVTtrQ0FBMEVNLFVBQVVRLEtBQUs7O2tDQUN2RyxLQUFDQzt3QkFBRWYsV0FBVTtrQ0FBd0VNLFVBQVVVLFdBQVc7OztlQVRwQlYsVUFBVVcsRUFBRSxJQUFJQyxPQUFPWixVQUFVUSxLQUFLOztBQWVwSSxPQUFPLE1BQU1LLDhCQUFnQnJCLEtBQUtDLHdCQUF3QjtBQUMxRG9CLGNBQWNDLFdBQVcsR0FBRyJ9
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { RefreshCcw, ShieldCheck, Truck } from 'lucide-react';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { IncentiveGrid } from './IncentiveGrid.js';
|
|
5
|
+
const meta = {
|
|
6
|
+
component: IncentiveGrid,
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: 'padded'
|
|
9
|
+
},
|
|
10
|
+
title: 'Ecommerce/IncentiveGrid'
|
|
11
|
+
};
|
|
12
|
+
export default meta;
|
|
13
|
+
export const ThreeColumn = {
|
|
14
|
+
args: {
|
|
15
|
+
incentives: [
|
|
16
|
+
{
|
|
17
|
+
description: 'Free shipping on domestic orders over $75.',
|
|
18
|
+
icon: /*#__PURE__*/ _jsx(Truck, {
|
|
19
|
+
className: "size-6"
|
|
20
|
+
}),
|
|
21
|
+
title: 'Free shipping'
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
description: '30 day returns with prepaid labels.',
|
|
25
|
+
icon: /*#__PURE__*/ _jsx(RefreshCcw, {
|
|
26
|
+
className: "size-6"
|
|
27
|
+
}),
|
|
28
|
+
title: 'Easy returns'
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
description: 'Every checkout is encrypted and protected.',
|
|
32
|
+
icon: /*#__PURE__*/ _jsx(ShieldCheck, {
|
|
33
|
+
className: "size-6"
|
|
34
|
+
}),
|
|
35
|
+
title: 'Secure payment'
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0luY2VudGl2ZUdyaWQvSW5jZW50aXZlR3JpZC5zdG9yaWVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlZnJlc2hDY3csIFNoaWVsZENoZWNrLCBUcnVja30gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7SW5jZW50aXZlR3JpZH0gZnJvbSAnLi9JbmNlbnRpdmVHcmlkLmpzJztcblxuaW1wb3J0IHR5cGUge01ldGEsIFN0b3J5T2JqfSBmcm9tICdAbmxhYnMvbGV4L3N0b3J5Ym9vayc7XG5cbmNvbnN0IG1ldGE6IE1ldGE8dHlwZW9mIEluY2VudGl2ZUdyaWQ+ID0ge1xuICBjb21wb25lbnQ6IEluY2VudGl2ZUdyaWQsXG4gIHBhcmFtZXRlcnM6IHtcbiAgICBsYXlvdXQ6ICdwYWRkZWQnXG4gIH0sXG4gIHRpdGxlOiAnRWNvbW1lcmNlL0luY2VudGl2ZUdyaWQnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBtZXRhO1xuXG50eXBlIFN0b3J5ID0gU3RvcnlPYmo8dHlwZW9mIEluY2VudGl2ZUdyaWQ+O1xuXG5leHBvcnQgY29uc3QgVGhyZWVDb2x1bW46IFN0b3J5ID0ge1xuICBhcmdzOiB7XG4gICAgaW5jZW50aXZlczogW1xuICAgICAge2Rlc2NyaXB0aW9uOiAnRnJlZSBzaGlwcGluZyBvbiBkb21lc3RpYyBvcmRlcnMgb3ZlciAkNzUuJywgaWNvbjogPFRydWNrIGNsYXNzTmFtZT1cInNpemUtNlwiIC8+LCB0aXRsZTogJ0ZyZWUgc2hpcHBpbmcnfSxcbiAgICAgIHtkZXNjcmlwdGlvbjogJzMwIGRheSByZXR1cm5zIHdpdGggcHJlcGFpZCBsYWJlbHMuJywgaWNvbjogPFJlZnJlc2hDY3cgY2xhc3NOYW1lPVwic2l6ZS02XCIgLz4sIHRpdGxlOiAnRWFzeSByZXR1cm5zJ30sXG4gICAgICB7ZGVzY3JpcHRpb246ICdFdmVyeSBjaGVja291dCBpcyBlbmNyeXB0ZWQgYW5kIHByb3RlY3RlZC4nLCBpY29uOiA8U2hpZWxkQ2hlY2sgY2xhc3NOYW1lPVwic2l6ZS02XCIgLz4sIHRpdGxlOiAnU2VjdXJlIHBheW1lbnQnfVxuICAgIF1cbiAgfVxufTtcbiJdLCJuYW1lcyI6WyJSZWZyZXNoQ2N3IiwiU2hpZWxkQ2hlY2siLCJUcnVjayIsIlJlYWN0IiwiSW5jZW50aXZlR3JpZCIsIm1ldGEiLCJjb21wb25lbnQiLCJwYXJhbWV0ZXJzIiwibGF5b3V0IiwidGl0bGUiLCJUaHJlZUNvbHVtbiIsImFyZ3MiLCJpbmNlbnRpdmVzIiwiZGVzY3JpcHRpb24iLCJpY29uIiwiY2xhc3NOYW1lIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUUEsVUFBVSxFQUFFQyxXQUFXLEVBQUVDLEtBQUssUUFBTyxlQUFlO0FBQzVELE9BQU9DLFdBQVcsUUFBUTtBQUUxQixTQUFRQyxhQUFhLFFBQU8scUJBQXFCO0FBSWpELE1BQU1DLE9BQW1DO0lBQ3ZDQyxXQUFXRjtJQUNYRyxZQUFZO1FBQ1ZDLFFBQVE7SUFDVjtJQUNBQyxPQUFPO0FBQ1Q7QUFFQSxlQUFlSixLQUFLO0FBSXBCLE9BQU8sTUFBTUssY0FBcUI7SUFDaENDLE1BQU07UUFDSkMsWUFBWTtZQUNWO2dCQUFDQyxhQUFhO2dCQUE4Q0Msb0JBQU0sS0FBQ1o7b0JBQU1hLFdBQVU7O2dCQUFhTixPQUFPO1lBQWU7WUFDdEg7Z0JBQUNJLGFBQWE7Z0JBQXVDQyxvQkFBTSxLQUFDZDtvQkFBV2UsV0FBVTs7Z0JBQWFOLE9BQU87WUFBYztZQUNuSDtnQkFBQ0ksYUFBYTtnQkFBOENDLG9CQUFNLEtBQUNiO29CQUFZYyxXQUFVOztnQkFBYU4sT0FBTztZQUFnQjtTQUM5SDtJQUNIO0FBQ0YsRUFBRSJ9
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { InputHTMLAttributes, Ref, TextareaHTMLAttributes } from 'react';
|
|
2
|
+
import type { GothamColor } from '../../utils/colorUtils.js';
|
|
3
|
+
export type InputBorderType = 'solid' | 'rounded' | 'none' | 'underline';
|
|
4
|
+
export interface InputFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement> & TextareaHTMLAttributes<HTMLTextAreaElement>, 'className'> {
|
|
5
|
+
readonly borderColor?: GothamColor;
|
|
6
|
+
readonly borderType?: InputBorderType;
|
|
7
|
+
readonly className?: string;
|
|
8
|
+
readonly id?: string;
|
|
9
|
+
readonly label?: string;
|
|
10
|
+
readonly multiline?: boolean;
|
|
11
|
+
readonly placeholderColor?: GothamColor;
|
|
12
|
+
readonly ref?: Ref<HTMLInputElement | HTMLTextAreaElement>;
|
|
13
|
+
readonly textFillColor?: string;
|
|
14
|
+
readonly textColor?: GothamColor;
|
|
15
|
+
}
|
|
16
|
+
export declare const baseClasses: {
|
|
17
|
+
none: string;
|
|
18
|
+
rounded: string;
|
|
19
|
+
solid: string;
|
|
20
|
+
underline: string;
|
|
21
|
+
};
|
|
22
|
+
export declare const getInputBorderClass: (borderType: InputBorderType, borderColor: GothamColor, textColor: GothamColor, placeholderColor: GothamColor) => string;
|
|
23
|
+
declare const InputFieldComponent: ({ borderColor, borderType, className, disabled, label, multiline, placeholderColor, ref, style, textFillColor, textColor, ...inputProps }: InputFieldProps) => import("react").JSX.Element;
|
|
24
|
+
export declare const InputField: import("react").MemoExoticComponent<typeof InputFieldComponent>;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2018-Present, Nitrogen Labs, Inc.
|
|
4
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
5
|
+
*/ import { cn } from '@nlabs/utils';
|
|
6
|
+
import { memo, useMemo } from 'react';
|
|
7
|
+
import { getBorderClasses, getOutlineClasses, getPlaceholderClasses, getTextClasses } from '../../utils/colorUtils.js';
|
|
8
|
+
export const baseClasses = {
|
|
9
|
+
none: '',
|
|
10
|
+
rounded: 'w-full rounded-md outline-1 outline-solid focus:outline-3 px-3.5 py-2 sm:text-sm sm:leading-6 bg-white/30 dark:bg-black/30',
|
|
11
|
+
solid: 'w-full outline-1 outline-solid focus:outline-3 px-3.5 py-2 sm:text-sm sm:leading-6 bg-white/30 dark:bg-black/30',
|
|
12
|
+
underline: 'w-full border-b autofill:bg-transparent outline-none py-2 sm:text-sm sm:leading-6'
|
|
13
|
+
};
|
|
14
|
+
export const getInputBorderClass = (borderType, borderColor, textColor, placeholderColor)=>cn(baseClasses[borderType], getTextClasses(textColor), borderType === 'underline' ? getBorderClasses(borderColor, {
|
|
15
|
+
hasFocus: true,
|
|
16
|
+
hasHover: true
|
|
17
|
+
}) : '', borderType === 'rounded' || borderType === 'solid' ? getOutlineClasses(borderColor, {
|
|
18
|
+
hasFocus: true,
|
|
19
|
+
hasHover: true
|
|
20
|
+
}) : '', getPlaceholderClasses(placeholderColor, {
|
|
21
|
+
hasFocus: true,
|
|
22
|
+
hasHover: true
|
|
23
|
+
}));
|
|
24
|
+
const InputFieldComponent = ({ borderColor = 'neutral', borderType = 'solid', className, disabled = false, label, multiline = false, placeholderColor = 'neutral', ref, style, textFillColor, textColor = 'neutral', ...inputProps })=>{
|
|
25
|
+
const borderClasses = useMemo(()=>getInputBorderClass(borderType, borderColor, textColor, placeholderColor), [
|
|
26
|
+
borderType,
|
|
27
|
+
borderColor,
|
|
28
|
+
textColor,
|
|
29
|
+
placeholderColor
|
|
30
|
+
]);
|
|
31
|
+
const inputClasses = useMemo(()=>cn(className, disabled ? 'text-neutral/30 dark:text-neutral-dark/30 outline-neutral/30 dark:outline-neutral-dark/30' : borderClasses, multiline && 'min-h-[100px] resize-y'), [
|
|
32
|
+
className,
|
|
33
|
+
borderClasses,
|
|
34
|
+
disabled,
|
|
35
|
+
multiline
|
|
36
|
+
]);
|
|
37
|
+
const inputStyle = useMemo(()=>{
|
|
38
|
+
if (!textFillColor) {
|
|
39
|
+
return style;
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
...style,
|
|
43
|
+
WebkitTextFillColor: textFillColor,
|
|
44
|
+
caretColor: textFillColor,
|
|
45
|
+
color: textFillColor
|
|
46
|
+
};
|
|
47
|
+
}, [
|
|
48
|
+
style,
|
|
49
|
+
textFillColor
|
|
50
|
+
]);
|
|
51
|
+
return multiline ? /*#__PURE__*/ _jsx("textarea", {
|
|
52
|
+
...inputProps,
|
|
53
|
+
className: inputClasses,
|
|
54
|
+
disabled: disabled,
|
|
55
|
+
ref: ref,
|
|
56
|
+
style: inputStyle
|
|
57
|
+
}) : /*#__PURE__*/ _jsx("input", {
|
|
58
|
+
...inputProps,
|
|
59
|
+
className: inputClasses,
|
|
60
|
+
disabled: disabled,
|
|
61
|
+
ref: ref,
|
|
62
|
+
style: inputStyle
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
export const InputField = /*#__PURE__*/ memo(InputFieldComponent);
|
|
66
|
+
InputField.displayName = 'InputField';
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0lucHV0RmllbGQvSW5wdXRGaWVsZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y259IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge21lbW8sIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtcbiAgZ2V0Qm9yZGVyQ2xhc3NlcyxcbiAgZ2V0T3V0bGluZUNsYXNzZXMsXG4gIGdldFBsYWNlaG9sZGVyQ2xhc3NlcyxcbiAgZ2V0VGV4dENsYXNzZXNcbn0gZnJvbSAnLi4vLi4vdXRpbHMvY29sb3JVdGlscy5qcyc7XG5cbmltcG9ydCB0eXBlIHtJbnB1dEhUTUxBdHRyaWJ1dGVzLCBSZWYsIFRleHRhcmVhSFRNTEF0dHJpYnV0ZXN9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtHb3RoYW1Db2xvcn0gZnJvbSAnLi4vLi4vdXRpbHMvY29sb3JVdGlscy5qcyc7XG5cbmV4cG9ydCB0eXBlIElucHV0Qm9yZGVyVHlwZSA9ICdzb2xpZCcgfCAncm91bmRlZCcgfCAnbm9uZScgfCAndW5kZXJsaW5lJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dEZpZWxkUHJvcHMgZXh0ZW5kcyBPbWl0PElucHV0SFRNTEF0dHJpYnV0ZXM8SFRNTElucHV0RWxlbWVudD4gJiBUZXh0YXJlYUhUTUxBdHRyaWJ1dGVzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+LCAnY2xhc3NOYW1lJz4ge1xuICByZWFkb25seSBib3JkZXJDb2xvcj86IEdvdGhhbUNvbG9yO1xuICByZWFkb25seSBib3JkZXJUeXBlPzogSW5wdXRCb3JkZXJUeXBlO1xuICByZWFkb25seSBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nO1xuICByZWFkb25seSBsYWJlbD86IHN0cmluZztcbiAgcmVhZG9ubHkgbXVsdGlsaW5lPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXJDb2xvcj86IEdvdGhhbUNvbG9yO1xuICByZWFkb25seSByZWY/OiBSZWY8SFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuICByZWFkb25seSB0ZXh0RmlsbENvbG9yPzogc3RyaW5nO1xuICByZWFkb25seSB0ZXh0Q29sb3I/OiBHb3RoYW1Db2xvcjtcbn1cblxuZXhwb3J0IGNvbnN0IGJhc2VDbGFzc2VzID0ge1xuICBub25lOiAnJyxcbiAgcm91bmRlZDogJ3ctZnVsbCByb3VuZGVkLW1kIG91dGxpbmUtMSBvdXRsaW5lLXNvbGlkIGZvY3VzOm91dGxpbmUtMyBweC0zLjUgcHktMiBzbTp0ZXh0LXNtIHNtOmxlYWRpbmctNiBiZy13aGl0ZS8zMCBkYXJrOmJnLWJsYWNrLzMwJyxcbiAgc29saWQ6ICd3LWZ1bGwgb3V0bGluZS0xIG91dGxpbmUtc29saWQgZm9jdXM6b3V0bGluZS0zIHB4LTMuNSBweS0yIHNtOnRleHQtc20gc206bGVhZGluZy02IGJnLXdoaXRlLzMwIGRhcms6YmctYmxhY2svMzAnLFxuICB1bmRlcmxpbmU6ICd3LWZ1bGwgYm9yZGVyLWIgYXV0b2ZpbGw6YmctdHJhbnNwYXJlbnQgb3V0bGluZS1ub25lIHB5LTIgc206dGV4dC1zbSBzbTpsZWFkaW5nLTYnXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0SW5wdXRCb3JkZXJDbGFzcyA9IChcbiAgYm9yZGVyVHlwZTogSW5wdXRCb3JkZXJUeXBlLFxuICBib3JkZXJDb2xvcjogR290aGFtQ29sb3IsXG4gIHRleHRDb2xvcjogR290aGFtQ29sb3IsXG4gIHBsYWNlaG9sZGVyQ29sb3I6IEdvdGhhbUNvbG9yXG4pID0+IGNuKFxuICBiYXNlQ2xhc3Nlc1tib3JkZXJUeXBlXSxcbiAgZ2V0VGV4dENsYXNzZXModGV4dENvbG9yKSxcbiAgYm9yZGVyVHlwZSA9PT0gJ3VuZGVybGluZSdcbiAgICA/IGdldEJvcmRlckNsYXNzZXMoYm9yZGVyQ29sb3IsIHtoYXNGb2N1czogdHJ1ZSwgaGFzSG92ZXI6IHRydWV9KVxuICAgIDogJycsXG4gIGJvcmRlclR5cGUgPT09ICdyb3VuZGVkJyB8fCBib3JkZXJUeXBlID09PSAnc29saWQnXG4gICAgPyBnZXRPdXRsaW5lQ2xhc3Nlcyhib3JkZXJDb2xvciwge2hhc0ZvY3VzOiB0cnVlLCBoYXNIb3ZlcjogdHJ1ZX0pXG4gICAgOiAnJyxcbiAgZ2V0UGxhY2Vob2xkZXJDbGFzc2VzKHBsYWNlaG9sZGVyQ29sb3IsIHtoYXNGb2N1czogdHJ1ZSwgaGFzSG92ZXI6IHRydWV9KVxuKTtcblxuY29uc3QgSW5wdXRGaWVsZENvbXBvbmVudCA9ICh7XG4gIGJvcmRlckNvbG9yID0gJ25ldXRyYWwnLFxuICBib3JkZXJUeXBlID0gJ3NvbGlkJyxcbiAgY2xhc3NOYW1lLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBsYWJlbCxcbiAgbXVsdGlsaW5lID0gZmFsc2UsXG4gIHBsYWNlaG9sZGVyQ29sb3IgPSAnbmV1dHJhbCcsXG4gIHJlZixcbiAgc3R5bGUsXG4gIHRleHRGaWxsQ29sb3IsXG4gIHRleHRDb2xvciA9ICduZXV0cmFsJyxcbiAgLi4uaW5wdXRQcm9wc1xufTogSW5wdXRGaWVsZFByb3BzKSA9PiB7XG4gIGNvbnN0IGJvcmRlckNsYXNzZXMgPSB1c2VNZW1vKFxuICAgICgpID0+IGdldElucHV0Qm9yZGVyQ2xhc3MoYm9yZGVyVHlwZSwgYm9yZGVyQ29sb3IsIHRleHRDb2xvciwgcGxhY2Vob2xkZXJDb2xvciksXG4gICAgW2JvcmRlclR5cGUsIGJvcmRlckNvbG9yLCB0ZXh0Q29sb3IsIHBsYWNlaG9sZGVyQ29sb3JdXG4gICk7XG5cbiAgY29uc3QgaW5wdXRDbGFzc2VzID0gdXNlTWVtbyhcbiAgICAoKSA9PiBjbihcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGRpc2FibGVkID8gJ3RleHQtbmV1dHJhbC8zMCBkYXJrOnRleHQtbmV1dHJhbC1kYXJrLzMwIG91dGxpbmUtbmV1dHJhbC8zMCBkYXJrOm91dGxpbmUtbmV1dHJhbC1kYXJrLzMwJyA6IGJvcmRlckNsYXNzZXMsXG4gICAgICBtdWx0aWxpbmUgJiYgJ21pbi1oLVsxMDBweF0gcmVzaXplLXknXG4gICAgKSxcbiAgICBbY2xhc3NOYW1lLCBib3JkZXJDbGFzc2VzLCBkaXNhYmxlZCwgbXVsdGlsaW5lXVxuICApO1xuXG4gIGNvbnN0IGlucHV0U3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZighdGV4dEZpbGxDb2xvcikge1xuICAgICAgcmV0dXJuIHN0eWxlO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdHlsZSxcbiAgICAgIFdlYmtpdFRleHRGaWxsQ29sb3I6IHRleHRGaWxsQ29sb3IsXG4gICAgICBjYXJldENvbG9yOiB0ZXh0RmlsbENvbG9yLFxuICAgICAgY29sb3I6IHRleHRGaWxsQ29sb3JcbiAgICB9O1xuICB9LCBbc3R5bGUsIHRleHRGaWxsQ29sb3JdKTtcblxuICByZXR1cm4gbXVsdGlsaW5lID8gKFxuICAgIDx0ZXh0YXJlYVxuICAgICAgey4uLmlucHV0UHJvcHMgYXMgVGV4dGFyZWFIVE1MQXR0cmlidXRlczxIVE1MVGV4dEFyZWFFbGVtZW50Pn1cbiAgICAgIGNsYXNzTmFtZT17aW5wdXRDbGFzc2VzfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgcmVmPXtyZWYgYXMgUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+fVxuICAgICAgc3R5bGU9e2lucHV0U3R5bGV9XG4gICAgLz5cbiAgKSA6IChcbiAgICA8aW5wdXRcbiAgICAgIHsuLi5pbnB1dFByb3BzIGFzIElucHV0SFRNTEF0dHJpYnV0ZXM8SFRNTElucHV0RWxlbWVudD59XG4gICAgICBjbGFzc05hbWU9e2lucHV0Q2xhc3Nlc31cbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIHJlZj17cmVmIGFzIFJlZjxIVE1MSW5wdXRFbGVtZW50Pn1cbiAgICAgIHN0eWxlPXtpbnB1dFN0eWxlfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgSW5wdXRGaWVsZCA9IG1lbW8oSW5wdXRGaWVsZENvbXBvbmVudCk7XG5JbnB1dEZpZWxkLmRpc3BsYXlOYW1lID0gJ0lucHV0RmllbGQnO1xuIl0sIm5hbWVzIjpbImNuIiwibWVtbyIsInVzZU1lbW8iLCJnZXRCb3JkZXJDbGFzc2VzIiwiZ2V0T3V0bGluZUNsYXNzZXMiLCJnZXRQbGFjZWhvbGRlckNsYXNzZXMiLCJnZXRUZXh0Q2xhc3NlcyIsImJhc2VDbGFzc2VzIiwibm9uZSIsInJvdW5kZWQiLCJzb2xpZCIsInVuZGVybGluZSIsImdldElucHV0Qm9yZGVyQ2xhc3MiLCJib3JkZXJUeXBlIiwiYm9yZGVyQ29sb3IiLCJ0ZXh0Q29sb3IiLCJwbGFjZWhvbGRlckNvbG9yIiwiaGFzRm9jdXMiLCJoYXNIb3ZlciIsIklucHV0RmllbGRDb21wb25lbnQiLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsImxhYmVsIiwibXVsdGlsaW5lIiwicmVmIiwic3R5bGUiLCJ0ZXh0RmlsbENvbG9yIiwiaW5wdXRQcm9wcyIsImJvcmRlckNsYXNzZXMiLCJpbnB1dENsYXNzZXMiLCJpbnB1dFN0eWxlIiwiV2Via2l0VGV4dEZpbGxDb2xvciIsImNhcmV0Q29sb3IiLCJjb2xvciIsInRleHRhcmVhIiwiaW5wdXQiLCJJbnB1dEZpZWxkIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7QUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxFQUFFLFFBQU8sZUFBZTtBQUNoQyxTQUFRQyxJQUFJLEVBQUVDLE9BQU8sUUFBTyxRQUFRO0FBRXBDLFNBQ0VDLGdCQUFnQixFQUNoQkMsaUJBQWlCLEVBQ2pCQyxxQkFBcUIsRUFDckJDLGNBQWMsUUFDVCw0QkFBNEI7QUFvQm5DLE9BQU8sTUFBTUMsY0FBYztJQUN6QkMsTUFBTTtJQUNOQyxTQUFTO0lBQ1RDLE9BQU87SUFDUEMsV0FBVztBQUNiLEVBQUU7QUFFRixPQUFPLE1BQU1DLHNCQUFzQixDQUNqQ0MsWUFDQUMsYUFDQUMsV0FDQUMsbUJBQ0doQixHQUNITyxXQUFXLENBQUNNLFdBQVcsRUFDdkJQLGVBQWVTLFlBQ2ZGLGVBQWUsY0FDWFYsaUJBQWlCVyxhQUFhO1FBQUNHLFVBQVU7UUFBTUMsVUFBVTtJQUFJLEtBQzdELElBQ0pMLGVBQWUsYUFBYUEsZUFBZSxVQUN2Q1Qsa0JBQWtCVSxhQUFhO1FBQUNHLFVBQVU7UUFBTUMsVUFBVTtJQUFJLEtBQzlELElBQ0piLHNCQUFzQlcsa0JBQWtCO1FBQUNDLFVBQVU7UUFBTUMsVUFBVTtJQUFJLElBQ3ZFO0FBRUYsTUFBTUMsc0JBQXNCLENBQUMsRUFDM0JMLGNBQWMsU0FBUyxFQUN2QkQsYUFBYSxPQUFPLEVBQ3BCTyxTQUFTLEVBQ1RDLFdBQVcsS0FBSyxFQUNoQkMsS0FBSyxFQUNMQyxZQUFZLEtBQUssRUFDakJQLG1CQUFtQixTQUFTLEVBQzVCUSxHQUFHLEVBQ0hDLEtBQUssRUFDTEMsYUFBYSxFQUNiWCxZQUFZLFNBQVMsRUFDckIsR0FBR1ksWUFDYTtJQUNoQixNQUFNQyxnQkFBZ0IxQixRQUNwQixJQUFNVSxvQkFBb0JDLFlBQVlDLGFBQWFDLFdBQVdDLG1CQUM5RDtRQUFDSDtRQUFZQztRQUFhQztRQUFXQztLQUFpQjtJQUd4RCxNQUFNYSxlQUFlM0IsUUFDbkIsSUFBTUYsR0FDSm9CLFdBQ0FDLFdBQVcsOEZBQThGTyxlQUN6R0wsYUFBYSwyQkFFZjtRQUFDSDtRQUFXUTtRQUFlUDtRQUFVRTtLQUFVO0lBR2pELE1BQU1PLGFBQWE1QixRQUFRO1FBQ3pCLElBQUcsQ0FBQ3dCLGVBQWU7WUFDakIsT0FBT0Q7UUFDVDtRQUVBLE9BQU87WUFDTCxHQUFHQSxLQUFLO1lBQ1JNLHFCQUFxQkw7WUFDckJNLFlBQVlOO1lBQ1pPLE9BQU9QO1FBQ1Q7SUFDRixHQUFHO1FBQUNEO1FBQU9DO0tBQWM7SUFFekIsT0FBT0gsMEJBQ0wsS0FBQ1c7UUFDRSxHQUFHUCxVQUFVO1FBQ2RQLFdBQVdTO1FBQ1hSLFVBQVVBO1FBQ1ZHLEtBQUtBO1FBQ0xDLE9BQU9LO3VCQUdULEtBQUNLO1FBQ0UsR0FBR1IsVUFBVTtRQUNkUCxXQUFXUztRQUNYUixVQUFVQTtRQUNWRyxLQUFLQTtRQUNMQyxPQUFPSzs7QUFHYjtBQUVBLE9BQU8sTUFBTU0sMkJBQWFuQyxLQUFLa0IscUJBQXFCO0FBQ3BEaUIsV0FBV0MsV0FBVyxHQUFHIn0=
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { gothamColors } from '../../utils/colorUtils.js';
|
|
3
|
+
import { interactWithCanvas } from '../../utils/storyInteractions.js';
|
|
4
|
+
import { InputField } from './InputField.js';
|
|
5
|
+
const meta = {
|
|
6
|
+
argTypes: {
|
|
7
|
+
borderColor: {
|
|
8
|
+
control: 'select',
|
|
9
|
+
options: gothamColors
|
|
10
|
+
},
|
|
11
|
+
borderType: {
|
|
12
|
+
control: 'select',
|
|
13
|
+
options: [
|
|
14
|
+
'solid',
|
|
15
|
+
'rounded',
|
|
16
|
+
'none',
|
|
17
|
+
'underline'
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
disabled: {
|
|
21
|
+
control: 'boolean'
|
|
22
|
+
},
|
|
23
|
+
multiline: {
|
|
24
|
+
control: 'boolean'
|
|
25
|
+
},
|
|
26
|
+
placeholder: {
|
|
27
|
+
control: 'text'
|
|
28
|
+
},
|
|
29
|
+
placeholderColor: {
|
|
30
|
+
control: 'select',
|
|
31
|
+
options: gothamColors
|
|
32
|
+
},
|
|
33
|
+
textColor: {
|
|
34
|
+
control: 'select',
|
|
35
|
+
options: gothamColors
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
component: InputField,
|
|
39
|
+
parameters: {
|
|
40
|
+
layout: 'centered'
|
|
41
|
+
},
|
|
42
|
+
title: 'Components/Form/InputField'
|
|
43
|
+
};
|
|
44
|
+
export default meta;
|
|
45
|
+
export const Default = {
|
|
46
|
+
args: {
|
|
47
|
+
borderColor: 'primary',
|
|
48
|
+
borderType: 'rounded',
|
|
49
|
+
disabled: false,
|
|
50
|
+
multiline: false,
|
|
51
|
+
placeholder: 'Component name',
|
|
52
|
+
placeholderColor: 'neutral',
|
|
53
|
+
textColor: 'neutral'
|
|
54
|
+
},
|
|
55
|
+
play: interactWithCanvas
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0lucHV0RmllbGQvSW5wdXRGaWVsZC5zdG9yaWVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQge2dvdGhhbUNvbG9yc30gZnJvbSAnLi4vLi4vdXRpbHMvY29sb3JVdGlscy5qcyc7XG5pbXBvcnQge2ludGVyYWN0V2l0aENhbnZhc30gZnJvbSAnLi4vLi4vdXRpbHMvc3RvcnlJbnRlcmFjdGlvbnMuanMnO1xuaW1wb3J0IHtJbnB1dEZpZWxkfSBmcm9tICcuL0lucHV0RmllbGQuanMnO1xuXG5pbXBvcnQgdHlwZSB7TWV0YSwgU3RvcnlPYmp9IGZyb20gJ0BubGFicy9sZXgvc3Rvcnlib29rJztcblxuY29uc3QgbWV0YTogTWV0YTx0eXBlb2YgSW5wdXRGaWVsZD4gPSB7XG4gIGFyZ1R5cGVzOiB7XG4gICAgYm9yZGVyQ29sb3I6IHtcbiAgICAgIGNvbnRyb2w6ICdzZWxlY3QnLFxuICAgICAgb3B0aW9uczogZ290aGFtQ29sb3JzXG4gICAgfSxcbiAgICBib3JkZXJUeXBlOiB7XG4gICAgICBjb250cm9sOiAnc2VsZWN0JyxcbiAgICAgIG9wdGlvbnM6IFsnc29saWQnLCAncm91bmRlZCcsICdub25lJywgJ3VuZGVybGluZSddXG4gICAgfSxcbiAgICBkaXNhYmxlZDoge1xuICAgICAgY29udHJvbDogJ2Jvb2xlYW4nXG4gICAgfSxcbiAgICBtdWx0aWxpbmU6IHtcbiAgICAgIGNvbnRyb2w6ICdib29sZWFuJ1xuICAgIH0sXG4gICAgcGxhY2Vob2xkZXI6IHtcbiAgICAgIGNvbnRyb2w6ICd0ZXh0J1xuICAgIH0sXG4gICAgcGxhY2Vob2xkZXJDb2xvcjoge1xuICAgICAgY29udHJvbDogJ3NlbGVjdCcsXG4gICAgICBvcHRpb25zOiBnb3RoYW1Db2xvcnNcbiAgICB9LFxuICAgIHRleHRDb2xvcjoge1xuICAgICAgY29udHJvbDogJ3NlbGVjdCcsXG4gICAgICBvcHRpb25zOiBnb3RoYW1Db2xvcnNcbiAgICB9XG4gIH0sXG4gIGNvbXBvbmVudDogSW5wdXRGaWVsZCxcbiAgcGFyYW1ldGVyczoge1xuICAgIGxheW91dDogJ2NlbnRlcmVkJ1xuICB9LFxuICB0aXRsZTogJ0NvbXBvbmVudHMvRm9ybS9JbnB1dEZpZWxkJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbWV0YTtcblxudHlwZSBTdG9yeSA9IFN0b3J5T2JqPHR5cGVvZiBJbnB1dEZpZWxkPjtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHQ6IFN0b3J5ID0ge1xuICBhcmdzOiB7XG4gICAgYm9yZGVyQ29sb3I6ICdwcmltYXJ5JyxcbiAgICBib3JkZXJUeXBlOiAncm91bmRlZCcsXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIG11bHRpbGluZTogZmFsc2UsXG4gICAgcGxhY2Vob2xkZXI6ICdDb21wb25lbnQgbmFtZScsXG4gICAgcGxhY2Vob2xkZXJDb2xvcjogJ25ldXRyYWwnLFxuICAgIHRleHRDb2xvcjogJ25ldXRyYWwnXG4gIH0sXG4gIHBsYXk6IGludGVyYWN0V2l0aENhbnZhc1xufTtcbiJdLCJuYW1lcyI6WyJSZWFjdCIsImdvdGhhbUNvbG9ycyIsImludGVyYWN0V2l0aENhbnZhcyIsIklucHV0RmllbGQiLCJtZXRhIiwiYXJnVHlwZXMiLCJib3JkZXJDb2xvciIsImNvbnRyb2wiLCJvcHRpb25zIiwiYm9yZGVyVHlwZSIsImRpc2FibGVkIiwibXVsdGlsaW5lIiwicGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlckNvbG9yIiwidGV4dENvbG9yIiwiY29tcG9uZW50IiwicGFyYW1ldGVycyIsImxheW91dCIsInRpdGxlIiwiRGVmYXVsdCIsImFyZ3MiLCJwbGF5Il0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFXLFFBQVE7QUFFMUIsU0FBUUMsWUFBWSxRQUFPLDRCQUE0QjtBQUN2RCxTQUFRQyxrQkFBa0IsUUFBTyxtQ0FBbUM7QUFDcEUsU0FBUUMsVUFBVSxRQUFPLGtCQUFrQjtBQUkzQyxNQUFNQyxPQUFnQztJQUNwQ0MsVUFBVTtRQUNSQyxhQUFhO1lBQ1hDLFNBQVM7WUFDVEMsU0FBU1A7UUFDWDtRQUNBUSxZQUFZO1lBQ1ZGLFNBQVM7WUFDVEMsU0FBUztnQkFBQztnQkFBUztnQkFBVztnQkFBUTthQUFZO1FBQ3BEO1FBQ0FFLFVBQVU7WUFDUkgsU0FBUztRQUNYO1FBQ0FJLFdBQVc7WUFDVEosU0FBUztRQUNYO1FBQ0FLLGFBQWE7WUFDWEwsU0FBUztRQUNYO1FBQ0FNLGtCQUFrQjtZQUNoQk4sU0FBUztZQUNUQyxTQUFTUDtRQUNYO1FBQ0FhLFdBQVc7WUFDVFAsU0FBUztZQUNUQyxTQUFTUDtRQUNYO0lBQ0Y7SUFDQWMsV0FBV1o7SUFDWGEsWUFBWTtRQUNWQyxRQUFRO0lBQ1Y7SUFDQUMsT0FBTztBQUNUO0FBRUEsZUFBZWQsS0FBSztBQUlwQixPQUFPLE1BQU1lLFVBQWlCO0lBQzVCQyxNQUFNO1FBQ0pkLGFBQWE7UUFDYkcsWUFBWTtRQUNaQyxVQUFVO1FBQ1ZDLFdBQVc7UUFDWEMsYUFBYTtRQUNiQyxrQkFBa0I7UUFDbEJDLFdBQVc7SUFDYjtJQUNBTyxNQUFNbkI7QUFDUixFQUFFIn0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SeparatorProps } from '../Separator/Separator.js';
|
|
2
|
+
import type { ElementType, HTMLAttributes, ReactNode } from 'react';
|
|
3
|
+
export type ItemVariant = 'default' | 'outline' | 'muted';
|
|
4
|
+
export type ItemSize = 'default' | 'sm';
|
|
5
|
+
export type ItemMediaVariant = 'default' | 'icon' | 'image';
|
|
6
|
+
export declare const ItemGroup: ({ className, ...props }: HTMLAttributes<HTMLDivElement>) => import("react").JSX.Element;
|
|
7
|
+
export declare const ItemSeparator: ({ className, ...props }: SeparatorProps) => import("react").JSX.Element;
|
|
8
|
+
export interface ItemProps extends HTMLAttributes<HTMLElement> {
|
|
9
|
+
readonly as?: ElementType;
|
|
10
|
+
readonly asChild?: boolean;
|
|
11
|
+
readonly children?: ReactNode;
|
|
12
|
+
readonly size?: ItemSize;
|
|
13
|
+
readonly variant?: ItemVariant;
|
|
14
|
+
}
|
|
15
|
+
export declare const Item: ({ as, asChild, children, className, size, variant, ...props }: ItemProps) => import("react").JSX.Element | null;
|
|
16
|
+
export interface ItemMediaProps extends HTMLAttributes<HTMLDivElement> {
|
|
17
|
+
readonly variant?: ItemMediaVariant;
|
|
18
|
+
}
|
|
19
|
+
export declare const ItemMedia: ({ className, variant, ...props }: ItemMediaProps) => import("react").JSX.Element;
|
|
20
|
+
export declare const ItemContent: ({ className, ...props }: HTMLAttributes<HTMLDivElement>) => import("react").JSX.Element;
|
|
21
|
+
export declare const ItemTitle: ({ className, ...props }: HTMLAttributes<HTMLDivElement>) => import("react").JSX.Element;
|
|
22
|
+
export declare const ItemDescription: ({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) => import("react").JSX.Element;
|
|
23
|
+
export declare const ItemActions: ({ className, ...props }: HTMLAttributes<HTMLDivElement>) => import("react").JSX.Element;
|
|
24
|
+
export declare const ItemHeader: ({ className, ...props }: HTMLAttributes<HTMLDivElement>) => import("react").JSX.Element;
|
|
25
|
+
export declare const ItemFooter: ({ className, ...props }: HTMLAttributes<HTMLDivElement>) => import("react").JSX.Element;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from '@nlabs/utils';
|
|
3
|
+
import { renderWithAsChild } from '../ComponentUtils/renderWithAsChild.js';
|
|
4
|
+
import { Separator } from '../Separator/Separator.js';
|
|
5
|
+
const itemVariantClasses = {
|
|
6
|
+
default: 'bg-transparent',
|
|
7
|
+
muted: 'bg-muted/50',
|
|
8
|
+
outline: 'border-border'
|
|
9
|
+
};
|
|
10
|
+
const itemSizeClasses = {
|
|
11
|
+
default: 'gap-4 p-4',
|
|
12
|
+
sm: 'gap-2.5 px-4 py-3'
|
|
13
|
+
};
|
|
14
|
+
const mediaVariantClasses = {
|
|
15
|
+
default: 'bg-transparent',
|
|
16
|
+
icon: 'size-8 rounded-sm border border-border bg-muted [&_svg:not([class*=size-])]:size-4',
|
|
17
|
+
image: 'size-10 overflow-hidden rounded-sm [&_img]:size-full [&_img]:object-cover'
|
|
18
|
+
};
|
|
19
|
+
export const ItemGroup = ({ className, ...props })=>/*#__PURE__*/ _jsx("div", {
|
|
20
|
+
className: cn('group/item-group flex flex-col', className),
|
|
21
|
+
"data-slot": "item-group",
|
|
22
|
+
role: "list",
|
|
23
|
+
...props
|
|
24
|
+
});
|
|
25
|
+
export const ItemSeparator = ({ className, ...props })=>/*#__PURE__*/ _jsx(Separator, {
|
|
26
|
+
className: cn('my-0', className),
|
|
27
|
+
"data-slot": "item-separator",
|
|
28
|
+
orientation: "horizontal",
|
|
29
|
+
...props
|
|
30
|
+
});
|
|
31
|
+
export const Item = ({ as, asChild = false, children, className, size = 'default', variant = 'default', ...props })=>renderWithAsChild({
|
|
32
|
+
as: as ?? 'div',
|
|
33
|
+
asChild,
|
|
34
|
+
children,
|
|
35
|
+
className: cn('group/item flex flex-wrap items-center rounded-md border border-transparent text-sm transition-colors duration-100 outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-accent/50', itemVariantClasses[variant], itemSizeClasses[size], className),
|
|
36
|
+
...props
|
|
37
|
+
}, {
|
|
38
|
+
'data-size': size,
|
|
39
|
+
'data-slot': 'item',
|
|
40
|
+
'data-variant': variant
|
|
41
|
+
});
|
|
42
|
+
export const ItemMedia = ({ className, variant = 'default', ...props })=>/*#__PURE__*/ _jsx("div", {
|
|
43
|
+
className: cn('flex shrink-0 items-center justify-center gap-2 self-start [&_svg]:pointer-events-none', mediaVariantClasses[variant], className),
|
|
44
|
+
"data-slot": "item-media",
|
|
45
|
+
"data-variant": variant,
|
|
46
|
+
...props
|
|
47
|
+
});
|
|
48
|
+
export const ItemContent = ({ className, ...props })=>/*#__PURE__*/ _jsx("div", {
|
|
49
|
+
className: cn('flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none', className),
|
|
50
|
+
"data-slot": "item-content",
|
|
51
|
+
...props
|
|
52
|
+
});
|
|
53
|
+
export const ItemTitle = ({ className, ...props })=>/*#__PURE__*/ _jsx("div", {
|
|
54
|
+
className: cn('flex w-fit items-center gap-2 text-sm leading-snug font-medium', className),
|
|
55
|
+
"data-slot": "item-title",
|
|
56
|
+
...props
|
|
57
|
+
});
|
|
58
|
+
export const ItemDescription = ({ className, ...props })=>/*#__PURE__*/ _jsx("p", {
|
|
59
|
+
className: cn('line-clamp-2 text-sm leading-normal font-normal text-balance text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary', className),
|
|
60
|
+
"data-slot": "item-description",
|
|
61
|
+
...props
|
|
62
|
+
});
|
|
63
|
+
export const ItemActions = ({ className, ...props })=>/*#__PURE__*/ _jsx("div", {
|
|
64
|
+
className: cn('flex items-center gap-2', className),
|
|
65
|
+
"data-slot": "item-actions",
|
|
66
|
+
...props
|
|
67
|
+
});
|
|
68
|
+
export const ItemHeader = ({ className, ...props })=>/*#__PURE__*/ _jsx("div", {
|
|
69
|
+
className: cn('flex basis-full items-center justify-between gap-2', className),
|
|
70
|
+
"data-slot": "item-header",
|
|
71
|
+
...props
|
|
72
|
+
});
|
|
73
|
+
export const ItemFooter = ({ className, ...props })=>/*#__PURE__*/ _jsx("div", {
|
|
74
|
+
className: cn('flex basis-full items-center justify-between gap-2', className),
|
|
75
|
+
"data-slot": "item-footer",
|
|
76
|
+
...props
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL0l0ZW0vSXRlbS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjbn0gZnJvbSAnQG5sYWJzL3V0aWxzJztcblxuaW1wb3J0IHtyZW5kZXJXaXRoQXNDaGlsZH0gZnJvbSAnLi4vQ29tcG9uZW50VXRpbHMvcmVuZGVyV2l0aEFzQ2hpbGQuanMnO1xuaW1wb3J0IHtTZXBhcmF0b3IsIFNlcGFyYXRvclByb3BzfSBmcm9tICcuLi9TZXBhcmF0b3IvU2VwYXJhdG9yLmpzJztcblxuaW1wb3J0IHR5cGUge0VsZW1lbnRUeXBlLCBIVE1MQXR0cmlidXRlcywgUmVhY3ROb2RlfSBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCB0eXBlIEl0ZW1WYXJpYW50ID0gJ2RlZmF1bHQnIHwgJ291dGxpbmUnIHwgJ211dGVkJztcbmV4cG9ydCB0eXBlIEl0ZW1TaXplID0gJ2RlZmF1bHQnIHwgJ3NtJztcbmV4cG9ydCB0eXBlIEl0ZW1NZWRpYVZhcmlhbnQgPSAnZGVmYXVsdCcgfCAnaWNvbicgfCAnaW1hZ2UnO1xuXG5jb25zdCBpdGVtVmFyaWFudENsYXNzZXM6IFJlY29yZDxJdGVtVmFyaWFudCwgc3RyaW5nPiA9IHtcbiAgZGVmYXVsdDogJ2JnLXRyYW5zcGFyZW50JyxcbiAgbXV0ZWQ6ICdiZy1tdXRlZC81MCcsXG4gIG91dGxpbmU6ICdib3JkZXItYm9yZGVyJ1xufTtcblxuY29uc3QgaXRlbVNpemVDbGFzc2VzOiBSZWNvcmQ8SXRlbVNpemUsIHN0cmluZz4gPSB7XG4gIGRlZmF1bHQ6ICdnYXAtNCBwLTQnLFxuICBzbTogJ2dhcC0yLjUgcHgtNCBweS0zJ1xufTtcblxuY29uc3QgbWVkaWFWYXJpYW50Q2xhc3NlczogUmVjb3JkPEl0ZW1NZWRpYVZhcmlhbnQsIHN0cmluZz4gPSB7XG4gIGRlZmF1bHQ6ICdiZy10cmFuc3BhcmVudCcsXG4gIGljb246ICdzaXplLTggcm91bmRlZC1zbSBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1tdXRlZCBbJl9zdmc6bm90KFtjbGFzcyo9c2l6ZS1dKV06c2l6ZS00JyxcbiAgaW1hZ2U6ICdzaXplLTEwIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLXNtIFsmX2ltZ106c2l6ZS1mdWxsIFsmX2ltZ106b2JqZWN0LWNvdmVyJ1xufTtcblxuZXhwb3J0IGNvbnN0IEl0ZW1Hcm91cCA9ICh7Y2xhc3NOYW1lLCAuLi5wcm9wc306IEhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PikgPT4gKFxuICA8ZGl2XG4gICAgY2xhc3NOYW1lPXtjbignZ3JvdXAvaXRlbS1ncm91cCBmbGV4IGZsZXgtY29sJywgY2xhc3NOYW1lKX1cbiAgICBkYXRhLXNsb3Q9XCJpdGVtLWdyb3VwXCJcbiAgICByb2xlPVwibGlzdFwiXG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IEl0ZW1TZXBhcmF0b3IgPSAoe2NsYXNzTmFtZSwgLi4ucHJvcHN9OiBTZXBhcmF0b3JQcm9wcykgPT4gKFxuICA8U2VwYXJhdG9yXG4gICAgY2xhc3NOYW1lPXtjbignbXktMCcsIGNsYXNzTmFtZSl9XG4gICAgZGF0YS1zbG90PVwiaXRlbS1zZXBhcmF0b3JcIlxuICAgIG9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGludGVyZmFjZSBJdGVtUHJvcHMgZXh0ZW5kcyBIVE1MQXR0cmlidXRlczxIVE1MRWxlbWVudD4ge1xuICByZWFkb25seSBhcz86IEVsZW1lbnRUeXBlO1xuICByZWFkb25seSBhc0NoaWxkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIHJlYWRvbmx5IHNpemU/OiBJdGVtU2l6ZTtcbiAgcmVhZG9ubHkgdmFyaWFudD86IEl0ZW1WYXJpYW50O1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9ICh7XG4gIGFzLFxuICBhc0NoaWxkID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIHNpemUgPSAnZGVmYXVsdCcsXG4gIHZhcmlhbnQgPSAnZGVmYXVsdCcsXG4gIC4uLnByb3BzXG59OiBJdGVtUHJvcHMpID0+IHJlbmRlcldpdGhBc0NoaWxkKFxuICB7XG4gICAgYXM6IGFzID8/ICdkaXYnLFxuICAgIGFzQ2hpbGQsXG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lOiBjbihcbiAgICAgICdncm91cC9pdGVtIGZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgdGV4dC1zbSB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi0xMDAgb3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy1bM3B4XSBmb2N1cy12aXNpYmxlOnJpbmctcmluZy81MCBbYV06dHJhbnNpdGlvbi1jb2xvcnMgW2FdOmhvdmVyOmJnLWFjY2VudC81MCcsXG4gICAgICBpdGVtVmFyaWFudENsYXNzZXNbdmFyaWFudF0sXG4gICAgICBpdGVtU2l6ZUNsYXNzZXNbc2l6ZV0sXG4gICAgICBjbGFzc05hbWVcbiAgICApLFxuICAgIC4uLnByb3BzXG4gIH0sXG4gIHtcbiAgICAnZGF0YS1zaXplJzogc2l6ZSxcbiAgICAnZGF0YS1zbG90JzogJ2l0ZW0nLFxuICAgICdkYXRhLXZhcmlhbnQnOiB2YXJpYW50XG4gIH1cbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXRlbU1lZGlhUHJvcHMgZXh0ZW5kcyBIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4ge1xuICByZWFkb25seSB2YXJpYW50PzogSXRlbU1lZGlhVmFyaWFudDtcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW1NZWRpYSA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgdmFyaWFudCA9ICdkZWZhdWx0JyxcbiAgLi4ucHJvcHNcbn06IEl0ZW1NZWRpYVByb3BzKSA9PiAoXG4gIDxkaXZcbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgJ2ZsZXggc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yIHNlbGYtc3RhcnQgWyZfc3ZnXTpwb2ludGVyLWV2ZW50cy1ub25lJyxcbiAgICAgIG1lZGlhVmFyaWFudENsYXNzZXNbdmFyaWFudF0sXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIGRhdGEtc2xvdD1cIml0ZW0tbWVkaWFcIlxuICAgIGRhdGEtdmFyaWFudD17dmFyaWFudH1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pO1xuXG5leHBvcnQgY29uc3QgSXRlbUNvbnRlbnQgPSAoe2NsYXNzTmFtZSwgLi4ucHJvcHN9OiBIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4pID0+IChcbiAgPGRpdlxuICAgIGNsYXNzTmFtZT17Y24oJ2ZsZXggZmxleC0xIGZsZXgtY29sIGdhcC0xIFsmK1tkYXRhLXNsb3Q9aXRlbS1jb250ZW50XV06ZmxleC1ub25lJywgY2xhc3NOYW1lKX1cbiAgICBkYXRhLXNsb3Q9XCJpdGVtLWNvbnRlbnRcIlxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbmV4cG9ydCBjb25zdCBJdGVtVGl0bGUgPSAoe2NsYXNzTmFtZSwgLi4ucHJvcHN9OiBIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4pID0+IChcbiAgPGRpdlxuICAgIGNsYXNzTmFtZT17Y24oJ2ZsZXggdy1maXQgaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtc20gbGVhZGluZy1zbnVnIGZvbnQtbWVkaXVtJywgY2xhc3NOYW1lKX1cbiAgICBkYXRhLXNsb3Q9XCJpdGVtLXRpdGxlXCJcbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pO1xuXG5leHBvcnQgY29uc3QgSXRlbURlc2NyaXB0aW9uID0gKHtjbGFzc05hbWUsIC4uLnByb3BzfTogSFRNTEF0dHJpYnV0ZXM8SFRNTFBhcmFncmFwaEVsZW1lbnQ+KSA9PiAoXG4gIDxwXG4gICAgY2xhc3NOYW1lPXtjbignbGluZS1jbGFtcC0yIHRleHQtc20gbGVhZGluZy1ub3JtYWwgZm9udC1ub3JtYWwgdGV4dC1iYWxhbmNlIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBbJj5hXTp1bmRlcmxpbmUgWyY+YV06dW5kZXJsaW5lLW9mZnNldC00IFsmPmE6aG92ZXJdOnRleHQtcHJpbWFyeScsIGNsYXNzTmFtZSl9XG4gICAgZGF0YS1zbG90PVwiaXRlbS1kZXNjcmlwdGlvblwiXG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IEl0ZW1BY3Rpb25zID0gKHtjbGFzc05hbWUsIC4uLnByb3BzfTogSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+KSA9PiAoXG4gIDxkaXZcbiAgICBjbGFzc05hbWU9e2NuKCdmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMicsIGNsYXNzTmFtZSl9XG4gICAgZGF0YS1zbG90PVwiaXRlbS1hY3Rpb25zXCJcbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pO1xuXG5leHBvcnQgY29uc3QgSXRlbUhlYWRlciA9ICh7Y2xhc3NOYW1lLCAuLi5wcm9wc306IEhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PikgPT4gKFxuICA8ZGl2XG4gICAgY2xhc3NOYW1lPXtjbignZmxleCBiYXNpcy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTInLCBjbGFzc05hbWUpfVxuICAgIGRhdGEtc2xvdD1cIml0ZW0taGVhZGVyXCJcbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pO1xuXG5leHBvcnQgY29uc3QgSXRlbUZvb3RlciA9ICh7Y2xhc3NOYW1lLCAuLi5wcm9wc306IEhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PikgPT4gKFxuICA8ZGl2XG4gICAgY2xhc3NOYW1lPXtjbignZmxleCBiYXNpcy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTInLCBjbGFzc05hbWUpfVxuICAgIGRhdGEtc2xvdD1cIml0ZW0tZm9vdGVyXCJcbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pO1xuIl0sIm5hbWVzIjpbImNuIiwicmVuZGVyV2l0aEFzQ2hpbGQiLCJTZXBhcmF0b3IiLCJpdGVtVmFyaWFudENsYXNzZXMiLCJkZWZhdWx0IiwibXV0ZWQiLCJvdXRsaW5lIiwiaXRlbVNpemVDbGFzc2VzIiwic20iLCJtZWRpYVZhcmlhbnRDbGFzc2VzIiwiaWNvbiIsImltYWdlIiwiSXRlbUdyb3VwIiwiY2xhc3NOYW1lIiwicHJvcHMiLCJkaXYiLCJkYXRhLXNsb3QiLCJyb2xlIiwiSXRlbVNlcGFyYXRvciIsIm9yaWVudGF0aW9uIiwiSXRlbSIsImFzIiwiYXNDaGlsZCIsImNoaWxkcmVuIiwic2l6ZSIsInZhcmlhbnQiLCJJdGVtTWVkaWEiLCJkYXRhLXZhcmlhbnQiLCJJdGVtQ29udGVudCIsIkl0ZW1UaXRsZSIsIkl0ZW1EZXNjcmlwdGlvbiIsInAiLCJJdGVtQWN0aW9ucyIsIkl0ZW1IZWFkZXIiLCJJdGVtRm9vdGVyIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUUEsRUFBRSxRQUFPLGVBQWU7QUFFaEMsU0FBUUMsaUJBQWlCLFFBQU8seUNBQXlDO0FBQ3pFLFNBQVFDLFNBQVMsUUFBdUIsNEJBQTRCO0FBUXBFLE1BQU1DLHFCQUFrRDtJQUN0REMsU0FBUztJQUNUQyxPQUFPO0lBQ1BDLFNBQVM7QUFDWDtBQUVBLE1BQU1DLGtCQUE0QztJQUNoREgsU0FBUztJQUNUSSxJQUFJO0FBQ047QUFFQSxNQUFNQyxzQkFBd0Q7SUFDNURMLFNBQVM7SUFDVE0sTUFBTTtJQUNOQyxPQUFPO0FBQ1Q7QUFFQSxPQUFPLE1BQU1DLFlBQVksQ0FBQyxFQUFDQyxTQUFTLEVBQUUsR0FBR0MsT0FBc0MsaUJBQzdFLEtBQUNDO1FBQ0NGLFdBQVdiLEdBQUcsa0NBQWtDYTtRQUNoREcsYUFBVTtRQUNWQyxNQUFLO1FBQ0osR0FBR0gsS0FBSztPQUVYO0FBRUYsT0FBTyxNQUFNSSxnQkFBZ0IsQ0FBQyxFQUFDTCxTQUFTLEVBQUUsR0FBR0MsT0FBc0IsaUJBQ2pFLEtBQUNaO1FBQ0NXLFdBQVdiLEdBQUcsUUFBUWE7UUFDdEJHLGFBQVU7UUFDVkcsYUFBWTtRQUNYLEdBQUdMLEtBQUs7T0FFWDtBQVVGLE9BQU8sTUFBTU0sT0FBTyxDQUFDLEVBQ25CQyxFQUFFLEVBQ0ZDLFVBQVUsS0FBSyxFQUNmQyxRQUFRLEVBQ1JWLFNBQVMsRUFDVFcsT0FBTyxTQUFTLEVBQ2hCQyxVQUFVLFNBQVMsRUFDbkIsR0FBR1gsT0FDTyxHQUFLYixrQkFDZjtRQUNFb0IsSUFBSUEsTUFBTTtRQUNWQztRQUNBQztRQUNBVixXQUFXYixHQUNULG9PQUNBRyxrQkFBa0IsQ0FBQ3NCLFFBQVEsRUFDM0JsQixlQUFlLENBQUNpQixLQUFLLEVBQ3JCWDtRQUVGLEdBQUdDLEtBQUs7SUFDVixHQUNBO1FBQ0UsYUFBYVU7UUFDYixhQUFhO1FBQ2IsZ0JBQWdCQztJQUNsQixHQUNBO0FBTUYsT0FBTyxNQUFNQyxZQUFZLENBQUMsRUFDeEJiLFNBQVMsRUFDVFksVUFBVSxTQUFTLEVBQ25CLEdBQUdYLE9BQ1ksaUJBQ2YsS0FBQ0M7UUFDQ0YsV0FBV2IsR0FDVCwwRkFDQVMsbUJBQW1CLENBQUNnQixRQUFRLEVBQzVCWjtRQUVGRyxhQUFVO1FBQ1ZXLGdCQUFjRjtRQUNiLEdBQUdYLEtBQUs7T0FFWDtBQUVGLE9BQU8sTUFBTWMsY0FBYyxDQUFDLEVBQUNmLFNBQVMsRUFBRSxHQUFHQyxPQUFzQyxpQkFDL0UsS0FBQ0M7UUFDQ0YsV0FBV2IsR0FBRyxxRUFBcUVhO1FBQ25GRyxhQUFVO1FBQ1QsR0FBR0YsS0FBSztPQUVYO0FBRUYsT0FBTyxNQUFNZSxZQUFZLENBQUMsRUFBQ2hCLFNBQVMsRUFBRSxHQUFHQyxPQUFzQyxpQkFDN0UsS0FBQ0M7UUFDQ0YsV0FBV2IsR0FBRyxrRUFBa0VhO1FBQ2hGRyxhQUFVO1FBQ1QsR0FBR0YsS0FBSztPQUVYO0FBRUYsT0FBTyxNQUFNZ0Isa0JBQWtCLENBQUMsRUFBQ2pCLFNBQVMsRUFBRSxHQUFHQyxPQUE0QyxpQkFDekYsS0FBQ2lCO1FBQ0NsQixXQUFXYixHQUFHLHdKQUF3SmE7UUFDdEtHLGFBQVU7UUFDVCxHQUFHRixLQUFLO09BRVg7QUFFRixPQUFPLE1BQU1rQixjQUFjLENBQUMsRUFBQ25CLFNBQVMsRUFBRSxHQUFHQyxPQUFzQyxpQkFDL0UsS0FBQ0M7UUFDQ0YsV0FBV2IsR0FBRywyQkFBMkJhO1FBQ3pDRyxhQUFVO1FBQ1QsR0FBR0YsS0FBSztPQUVYO0FBRUYsT0FBTyxNQUFNbUIsYUFBYSxDQUFDLEVBQUNwQixTQUFTLEVBQUUsR0FBR0MsT0FBc0MsaUJBQzlFLEtBQUNDO1FBQ0NGLFdBQVdiLEdBQUcsc0RBQXNEYTtRQUNwRUcsYUFBVTtRQUNULEdBQUdGLEtBQUs7T0FFWDtBQUVGLE9BQU8sTUFBTW9CLGFBQWEsQ0FBQyxFQUFDckIsU0FBUyxFQUFFLEdBQUdDLE9BQXNDLGlCQUM5RSxLQUFDQztRQUNDRixXQUFXYixHQUFHLHNEQUFzRGE7UUFDcEVHLGFBQVU7UUFDVCxHQUFHRixLQUFLO09BRVgifQ==
|