@adobe-commerce/elsie 1.0.0-alpha1
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/.elsie.js +12 -0
- package/.eslintrc.js +9 -0
- package/README.md +52 -0
- package/__mocks__/svg.js +1 -0
- package/bin/builders/build/index.js +20 -0
- package/bin/builders/generate/api/index.js +65 -0
- package/bin/builders/generate/api/templates/function.js +9 -0
- package/bin/builders/generate/api/templates/index.js +7 -0
- package/bin/builders/generate/api/templates/story.js +23 -0
- package/bin/builders/generate/api/templates/unit-test.js +15 -0
- package/bin/builders/generate/component/index.js +87 -0
- package/bin/builders/generate/component/templates/Component.js +43 -0
- package/bin/builders/generate/component/templates/css.js +24 -0
- package/bin/builders/generate/component/templates/index.js +8 -0
- package/bin/builders/generate/component/templates/stories.js +46 -0
- package/bin/builders/generate/component/templates/unit-test.js +19 -0
- package/bin/builders/generate/config/index.js +54 -0
- package/bin/builders/generate/config/templates/elsie.js +29 -0
- package/bin/builders/generate/container/index.js +65 -0
- package/bin/builders/generate/container/templates/Component.js +18 -0
- package/bin/builders/generate/container/templates/index.js +8 -0
- package/bin/builders/generate/container/templates/stories.js +34 -0
- package/bin/builders/generate/container/templates/unit-test.js +19 -0
- package/bin/builders/generate/index.js +283 -0
- package/bin/builders/gql/createOrClearDirectory.js +33 -0
- package/bin/builders/gql/getSchemaRef.js +25 -0
- package/bin/builders/gql/index.js +71 -0
- package/bin/builders/lint/index.js +5 -0
- package/bin/builders/serve/index.js +44 -0
- package/bin/builders/storybook/index.js +5 -0
- package/bin/builders/test/index.js +5 -0
- package/bin/index.js +26 -0
- package/bin/lib/cli.js +8 -0
- package/bin/lib/config.js +12 -0
- package/bin/lib/log-message.js +11 -0
- package/bin/lib/string.js +26 -0
- package/bin/lib/validate-typeof.js +19 -0
- package/bin/lib/write-file.js +21 -0
- package/bin/lib/write-parent-index.js +36 -0
- package/config/eslint.js +103 -0
- package/config/jest.js +81 -0
- package/config/prettier.js +7 -0
- package/config/setEnvVars.js +5 -0
- package/config/storybook/addon.js +121 -0
- package/config/storybook/components/FileTree/FileTree.jsx +183 -0
- package/config/storybook/components/FileTree/index.js +1 -0
- package/config/storybook/components/Flex/Flex.jsx +12 -0
- package/config/storybook/components/Flex/Flex.module.css +20 -0
- package/config/storybook/components/Flex/index.js +1 -0
- package/config/storybook/components/OptionsTable/OptionsTable.jsx +79 -0
- package/config/storybook/components/OptionsTable/OptionsTable.module.css +95 -0
- package/config/storybook/components/OptionsTable/index.js +1 -0
- package/config/storybook/components/Panel/Panel.module.css +47 -0
- package/config/storybook/components/Panel/Panel.tsx +37 -0
- package/config/storybook/components/Panel/index.ts +1 -0
- package/config/storybook/components/Screenshot/Screenshot.jsx +14 -0
- package/config/storybook/components/Screenshot/Screenshot.module.css +19 -0
- package/config/storybook/components/Screenshot/index.js +1 -0
- package/config/storybook/components/Steps/Steps.jsx +12 -0
- package/config/storybook/components/Steps/Steps.module.css +34 -0
- package/config/storybook/components/Steps/index.js +1 -0
- package/config/storybook/components/StoryWrapper/StoryWrapper.jsx +9 -0
- package/config/storybook/components/StoryWrapper/StoryWrapper.module.css +13 -0
- package/config/storybook/components/StoryWrapper/index.js +1 -0
- package/config/storybook/components/Summary/Summary.jsx +10 -0
- package/config/storybook/components/Summary/Summary.module.css +11 -0
- package/config/storybook/components/Summary/index.js +1 -0
- package/config/storybook/components/Variants/Variants.js +48 -0
- package/config/storybook/components/Variants/docs.css +39 -0
- package/config/storybook/components/Variants/index.js +1 -0
- package/config/storybook/components/video/index.jsx +19 -0
- package/config/storybook/manager.js +14 -0
- package/config/storybook/preview.jsx +79 -0
- package/config/storybook/theming/fonts.css +59 -0
- package/config/storybook/theming/logo.svg +19 -0
- package/config/storybook/theming/manager.css +54 -0
- package/config/storybook/theming/preview.css +84 -0
- package/config/storybook/theming/theme.js +52 -0
- package/config/tsconfig-base.json +16 -0
- package/config/tsconfig-preact.json +15 -0
- package/config/vite.mjs +297 -0
- package/dist/chunks/deviceUtils.js +14 -0
- package/dist/chunks/icons/Add.js +3 -0
- package/dist/chunks/icons/AddressBook.js +3 -0
- package/dist/chunks/icons/Bulk.js +3 -0
- package/dist/chunks/icons/Burger.js +3 -0
- package/dist/chunks/icons/Card.js +3 -0
- package/dist/chunks/icons/Cart.js +3 -0
- package/dist/chunks/icons/Check.js +3 -0
- package/dist/chunks/icons/CheckWithCircle.js +3 -0
- package/dist/chunks/icons/ChevronDown.js +3 -0
- package/dist/chunks/icons/ChevronRight.js +3 -0
- package/dist/chunks/icons/ChevronUp.js +3 -0
- package/dist/chunks/icons/Close.js +3 -0
- package/dist/chunks/icons/Coupon.js +3 -0
- package/dist/chunks/icons/Date.js +3 -0
- package/dist/chunks/icons/Delivery.js +3 -0
- package/dist/chunks/icons/EmptyBox.js +3 -0
- package/dist/chunks/icons/Eye.js +3 -0
- package/dist/chunks/icons/EyeClose.js +3 -0
- package/dist/chunks/icons/Gift.js +3 -0
- package/dist/chunks/icons/GiftCard.js +3 -0
- package/dist/chunks/icons/Heart.js +3 -0
- package/dist/chunks/icons/HeartFilled.js +3 -0
- package/dist/chunks/icons/InfoFilled.js +3 -0
- package/dist/chunks/icons/Locker.js +3 -0
- package/dist/chunks/icons/Minus.js +3 -0
- package/dist/chunks/icons/Order.js +3 -0
- package/dist/chunks/icons/OrderError.js +3 -0
- package/dist/chunks/icons/OrderSuccess.js +3 -0
- package/dist/chunks/icons/PaymentError.js +3 -0
- package/dist/chunks/icons/Placeholder.js +3 -0
- package/dist/chunks/icons/PlaceholderFilled.js +3 -0
- package/dist/chunks/icons/Search.js +3 -0
- package/dist/chunks/icons/SearchFilled.js +3 -0
- package/dist/chunks/icons/Sort.js +3 -0
- package/dist/chunks/icons/Star.js +3 -0
- package/dist/chunks/icons/Trash.js +3 -0
- package/dist/chunks/icons/User.js +3 -0
- package/dist/chunks/icons/View.js +3 -0
- package/dist/chunks/icons/Wallet.js +3 -0
- package/dist/chunks/icons/Warning.js +3 -0
- package/dist/chunks/icons/WarningFilled.js +3 -0
- package/dist/chunks/icons/WarningWithCircle.js +3 -0
- package/dist/chunks/image-params-keymap.js +3 -0
- package/dist/chunks/initializer.js +5 -0
- package/dist/components.d.ts +1 -0
- package/dist/components.js +3 -0
- package/dist/event-bus.d.ts +1 -0
- package/dist/event-bus.js +3 -0
- package/dist/fetch-graphql.d.ts +1 -0
- package/dist/fetch-graphql.js +3 -0
- package/dist/i18n.d.ts +1 -0
- package/dist/i18n.js +5 -0
- package/dist/initializer.d.ts +1 -0
- package/dist/initializer.js +5 -0
- package/dist/lib.d.ts +1 -0
- package/dist/lib.js +3 -0
- package/dist/preact-compat.d.ts +1 -0
- package/dist/preact-compat.js +3 -0
- package/dist/preact-hooks.d.ts +1 -0
- package/dist/preact-hooks.js +3 -0
- package/dist/preact-jsx-runtime.d.ts +1 -0
- package/dist/preact-jsx-runtime.js +3 -0
- package/dist/preact.d.ts +1 -0
- package/dist/preact.js +3 -0
- package/dist/recaptcha.d.ts +1 -0
- package/dist/recaptcha.js +14 -0
- package/dist/signals.d.ts +1 -0
- package/dist/signals.js +3 -0
- package/dist/types/elsie/src/components/Accordion/Accordion.d.ts +27 -0
- package/dist/types/elsie/src/components/Accordion/index.d.ts +3 -0
- package/dist/types/elsie/src/components/ActionButton/ActionButton.d.ts +11 -0
- package/dist/types/elsie/src/components/ActionButton/index.d.ts +2 -0
- package/dist/types/elsie/src/components/ActionButtonGroup/ActionButtonGroup.d.ts +20 -0
- package/dist/types/elsie/src/components/ActionButtonGroup/index.d.ts +2 -0
- package/dist/types/elsie/src/components/AlertBanner/AlertBanner.d.ts +15 -0
- package/dist/types/elsie/src/components/AlertBanner/index.d.ts +3 -0
- package/dist/types/elsie/src/components/Breadcrumbs/Breadcrumbs.d.ts +9 -0
- package/dist/types/elsie/src/components/Breadcrumbs/index.d.ts +3 -0
- package/dist/types/elsie/src/components/Button/Button.d.ts +15 -0
- package/dist/types/elsie/src/components/Button/index.d.ts +3 -0
- package/dist/types/elsie/src/components/Card/Card.d.ts +9 -0
- package/dist/types/elsie/src/components/Card/index.d.ts +2 -0
- package/dist/types/elsie/src/components/CartItem/CartItem.d.ts +36 -0
- package/dist/types/elsie/src/components/CartItem/CartItemSkeleton.d.ts +4 -0
- package/dist/types/elsie/src/components/CartItem/index.d.ts +4 -0
- package/dist/types/elsie/src/components/CartList/CartList.d.ts +7 -0
- package/dist/types/elsie/src/components/CartList/index.d.ts +3 -0
- package/dist/types/elsie/src/components/Checkbox/Checkbox.d.ts +13 -0
- package/dist/types/elsie/src/components/Checkbox/index.d.ts +2 -0
- package/dist/types/elsie/src/components/ColorSwatch/ColorSwatch.d.ts +20 -0
- package/dist/types/elsie/src/components/ColorSwatch/index.d.ts +3 -0
- package/dist/types/elsie/src/components/ContentGrid/ContentGrid.d.ts +10 -0
- package/dist/types/elsie/src/components/ContentGrid/index.d.ts +19 -0
- package/dist/types/elsie/src/components/Divider/Divider.d.ts +8 -0
- package/dist/types/elsie/src/components/Divider/index.d.ts +3 -0
- package/dist/types/elsie/src/components/Field/Field.d.ts +14 -0
- package/dist/types/elsie/src/components/Field/index.d.ts +2 -0
- package/dist/types/elsie/src/components/Header/Header.d.ts +11 -0
- package/dist/types/elsie/src/components/Header/index.d.ts +3 -0
- package/dist/types/elsie/src/components/Icon/Icon.d.ts +18 -0
- package/dist/types/elsie/src/components/Icon/index.d.ts +2 -0
- package/dist/types/elsie/src/components/IllustratedMessage/IllustratedMessage.d.ts +13 -0
- package/dist/types/elsie/src/components/IllustratedMessage/index.d.ts +3 -0
- package/dist/types/elsie/src/components/Image/Image.d.ts +11 -0
- package/dist/types/elsie/src/components/Image/index.d.ts +2 -0
- package/dist/types/elsie/src/components/ImageSwatch/ImageSwatch.d.ts +20 -0
- package/dist/types/elsie/src/components/ImageSwatch/index.d.ts +3 -0
- package/dist/types/elsie/src/components/InLineAlert/InLineAlert.d.ts +19 -0
- package/dist/types/elsie/src/components/InLineAlert/index.d.ts +3 -0
- package/dist/types/elsie/src/components/Incrementer/Incrementer.d.ts +17 -0
- package/dist/types/elsie/src/components/Incrementer/index.d.ts +2 -0
- package/dist/types/elsie/src/components/Input/Input.d.ts +19 -0
- package/dist/types/elsie/src/components/Input/index.d.ts +3 -0
- package/dist/types/elsie/src/components/InputDate/InputDate.d.ts +11 -0
- package/dist/types/elsie/src/components/InputDate/index.d.ts +3 -0
- package/dist/types/elsie/src/components/InputPassword/InputPassword.d.ts +19 -0
- package/dist/types/elsie/src/components/InputPassword/PasswordStatusIndicator/PasswordStatusIndicator.d.ts +18 -0
- package/dist/types/elsie/src/components/InputPassword/PasswordStatusIndicator/index.d.ts +3 -0
- package/dist/types/elsie/src/components/InputPassword/index.d.ts +3 -0
- package/dist/types/elsie/src/components/Modal/Modal.d.ts +15 -0
- package/dist/types/elsie/src/components/Modal/index.d.ts +2 -0
- package/dist/types/elsie/src/components/Pagination/Pagination.d.ts +15 -0
- package/dist/types/elsie/src/components/Pagination/index.d.ts +3 -0
- package/dist/types/elsie/src/components/Picker/Picker.d.ts +28 -0
- package/dist/types/elsie/src/components/Picker/index.d.ts +2 -0
- package/dist/types/elsie/src/components/Price/Price.d.ts +17 -0
- package/dist/types/elsie/src/components/Price/index.d.ts +2 -0
- package/dist/types/elsie/src/components/PriceRange/PriceRange.d.ts +17 -0
- package/dist/types/elsie/src/components/PriceRange/index.d.ts +3 -0
- package/dist/types/elsie/src/components/ProgressSpinner/ProgressSpinner.d.ts +14 -0
- package/dist/types/elsie/src/components/ProgressSpinner/index.d.ts +3 -0
- package/dist/types/elsie/src/components/RadioButton/RadioButton.d.ts +16 -0
- package/dist/types/elsie/src/components/RadioButton/index.d.ts +3 -0
- package/dist/types/elsie/src/components/Skeleton/Skeleton.d.ts +17 -0
- package/dist/types/elsie/src/components/Skeleton/index.d.ts +2 -0
- package/dist/types/elsie/src/components/Tag/Tag.d.ts +9 -0
- package/dist/types/elsie/src/components/Tag/index.d.ts +3 -0
- package/dist/types/elsie/src/components/TextArea/TextArea.d.ts +11 -0
- package/dist/types/elsie/src/components/TextArea/index.d.ts +3 -0
- package/dist/types/elsie/src/components/TextSwatch/TextSwatch.d.ts +18 -0
- package/dist/types/elsie/src/components/TextSwatch/index.d.ts +3 -0
- package/dist/types/elsie/src/components/ToggleButton/ToggleButton.d.ts +14 -0
- package/dist/types/elsie/src/components/ToggleButton/index.d.ts +3 -0
- package/dist/types/elsie/src/components/UIProvider/UIProvider.d.ts +19 -0
- package/dist/types/elsie/src/components/UIProvider/index.d.ts +2 -0
- package/dist/types/elsie/src/components/index.d.ts +41 -0
- package/dist/types/elsie/src/i18n/en_US.json.d.ts +149 -0
- package/dist/types/elsie/src/i18n/index.d.ts +443 -0
- package/dist/types/elsie/src/icons/index.d.ts +43 -0
- package/dist/types/elsie/src/lib/classes.d.ts +6 -0
- package/dist/types/elsie/src/lib/config.d.ts +7 -0
- package/dist/types/elsie/src/lib/debounce.d.ts +2 -0
- package/dist/types/elsie/src/lib/deepmerge.d.ts +5 -0
- package/dist/types/elsie/src/lib/deviceUtils.d.ts +2 -0
- package/dist/types/elsie/src/lib/form-values.d.ts +5 -0
- package/dist/types/elsie/src/lib/i18n.d.ts +8 -0
- package/dist/types/elsie/src/lib/image-params-keymap.d.ts +4 -0
- package/dist/types/elsie/src/lib/index.d.ts +16 -0
- package/dist/types/elsie/src/lib/initializer.d.ts +81 -0
- package/dist/types/elsie/src/lib/is-number.d.ts +2 -0
- package/dist/types/elsie/src/lib/render.d.ts +42 -0
- package/dist/types/elsie/src/lib/resolve-image.d.ts +10 -0
- package/dist/types/elsie/src/lib/signals.d.ts +2 -0
- package/dist/types/elsie/src/lib/slot.d.ts +45 -0
- package/dist/types/elsie/src/lib/tests.d.ts +5 -0
- package/dist/types/elsie/src/lib/types.d.ts +10 -0
- package/dist/types/elsie/src/lib/vcomponent.d.ts +9 -0
- package/package.json +114 -0
- package/src/components/Accordion/Accordion.css +79 -0
- package/src/components/Accordion/Accordion.stories.tsx +566 -0
- package/src/components/Accordion/Accordion.tsx +166 -0
- package/src/components/Accordion/index.ts +2 -0
- package/src/components/ActionButton/ActionButton.css +91 -0
- package/src/components/ActionButton/ActionButton.stories.tsx +160 -0
- package/src/components/ActionButton/ActionButton.tsx +44 -0
- package/src/components/ActionButton/index.ts +1 -0
- package/src/components/ActionButtonGroup/ActionButtonGroup.css +68 -0
- package/src/components/ActionButtonGroup/ActionButtonGroup.stories.tsx +88 -0
- package/src/components/ActionButtonGroup/ActionButtonGroup.tsx +82 -0
- package/src/components/ActionButtonGroup/index.ts +1 -0
- package/src/components/AlertBanner/AlertBanner.css +135 -0
- package/src/components/AlertBanner/AlertBanner.stories.tsx +156 -0
- package/src/components/AlertBanner/AlertBanner.tsx +81 -0
- package/src/components/AlertBanner/index.ts +2 -0
- package/src/components/Breadcrumbs/Breadcrumbs.css +51 -0
- package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +186 -0
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +62 -0
- package/src/components/Breadcrumbs/index.ts +2 -0
- package/src/components/Button/Button.css +204 -0
- package/src/components/Button/Button.mdx +133 -0
- package/src/components/Button/Button.stories.tsx +389 -0
- package/src/components/Button/Button.tsx +112 -0
- package/src/components/Button/index.ts +2 -0
- package/src/components/Card/Card.css +25 -0
- package/src/components/Card/Card.stories.tsx +67 -0
- package/src/components/Card/Card.tsx +25 -0
- package/src/components/Card/index.ts +1 -0
- package/src/components/CartItem/CartItem.css +474 -0
- package/src/components/CartItem/CartItem.stories.tsx +588 -0
- package/src/components/CartItem/CartItem.tsx +444 -0
- package/src/components/CartItem/CartItemSkeleton.tsx +29 -0
- package/src/components/CartItem/index.ts +3 -0
- package/src/components/CartList/CartList.css +26 -0
- package/src/components/CartList/CartList.stories.tsx +102 -0
- package/src/components/CartList/CartList.tsx +31 -0
- package/src/components/CartList/index.ts +2 -0
- package/src/components/Checkbox/Checkbox.css +246 -0
- package/src/components/Checkbox/Checkbox.stories.tsx +281 -0
- package/src/components/Checkbox/Checkbox.tsx +129 -0
- package/src/components/Checkbox/index.ts +1 -0
- package/src/components/ColorSwatch/ColorSwatch.css +123 -0
- package/src/components/ColorSwatch/ColorSwatch.stories.tsx +265 -0
- package/src/components/ColorSwatch/ColorSwatch.tsx +118 -0
- package/src/components/ColorSwatch/index.ts +2 -0
- package/src/components/ContentGrid/ContentGrid.css +62 -0
- package/src/components/ContentGrid/ContentGrid.stories.tsx +145 -0
- package/src/components/ContentGrid/ContentGrid.tsx +65 -0
- package/src/components/ContentGrid/index.ts +19 -0
- package/src/components/Divider/Divider.css +13 -0
- package/src/components/Divider/Divider.stories.tsx +53 -0
- package/src/components/Divider/Divider.tsx +24 -0
- package/src/components/Divider/index.ts +2 -0
- package/src/components/Field/Field.css +74 -0
- package/src/components/Field/Field.stories.tsx +229 -0
- package/src/components/Field/Field.tsx +75 -0
- package/src/components/Field/index.ts +1 -0
- package/src/components/Header/Header.css +47 -0
- package/src/components/Header/Header.stories.tsx +128 -0
- package/src/components/Header/Header.tsx +53 -0
- package/src/components/Header/index.ts +2 -0
- package/src/components/Icon/Icon.css +17 -0
- package/src/components/Icon/Icon.stories.helpers.jsx +12 -0
- package/src/components/Icon/Icon.stories.tsx +88 -0
- package/src/components/Icon/Icon.tsx +103 -0
- package/src/components/Icon/index.ts +1 -0
- package/src/components/IllustratedMessage/IllustratedMessage.css +52 -0
- package/src/components/IllustratedMessage/IllustratedMessage.stories.tsx +117 -0
- package/src/components/IllustratedMessage/IllustratedMessage.tsx +69 -0
- package/src/components/IllustratedMessage/index.ts +2 -0
- package/src/components/Image/Image.css +43 -0
- package/src/components/Image/Image.stories.tsx +80 -0
- package/src/components/Image/Image.tsx +57 -0
- package/src/components/Image/index.ts +1 -0
- package/src/components/ImageSwatch/ImageSwatch.css +145 -0
- package/src/components/ImageSwatch/ImageSwatch.stories.tsx +252 -0
- package/src/components/ImageSwatch/ImageSwatch.tsx +111 -0
- package/src/components/ImageSwatch/index.ts +2 -0
- package/src/components/InLineAlert/InLineAlert.css +107 -0
- package/src/components/InLineAlert/InLineAlert.stories.tsx +317 -0
- package/src/components/InLineAlert/InLineAlert.tsx +119 -0
- package/src/components/InLineAlert/index.ts +2 -0
- package/src/components/Incrementer/Incrementer.css +156 -0
- package/src/components/Incrementer/Incrementer.stories.tsx +163 -0
- package/src/components/Incrementer/Incrementer.tsx +183 -0
- package/src/components/Incrementer/index.ts +1 -0
- package/src/components/Input/Input.css +295 -0
- package/src/components/Input/Input.stories.tsx +146 -0
- package/src/components/Input/Input.tsx +157 -0
- package/src/components/Input/index.ts +2 -0
- package/src/components/InputDate/InputDate.css +47 -0
- package/src/components/InputDate/InputDate.stories.tsx +108 -0
- package/src/components/InputDate/InputDate.tsx +111 -0
- package/src/components/InputDate/index.ts +2 -0
- package/src/components/InputPassword/InputPassword.css +22 -0
- package/src/components/InputPassword/InputPassword.stories.tsx +139 -0
- package/src/components/InputPassword/InputPassword.tsx +126 -0
- package/src/components/InputPassword/PasswordStatusIndicator/PasswordStatusIndicator.css +22 -0
- package/src/components/InputPassword/PasswordStatusIndicator/PasswordStatusIndicator.tsx +87 -0
- package/src/components/InputPassword/PasswordStatusIndicator/index.ts +2 -0
- package/src/components/InputPassword/index.ts +2 -0
- package/src/components/Modal/Modal.css +130 -0
- package/src/components/Modal/Modal.stories.tsx +255 -0
- package/src/components/Modal/Modal.tsx +162 -0
- package/src/components/Modal/index.ts +15 -0
- package/src/components/Pagination/Pagination.css +86 -0
- package/src/components/Pagination/Pagination.stories.tsx +108 -0
- package/src/components/Pagination/Pagination.tsx +140 -0
- package/src/components/Pagination/index.ts +2 -0
- package/src/components/Picker/Picker.css +211 -0
- package/src/components/Picker/Picker.stories.tsx +309 -0
- package/src/components/Picker/Picker.tsx +194 -0
- package/src/components/Picker/index.ts +1 -0
- package/src/components/Price/Price.css +48 -0
- package/src/components/Price/Price.stories.tsx +101 -0
- package/src/components/Price/Price.tsx +66 -0
- package/src/components/Price/index.ts +1 -0
- package/src/components/PriceRange/PriceRange.css +57 -0
- package/src/components/PriceRange/PriceRange.stories.tsx +231 -0
- package/src/components/PriceRange/PriceRange.tsx +239 -0
- package/src/components/PriceRange/index.ts +2 -0
- package/src/components/ProgressSpinner/ProgressSpinner.css +82 -0
- package/src/components/ProgressSpinner/ProgressSpinner.stories.tsx +291 -0
- package/src/components/ProgressSpinner/ProgressSpinner.tsx +77 -0
- package/src/components/ProgressSpinner/index.ts +2 -0
- package/src/components/RadioButton/RadioButton.css +125 -0
- package/src/components/RadioButton/RadioButton.stories.tsx +117 -0
- package/src/components/RadioButton/RadioButton.tsx +77 -0
- package/src/components/RadioButton/index.ts +2 -0
- package/src/components/Skeleton/Skeleton.css +136 -0
- package/src/components/Skeleton/Skeleton.stories.tsx +256 -0
- package/src/components/Skeleton/Skeleton.tsx +124 -0
- package/src/components/Skeleton/index.ts +1 -0
- package/src/components/Tag/Tag.css +17 -0
- package/src/components/Tag/Tag.stories.tsx +94 -0
- package/src/components/Tag/Tag.tsx +29 -0
- package/src/components/Tag/index.ts +2 -0
- package/src/components/TextArea/TextArea.css +131 -0
- package/src/components/TextArea/TextArea.stories.tsx +121 -0
- package/src/components/TextArea/TextArea.tsx +80 -0
- package/src/components/TextArea/index.ts +2 -0
- package/src/components/TextSwatch/TextSwatch.css +143 -0
- package/src/components/TextSwatch/TextSwatch.stories.tsx +268 -0
- package/src/components/TextSwatch/TextSwatch.tsx +122 -0
- package/src/components/TextSwatch/index.ts +2 -0
- package/src/components/ToggleButton/ToggleButton.css +77 -0
- package/src/components/ToggleButton/ToggleButton.stories.tsx +146 -0
- package/src/components/ToggleButton/ToggleButton.tsx +67 -0
- package/src/components/ToggleButton/index.ts +2 -0
- package/src/components/UIProvider/UIProvider.css +131 -0
- package/src/components/UIProvider/UIProvider.tsx +52 -0
- package/src/components/UIProvider/debugger.css +38 -0
- package/src/components/UIProvider/index.ts +1 -0
- package/src/components/UIProvider/normalize.css +17 -0
- package/src/components/index.ts +40 -0
- package/src/docs/API/event-bus.mdx +52 -0
- package/src/docs/API/graphql.mdx +214 -0
- package/src/docs/API/initializer.mdx +110 -0
- package/src/docs/API/render.mdx +125 -0
- package/src/docs/Design/colors.mdx +202 -0
- package/src/docs/Design/designBlocks.jsx +87 -0
- package/src/docs/Design/getTokenData.ts +28 -0
- package/src/docs/Design/grid.mdx +365 -0
- package/src/docs/Design/overview.mdx +69 -0
- package/src/docs/Design/shapes.mdx +100 -0
- package/src/docs/Design/spacing.mdx +22 -0
- package/src/docs/Design/typography.mdx +126 -0
- package/src/docs/Utilities/classList.mdx +52 -0
- package/src/docs/Utilities/debounce.mdx +49 -0
- package/src/docs/Utilities/deepmerge.mdx +12 -0
- package/src/docs/Utilities/getFormErrors.mdx +41 -0
- package/src/docs/Utilities/getFormValues.mdx +38 -0
- package/src/docs/assets/Banner.png +0 -0
- package/src/docs/assets/Colors.png +0 -0
- package/src/docs/assets/DropinBanner.png +0 -0
- package/src/docs/assets/ShapeStyles.png +0 -0
- package/src/docs/assets/Spacing.png +0 -0
- package/src/docs/assets/Typography.png +0 -0
- package/src/docs/cli-usage.mdx +181 -0
- package/src/docs/components/overview.mdx +124 -0
- package/src/docs/quick-start.mdx +245 -0
- package/src/docs/slots.mdx +211 -0
- package/src/docs/welcome.mdx +52 -0
- package/src/i18n/en_US.json +146 -0
- package/src/i18n/index.ts +17 -0
- package/src/icons/Add.svg +9 -0
- package/src/icons/AddressBook.svg +3 -0
- package/src/icons/Bulk.svg +24 -0
- package/src/icons/Burger.svg +5 -0
- package/src/icons/Card.svg +7 -0
- package/src/icons/Cart.svg +11 -0
- package/src/icons/Check.svg +8 -0
- package/src/icons/CheckWithCircle.svg +4 -0
- package/src/icons/ChevronDown.svg +3 -0
- package/src/icons/ChevronRight.svg +8 -0
- package/src/icons/ChevronUp.svg +3 -0
- package/src/icons/Close.svg +4 -0
- package/src/icons/Coupon.svg +3 -0
- package/src/icons/Date.svg +4 -0
- package/src/icons/Delivery.svg +11 -0
- package/src/icons/EmptyBox.svg +3 -0
- package/src/icons/Eye.svg +3 -0
- package/src/icons/EyeClose.svg +3 -0
- package/src/icons/Gift.svg +3 -0
- package/src/icons/GiftCard.svg +3 -0
- package/src/icons/Heart.svg +3 -0
- package/src/icons/HeartFilled.svg +3 -0
- package/src/icons/InfoFilled.svg +3 -0
- package/src/icons/Locker.svg +11 -0
- package/src/icons/Minus.svg +3 -0
- package/src/icons/Order.svg +6 -0
- package/src/icons/OrderError.svg +15 -0
- package/src/icons/OrderSuccess.svg +15 -0
- package/src/icons/PaymentError.svg +16 -0
- package/src/icons/Placeholder.svg +3 -0
- package/src/icons/PlaceholderFilled.svg +4 -0
- package/src/icons/Search.svg +9 -0
- package/src/icons/SearchFilled.svg +10 -0
- package/src/icons/Sort.svg +12 -0
- package/src/icons/Star.svg +8 -0
- package/src/icons/Trash.svg +7 -0
- package/src/icons/User.svg +5 -0
- package/src/icons/View.svg +14 -0
- package/src/icons/Wallet.svg +6 -0
- package/src/icons/Warning.svg +12 -0
- package/src/icons/WarningFilled.svg +3 -0
- package/src/icons/WarningWithCircle.svg +4 -0
- package/src/icons/index.ts +42 -0
- package/src/lib/classes.ts +25 -0
- package/src/lib/config.ts +15 -0
- package/src/lib/debounce.ts +7 -0
- package/src/lib/deepmerge.ts +36 -0
- package/src/lib/deviceUtils.ts +7 -0
- package/src/lib/form-values.ts +22 -0
- package/src/lib/i18n.ts +9 -0
- package/src/lib/image-params-keymap.ts +25 -0
- package/src/lib/index.ts +15 -0
- package/src/lib/initializer.ts +122 -0
- package/src/lib/is-number.ts +3 -0
- package/src/lib/render.tsx +129 -0
- package/src/lib/resolve-image.ts +77 -0
- package/src/lib/signals.ts +2 -0
- package/src/lib/slot.tsx +425 -0
- package/src/lib/tests.tsx +38 -0
- package/src/lib/types.ts +7 -0
- package/src/lib/vcomponent.tsx +47 -0
- package/static/assets/images/Card.png +0 -0
- package/static/assets/images/example.jpg +0 -0
- package/static/assets/images/index.ts +2 -0
- package/static/dropin.png +0 -0
- package/static/favicon.svg +14 -0
- package/storybook-stories.js +12 -0
- package/tests/__mocks__/browserMocks.ts +19 -0
- package/tests/__mocks__/fileMocks.ts +3 -0
- package/tests/__mocks__/styleMock.ts +0 -0
- package/types/icons.d.ts +9 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { Meta, Unstyled } from '@storybook/blocks';
|
|
2
|
+
import { Block, TokenDefinitions } from './designBlocks.jsx';
|
|
3
|
+
import typeData from '@adobe/storefront-design/base/typography/typography.json';
|
|
4
|
+
import { getTokenData } from './getTokenData';
|
|
5
|
+
export const tokenData = getTokenData(typeData);
|
|
6
|
+
export const tokenNames = tokenData.map((token) => token.name);
|
|
7
|
+
|
|
8
|
+
<Meta title="Design/Typography" />
|
|
9
|
+
<Unstyled>
|
|
10
|
+
|
|
11
|
+
export const SampleText = ({ font, spacing }) => {
|
|
12
|
+
return (
|
|
13
|
+
<div style={{ font: `var(${font})`, letterSpacing: `var(${spacing})` }}>
|
|
14
|
+
The quick brown fox jumps over the lazy dog
|
|
15
|
+
</div>
|
|
16
|
+
);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export const Typography = ({ prefix }) => (
|
|
20
|
+
<>
|
|
21
|
+
<TokenDefinitions
|
|
22
|
+
tokenData={tokenData.filter((data) => data.name.startsWith(prefix))}
|
|
23
|
+
/>
|
|
24
|
+
<Block style={{ padding: 'var(--spacing-xsmall)' }}>
|
|
25
|
+
<SampleText
|
|
26
|
+
font={`${prefix}-font`}
|
|
27
|
+
spacing={`${prefix}-letter-spacing`}
|
|
28
|
+
/>
|
|
29
|
+
</Block>
|
|
30
|
+
</>
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
# Typography
|
|
34
|
+
|
|
35
|
+
Use typography scale set to present your design and content as clearly and efficiently as possible.
|
|
36
|
+
These text style perfeclty fit for 4px grid and go well with each other.
|
|
37
|
+
|
|
38
|
+
## Base
|
|
39
|
+
|
|
40
|
+
<Typography prefix="--type-base-font-family" />
|
|
41
|
+
|
|
42
|
+
## Display
|
|
43
|
+
|
|
44
|
+
### Display 1
|
|
45
|
+
|
|
46
|
+
<Typography prefix="--type-display-1" />
|
|
47
|
+
|
|
48
|
+
### Display 2
|
|
49
|
+
|
|
50
|
+
<Typography prefix="--type-display-2" />
|
|
51
|
+
|
|
52
|
+
### Display 3
|
|
53
|
+
|
|
54
|
+
<Typography prefix="--type-display-3" />
|
|
55
|
+
|
|
56
|
+
## Headlines
|
|
57
|
+
|
|
58
|
+
### Headline 1
|
|
59
|
+
|
|
60
|
+
<Typography prefix="--type-headline-1" />
|
|
61
|
+
|
|
62
|
+
### Headline 2
|
|
63
|
+
|
|
64
|
+
#### Default
|
|
65
|
+
|
|
66
|
+
<Typography prefix="--type-headline-2-default" />
|
|
67
|
+
|
|
68
|
+
#### Strong
|
|
69
|
+
|
|
70
|
+
<Typography prefix="--type-headline-2-strong" />
|
|
71
|
+
|
|
72
|
+
## Body
|
|
73
|
+
|
|
74
|
+
### Body 1
|
|
75
|
+
|
|
76
|
+
#### Default
|
|
77
|
+
|
|
78
|
+
<Typography prefix="--type-body-1-default" />
|
|
79
|
+
|
|
80
|
+
#### Strong
|
|
81
|
+
|
|
82
|
+
<Typography prefix="--type-body-1-strong" />
|
|
83
|
+
|
|
84
|
+
#### Emphasized
|
|
85
|
+
|
|
86
|
+
<Typography prefix="--type-body-1-emphasized" />
|
|
87
|
+
|
|
88
|
+
### Body 2
|
|
89
|
+
|
|
90
|
+
#### Default
|
|
91
|
+
|
|
92
|
+
<Typography prefix="--type-body-2-default" />
|
|
93
|
+
|
|
94
|
+
#### Strong
|
|
95
|
+
|
|
96
|
+
<Typography prefix="--type-body-2-strong" />
|
|
97
|
+
|
|
98
|
+
#### Emphasized
|
|
99
|
+
|
|
100
|
+
<Typography prefix="--type-body-2-emphasized" />
|
|
101
|
+
|
|
102
|
+
## Button
|
|
103
|
+
|
|
104
|
+
### Button 1
|
|
105
|
+
|
|
106
|
+
<Typography prefix="--type-button-1" />
|
|
107
|
+
|
|
108
|
+
### Button 2
|
|
109
|
+
|
|
110
|
+
<Typography prefix="--type-button-2" />
|
|
111
|
+
|
|
112
|
+
## Details
|
|
113
|
+
|
|
114
|
+
### Caption 1
|
|
115
|
+
|
|
116
|
+
<Typography prefix="--type-details-caption-1" />
|
|
117
|
+
|
|
118
|
+
### Caption 2
|
|
119
|
+
|
|
120
|
+
<Typography prefix="--type-details-caption-2" />
|
|
121
|
+
|
|
122
|
+
### Overline
|
|
123
|
+
|
|
124
|
+
<Typography prefix="--type-details-overline" />
|
|
125
|
+
|
|
126
|
+
</Unstyled>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Meta, Unstyled } from '@storybook/blocks';
|
|
2
|
+
|
|
3
|
+
<Meta title="Utilities/classList" />
|
|
4
|
+
<Unstyled>
|
|
5
|
+
|
|
6
|
+
# classes(classList)
|
|
7
|
+
|
|
8
|
+
This function takes in an array of classes and returns a string of space separated entries that can be used for CSS classname assignments.
|
|
9
|
+
|
|
10
|
+
## Params
|
|
11
|
+
|
|
12
|
+
`classList`
|
|
13
|
+
: An array containing strings or `<string,boolean>` arrays
|
|
14
|
+
|
|
15
|
+
## Returns
|
|
16
|
+
|
|
17
|
+
Returns a string of space separated entries that can be used for CSS classname assignments.
|
|
18
|
+
|
|
19
|
+
## Examples
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import { classes } from '@adobe/elsie/lib';
|
|
23
|
+
|
|
24
|
+
type ClassList = Array<string | [string, boolean] | undefined>;
|
|
25
|
+
|
|
26
|
+
const classList: ClassList = ['class-1', 'class-2', 'class-3'];
|
|
27
|
+
|
|
28
|
+
const result = classes(classList);
|
|
29
|
+
|
|
30
|
+
console.log(result); // "class-1 class-2 class-3"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
You can use a `<string,boolean>` array to control whether a class should be included or omitted from the final classes list.
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
import { classes } from '@adobe/elsie/lib';
|
|
37
|
+
|
|
38
|
+
type ClassList = Array<string | [string, boolean] | undefined>;
|
|
39
|
+
|
|
40
|
+
const classList: ClassList = [
|
|
41
|
+
'class-1',
|
|
42
|
+
['class-2', true],
|
|
43
|
+
['class-3', false],
|
|
44
|
+
'class-4',
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
const result = classes(classList);
|
|
48
|
+
|
|
49
|
+
console.log(result); // "class-1 class-2 class-4"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
</Unstyled>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Meta, Unstyled } from '@storybook/blocks';
|
|
2
|
+
|
|
3
|
+
<Meta title="Utilities/debounce" />
|
|
4
|
+
<Unstyled>
|
|
5
|
+
|
|
6
|
+
# debounce(fn, ms)
|
|
7
|
+
|
|
8
|
+
This function provides a way to delay callback execution or prevent overcalling a function until certain conditions are met.
|
|
9
|
+
|
|
10
|
+
## Params
|
|
11
|
+
|
|
12
|
+
`fn`
|
|
13
|
+
: The callback function to be executed
|
|
14
|
+
|
|
15
|
+
`ms`
|
|
16
|
+
: Time(in milliseconds) to delay callback execution
|
|
17
|
+
|
|
18
|
+
## Returns
|
|
19
|
+
|
|
20
|
+
A debounce version of the original callback function.
|
|
21
|
+
This function can be treated like the original callback, except when called, the delay timer resets.
|
|
22
|
+
|
|
23
|
+
## Examples
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
import { debounce } from '@adobe/elsie/ore/lib';
|
|
27
|
+
|
|
28
|
+
const debouncedLog = debounce(console.log, 500);
|
|
29
|
+
|
|
30
|
+
debouncedLog('Do not log this string');
|
|
31
|
+
|
|
32
|
+
// Wait 250ms
|
|
33
|
+
|
|
34
|
+
debouncedLog('Do not log this string'); // Resets delay timer
|
|
35
|
+
|
|
36
|
+
// Wait 250ms
|
|
37
|
+
|
|
38
|
+
debouncedLog('Do not log this string'); // Resets delay timer
|
|
39
|
+
|
|
40
|
+
// Wait 250ms
|
|
41
|
+
|
|
42
|
+
debouncedLog('Log this string'); // Resets delay timer
|
|
43
|
+
|
|
44
|
+
// Wait 500ms
|
|
45
|
+
|
|
46
|
+
// 'Log this string' is logged to the console and no other messages have been logged
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
</Unstyled>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Meta, Unstyled } from '@storybook/blocks';
|
|
2
|
+
|
|
3
|
+
<Meta title="Utilities/deepmerge" />
|
|
4
|
+
<Unstyled>
|
|
5
|
+
|
|
6
|
+
# deepmerge
|
|
7
|
+
|
|
8
|
+
Merges the enumerable properties of two or more objects deeply.
|
|
9
|
+
|
|
10
|
+
See: https://www.npmjs.com/package/deepmerge
|
|
11
|
+
|
|
12
|
+
</Unstyled>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Meta, Unstyled } from '@storybook/blocks';
|
|
2
|
+
|
|
3
|
+
<Meta title="Utilities/getFormErrors" />
|
|
4
|
+
<Unstyled>
|
|
5
|
+
|
|
6
|
+
# getFormErrors(form)
|
|
7
|
+
|
|
8
|
+
Returns every form error in an HTML form element.
|
|
9
|
+
|
|
10
|
+
## Params
|
|
11
|
+
|
|
12
|
+
`form`
|
|
13
|
+
: An HTMLFormElement
|
|
14
|
+
|
|
15
|
+
## Returns
|
|
16
|
+
|
|
17
|
+
A JavaScript object containing the form errors
|
|
18
|
+
|
|
19
|
+
## Examples
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<form>
|
|
23
|
+
<input name="foo" required value="Foo" />
|
|
24
|
+
<input name="bar" required />
|
|
25
|
+
<input name="age" type="number" value="uno" />
|
|
26
|
+
<input name="website" type="url" value="url" />
|
|
27
|
+
<input name="e-mail" type="email" value="email@" />
|
|
28
|
+
</form>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
import { getFormErrors } from '@adobe/elsie/ore/lib';
|
|
33
|
+
|
|
34
|
+
const formElement = container.querySelector('form') as HTMLFormElement;
|
|
35
|
+
|
|
36
|
+
const errors = getFormErrors(formElement);
|
|
37
|
+
|
|
38
|
+
console.log(errors); // { bar: 'Constraints not satisfied', website: 'Constraints not satisfied', 'e-mail': 'Constraints not satisfied', }
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
</Unstyled>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Meta, Unstyled } from '@storybook/blocks';
|
|
2
|
+
|
|
3
|
+
<Meta title="Utilities/getFormValues" />
|
|
4
|
+
<Unstyled>
|
|
5
|
+
|
|
6
|
+
# getFormValues(form)
|
|
7
|
+
|
|
8
|
+
Transforms the data in an HTML form element into a JavaScript object.
|
|
9
|
+
|
|
10
|
+
## Params
|
|
11
|
+
|
|
12
|
+
`form`
|
|
13
|
+
: An HTMLFormElement
|
|
14
|
+
|
|
15
|
+
## Returns
|
|
16
|
+
|
|
17
|
+
A JavaScript object containing the form data
|
|
18
|
+
|
|
19
|
+
## Examples
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<form>
|
|
23
|
+
<input name="foo" required value="Foo" />
|
|
24
|
+
<input name="bar" required value="Bar" />
|
|
25
|
+
</form>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
import { getFormValues } from '@adobe/elsie/ore/lib';
|
|
30
|
+
|
|
31
|
+
const formElement = container.querySelector('form') as HTMLFormElement;
|
|
32
|
+
|
|
33
|
+
const values = getFormValues(formElement);
|
|
34
|
+
|
|
35
|
+
console.log(values); // { bar: 'Bar', foo: 'Foo' }
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
</Unstyled>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { Meta, Unstyled } from '@storybook/blocks';
|
|
2
|
+
|
|
3
|
+
<Meta title="CLI usage" />
|
|
4
|
+
<Unstyled>
|
|
5
|
+
|
|
6
|
+
# CLI usage
|
|
7
|
+
|
|
8
|
+
To see all the available CLI commands in the terminal, use the `--help` flag:
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npx elsie --help
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## `gql`
|
|
15
|
+
|
|
16
|
+
The `gql` command can generate types and mocks for your GraphQL API and Operations. Files will
|
|
17
|
+
be generated in `<domain package root>/src/__generated__/`.
|
|
18
|
+
|
|
19
|
+
To use it, you must first configure your `.elsie.js` with the necessary values:
|
|
20
|
+
|
|
21
|
+
```js
|
|
22
|
+
// For Adobe Commerce Catalog Service
|
|
23
|
+
schema: {
|
|
24
|
+
endpoint: "https://catalog-service-sandbox.adobe.io/graphql",
|
|
25
|
+
headers: {
|
|
26
|
+
"MAGENTO-ENVIRONMENT-ID": "..."
|
|
27
|
+
"MAGENTO-STORE-VIEW-CODE": "..."
|
|
28
|
+
"MAGENTO-WEBSITE-CODE": "..."
|
|
29
|
+
"MAGENTO-STORE-CODE": "..."
|
|
30
|
+
"MAGENTO-CUSTOMER-GROUP": "..."
|
|
31
|
+
"API-KEY": "..."
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```js
|
|
37
|
+
// For Adobe Mesh API
|
|
38
|
+
schema: {
|
|
39
|
+
endpoint: "https://graph.adobe.io/api/.../graphql?api_key=...",
|
|
40
|
+
headers: {
|
|
41
|
+
"some-mesh-specific-header": "mesh-header-value"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
```js
|
|
47
|
+
// For Adobe Commerce (non-Mesh)
|
|
48
|
+
schema: {
|
|
49
|
+
endpoint: "https://commerce-backend-url.test.graphql",
|
|
50
|
+
headers: {}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Then the following commands will generate to `src/__generated__/`:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npx elsie gql types
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npx elsie gql mocks
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Note**: In order to generate types for your _client_ operations you **must** have your operations in files using the \*.graphql.ts extension, and you **must** prepend the query string with `/\* graphql \*/` (the [magic comment](https://the-guild.dev/graphql/codegen/docs/config-reference/documents-field#graphql-tag-pluck) is case insensitive).
|
|
65
|
+
|
|
66
|
+
Example:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
export const CREATE_CART = /* graphql */ `
|
|
70
|
+
mutation createCart {
|
|
71
|
+
cartId: createEmptyCart
|
|
72
|
+
}
|
|
73
|
+
`;
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## `generate`
|
|
77
|
+
|
|
78
|
+
Summary list of commands for quick copy/paste.
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npx elsie generate config --name <Domain>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
npx elsie generate component --pathname <MyUIComponent>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
npx elsie generate container --pathname <MyContainer>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
npx elsie generate api --pathname <myApiFunction>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Add Config
|
|
97
|
+
|
|
98
|
+
Generate a new `.elsie.js` configuration file for the project.
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
npx elsie generate config --name <Domain>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
```javascript
|
|
105
|
+
module.exports = {
|
|
106
|
+
name: '<Domain>',
|
|
107
|
+
api: {
|
|
108
|
+
root: './src/api',
|
|
109
|
+
importAliasRoot: '@/<Domain>/api',
|
|
110
|
+
},
|
|
111
|
+
components: [
|
|
112
|
+
{
|
|
113
|
+
id: 'Components',
|
|
114
|
+
root: './src/components',
|
|
115
|
+
importAliasRoot: '@/<Domain>/components',
|
|
116
|
+
cssPrefix: 'dropin',
|
|
117
|
+
default: true,
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
containers: {
|
|
121
|
+
root: './src/containers',
|
|
122
|
+
importAliasRoot: '@/<Domain>/containers',
|
|
123
|
+
},
|
|
124
|
+
schema: {
|
|
125
|
+
endpoint: process.env.ENDPOINT,
|
|
126
|
+
// Add necessary headers
|
|
127
|
+
headers: {},
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Add Component
|
|
133
|
+
|
|
134
|
+
Generate a new UI Component for the project.
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
npx elsie generate component --pathname <MyUIComponent>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
🆕 src/components/LoginForm/LoginForm.css created
|
|
142
|
+
🆕 src/components/LoginForm/LoginForm.stories.tsx created
|
|
143
|
+
🆕 src/components/LoginForm/LoginForm.test.tsx created
|
|
144
|
+
🆕 src/components/LoginForm/LoginForm.tsx created
|
|
145
|
+
🆕 src/components/LoginForm/index.ts created
|
|
146
|
+
✍️ src/components/index.ts updated
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Add Container
|
|
150
|
+
|
|
151
|
+
Generate a new Frontend Container for the project.
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
npx elsie generate container --pathname <MyContainer>
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
🆕 src/containers/Login/Login.stories.tsx created
|
|
159
|
+
🆕 src/containers/Login/Login.test.tsx created
|
|
160
|
+
🆕 src/containers/Login/Login.tsx created
|
|
161
|
+
🆕 src/containers/Login/index.ts created
|
|
162
|
+
✍️ src/containers/index.ts updated
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Add Function
|
|
166
|
+
|
|
167
|
+
Generate a new API function for the project.
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
npx elsie generate api --pathname <myApiFunction>
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
```console
|
|
174
|
+
🆕 src/api/login/login.mdx created
|
|
175
|
+
🆕 src/api/login/login.test.ts created
|
|
176
|
+
🆕 src/api/login/login.ts created
|
|
177
|
+
🆕 src/api/login/index.ts created
|
|
178
|
+
✍️ src/api/index.ts updated
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
</Unstyled>
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Meta, Unstyled } from '@storybook/blocks';
|
|
2
|
+
import { Flex } from '@adobe/elsie/config/storybook/components/Flex';
|
|
3
|
+
import { Panel } from '@adobe/elsie/config/storybook/components/Panel';
|
|
4
|
+
import {
|
|
5
|
+
Button,
|
|
6
|
+
ActionButton,
|
|
7
|
+
Picker,
|
|
8
|
+
Divider,
|
|
9
|
+
Card,
|
|
10
|
+
Field,
|
|
11
|
+
Incrementer,
|
|
12
|
+
Input,
|
|
13
|
+
Checkbox,
|
|
14
|
+
} from '@adobe/elsie/src/components';
|
|
15
|
+
|
|
16
|
+
<Meta title="Components/Overview" />
|
|
17
|
+
<Unstyled>
|
|
18
|
+
|
|
19
|
+
# Drop-in component library
|
|
20
|
+
|
|
21
|
+
The component library provides a flexible set of interactive building blocks, such as actions, containment,
|
|
22
|
+
navigation, text, and selection elements, thought to create unique tailored
|
|
23
|
+
commerce user interfaces.
|
|
24
|
+
|
|
25
|
+
**NOTE**: Not all components are listed below. Refer to the left-side navigation for a complete list of components.
|
|
26
|
+
|
|
27
|
+
## Actions
|
|
28
|
+
|
|
29
|
+
<Flex>
|
|
30
|
+
<Panel header footer>
|
|
31
|
+
<ActionButton>Action Button</ActionButton>
|
|
32
|
+
### Action Button
|
|
33
|
+
Action buttons allow users to perform an action or mark a selection in task-based options, and are ideal for buttons that aren't meant to draw a lot of attention.
|
|
34
|
+
|
|
35
|
+
[Learn more](/docs/components-actionbutton--overview)
|
|
36
|
+
</Panel>
|
|
37
|
+
|
|
38
|
+
<Panel header footer>
|
|
39
|
+
<Button variant="primary">Button</Button>
|
|
40
|
+
### Button
|
|
41
|
+
Buttons allow users to perform actions or to navigate to another page. They have multiple styles for each need, and call user attention to move forward in a flow.
|
|
42
|
+
|
|
43
|
+
[Learn more](/docs/components-button--overview)
|
|
44
|
+
</Panel>
|
|
45
|
+
</Flex>
|
|
46
|
+
|
|
47
|
+
## Containment
|
|
48
|
+
|
|
49
|
+
<Flex>
|
|
50
|
+
<Panel header footer>
|
|
51
|
+
<Card variant='secondary' style={{width: '250px'}}>
|
|
52
|
+
<p style={{ font: 'var(--type-body-2-default-font)' }}>
|
|
53
|
+
This is a short description of the item and should be kept to two or
|
|
54
|
+
three lines as maximum.
|
|
55
|
+
</p>
|
|
56
|
+
</Card>
|
|
57
|
+
### Card
|
|
58
|
+
Card is a general purpose container with different combination of semantics that can be used to hold and create related groups of information and actions.
|
|
59
|
+
|
|
60
|
+
[Learn more](/docs/components-card--overview)
|
|
61
|
+
</Panel>
|
|
62
|
+
|
|
63
|
+
<Panel header footer>
|
|
64
|
+
<div style={{ width: '200px' }}>
|
|
65
|
+
<Divider variant="secondary" />
|
|
66
|
+
</div>
|
|
67
|
+
### Divider
|
|
68
|
+
Dividers bring clarity to a layout by grouping and dividing content by proximity, establish rhythm, and creating hierarchy.
|
|
69
|
+
|
|
70
|
+
[Learn more](/docs/components-divider--overview)
|
|
71
|
+
</Panel>
|
|
72
|
+
</Flex>
|
|
73
|
+
|
|
74
|
+
## Selection controls
|
|
75
|
+
|
|
76
|
+
<Flex>
|
|
77
|
+
<Panel header footer>
|
|
78
|
+
<Checkbox name="checkboxField" label="Option" width="auto" />
|
|
79
|
+
### Checkbox
|
|
80
|
+
Checkboxes allow users to select multiple items from a list of individual items, or to mark one individual item as selected.
|
|
81
|
+
|
|
82
|
+
[Learn more](/docs/components-checkbox--overview)
|
|
83
|
+
</Panel>
|
|
84
|
+
|
|
85
|
+
<Panel header footer>
|
|
86
|
+
<Field size="medium" label="Label" hint="Helper text">
|
|
87
|
+
<Input variant="primary" />
|
|
88
|
+
</Field>
|
|
89
|
+
### Field
|
|
90
|
+
Form fields allow users to combine input entries with various displayed options to communicate field requirements.
|
|
91
|
+
|
|
92
|
+
[Learn more](/docs/components-field--overview)
|
|
93
|
+
</Panel>
|
|
94
|
+
|
|
95
|
+
<Panel header footer>
|
|
96
|
+
<Incrementer defaultValue="1" min={0} max={100} size="medium" />
|
|
97
|
+
### Incrementer
|
|
98
|
+
Incrementer enable users to make selections for numerical values in a specific range by clicking on the component or by typing a value.
|
|
99
|
+
|
|
100
|
+
[Learn more](/docs/components-incrementer--overview)
|
|
101
|
+
</Panel>
|
|
102
|
+
|
|
103
|
+
<Panel header footer>
|
|
104
|
+
<Picker options={[]} />
|
|
105
|
+
### Picker
|
|
106
|
+
Pickers, also known as "dropdowns" or "selects", allow users to choose from a list of options in a limited space. The list of options can change based on the context.
|
|
107
|
+
|
|
108
|
+
[Learn more](/docs/components-picker--overview)
|
|
109
|
+
</Panel>
|
|
110
|
+
</Flex>
|
|
111
|
+
|
|
112
|
+
## Text inputs
|
|
113
|
+
|
|
114
|
+
<Flex>
|
|
115
|
+
<Panel header footer>
|
|
116
|
+
<Input variant="primary" placeholder="Placeholder" />
|
|
117
|
+
### Text field
|
|
118
|
+
Text fields allow users to input custom text entries with a keyboard.
|
|
119
|
+
|
|
120
|
+
[Learn more](/docs/components-input--overview)
|
|
121
|
+
</Panel>
|
|
122
|
+
</Flex>
|
|
123
|
+
|
|
124
|
+
</Unstyled>
|