@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,18 @@
|
|
|
1
|
+
import type { ComponentPropsWithoutRef, FC } from 'react';
|
|
2
|
+
export interface TableProps extends ComponentPropsWithoutRef<'div'> {
|
|
3
|
+
readonly bleed?: boolean;
|
|
4
|
+
readonly dense?: boolean;
|
|
5
|
+
readonly grid?: boolean;
|
|
6
|
+
readonly striped?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const Table: ({ bleed, children, className, dense, grid, striped, ...props }: TableProps) => import("react").JSX.Element;
|
|
9
|
+
export declare const TableHead: ({ className, ...props }: ComponentPropsWithoutRef<'thead'>) => import("react").JSX.Element;
|
|
10
|
+
export declare const TableBody: (props: ComponentPropsWithoutRef<'tbody'>) => import("react").JSX.Element;
|
|
11
|
+
export interface TableRowProps extends ComponentPropsWithoutRef<'tr'> {
|
|
12
|
+
readonly href?: string;
|
|
13
|
+
readonly target?: string;
|
|
14
|
+
readonly title?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const TableRow: FC<TableRowProps>;
|
|
17
|
+
export declare const TableHeader: FC<ComponentPropsWithoutRef<'th'>>;
|
|
18
|
+
export declare const TableCell: FC<ComponentPropsWithoutRef<'td'>>;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from '@nlabs/utils';
|
|
3
|
+
import { createContext, useMemo } from 'react';
|
|
4
|
+
const TableContext = /*#__PURE__*/ createContext({
|
|
5
|
+
bleed: false,
|
|
6
|
+
dense: false,
|
|
7
|
+
grid: false,
|
|
8
|
+
striped: false
|
|
9
|
+
});
|
|
10
|
+
const TableRowContext = /*#__PURE__*/ createContext({});
|
|
11
|
+
export const Table = ({ bleed = false, children, className, dense = false, grid = false, striped = false, ...props })=>{
|
|
12
|
+
const contextValue = useMemo(()=>({
|
|
13
|
+
bleed,
|
|
14
|
+
dense,
|
|
15
|
+
grid,
|
|
16
|
+
striped
|
|
17
|
+
}), [
|
|
18
|
+
bleed,
|
|
19
|
+
dense,
|
|
20
|
+
grid,
|
|
21
|
+
striped
|
|
22
|
+
]);
|
|
23
|
+
return /*#__PURE__*/ _jsx(TableContext.Provider, {
|
|
24
|
+
value: contextValue,
|
|
25
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
26
|
+
className: "flow-root",
|
|
27
|
+
"data-slot": "table-wrapper",
|
|
28
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
29
|
+
className: cn('-mx-4 overflow-x-auto whitespace-nowrap sm:-mx-6 lg:-mx-8', className),
|
|
30
|
+
...props,
|
|
31
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
32
|
+
className: cn('inline-block min-w-full align-middle', !bleed && 'px-4 sm:px-6 lg:px-8'),
|
|
33
|
+
children: /*#__PURE__*/ _jsx("table", {
|
|
34
|
+
className: "min-w-full text-left text-sm/6 text-foreground dark:text-foreground-dark",
|
|
35
|
+
children: children
|
|
36
|
+
})
|
|
37
|
+
})
|
|
38
|
+
})
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
export const TableHead = ({ className, ...props })=>/*#__PURE__*/ _jsx("thead", {
|
|
43
|
+
className: cn('text-muted-foreground dark:text-muted-foreground-dark', className),
|
|
44
|
+
"data-slot": "table-head",
|
|
45
|
+
...props
|
|
46
|
+
});
|
|
47
|
+
export const TableBody = (props)=>/*#__PURE__*/ _jsx("tbody", {
|
|
48
|
+
"data-slot": "table-body",
|
|
49
|
+
...props
|
|
50
|
+
});
|
|
51
|
+
export const TableRow = ({ className, href, target, title, ...props })=>{
|
|
52
|
+
const rowContext = useMemo(()=>({
|
|
53
|
+
href,
|
|
54
|
+
target,
|
|
55
|
+
title
|
|
56
|
+
}), [
|
|
57
|
+
href,
|
|
58
|
+
target,
|
|
59
|
+
title
|
|
60
|
+
]);
|
|
61
|
+
return /*#__PURE__*/ _jsx(TableContext.Consumer, {
|
|
62
|
+
children: ({ striped })=>/*#__PURE__*/ _jsx(TableRowContext.Provider, {
|
|
63
|
+
value: rowContext,
|
|
64
|
+
children: /*#__PURE__*/ _jsx("tr", {
|
|
65
|
+
className: cn(href && 'focus-within:outline-2 focus-within:-outline-offset-2 focus-within:outline-ring dark:focus-within:outline-ring-dark', striped && 'even:bg-muted/50 dark:even:bg-muted-dark/50', href && 'hover:bg-muted/60 dark:hover:bg-muted-dark/60', className),
|
|
66
|
+
"data-slot": "table-row",
|
|
67
|
+
...props
|
|
68
|
+
})
|
|
69
|
+
})
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
export const TableHeader = ({ className, ...props })=>/*#__PURE__*/ _jsx(TableContext.Consumer, {
|
|
73
|
+
children: ({ bleed, grid })=>/*#__PURE__*/ _jsx("th", {
|
|
74
|
+
className: cn('border-b border-border px-4 py-2 font-medium first:pl-4 last:pr-4 dark:border-border-dark', grid && 'border-l first:border-l-0', !bleed && 'sm:first:pl-0 sm:last:pr-0', className),
|
|
75
|
+
"data-slot": "table-header",
|
|
76
|
+
...props
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
export const TableCell = ({ children, className, ...props })=>/*#__PURE__*/ _jsx(TableContext.Consumer, {
|
|
80
|
+
children: ({ bleed, dense, grid, striped })=>/*#__PURE__*/ _jsx(TableRowContext.Consumer, {
|
|
81
|
+
children: ({ href, target, title })=>/*#__PURE__*/ _jsxs("td", {
|
|
82
|
+
className: cn('relative px-4 first:pl-4 last:pr-4', !striped && 'border-b border-border/70 dark:border-border-dark/70', grid && 'border-l first:border-l-0', dense ? 'py-2.5' : 'py-4', !bleed && 'sm:first:pl-0 sm:last:pr-0', className),
|
|
83
|
+
"data-slot": "table-cell",
|
|
84
|
+
...props,
|
|
85
|
+
children: [
|
|
86
|
+
href ? /*#__PURE__*/ _jsx("a", {
|
|
87
|
+
"aria-label": title,
|
|
88
|
+
className: "absolute inset-0 focus:outline-hidden",
|
|
89
|
+
"data-row-link": true,
|
|
90
|
+
href: href,
|
|
91
|
+
target: target
|
|
92
|
+
}) : null,
|
|
93
|
+
children
|
|
94
|
+
]
|
|
95
|
+
})
|
|
96
|
+
})
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL1RhYmxlL1RhYmxlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NufSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHtjcmVhdGVDb250ZXh0LCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHtDb21wb25lbnRQcm9wc1dpdGhvdXRSZWYsIEZDfSBmcm9tICdyZWFjdCc7XG5cbmludGVyZmFjZSBUYWJsZUNvbnRleHRWYWx1ZSB7XG4gIHJlYWRvbmx5IGJsZWVkOiBib29sZWFuO1xuICByZWFkb25seSBkZW5zZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZ3JpZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc3RyaXBlZDogYm9vbGVhbjtcbn1cblxuY29uc3QgVGFibGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxUYWJsZUNvbnRleHRWYWx1ZT4oe1xuICBibGVlZDogZmFsc2UsXG4gIGRlbnNlOiBmYWxzZSxcbiAgZ3JpZDogZmFsc2UsXG4gIHN0cmlwZWQ6IGZhbHNlXG59KTtcblxuY29uc3QgVGFibGVSb3dDb250ZXh0ID0gY3JlYXRlQ29udGV4dDx7XG4gIHJlYWRvbmx5IGhyZWY/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhcmdldD86IHN0cmluZztcbiAgcmVhZG9ubHkgdGl0bGU/OiBzdHJpbmc7XG59Pih7fSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVQcm9wcyBleHRlbmRzIENvbXBvbmVudFByb3BzV2l0aG91dFJlZjwnZGl2Jz4ge1xuICByZWFkb25seSBibGVlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRlbnNlPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZ3JpZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHN0cmlwZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgVGFibGUgPSAoe1xuICBibGVlZCA9IGZhbHNlLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBkZW5zZSA9IGZhbHNlLFxuICBncmlkID0gZmFsc2UsXG4gIHN0cmlwZWQgPSBmYWxzZSxcbiAgLi4ucHJvcHNcbn06IFRhYmxlUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dFZhbHVlID0gdXNlTWVtbygoKSA9PiAoe2JsZWVkLCBkZW5zZSwgZ3JpZCwgc3RyaXBlZH0pLCBbYmxlZWQsIGRlbnNlLCBncmlkLCBzdHJpcGVkXSk7XG4gIHJldHVybiAoXG4gICAgPFRhYmxlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dFZhbHVlfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxvdy1yb290XCIgZGF0YS1zbG90PVwidGFibGUtd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y24oJy1teC00IG92ZXJmbG93LXgtYXV0byB3aGl0ZXNwYWNlLW5vd3JhcCBzbTotbXgtNiBsZzotbXgtOCcsIGNsYXNzTmFtZSl9IHsuLi5wcm9wc30+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NuKCdpbmxpbmUtYmxvY2sgbWluLXctZnVsbCBhbGlnbi1taWRkbGUnLCAhYmxlZWQgJiYgJ3B4LTQgc206cHgtNiBsZzpweC04Jyl9PlxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzTmFtZT1cIm1pbi13LWZ1bGwgdGV4dC1sZWZ0IHRleHQtc20vNiB0ZXh0LWZvcmVncm91bmQgZGFyazp0ZXh0LWZvcmVncm91bmQtZGFya1wiPlxuICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvVGFibGVDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IFRhYmxlSGVhZCA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IENvbXBvbmVudFByb3BzV2l0aG91dFJlZjwndGhlYWQnPikgPT4gKFxuICA8dGhlYWRcbiAgICBjbGFzc05hbWU9e2NuKCd0ZXh0LW11dGVkLWZvcmVncm91bmQgZGFyazp0ZXh0LW11dGVkLWZvcmVncm91bmQtZGFyaycsIGNsYXNzTmFtZSl9XG4gICAgZGF0YS1zbG90PVwidGFibGUtaGVhZFwiXG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFRhYmxlQm9keSA9IChwcm9wczogQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPCd0Ym9keSc+KSA9PiAoXG4gIDx0Ym9keSBkYXRhLXNsb3Q9XCJ0YWJsZS1ib2R5XCIgey4uLnByb3BzfSAvPlxuKTtcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZVJvd1Byb3BzIGV4dGVuZHMgQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPCd0cic+IHtcbiAgcmVhZG9ubHkgaHJlZj86IHN0cmluZztcbiAgcmVhZG9ubHkgdGFyZ2V0Pzogc3RyaW5nO1xuICByZWFkb25seSB0aXRsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFRhYmxlUm93OiBGQzxUYWJsZVJvd1Byb3BzPiA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgaHJlZixcbiAgdGFyZ2V0LFxuICB0aXRsZSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3Qgcm93Q29udGV4dCA9IHVzZU1lbW8oKCkgPT4gKHtocmVmLCB0YXJnZXQsIHRpdGxlfSksIFtocmVmLCB0YXJnZXQsIHRpdGxlXSk7XG4gIHJldHVybiAoXG4gICAgPFRhYmxlQ29udGV4dC5Db25zdW1lcj5cbiAgICAgIHsoe3N0cmlwZWR9KSA9PiAoXG4gICAgICAgIDxUYWJsZVJvd0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3Jvd0NvbnRleHR9PlxuICAgICAgICAgIDx0clxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAgICAgaHJlZiAmJiAnZm9jdXMtd2l0aGluOm91dGxpbmUtMiBmb2N1cy13aXRoaW46LW91dGxpbmUtb2Zmc2V0LTIgZm9jdXMtd2l0aGluOm91dGxpbmUtcmluZyBkYXJrOmZvY3VzLXdpdGhpbjpvdXRsaW5lLXJpbmctZGFyaycsXG4gICAgICAgICAgICAgIHN0cmlwZWQgJiYgJ2V2ZW46YmctbXV0ZWQvNTAgZGFyazpldmVuOmJnLW11dGVkLWRhcmsvNTAnLFxuICAgICAgICAgICAgICBocmVmICYmICdob3ZlcjpiZy1tdXRlZC82MCBkYXJrOmhvdmVyOmJnLW11dGVkLWRhcmsvNjAnLFxuICAgICAgICAgICAgICBjbGFzc05hbWVcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICBkYXRhLXNsb3Q9XCJ0YWJsZS1yb3dcIlxuICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVGFibGVSb3dDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgKX1cbiAgICA8L1RhYmxlQ29udGV4dC5Db25zdW1lcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBUYWJsZUhlYWRlcjogRkM8Q29tcG9uZW50UHJvcHNXaXRob3V0UmVmPCd0aCc+PiA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn0pID0+IChcbiAgPFRhYmxlQ29udGV4dC5Db25zdW1lcj5cbiAgICB7KHtibGVlZCwgZ3JpZH0pID0+IChcbiAgICAgIDx0aFxuICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICdib3JkZXItYiBib3JkZXItYm9yZGVyIHB4LTQgcHktMiBmb250LW1lZGl1bSBmaXJzdDpwbC00IGxhc3Q6cHItNCBkYXJrOmJvcmRlci1ib3JkZXItZGFyaycsXG4gICAgICAgICAgZ3JpZCAmJiAnYm9yZGVyLWwgZmlyc3Q6Ym9yZGVyLWwtMCcsXG4gICAgICAgICAgIWJsZWVkICYmICdzbTpmaXJzdDpwbC0wIHNtOmxhc3Q6cHItMCcsXG4gICAgICAgICAgY2xhc3NOYW1lXG4gICAgICAgICl9XG4gICAgICAgIGRhdGEtc2xvdD1cInRhYmxlLWhlYWRlclwiXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgIC8+XG4gICAgKX1cbiAgPC9UYWJsZUNvbnRleHQuQ29uc3VtZXI+XG4pO1xuXG5leHBvcnQgY29uc3QgVGFibGVDZWxsOiBGQzxDb21wb25lbnRQcm9wc1dpdGhvdXRSZWY8J3RkJz4+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn0pID0+IChcbiAgPFRhYmxlQ29udGV4dC5Db25zdW1lcj5cbiAgICB7KHtibGVlZCwgZGVuc2UsIGdyaWQsIHN0cmlwZWR9KSA9PiAoXG4gICAgICA8VGFibGVSb3dDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICB7KHtocmVmLCB0YXJnZXQsIHRpdGxlfSkgPT4gKFxuICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAgICAgJ3JlbGF0aXZlIHB4LTQgZmlyc3Q6cGwtNCBsYXN0OnByLTQnLFxuICAgICAgICAgICAgICAhc3RyaXBlZCAmJiAnYm9yZGVyLWIgYm9yZGVyLWJvcmRlci83MCBkYXJrOmJvcmRlci1ib3JkZXItZGFyay83MCcsXG4gICAgICAgICAgICAgIGdyaWQgJiYgJ2JvcmRlci1sIGZpcnN0OmJvcmRlci1sLTAnLFxuICAgICAgICAgICAgICBkZW5zZSA/ICdweS0yLjUnIDogJ3B5LTQnLFxuICAgICAgICAgICAgICAhYmxlZWQgJiYgJ3NtOmZpcnN0OnBsLTAgc206bGFzdDpwci0wJyxcbiAgICAgICAgICAgICAgY2xhc3NOYW1lXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgZGF0YS1zbG90PVwidGFibGUtY2VsbFwiXG4gICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2hyZWYgPyAoXG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dGl0bGV9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCBmb2N1czpvdXRsaW5lLWhpZGRlblwiXG4gICAgICAgICAgICAgICAgZGF0YS1yb3ctbGlua1xuICAgICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICApfVxuICAgICAgPC9UYWJsZVJvd0NvbnRleHQuQ29uc3VtZXI+XG4gICAgKX1cbiAgPC9UYWJsZUNvbnRleHQuQ29uc3VtZXI+XG4pO1xuIl0sIm5hbWVzIjpbImNuIiwiY3JlYXRlQ29udGV4dCIsInVzZU1lbW8iLCJUYWJsZUNvbnRleHQiLCJibGVlZCIsImRlbnNlIiwiZ3JpZCIsInN0cmlwZWQiLCJUYWJsZVJvd0NvbnRleHQiLCJUYWJsZSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwicHJvcHMiLCJjb250ZXh0VmFsdWUiLCJQcm92aWRlciIsInZhbHVlIiwiZGl2IiwiZGF0YS1zbG90IiwidGFibGUiLCJUYWJsZUhlYWQiLCJ0aGVhZCIsIlRhYmxlQm9keSIsInRib2R5IiwiVGFibGVSb3ciLCJocmVmIiwidGFyZ2V0IiwidGl0bGUiLCJyb3dDb250ZXh0IiwiQ29uc3VtZXIiLCJ0ciIsIlRhYmxlSGVhZGVyIiwidGgiLCJUYWJsZUNlbGwiLCJ0ZCIsImEiLCJhcmlhLWxhYmVsIiwiZGF0YS1yb3ctbGluayJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVFBLEVBQUUsUUFBTyxlQUFlO0FBQ2hDLFNBQVFDLGFBQWEsRUFBRUMsT0FBTyxRQUFPLFFBQVE7QUFXN0MsTUFBTUMsNkJBQWVGLGNBQWlDO0lBQ3BERyxPQUFPO0lBQ1BDLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxTQUFTO0FBQ1g7QUFFQSxNQUFNQyxnQ0FBa0JQLGNBSXJCLENBQUM7QUFTSixPQUFPLE1BQU1RLFFBQVEsQ0FBQyxFQUNwQkwsUUFBUSxLQUFLLEVBQ2JNLFFBQVEsRUFDUkMsU0FBUyxFQUNUTixRQUFR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
|
|
@@ -0,0 +1,79 @@
|
|
|
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 { Badge } from '../Badge/Badge.js';
|
|
5
|
+
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from './Table.js';
|
|
6
|
+
const meta = {
|
|
7
|
+
component: Table,
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'padded'
|
|
10
|
+
},
|
|
11
|
+
title: 'Components/Table'
|
|
12
|
+
};
|
|
13
|
+
export default meta;
|
|
14
|
+
export const Default = {
|
|
15
|
+
args: {
|
|
16
|
+
striped: true
|
|
17
|
+
},
|
|
18
|
+
play: interactWithCanvas,
|
|
19
|
+
render: (args)=>/*#__PURE__*/ _jsxs(Table, {
|
|
20
|
+
...args,
|
|
21
|
+
children: [
|
|
22
|
+
/*#__PURE__*/ _jsx(TableHead, {
|
|
23
|
+
children: /*#__PURE__*/ _jsxs(TableRow, {
|
|
24
|
+
children: [
|
|
25
|
+
/*#__PURE__*/ _jsx(TableHeader, {
|
|
26
|
+
children: "Package"
|
|
27
|
+
}),
|
|
28
|
+
/*#__PURE__*/ _jsx(TableHeader, {
|
|
29
|
+
children: "Status"
|
|
30
|
+
}),
|
|
31
|
+
/*#__PURE__*/ _jsx(TableHeader, {
|
|
32
|
+
children: "Version"
|
|
33
|
+
})
|
|
34
|
+
]
|
|
35
|
+
})
|
|
36
|
+
}),
|
|
37
|
+
/*#__PURE__*/ _jsxs(TableBody, {
|
|
38
|
+
children: [
|
|
39
|
+
/*#__PURE__*/ _jsxs(TableRow, {
|
|
40
|
+
href: "#",
|
|
41
|
+
title: "Open GothamUI",
|
|
42
|
+
children: [
|
|
43
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
44
|
+
children: "GothamUI"
|
|
45
|
+
}),
|
|
46
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
47
|
+
children: /*#__PURE__*/ _jsx(Badge, {
|
|
48
|
+
variant: "secondary",
|
|
49
|
+
children: "Ready"
|
|
50
|
+
})
|
|
51
|
+
}),
|
|
52
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
53
|
+
children: "1.1.0"
|
|
54
|
+
})
|
|
55
|
+
]
|
|
56
|
+
}),
|
|
57
|
+
/*#__PURE__*/ _jsxs(TableRow, {
|
|
58
|
+
children: [
|
|
59
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
60
|
+
children: "ArkhamJS"
|
|
61
|
+
}),
|
|
62
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
63
|
+
children: /*#__PURE__*/ _jsx(Badge, {
|
|
64
|
+
variant: "outline",
|
|
65
|
+
children: "Peer"
|
|
66
|
+
})
|
|
67
|
+
}),
|
|
68
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
69
|
+
children: "3.31.9"
|
|
70
|
+
})
|
|
71
|
+
]
|
|
72
|
+
})
|
|
73
|
+
]
|
|
74
|
+
})
|
|
75
|
+
]
|
|
76
|
+
})
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL1RhYmxlL1RhYmxlLnN0b3JpZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2ludGVyYWN0V2l0aENhbnZhc30gZnJvbSAnLi4vLi4vdXRpbHMvc3RvcnlJbnRlcmFjdGlvbnMuanMnO1xuaW1wb3J0IHtCYWRnZX0gZnJvbSAnLi4vQmFkZ2UvQmFkZ2UuanMnO1xuaW1wb3J0IHtUYWJsZSwgVGFibGVCb2R5LCBUYWJsZUNlbGwsIFRhYmxlSGVhZCwgVGFibGVIZWFkZXIsIFRhYmxlUm93fSBmcm9tICcuL1RhYmxlLmpzJztcblxuaW1wb3J0IHR5cGUge01ldGEsIFN0b3J5T2JqfSBmcm9tICdAbmxhYnMvbGV4L3N0b3J5Ym9vayc7XG5cbmNvbnN0IG1ldGE6IE1ldGE8dHlwZW9mIFRhYmxlPiA9IHtcbiAgY29tcG9uZW50OiBUYWJsZSxcbiAgcGFyYW1ldGVyczoge1xuICAgIGxheW91dDogJ3BhZGRlZCdcbiAgfSxcbiAgdGl0bGU6ICdDb21wb25lbnRzL1RhYmxlJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbWV0YTtcblxudHlwZSBTdG9yeSA9IFN0b3J5T2JqPHR5cGVvZiBUYWJsZT47XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0OiBTdG9yeSA9IHtcbiAgYXJnczoge1xuICAgIHN0cmlwZWQ6IHRydWVcbiAgfSxcbiAgcGxheTogaW50ZXJhY3RXaXRoQ2FudmFzLFxuICByZW5kZXI6IChhcmdzKSA9PiAoXG4gICAgPFRhYmxlIHsuLi5hcmdzfT5cbiAgICAgIDxUYWJsZUhlYWQ+XG4gICAgICAgIDxUYWJsZVJvdz5cbiAgICAgICAgICA8VGFibGVIZWFkZXI+UGFja2FnZTwvVGFibGVIZWFkZXI+XG4gICAgICAgICAgPFRhYmxlSGVhZGVyPlN0YXR1czwvVGFibGVIZWFkZXI+XG4gICAgICAgICAgPFRhYmxlSGVhZGVyPlZlcnNpb248L1RhYmxlSGVhZGVyPlxuICAgICAgICA8L1RhYmxlUm93PlxuICAgICAgPC9UYWJsZUhlYWQ+XG4gICAgICA8VGFibGVCb2R5PlxuICAgICAgICA8VGFibGVSb3cgaHJlZj1cIiNcIiB0aXRsZT1cIk9wZW4gR290aGFtVUlcIj5cbiAgICAgICAgICA8VGFibGVDZWxsPkdvdGhhbVVJPC9UYWJsZUNlbGw+XG4gICAgICAgICAgPFRhYmxlQ2VsbD48QmFkZ2UgdmFyaWFudD1cInNlY29uZGFyeVwiPlJlYWR5PC9CYWRnZT48L1RhYmxlQ2VsbD5cbiAgICAgICAgICA8VGFibGVDZWxsPjEuMS4wPC9UYWJsZUNlbGw+XG4gICAgICAgIDwvVGFibGVSb3c+XG4gICAgICAgIDxUYWJsZVJvdz5cbiAgICAgICAgICA8VGFibGVDZWxsPkFya2hhbUpTPC9UYWJsZUNlbGw+XG4gICAgICAgICAgPFRhYmxlQ2VsbD48QmFkZ2UgdmFyaWFudD1cIm91dGxpbmVcIj5QZWVyPC9CYWRnZT48L1RhYmxlQ2VsbD5cbiAgICAgICAgICA8VGFibGVDZWxsPjMuMzEuOTwvVGFibGVDZWxsPlxuICAgICAgICA8L1RhYmxlUm93PlxuICAgICAgPC9UYWJsZUJvZHk+XG4gICAgPC9UYWJsZT5cbiAgKVxufTtcbiJdLCJuYW1lcyI6WyJSZWFjdCIsImludGVyYWN0V2l0aENhbnZhcyIsIkJhZGdlIiwiVGFibGUiLCJUYWJsZUJvZHkiLCJUYWJsZUNlbGwiLCJUYWJsZUhlYWQiLCJUYWJsZUhlYWRlciIsIlRhYmxlUm93IiwibWV0YSIsImNvbXBvbmVudCIsInBhcmFtZXRlcnMiLCJsYXlvdXQiLCJ0aXRsZSIsIkRlZmF1bHQiLCJhcmdzIiwic3RyaXBlZCIsInBsYXkiLCJyZW5kZXIiLCJocmVmIiwidmFyaWFudCJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLFdBQVcsUUFBUTtBQUMxQixTQUFRQyxrQkFBa0IsUUFBTyxtQ0FBbUM7QUFDcEUsU0FBUUMsS0FBSyxRQUFPLG9CQUFvQjtBQUN4QyxTQUFRQyxLQUFLLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxFQUFFQyxTQUFTLEVBQUVDLFdBQVcsRUFBRUMsUUFBUSxRQUFPLGFBQWE7QUFJekYsTUFBTUMsT0FBMkI7SUFDL0JDLFdBQVdQO0lBQ1hRLFlBQVk7UUFDVkMsUUFBUTtJQUNWO0lBQ0FDLE9BQU87QUFDVDtBQUVBLGVBQWVKLEtBQUs7QUFJcEIsT0FBTyxNQUFNSyxVQUFpQjtJQUM1QkMsTUFBTTtRQUNKQyxTQUFTO0lBQ1g7SUFDQUMsTUFBTWhCO0lBQ05pQixRQUFRLENBQUNILHFCQUNQLE1BQUNaO1lBQU8sR0FBR1ksSUFBSTs7OEJBQ2IsS0FBQ1Q7OEJBQ0MsY0FBQSxNQUFDRTs7MENBQ0MsS0FBQ0Q7MENBQVk7OzBDQUNiLEtBQUNBOzBDQUFZOzswQ0FDYixLQUFDQTswQ0FBWTs7Ozs7OEJBR2pCLE1BQUNIOztzQ0FDQyxNQUFDSTs0QkFBU1csTUFBSzs0QkFBSU4sT0FBTTs7OENBQ3ZCLEtBQUNSOzhDQUFVOzs4Q0FDWCxLQUFDQTs4Q0FBVSxjQUFBLEtBQUNIO3dDQUFNa0IsU0FBUTtrREFBWTs7OzhDQUN0QyxLQUFDZjs4Q0FBVTs7OztzQ0FFYixNQUFDRzs7OENBQ0MsS0FBQ0g7OENBQVU7OzhDQUNYLEtBQUNBOzhDQUFVLGNBQUEsS0FBQ0g7d0NBQU1rQixTQUFRO2tEQUFVOzs7OENBQ3BDLEtBQUNmOzhDQUFVOzs7Ozs7OztBQUtyQixFQUFFIn0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'react';
|
|
2
|
+
export interface TabItem {
|
|
3
|
+
readonly current?: boolean;
|
|
4
|
+
readonly disabled?: boolean;
|
|
5
|
+
readonly href?: string;
|
|
6
|
+
readonly id?: string;
|
|
7
|
+
readonly label: string;
|
|
8
|
+
}
|
|
9
|
+
export interface TabsProps extends HTMLAttributes<HTMLDivElement> {
|
|
10
|
+
readonly ariaLabel?: string;
|
|
11
|
+
readonly items: TabItem[];
|
|
12
|
+
readonly onTabChange?: (item: TabItem) => void;
|
|
13
|
+
readonly variant?: 'underline' | 'pills';
|
|
14
|
+
}
|
|
15
|
+
declare const TabsComponent: ({ ariaLabel, className, items, onTabChange, variant, ...props }: TabsProps) => import("react").JSX.Element;
|
|
16
|
+
export declare const Tabs: import("react").MemoExoticComponent<typeof TabsComponent>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from '@nlabs/utils';
|
|
3
|
+
import { ChevronDown } from 'lucide-react';
|
|
4
|
+
import { memo } from 'react';
|
|
5
|
+
const getTabClasses = (current, variant)=>{
|
|
6
|
+
if (variant === 'pills') {
|
|
7
|
+
return current ? 'bg-primary text-primary-foreground' : 'text-muted-foreground hover:bg-muted hover:text-foreground dark:text-muted-foreground-dark dark:hover:bg-muted-dark dark:hover:text-foreground-dark';
|
|
8
|
+
}
|
|
9
|
+
return current ? 'border-primary text-primary dark:border-primary-dark dark:text-primary-dark' : 'border-transparent text-muted-foreground hover:border-border hover:text-foreground dark:text-muted-foreground-dark dark:hover:border-border-dark dark:hover:text-foreground-dark';
|
|
10
|
+
};
|
|
11
|
+
const TabsComponent = ({ ariaLabel = 'Tabs', className, items, onTabChange, variant = 'underline', ...props })=>{
|
|
12
|
+
const currentItem = items.find((item)=>item.current) ?? items[0];
|
|
13
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
14
|
+
className: className,
|
|
15
|
+
"data-slot": "tabs",
|
|
16
|
+
...props,
|
|
17
|
+
children: [
|
|
18
|
+
/*#__PURE__*/ _jsx(MobileTabSelect, {
|
|
19
|
+
"aria-label": ariaLabel,
|
|
20
|
+
currentItem: currentItem,
|
|
21
|
+
items: items,
|
|
22
|
+
onTabChange: onTabChange
|
|
23
|
+
}),
|
|
24
|
+
/*#__PURE__*/ _jsx("div", {
|
|
25
|
+
className: "hidden sm:block",
|
|
26
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
27
|
+
className: cn(variant === 'underline' && 'border-b border-border dark:border-border-dark'),
|
|
28
|
+
children: /*#__PURE__*/ _jsx("nav", {
|
|
29
|
+
"aria-label": ariaLabel,
|
|
30
|
+
className: cn(variant === 'underline' ? '-mb-px flex gap-8' : 'flex gap-1 rounded-md bg-muted p-1 dark:bg-muted-dark'),
|
|
31
|
+
children: items.map((item)=>{
|
|
32
|
+
const current = item.id === currentItem?.id || item.label === currentItem?.label;
|
|
33
|
+
const commonClasses = cn('whitespace-nowrap text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50', variant === 'underline' ? 'border-b-2 px-1 py-4' : 'rounded-md px-3 py-2', getTabClasses(current, variant));
|
|
34
|
+
if (item.href) {
|
|
35
|
+
return /*#__PURE__*/ _jsx("a", {
|
|
36
|
+
"aria-current": current ? 'page' : undefined,
|
|
37
|
+
className: commonClasses,
|
|
38
|
+
href: item.href,
|
|
39
|
+
children: item.label
|
|
40
|
+
}, item.id ?? item.label);
|
|
41
|
+
}
|
|
42
|
+
return /*#__PURE__*/ _jsx("button", {
|
|
43
|
+
"aria-current": current ? 'page' : undefined,
|
|
44
|
+
className: commonClasses,
|
|
45
|
+
disabled: item.disabled,
|
|
46
|
+
onClick: ()=>onTabChange?.(item),
|
|
47
|
+
type: "button",
|
|
48
|
+
children: item.label
|
|
49
|
+
}, item.id ?? item.label);
|
|
50
|
+
})
|
|
51
|
+
})
|
|
52
|
+
})
|
|
53
|
+
})
|
|
54
|
+
]
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
const MobileTabSelect = ({ currentItem, items, onTabChange, ...props })=>/*#__PURE__*/ _jsxs("div", {
|
|
58
|
+
className: "grid grid-cols-1 sm:hidden",
|
|
59
|
+
children: [
|
|
60
|
+
/*#__PURE__*/ _jsx("select", {
|
|
61
|
+
className: "col-start-1 row-start-1 w-full appearance-none rounded-md bg-card py-2 pr-8 pl-3 text-base text-card-foreground outline-1 -outline-offset-1 outline-border focus:outline-2 focus:-outline-offset-2 focus:outline-ring dark:bg-card-dark dark:text-card-foreground-dark dark:outline-border-dark dark:focus:outline-ring-dark",
|
|
62
|
+
defaultValue: currentItem?.id ?? currentItem?.label,
|
|
63
|
+
onChange: (event)=>{
|
|
64
|
+
const nextItem = items.find((item)=>(item.id ?? item.label) === event.currentTarget.value);
|
|
65
|
+
if (nextItem) {
|
|
66
|
+
onTabChange?.(nextItem);
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
...props,
|
|
70
|
+
children: items.map((item)=>/*#__PURE__*/ _jsx("option", {
|
|
71
|
+
disabled: item.disabled,
|
|
72
|
+
value: item.id ?? item.label,
|
|
73
|
+
children: item.label
|
|
74
|
+
}, item.id ?? item.label))
|
|
75
|
+
}),
|
|
76
|
+
/*#__PURE__*/ _jsx(ChevronDown, {
|
|
77
|
+
"aria-hidden": "true",
|
|
78
|
+
className: "pointer-events-none col-start-1 row-start-1 mr-2 size-5 self-center justify-self-end text-muted-foreground dark:text-muted-foreground-dark"
|
|
79
|
+
})
|
|
80
|
+
]
|
|
81
|
+
});
|
|
82
|
+
export const Tabs = /*#__PURE__*/ memo(TabsComponent);
|
|
83
|
+
Tabs.displayName = 'Tabs';
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL1RhYnMvVGFicy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjbn0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7Q2hldnJvbkRvd259IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQge21lbW99IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUge0hUTUxBdHRyaWJ1dGVzLCBTZWxlY3RIVE1MQXR0cmlidXRlc30gZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhYkl0ZW0ge1xuICByZWFkb25seSBjdXJyZW50PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGlzYWJsZWQ/OiBib29sZWFuO1xuICByZWFkb25seSBocmVmPzogc3RyaW5nO1xuICByZWFkb25seSBpZD86IHN0cmluZztcbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJzUHJvcHMgZXh0ZW5kcyBIVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4ge1xuICByZWFkb25seSBhcmlhTGFiZWw/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGl0ZW1zOiBUYWJJdGVtW107XG4gIHJlYWRvbmx5IG9uVGFiQ2hhbmdlPzogKGl0ZW06IFRhYkl0ZW0pID0+IHZvaWQ7XG4gIHJlYWRvbmx5IHZhcmlhbnQ/OiAndW5kZXJsaW5lJyB8ICdwaWxscyc7XG59XG5cbmNvbnN0IGdldFRhYkNsYXNzZXMgPSAoY3VycmVudDogYm9vbGVhbiwgdmFyaWFudDogVGFic1Byb3BzWyd2YXJpYW50J10pID0+IHtcbiAgaWYodmFyaWFudCA9PT0gJ3BpbGxzJykge1xuICAgIHJldHVybiBjdXJyZW50XG4gICAgICA/ICdiZy1wcmltYXJ5IHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kJ1xuICAgICAgOiAndGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGhvdmVyOmJnLW11dGVkIGhvdmVyOnRleHQtZm9yZWdyb3VuZCBkYXJrOnRleHQtbXV0ZWQtZm9yZWdyb3VuZC1kYXJrIGRhcms6aG92ZXI6YmctbXV0ZWQtZGFyayBkYXJrOmhvdmVyOnRleHQtZm9yZWdyb3VuZC1kYXJrJztcbiAgfVxuXG4gIHJldHVybiBjdXJyZW50XG4gICAgPyAnYm9yZGVyLXByaW1hcnkgdGV4dC1wcmltYXJ5IGRhcms6Ym9yZGVyLXByaW1hcnktZGFyayBkYXJrOnRleHQtcHJpbWFyeS1kYXJrJ1xuICAgIDogJ2JvcmRlci10cmFuc3BhcmVudCB0ZXh0LW11dGVkLWZvcmVncm91bmQgaG92ZXI6Ym9yZGVyLWJvcmRlciBob3Zlcjp0ZXh0LWZvcmVncm91bmQgZGFyazp0ZXh0LW11dGVkLWZvcmVncm91bmQtZGFyayBkYXJrOmhvdmVyOmJvcmRlci1ib3JkZXItZGFyayBkYXJrOmhvdmVyOnRleHQtZm9yZWdyb3VuZC1kYXJrJztcbn07XG5cbmNvbnN0IFRhYnNDb21wb25lbnQgPSAoe1xuICBhcmlhTGFiZWwgPSAnVGFicycsXG4gIGNsYXNzTmFtZSxcbiAgaXRlbXMsXG4gIG9uVGFiQ2hhbmdlLFxuICB2YXJpYW50ID0gJ3VuZGVybGluZScsXG4gIC4uLnByb3BzXG59OiBUYWJzUHJvcHMpID0+IHtcbiAgY29uc3QgY3VycmVudEl0ZW0gPSBpdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmN1cnJlbnQpID8/IGl0ZW1zWzBdO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZX0gZGF0YS1zbG90PVwidGFic1wiIHsuLi5wcm9wc30+XG4gICAgICA8TW9iaWxlVGFiU2VsZWN0XG4gICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbH1cbiAgICAgICAgY3VycmVudEl0ZW09e2N1cnJlbnRJdGVtfVxuICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgIG9uVGFiQ2hhbmdlPXtvblRhYkNoYW5nZX1cbiAgICAgIC8+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImhpZGRlbiBzbTpibG9ja1wiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y24odmFyaWFudCA9PT0gJ3VuZGVybGluZScgJiYgJ2JvcmRlci1iIGJvcmRlci1ib3JkZXIgZGFyazpib3JkZXItYm9yZGVyLWRhcmsnKX0+XG4gICAgICAgICAgPG5hdiBhcmlhLWxhYmVsPXthcmlhTGFiZWx9IGNsYXNzTmFtZT17Y24odmFyaWFudCA9PT0gJ3VuZGVybGluZScgPyAnLW1iLXB4IGZsZXggZ2FwLTgnIDogJ2ZsZXggZ2FwLTEgcm91bmRlZC1tZCBiZy1tdXRlZCBwLTEgZGFyazpiZy1tdXRlZC1kYXJrJyl9PlxuICAgICAgICAgICAge2l0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gaXRlbS5pZCA9PT0gY3VycmVudEl0ZW0/LmlkIHx8IGl0ZW0ubGFiZWwgPT09IGN1cnJlbnRJdGVtPy5sYWJlbDtcbiAgICAgICAgICAgICAgY29uc3QgY29tbW9uQ2xhc3NlcyA9IGNuKFxuICAgICAgICAgICAgICAgICd3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tY29sb3JzIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6b3BhY2l0eS01MCcsXG4gICAgICAgICAgICAgICAgdmFyaWFudCA9PT0gJ3VuZGVybGluZScgPyAnYm9yZGVyLWItMiBweC0xIHB5LTQnIDogJ3JvdW5kZWQtbWQgcHgtMyBweS0yJyxcbiAgICAgICAgICAgICAgICBnZXRUYWJDbGFzc2VzKGN1cnJlbnQsIHZhcmlhbnQpXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgaWYoaXRlbS5ocmVmKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtY3VycmVudD17Y3VycmVudCA/ICdwYWdlJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjb21tb25DbGFzc2VzfVxuICAgICAgICAgICAgICAgICAgICBocmVmPXtpdGVtLmhyZWZ9XG4gICAgICAgICAgICAgICAgICAgIGtleT17aXRlbS5pZCA/PyBpdGVtLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7aXRlbS5sYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWN1cnJlbnQ9e2N1cnJlbnQgPyAncGFnZScgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NvbW1vbkNsYXNzZXN9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXRlbS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIGtleT17aXRlbS5pZCA/PyBpdGVtLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25UYWJDaGFuZ2U/LihpdGVtKX1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtpdGVtLmxhYmVsfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9uYXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5pbnRlcmZhY2UgTW9iaWxlVGFiU2VsZWN0UHJvcHMgZXh0ZW5kcyBPbWl0PFNlbGVjdEhUTUxBdHRyaWJ1dGVzPEhUTUxTZWxlY3RFbGVtZW50PiwgJ29uQ2hhbmdlJz4ge1xuICByZWFkb25seSBjdXJyZW50SXRlbT86IFRhYkl0ZW07XG4gIHJlYWRvbmx5IGl0ZW1zOiBUYWJJdGVtW107XG4gIHJlYWRvbmx5IG9uVGFiQ2hhbmdlPzogKGl0ZW06IFRhYkl0ZW0pID0+IHZvaWQ7XG59XG5cbmNvbnN0IE1vYmlsZVRhYlNlbGVjdCA9ICh7XG4gIGN1cnJlbnRJdGVtLFxuICBpdGVtcyxcbiAgb25UYWJDaGFuZ2UsXG4gIC4uLnByb3BzXG59OiBNb2JpbGVUYWJTZWxlY3RQcm9wcykgPT4gKFxuICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgc206aGlkZGVuXCI+XG4gICAgPHNlbGVjdFxuICAgICAgY2xhc3NOYW1lPVwiY29sLXN0YXJ0LTEgcm93LXN0YXJ0LTEgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSByb3VuZGVkLW1kIGJnLWNhcmQgcHktMiBwci04IHBsLTMgdGV4dC1iYXNlIHRleHQtY2FyZC1mb3JlZ3JvdW5kIG91dGxpbmUtMSAtb3V0bGluZS1vZmZzZXQtMSBvdXRsaW5lLWJvcmRlciBmb2N1czpvdXRsaW5lLTIgZm9jdXM6LW91dGxpbmUtb2Zmc2V0LTIgZm9jdXM6b3V0bGluZS1yaW5nIGRhcms6YmctY2FyZC1kYXJrIGRhcms6dGV4dC1jYXJkLWZvcmVncm91bmQtZGFyayBkYXJrOm91dGxpbmUtYm9yZGVyLWRhcmsgZGFyazpmb2N1czpvdXRsaW5lLXJpbmctZGFya1wiXG4gICAgICBkZWZhdWx0VmFsdWU9e2N1cnJlbnRJdGVtPy5pZCA/PyBjdXJyZW50SXRlbT8ubGFiZWx9XG4gICAgICBvbkNoYW5nZT17KGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRJdGVtID0gaXRlbXMuZmluZCgoaXRlbSkgPT4gKGl0ZW0uaWQgPz8gaXRlbS5sYWJlbCkgPT09IGV2ZW50LmN1cnJlbnRUYXJnZXQudmFsdWUpO1xuICAgICAgICBpZihuZXh0SXRlbSkge1xuICAgICAgICAgIG9uVGFiQ2hhbmdlPy4obmV4dEl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9fVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHtpdGVtcy5tYXAoKGl0ZW0pID0+IChcbiAgICAgICAgPG9wdGlvbiBkaXNhYmxlZD17aXRlbS5kaXNhYmxlZH0ga2V5PXtpdGVtLmlkID8/IGl0ZW0ubGFiZWx9IHZhbHVlPXtpdGVtLmlkID8/IGl0ZW0ubGFiZWx9PlxuICAgICAgICAgIHtpdGVtLmxhYmVsfVxuICAgICAgICA8L29wdGlvbj5cbiAgICAgICkpfVxuICAgIDwvc2VsZWN0PlxuICAgIDxDaGV2cm9uRG93blxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgIGNsYXNzTmFtZT1cInBvaW50ZXItZXZlbnRzLW5vbmUgY29sLXN0YXJ0LTEgcm93LXN0YXJ0LTEgbXItMiBzaXplLTUgc2VsZi1jZW50ZXIganVzdGlmeS1zZWxmLWVuZCB0ZXh0LW11dGVkLWZvcmVncm91bmQgZGFyazp0ZXh0LW11dGVkLWZvcmVncm91bmQtZGFya1wiXG4gICAgLz5cbiAgPC9kaXY+XG4pO1xuXG5leHBvcnQgY29uc3QgVGFicyA9IG1lbW8oVGFic0NvbXBvbmVudCk7XG5UYWJzLmRpc3BsYXlOYW1lID0gJ1RhYnMnO1xuIl0sIm5hbWVzIjpbImNuIiwiQ2hldnJvbkRvd24iLCJtZW1vIiwiZ2V0VGFiQ2xhc3NlcyIsImN1cnJlbnQiLCJ2YXJpYW50IiwiVGFic0NvbXBvbmVudCIsImFyaWFMYWJlbCIsImNsYXNzTmFtZSIsIml0ZW1zIiwib25UYWJDaGFuZ2UiLCJwcm9wcyIsImN1cnJlbnRJdGVtIiwiZmluZCIsIml0ZW0iLCJkaXYiLCJkYXRhLXNsb3QiLCJNb2JpbGVUYWJTZWxlY3QiLCJhcmlhLWxhYmVsIiwibmF2IiwibWFwIiwiaWQiLCJsYWJlbCIsImNvbW1vbkNsYXNzZXMiLCJocmVmIiwiYSIsImFyaWEtY3VycmVudCIsInVuZGVmaW5lZCIsImJ1dHRvbiIsImRpc2FibGVkIiwib25DbGljayIsInR5cGUiLCJzZWxlY3QiLCJkZWZhdWx0VmFsdWUiLCJvbkNoYW5nZSIsImV2ZW50IiwibmV4dEl0ZW0iLCJj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
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { interactWithCanvas } from '../../utils/storyInteractions.js';
|
|
2
|
+
import { Tabs } from './Tabs.js';
|
|
3
|
+
const items = [
|
|
4
|
+
{
|
|
5
|
+
id: 'account',
|
|
6
|
+
label: 'Account'
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
id: 'company',
|
|
10
|
+
label: 'Company'
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
current: true,
|
|
14
|
+
id: 'team',
|
|
15
|
+
label: 'Team'
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
id: 'billing',
|
|
19
|
+
label: 'Billing'
|
|
20
|
+
}
|
|
21
|
+
];
|
|
22
|
+
const meta = {
|
|
23
|
+
component: Tabs,
|
|
24
|
+
parameters: {
|
|
25
|
+
layout: 'padded'
|
|
26
|
+
},
|
|
27
|
+
title: 'Application UI/Navigation/Tabs'
|
|
28
|
+
};
|
|
29
|
+
export default meta;
|
|
30
|
+
export const Underline = {
|
|
31
|
+
args: {
|
|
32
|
+
items,
|
|
33
|
+
variant: 'underline'
|
|
34
|
+
},
|
|
35
|
+
play: interactWithCanvas
|
|
36
|
+
};
|
|
37
|
+
export const Pills = {
|
|
38
|
+
args: {
|
|
39
|
+
items,
|
|
40
|
+
variant: 'pills'
|
|
41
|
+
},
|
|
42
|
+
play: interactWithCanvas
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL1RhYnMvVGFicy5zdG9yaWVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2ludGVyYWN0V2l0aENhbnZhc30gZnJvbSAnLi4vLi4vdXRpbHMvc3RvcnlJbnRlcmFjdGlvbnMuanMnO1xuaW1wb3J0IHtUYWJzfSBmcm9tICcuL1RhYnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7TWV0YSwgU3RvcnlPYmp9IGZyb20gJ0BubGFicy9sZXgvc3Rvcnlib29rJztcblxuY29uc3QgaXRlbXMgPSBbXG4gIHtpZDogJ2FjY291bnQnLCBsYWJlbDogJ0FjY291bnQnfSxcbiAge2lkOiAnY29tcGFueScsIGxhYmVsOiAnQ29tcGFueSd9LFxuICB7Y3VycmVudDogdHJ1ZSwgaWQ6ICd0ZWFtJywgbGFiZWw6ICdUZWFtJ30sXG4gIHtpZDogJ2JpbGxpbmcnLCBsYWJlbDogJ0JpbGxpbmcnfVxuXTtcblxuY29uc3QgbWV0YTogTWV0YTx0eXBlb2YgVGFicz4gPSB7XG4gIGNvbXBvbmVudDogVGFicyxcbiAgcGFyYW1ldGVyczoge1xuICAgIGxheW91dDogJ3BhZGRlZCdcbiAgfSxcbiAgdGl0bGU6ICdBcHBsaWNhdGlvbiBVSS9OYXZpZ2F0aW9uL1RhYnMnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBtZXRhO1xuXG50eXBlIFN0b3J5ID0gU3RvcnlPYmo8dHlwZW9mIFRhYnM+O1xuXG5leHBvcnQgY29uc3QgVW5kZXJsaW5lOiBTdG9yeSA9IHtcbiAgYXJnczoge1xuICAgIGl0ZW1zLFxuICAgIHZhcmlhbnQ6ICd1bmRlcmxpbmUnXG4gIH0sXG4gIHBsYXk6IGludGVyYWN0V2l0aENhbnZhc1xufTtcblxuZXhwb3J0IGNvbnN0IFBpbGxzOiBTdG9yeSA9IHtcbiAgYXJnczoge1xuICAgIGl0ZW1zLFxuICAgIHZhcmlhbnQ6ICdwaWxscydcbiAgfSxcbiAgcGxheTogaW50ZXJhY3RXaXRoQ2FudmFzXG59O1xuIl0sIm5hbWVzIjpbImludGVyYWN0V2l0aENhbnZhcyIsIlRhYnMiLCJpdGVtcyIsImlkIiwibGFiZWwiLCJjdXJyZW50IiwibWV0YSIsImNvbXBvbmVudCIsInBhcmFtZXRlcnMiLCJsYXlvdXQiLCJ0aXRsZSIsIlVuZGVybGluZSIsImFyZ3MiLCJ2YXJpYW50IiwicGxheSIsIlBpbGxzIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxrQkFBa0IsUUFBTyxtQ0FBbUM7QUFDcEUsU0FBUUMsSUFBSSxRQUFPLFlBQVk7QUFJL0IsTUFBTUMsUUFBUTtJQUNaO1FBQUNDLElBQUk7UUFBV0MsT0FBTztJQUFTO0lBQ2hDO1FBQUNELElBQUk7UUFBV0MsT0FBTztJQUFTO0lBQ2hDO1FBQUNDLFNBQVM7UUFBTUYsSUFBSTtRQUFRQyxPQUFPO0lBQU07SUFDekM7UUFBQ0QsSUFBSTtRQUFXQyxPQUFPO0lBQVM7Q0FDakM7QUFFRCxNQUFNRSxPQUEwQjtJQUM5QkMsV0FBV047SUFDWE8sWUFBWTtRQUNWQyxRQUFRO0lBQ1Y7SUFDQUMsT0FBTztBQUNUO0FBRUEsZUFBZUosS0FBSztBQUlwQixPQUFPLE1BQU1LLFlBQW1CO0lBQzlCQyxNQUFNO1FBQ0pWO1FBQ0FXLFNBQVM7SUFDWDtJQUNBQyxNQUFNZDtBQUNSLEVBQUU7QUFFRixPQUFPLE1BQU1lLFFBQWU7SUFDMUJILE1BQU07UUFDSlY7UUFDQVcsU0FBUztJQUNYO0lBQ0FDLE1BQU1kO0FBQ1IsRUFBRSJ9
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AnchorHTMLAttributes, ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
export declare const Text: ({ className, ...props }: ComponentPropsWithoutRef<'p'>) => import("react").JSX.Element;
|
|
3
|
+
export declare const TextLink: ({ className, ...props }: AnchorHTMLAttributes<HTMLAnchorElement>) => import("react").JSX.Element;
|
|
4
|
+
export declare const Strong: ({ className, ...props }: ComponentPropsWithoutRef<'strong'>) => import("react").JSX.Element;
|
|
5
|
+
export declare const Code: ({ className, ...props }: ComponentPropsWithoutRef<'code'>) => import("react").JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from '@nlabs/utils';
|
|
3
|
+
export const Text = ({ className, ...props })=>/*#__PURE__*/ _jsx("p", {
|
|
4
|
+
className: cn('text-base/6 text-muted-foreground sm:text-sm/6 dark:text-muted-foreground-dark', className),
|
|
5
|
+
"data-slot": "text",
|
|
6
|
+
...props
|
|
7
|
+
});
|
|
8
|
+
export const TextLink = ({ className, ...props })=>/*#__PURE__*/ _jsx("a", {
|
|
9
|
+
className: cn('font-medium text-link underline decoration-link/40 underline-offset-4 hover:text-link-700 hover:decoration-link dark:text-link-dark dark:decoration-link-dark/40 dark:hover:text-link-dark-300', className),
|
|
10
|
+
"data-slot": "text-link",
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
13
|
+
export const Strong = ({ className, ...props })=>/*#__PURE__*/ _jsx("strong", {
|
|
14
|
+
className: cn('font-medium text-foreground dark:text-foreground-dark', className),
|
|
15
|
+
"data-slot": "strong",
|
|
16
|
+
...props
|
|
17
|
+
});
|
|
18
|
+
export const Code = ({ className, ...props })=>/*#__PURE__*/ _jsx("code", {
|
|
19
|
+
className: cn('rounded-sm border border-border bg-muted px-1 py-0.5 text-sm font-medium text-foreground dark:border-border-dark dark:bg-muted-dark dark:text-foreground-dark', className),
|
|
20
|
+
"data-slot": "code",
|
|
21
|
+
...props
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL1RleHQvVGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjbn0gZnJvbSAnQG5sYWJzL3V0aWxzJztcblxuaW1wb3J0IHR5cGUge0FuY2hvckhUTUxBdHRyaWJ1dGVzLCBDb21wb25lbnRQcm9wc1dpdGhvdXRSZWZ9IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGNvbnN0IFRleHQgPSAoe1xuICBjbGFzc05hbWUsXG4gIC4uLnByb3BzXG59OiBDb21wb25lbnRQcm9wc1dpdGhvdXRSZWY8J3AnPikgPT4gKFxuICA8cFxuICAgIGNsYXNzTmFtZT17Y24oJ3RleHQtYmFzZS82IHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBzbTp0ZXh0LXNtLzYgZGFyazp0ZXh0LW11dGVkLWZvcmVncm91bmQtZGFyaycsIGNsYXNzTmFtZSl9XG4gICAgZGF0YS1zbG90PVwidGV4dFwiXG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFRleHRMaW5rID0gKHtcbiAgY2xhc3NOYW1lLFxuICAuLi5wcm9wc1xufTogQW5jaG9ySFRNTEF0dHJpYnV0ZXM8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiAoXG4gIDxhXG4gICAgY2xhc3NOYW1lPXtjbignZm9udC1tZWRpdW0gdGV4dC1saW5rIHVuZGVybGluZSBkZWNvcmF0aW9uLWxpbmsvNDAgdW5kZXJsaW5lLW9mZnNldC00IGhvdmVyOnRleHQtbGluay03MDAgaG92ZXI6ZGVjb3JhdGlvbi1saW5rIGRhcms6dGV4dC1saW5rLWRhcmsgZGFyazpkZWNvcmF0aW9uLWxpbmstZGFyay80MCBkYXJrOmhvdmVyOnRleHQtbGluay1kYXJrLTMwMCcsIGNsYXNzTmFtZSl9XG4gICAgZGF0YS1zbG90PVwidGV4dC1saW5rXCJcbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pO1xuXG5leHBvcnQgY29uc3QgU3Ryb25nID0gKHtcbiAgY2xhc3NOYW1lLFxuICAuLi5wcm9wc1xufTogQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPCdzdHJvbmcnPikgPT4gKFxuICA8c3Ryb25nXG4gICAgY2xhc3NOYW1lPXtjbignZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kIGRhcms6dGV4dC1mb3JlZ3JvdW5kLWRhcmsnLCBjbGFzc05hbWUpfVxuICAgIGRhdGEtc2xvdD1cInN0cm9uZ1wiXG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IENvZGUgPSAoe1xuICBjbGFzc05hbWUsXG4gIC4uLnByb3BzXG59OiBDb21wb25lbnRQcm9wc1dpdGhvdXRSZWY8J2NvZGUnPikgPT4gKFxuICA8Y29kZVxuICAgIGNsYXNzTmFtZT17Y24oJ3JvdW5kZWQtc20gYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctbXV0ZWQgcHgtMSBweS0wLjUgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmQgZGFyazpib3JkZXItYm9yZGVyLWRhcmsgZGFyazpiZy1tdXRlZC1kYXJrIGRhcms6dGV4dC1mb3JlZ3JvdW5kLWRhcmsnLCBjbGFzc05hbWUpfVxuICAgIGRhdGEtc2xvdD1cImNvZGVcIlxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG4iXSwibmFtZXMiOlsiY24iLCJUZXh0IiwiY2xhc3NOYW1lIiwicHJvcHMiLCJwIiwiZGF0YS1zbG90IiwiVGV4dExpbmsiLCJhIiwiU3Ryb25nIiwic3Ryb25nIiwiQ29kZSIsImNvZGUiXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFRQSxFQUFFLFFBQU8sZUFBZTtBQUloQyxPQUFPLE1BQU1DLE9BQU8sQ0FBQyxFQUNuQkMsU0FBUyxFQUNULEdBQUdDLE9BQzJCLGlCQUM5QixLQUFDQztRQUNDRixXQUFXRixHQUFHLGtGQUFrRkU7UUFDaEdHLGFBQVU7UUFDVCxHQUFHRixLQUFLO09BRVg7QUFFRixPQUFPLE1BQU1HLFdBQVcsQ0FBQyxFQUN2QkosU0FBUyxFQUNULEdBQUdDLE9BQ3FDLGlCQUN4QyxLQUFDSTtRQUNDTCxXQUFXRixHQUFHLGtNQUFrTUU7UUFDaE5HLGFBQVU7UUFDVCxHQUFHRixLQUFLO09BRVg7QUFFRixPQUFPLE1BQU1LLFNBQVMsQ0FBQyxFQUNyQk4sU0FBUyxFQUNULEdBQUdDLE9BQ2dDLGlCQUNuQyxLQUFDTTtRQUNDUCxXQUFXRixHQUFHLHlEQUF5REU7UUFDdkVHLGFBQVU7UUFDVCxHQUFHRixLQUFLO09BRVg7QUFFRixPQUFPLE1BQU1PLE9BQU8sQ0FBQyxFQUNuQlIsU0FBUyxFQUNULEdBQUdDLE9BQzhCLGlCQUNqQyxLQUFDUTtRQUNDVCxXQUFXRixHQUFHLGlLQUFpS0U7UUFDL0tHLGFBQVU7UUFDVCxHQUFHRixLQUFLO09BRVgifQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { interactWithCanvas } from '../../utils/storyInteractions.js';
|
|
3
|
+
import { Code, Strong, Text, TextLink } from './Text.js';
|
|
4
|
+
const meta = {
|
|
5
|
+
component: Text,
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: 'centered'
|
|
8
|
+
},
|
|
9
|
+
title: 'Components/Text'
|
|
10
|
+
};
|
|
11
|
+
export default meta;
|
|
12
|
+
export const Default = {
|
|
13
|
+
play: interactWithCanvas,
|
|
14
|
+
render: ()=>/*#__PURE__*/ _jsxs(Text, {
|
|
15
|
+
className: "max-w-md",
|
|
16
|
+
children: [
|
|
17
|
+
"GothamUI now includes typography primitives with ",
|
|
18
|
+
/*#__PURE__*/ _jsx(Strong, {
|
|
19
|
+
children: "strong text"
|
|
20
|
+
}),
|
|
21
|
+
", inline ",
|
|
22
|
+
/*#__PURE__*/ _jsx(Code, {
|
|
23
|
+
children: "code"
|
|
24
|
+
}),
|
|
25
|
+
", and ",
|
|
26
|
+
/*#__PURE__*/ _jsx(TextLink, {
|
|
27
|
+
href: "#",
|
|
28
|
+
children: "links"
|
|
29
|
+
}),
|
|
30
|
+
"."
|
|
31
|
+
]
|
|
32
|
+
})
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL1RleHQvVGV4dC5zdG9yaWVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2ludGVyYWN0V2l0aENhbnZhc30gZnJvbSAnLi4vLi4vdXRpbHMvc3RvcnlJbnRlcmFjdGlvbnMuanMnO1xuaW1wb3J0IHtDb2RlLCBTdHJvbmcsIFRleHQsIFRleHRMaW5rfSBmcm9tICcuL1RleHQuanMnO1xuXG5pbXBvcnQgdHlwZSB7TWV0YSwgU3RvcnlPYmp9IGZyb20gJ0BubGFicy9sZXgvc3Rvcnlib29rJztcblxuY29uc3QgbWV0YTogTWV0YTx0eXBlb2YgVGV4dD4gPSB7XG4gIGNvbXBvbmVudDogVGV4dCxcbiAgcGFyYW1ldGVyczoge1xuICAgIGxheW91dDogJ2NlbnRlcmVkJ1xuICB9LFxuICB0aXRsZTogJ0NvbXBvbmVudHMvVGV4dCdcbn07XG5cbmV4cG9ydCBkZWZhdWx0IG1ldGE7XG5cbnR5cGUgU3RvcnkgPSBTdG9yeU9iajx0eXBlb2YgVGV4dD47XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0OiBTdG9yeSA9IHtcbiAgcGxheTogaW50ZXJhY3RXaXRoQ2FudmFzLFxuICByZW5kZXI6ICgpID0+IChcbiAgICA8VGV4dCBjbGFzc05hbWU9XCJtYXgtdy1tZFwiPlxuICAgICAgR290aGFtVUkgbm93IGluY2x1ZGVzIHR5cG9ncmFwaHkgcHJpbWl0aXZlcyB3aXRoIDxTdHJvbmc+c3Ryb25nIHRleHQ8L1N0cm9uZz4sIGlubGluZSA8Q29kZT5jb2RlPC9Db2RlPiwgYW5kIDxUZXh0TGluayBocmVmPVwiI1wiPmxpbmtzPC9UZXh0TGluaz4uXG4gICAgPC9UZXh0PlxuICApXG59O1xuIl0sIm5hbWVzIjpbImludGVyYWN0V2l0aENhbnZhcyIsIkNvZGUiLCJTdHJvbmciLCJUZXh0IiwiVGV4dExpbmsiLCJtZXRhIiwiY29tcG9uZW50IiwicGFyYW1ldGVycyIsImxheW91dCIsInRpdGxlIiwiRGVmYXVsdCIsInBsYXkiLCJyZW5kZXIiLCJjbGFzc05hbWUiLCJocmVmIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUUEsa0JBQWtCLFFBQU8sbUNBQW1DO0FBQ3BFLFNBQVFDLElBQUksRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsUUFBTyxZQUFZO0FBSXZELE1BQU1DLE9BQTBCO0lBQzlCQyxXQUFXSDtJQUNYSSxZQUFZO1FBQ1ZDLFFBQVE7SUFDVjtJQUNBQyxPQUFPO0FBQ1Q7QUFFQSxlQUFlSixLQUFLO0FBSXBCLE9BQU8sTUFBTUssVUFBaUI7SUFDNUJDLE1BQU1YO0lBQ05ZLFFBQVEsa0JBQ04sTUFBQ1Q7WUFBS1UsV0FBVTs7Z0JBQVc7OEJBQ3dCLEtBQUNYOzhCQUFPOztnQkFBb0I7OEJBQVMsS0FBQ0Q7OEJBQUs7O2dCQUFXOzhCQUFNLEtBQUNHO29CQUFTVSxNQUFLOzhCQUFJOztnQkFBZ0I7OztBQUd0SixFQUFFIn0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { InputHTMLAttributes, Ref } from 'react';
|
|
2
|
+
import type { GothamColor } from '../../utils/colorUtils.js';
|
|
3
|
+
import type { InputBorderType } from '../InputField/InputField.js';
|
|
4
|
+
export interface TextFieldProps extends InputHTMLAttributes<HTMLInputElement | HTMLTextAreaElement> {
|
|
5
|
+
readonly borderColor?: GothamColor;
|
|
6
|
+
readonly borderType?: InputBorderType;
|
|
7
|
+
readonly className?: string;
|
|
8
|
+
readonly color?: GothamColor;
|
|
9
|
+
readonly defaultValue?: string;
|
|
10
|
+
readonly error?: boolean;
|
|
11
|
+
readonly errorColor?: GothamColor;
|
|
12
|
+
readonly hasError?: boolean;
|
|
13
|
+
readonly inputClass?: string;
|
|
14
|
+
readonly label?: string;
|
|
15
|
+
readonly labelClass?: string;
|
|
16
|
+
readonly labelColor?: GothamColor;
|
|
17
|
+
readonly multiline?: boolean;
|
|
18
|
+
readonly name: string;
|
|
19
|
+
readonly onValidate?: (isValid: boolean) => void;
|
|
20
|
+
readonly pattern?: string;
|
|
21
|
+
readonly placeholderColor?: GothamColor;
|
|
22
|
+
readonly ref?: Ref<HTMLInputElement | HTMLTextAreaElement>;
|
|
23
|
+
readonly rows?: number;
|
|
24
|
+
readonly showPasswordToggle?: boolean;
|
|
25
|
+
readonly textFillColor?: string;
|
|
26
|
+
readonly textColor?: GothamColor;
|
|
27
|
+
readonly type?: string;
|
|
28
|
+
}
|
|
29
|
+
declare const TextFieldComponent: ({ borderColor, borderType, className, color, defaultValue, error: externalError, errorColor, inputClass, label, labelClass, labelColor, multiline, name, onChange: onChangeProp, onValidate, pattern, placeholder, placeholderColor, ref, rows, showPasswordToggle, textFillColor, textColor, type, value, ...restInputProps }: TextFieldProps) => import("react").JSX.Element;
|
|
30
|
+
export declare const TextField: import("react").MemoExoticComponent<typeof TextFieldComponent>;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2025-Present, Nitrogen Labs, Inc.
|
|
4
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
5
|
+
*/ import { memo, useState } from 'react';
|
|
6
|
+
import { useTranslation } from '../../i18n/index.js';
|
|
7
|
+
import { Eye, EyeOff } from '../../icons/index.js';
|
|
8
|
+
import { ErrorMessage } from '../ErrorMessage/ErrorMessage.js';
|
|
9
|
+
import { getFormErrorMessage, useGothamFormField } from '../Form/FormContext.js';
|
|
10
|
+
import { InputField } from '../InputField/InputField.js';
|
|
11
|
+
import { Label } from '../Label/Label.js';
|
|
12
|
+
const TextFieldComponent = ({ borderColor = 'black', borderType, className, color = 'neutral', defaultValue = '', error: externalError, errorColor = 'error', inputClass, label = '', labelClass = 'mb-1', labelColor = 'neutral', multiline = false, name, onChange: onChangeProp, onValidate, pattern, placeholder = '', placeholderColor = 'neutral', ref, rows, showPasswordToggle = false, textFillColor, textColor = 'neutral', type = 'text', value, ...restInputProps })=>{
|
|
13
|
+
const { t } = useTranslation();
|
|
14
|
+
const form = useGothamFormField(name);
|
|
15
|
+
const formError = form?.error;
|
|
16
|
+
const hasError = !!formError || !!externalError;
|
|
17
|
+
const placeholderText = placeholder ? t(placeholder) : '';
|
|
18
|
+
const [showPassword, setShowPassword] = useState(false);
|
|
19
|
+
const fieldValue = value ?? form?.value ?? (form ? String(form.defaultValue ?? defaultValue) : undefined);
|
|
20
|
+
const resolvedDefaultValue = fieldValue === undefined ? String(form?.defaultValue ?? defaultValue) : undefined;
|
|
21
|
+
const inputType = type === 'password' && showPassword ? 'text' : type;
|
|
22
|
+
const handleChange = (e)=>{
|
|
23
|
+
form?.setValue(name, e.target.value);
|
|
24
|
+
form?.clearError(name);
|
|
25
|
+
onChangeProp?.(e);
|
|
26
|
+
if (onValidate && pattern) {
|
|
27
|
+
const isValid = new RegExp(pattern).test(e.target.value);
|
|
28
|
+
onValidate(isValid);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
32
|
+
className: "flex flex-col w-full",
|
|
33
|
+
children: [
|
|
34
|
+
/*#__PURE__*/ _jsx(Label, {
|
|
35
|
+
className: labelClass,
|
|
36
|
+
color: labelColor,
|
|
37
|
+
label: label,
|
|
38
|
+
name: name
|
|
39
|
+
}),
|
|
40
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
41
|
+
className: "relative",
|
|
42
|
+
children: [
|
|
43
|
+
/*#__PURE__*/ _jsx(InputField, {
|
|
44
|
+
...restInputProps,
|
|
45
|
+
borderColor: borderColor,
|
|
46
|
+
borderType: borderType,
|
|
47
|
+
className: inputClass,
|
|
48
|
+
color: hasError ? 'error' : color,
|
|
49
|
+
defaultValue: resolvedDefaultValue,
|
|
50
|
+
id: name,
|
|
51
|
+
multiline: multiline,
|
|
52
|
+
name: name,
|
|
53
|
+
onBlur: (event)=>{
|
|
54
|
+
restInputProps.onBlur?.(event);
|
|
55
|
+
},
|
|
56
|
+
onChange: handleChange,
|
|
57
|
+
onFocus: (event)=>{
|
|
58
|
+
restInputProps.onFocus?.(event);
|
|
59
|
+
},
|
|
60
|
+
placeholder: placeholderText,
|
|
61
|
+
placeholderColor: placeholderColor,
|
|
62
|
+
ref: ref,
|
|
63
|
+
textColor: textColor,
|
|
64
|
+
textFillColor: textFillColor,
|
|
65
|
+
type: inputType,
|
|
66
|
+
value: fieldValue
|
|
67
|
+
}),
|
|
68
|
+
type === 'password' && showPasswordToggle && /*#__PURE__*/ _jsx("button", {
|
|
69
|
+
"aria-label": showPassword ? 'Hide password' : 'Show password',
|
|
70
|
+
className: `absolute inset-y-0 flex items-center ${borderType === 'underline' ? 'right-0 pr-3' : 'right-0 pr-3.5'} text-neutral-400 hover:text-neutral-600 outline-none focus:outline-none focus-visible:outline-none dark:text-neutral-500 dark:hover:text-neutral-300`,
|
|
71
|
+
onClick: ()=>setShowPassword(!showPassword),
|
|
72
|
+
type: "button",
|
|
73
|
+
children: showPassword ? /*#__PURE__*/ _jsx(Eye, {
|
|
74
|
+
className: "h-5 w-5"
|
|
75
|
+
}) : /*#__PURE__*/ _jsx(EyeOff, {
|
|
76
|
+
className: "h-5 w-5"
|
|
77
|
+
})
|
|
78
|
+
}),
|
|
79
|
+
/*#__PURE__*/ _jsx(ErrorMessage, {
|
|
80
|
+
color: errorColor,
|
|
81
|
+
message: getFormErrorMessage(formError) || (externalError ? 'Invalid input' : undefined)
|
|
82
|
+
})
|
|
83
|
+
]
|
|
84
|
+
})
|
|
85
|
+
]
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
export const TextField = /*#__PURE__*/ memo(TextFieldComponent);
|
|
89
|
+
TextField.displayName = 'TextField';
|
|
90
|
+
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL1RleHRGaWVsZC9UZXh0RmllbGQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge21lbW8sIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7dXNlVHJhbnNsYXRpb259IGZyb20gJy4uLy4uL2kxOG4vaW5kZXguanMnO1xuaW1wb3J0IHtFeWUsIEV5ZU9mZn0gZnJvbSAnLi4vLi4vaWNvbnMvaW5kZXguanMnO1xuaW1wb3J0IHtFcnJvck1lc3NhZ2V9IGZyb20gJy4uL0Vycm9yTWVzc2FnZS9FcnJvck1lc3NhZ2UuanMnO1xuaW1wb3J0IHtnZXRGb3JtRXJyb3JNZXNzYWdlLCB1c2VHb3RoYW1Gb3JtRmllbGR9IGZyb20gJy4uL0Zvcm0vRm9ybUNvbnRleHQuanMnO1xuaW1wb3J0IHtJbnB1dEZpZWxkfSBmcm9tICcuLi9JbnB1dEZpZWxkL0lucHV0RmllbGQuanMnO1xuaW1wb3J0IHtMYWJlbH0gZnJvbSAnLi4vTGFiZWwvTGFiZWwuanMnO1xuXG5pbXBvcnQgdHlwZSB7SW5wdXRIVE1MQXR0cmlidXRlcywgUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7R290aGFtQ29sb3J9IGZyb20gJy4uLy4uL3V0aWxzL2NvbG9yVXRpbHMuanMnO1xuaW1wb3J0IHR5cGUge0lucHV0Qm9yZGVyVHlwZX0gZnJvbSAnLi4vSW5wdXRGaWVsZC9JbnB1dEZpZWxkLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBUZXh0RmllbGRQcm9wcyBleHRlbmRzIElucHV0SFRNTEF0dHJpYnV0ZXM8SFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQ+IHtcbiAgcmVhZG9ubHkgYm9yZGVyQ29sb3I/OiBHb3RoYW1Db2xvcjtcbiAgcmVhZG9ubHkgYm9yZGVyVHlwZT86IElucHV0Qm9yZGVyVHlwZTtcbiAgcmVhZG9ubHkgY2xhc3NOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBjb2xvcj86IEdvdGhhbUNvbG9yO1xuICByZWFkb25seSBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVycm9yPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZXJyb3JDb2xvcj86IEdvdGhhbUNvbG9yO1xuICByZWFkb25seSBoYXNFcnJvcj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGlucHV0Q2xhc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxhYmVsPzogc3RyaW5nO1xuICByZWFkb25seSBsYWJlbENsYXNzPzogc3RyaW5nO1xuICByZWFkb25seSBsYWJlbENvbG9yPzogR290aGFtQ29sb3I7XG4gIHJlYWRvbmx5IG11bHRpbGluZT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgb25WYWxpZGF0ZT86IChpc1ZhbGlkOiBib29sZWFuKSA9PiB2b2lkO1xuICByZWFkb25seSBwYXR0ZXJuPzogc3RyaW5nO1xuICByZWFkb25seSBwbGFjZWhvbGRlckNvbG9yPzogR290aGFtQ29sb3I7XG4gIHJlYWRvbmx5IHJlZj86IFJlZjxIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudD47XG4gIHJlYWRvbmx5IHJvd3M/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHNob3dQYXNzd29yZFRvZ2dsZT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHRleHRGaWxsQ29sb3I/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRleHRDb2xvcj86IEdvdGhhbUNvbG9yO1xuICByZWFkb25seSB0eXBlPzogc3RyaW5nO1xufVxuXG5jb25zdCBUZXh0RmllbGRDb21wb25lbnQgPSAoe1xuICBib3JkZXJDb2xvciA9ICdibGFjaycsXG4gIGJvcmRlclR5cGUsXG4gIGNsYXNzTmFtZSxcbiAgY29sb3IgPSAnbmV1dHJhbCcsXG4gIGRlZmF1bHRWYWx1ZSA9ICcnLFxuICBlcnJvcjogZXh0ZXJuYWxFcnJvcixcbiAgZXJyb3JDb2xvciA9ICdlcnJvcicsXG4gIGlucHV0Q2xhc3MsXG4gIGxhYmVsID0gJycsXG4gIGxhYmVsQ2xhc3MgPSAnbWItMScsXG4gIGxhYmVsQ29sb3IgPSAnbmV1dHJhbCcsXG4gIG11bHRpbGluZSA9IGZhbHNlLFxuICBuYW1lLFxuICBvbkNoYW5nZTogb25DaGFuZ2VQcm9wLFxuICBvblZhbGlkYXRlLFxuICBwYXR0ZXJuLFxuICBwbGFjZWhvbGRlciA9ICcnLFxuICBwbGFjZWhvbGRlckNvbG9yID0gJ25ldXRyYWwnLFxuICByZWYsXG4gIHJvd3MsXG4gIHNob3dQYXNzd29yZFRvZ2dsZSA9IGZhbHNlLFxuICB0ZXh0RmlsbENvbG9yLFxuICB0ZXh0Q29sb3IgPSAnbmV1dHJhbCcsXG4gIHR5cGUgPSAndGV4dCcsXG4gIHZhbHVlLFxuICAuLi5yZXN0SW5wdXRQcm9wc1xufTogVGV4dEZpZWxkUHJvcHMpID0+IHtcbiAgY29uc3Qge3R9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3QgZm9ybSA9IHVzZUdvdGhhbUZvcm1GaWVsZChuYW1lKTtcbiAgY29uc3QgZm9ybUVycm9yID0gZm9ybT8uZXJyb3I7XG4gIGNvbnN0IGhhc0Vycm9yID0gISFmb3JtRXJyb3IgfHwgISFleHRlcm5hbEVycm9yO1xuICBjb25zdCBwbGFjZWhvbGRlclRleHQgPSBwbGFjZWhvbGRlciA/IHQocGxhY2Vob2xkZXIpIDogJyc7XG4gIGNvbnN0IFtzaG93UGFzc3dvcmQsIHNldFNob3dQYXNzd29yZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGZpZWxkVmFsdWUgPSB2YWx1ZSA/PyBmb3JtPy52YWx1ZSA/PyAoZm9ybSA/IFN0cmluZyhmb3JtLmRlZmF1bHRWYWx1ZSA/PyBkZWZhdWx0VmFsdWUpIDogdW5kZWZpbmVkKTtcbiAgY29uc3QgcmVzb2x2ZWREZWZhdWx0VmFsdWUgPSBmaWVsZFZhbHVlID09PSB1bmRlZmluZWQgPyBTdHJpbmcoZm9ybT8uZGVmYXVsdFZhbHVlID8/IGRlZmF1bHRWYWx1ZSkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGlucHV0VHlwZSA9IHR5cGUgPT09ICdwYXNzd29yZCcgJiYgc2hvd1Bhc3N3b3JkID8gJ3RleHQnIDogdHlwZTtcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50PikgPT4ge1xuICAgIGZvcm0/LnNldFZhbHVlKG5hbWUsIGUudGFyZ2V0LnZhbHVlKTtcbiAgICBmb3JtPy5jbGVhckVycm9yKG5hbWUpO1xuICAgIG9uQ2hhbmdlUHJvcD8uKGUpO1xuXG4gICAgaWYob25WYWxpZGF0ZSAmJiBwYXR0ZXJuKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gbmV3IFJlZ0V4cChwYXR0ZXJuKS50ZXN0KGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgIG9uVmFsaWRhdGUoaXNWYWxpZCk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIHctZnVsbFwiPlxuICAgICAgPExhYmVsXG4gICAgICAgIGNsYXNzTmFtZT17bGFiZWxDbGFzc31cbiAgICAgICAgY29sb3I9e2xhYmVsQ29sb3J9XG4gICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgIC8+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgIDxJbnB1dEZpZWxkXG4gICAgICAgICAgey4uLnJlc3RJbnB1dFByb3BzfVxuICAgICAgICAgIGJvcmRlckNvbG9yPXtib3JkZXJDb2xvcn1cbiAgICAgICAgICBib3JkZXJUeXBlPXtib3JkZXJUeXBlfVxuICAgICAgICAgIGNsYXNzTmFtZT17aW5wdXRDbGFzc31cbiAgICAgICAgICBjb2xvcj17aGFzRXJyb3IgPyAnZXJyb3InIDogY29sb3J9XG4gICAgICAgICAgZGVmYXVsdFZhbHVlPXtyZXNvbHZlZERlZmF1bHRWYWx1ZX1cbiAgICAgICAgICBpZD17bmFtZX1cbiAgICAgICAgICBtdWx0aWxpbmU9e211bHRpbGluZX1cbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIG9uQmx1cj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICByZXN0SW5wdXRQcm9wcy5vbkJsdXI/LihldmVudCk7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgIG9uRm9jdXM9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgcmVzdElucHV0UHJvcHMub25Gb2N1cz8uKGV2ZW50KTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlclRleHR9XG4gICAgICAgICAgcGxhY2Vob2xkZXJDb2xvcj17cGxhY2Vob2xkZXJDb2xvcn1cbiAgICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgICB0ZXh0Q29sb3I9e3RleHRDb2xvcn1cbiAgICAgICAgICB0ZXh0RmlsbENvbG9yPXt0ZXh0RmlsbENvbG9yfVxuICAgICAgICAgIHR5cGU9e2lucHV0VHlwZX1cbiAgICAgICAgICB2YWx1ZT17ZmllbGRWYWx1ZSBhcyBzdHJpbmcgfCBudW1iZXIgfCByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZH1cbiAgICAgICAgLz5cbiAgICAgICAge3R5cGUgPT09ICdwYXNzd29yZCcgJiYgc2hvd1Bhc3N3b3JkVG9nZ2xlICYmIChcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXtzaG93UGFzc3dvcmQgPyAnSGlkZSBwYXNzd29yZCcgOiAnU2hvdyBwYXNzd29yZCd9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2BhYnNvbHV0ZSBpbnNldC15LTAgZmxleCBpdGVtcy1jZW50ZXIgJHtcbiAgICAgICAgICAgICAgYm9yZGVyVHlwZSA9PT0gJ3VuZGVybGluZScgPyAncmlnaHQtMCBwci0zJyA6ICdyaWdodC0wIHByLTMuNSdcbiAgICAgICAgICAgIH0gdGV4dC1uZXV0cmFsLTQwMCBob3Zlcjp0ZXh0LW5ldXRyYWwtNjAwIG91dGxpbmUtbm9uZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZGFyazp0ZXh0LW5ldXRyYWwtNTAwIGRhcms6aG92ZXI6dGV4dC1uZXV0cmFsLTMwMGB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93UGFzc3dvcmQoIXNob3dQYXNzd29yZCl9XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2hvd1Bhc3N3b3JkID8gKFxuICAgICAgICAgICAgICA8RXllIGNsYXNzTmFtZT1cImgtNSB3LTVcIiAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPEV5ZU9mZiBjbGFzc05hbWU9XCJoLTUgdy01XCIgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICl9XG4gICAgICAgIDxFcnJvck1lc3NhZ2VcbiAgICAgICAgICBjb2xvcj17ZXJyb3JDb2xvcn1cbiAgICAgICAgICBtZXNzYWdlPXtnZXRGb3JtRXJyb3JNZXNzYWdlKGZvcm1FcnJvcikgfHwgKGV4dGVybmFsRXJyb3IgPyAnSW52YWxpZCBpbnB1dCcgOiB1bmRlZmluZWQpfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgVGV4dEZpZWxkID0gbWVtbyhUZXh0RmllbGRDb21wb25lbnQpO1xuVGV4dEZpZWxkLmRpc3BsYXlOYW1lID0gJ1RleHRGaWVsZCc7XG4iXSwibmFtZXMiOlsibWVtbyIsInVzZVN0YXRlIiwidXNlVHJhbnNsYXRpb24iLCJFeWUiLCJFeWVPZmYiLCJFcnJvck1lc3NhZ2UiLCJnZXRGb3JtRXJyb3JNZXNzYWdlIiwidXNlR290aGFtRm9ybUZpZWxkIiwiSW5wdXRGaWVsZCIsIkxhYmVsIiwiVGV4dEZpZWxkQ29tcG9uZW50IiwiYm9yZGVyQ29sb3IiLCJib3JkZXJUeXBlIiwiY2xhc3NOYW1lIiwiY29sb3IiLCJkZWZhdWx0VmFsdWUiLCJlcnJvciIsImV4dGVybmFsRXJyb3IiLCJlcnJvckNvbG9yIiwiaW5wdXRDbGFzcyIsImxhYmVsIiwibGFiZWxDbGFzcyIsImxhYmVsQ29sb3IiLCJtdWx0aWxpbmUiLCJuYW1lIiwib25DaGFuZ2UiLCJvbkNoYW5nZVByb3AiLCJvblZhbGlkYXRlIiwicGF0dGVybiIsInBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXJDb2xvciIsInJlZiIsInJvd3MiLCJzaG93UGFzc3dvcmRUb2dnbGUiLCJ0ZXh0RmlsbENvbG9yIiwidGV4dENvbG9yIiwidHlwZSIsInZhbHVlIiwicmVzdElucHV0UHJvcHMiLCJ0IiwiZm9ybSIsImZvcm1FcnJvciIsImhhc0Vycm9yIiwicGxhY2Vob2xkZXJUZXh0Iiwic2hvd1Bhc3N3b3JkIiwic2V0U2hvd1Bhc3N3b3JkIiwiZmllbGRWYWx1ZSIsIlN0cmluZyIsInVuZGVmaW5lZCIsInJlc29sdmVkRGVmYXVsdFZhbHVlIiwiaW5wdXRUeXBlIiwiaGFuZGxlQ2hhbmdlIiwiZSIsInNldFZhbHVlIiwidGFyZ2V0IiwiY2xlYXJFcnJvciIsImlzVmFsaWQiLCJSZWdFeHAiLCJ0ZXN0IiwiZGl2IiwiaWQiLCJvbkJsdXIiLCJldmVudCIsIm9uRm9jdXMiLCJidXR0b24iLCJhcmlhLWxhYmVsIiwib25DbGljayIsIm1lc3NhZ2UiLCJUZXh0RmllbGQiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLElBQUksRUFBRUMsUUFBUSxRQUFPLFFBQVE7QUFFckMsU0FB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
|