+
+
+
Recent orders
+
+
+ {orders.map((order) => (
+
+
+ Order placed on
+
+
+
+
+
- Order
+ - {order.name}
+
+
- Date placed
+ -
+
+
+
+ {order.totalPrice && (
+
+ )}
+
+
+
+
+
+
+
View Order
+
{order.normalizedId}
+
+
- ))}
-
-
-
-
-
- {order.lineItems.length} item{order.lineItems.length > 1 && 's'}
-
-
-
+
+
Items
+
+ {order.lineItems.map((item) => (
+ -
+
+
+ {item.image ? (
+
+ ) : (
+
+
+
+ )}
+
+
+
+
{item.title}
+ {item.price &&
}
+
+
+ {item.variantTitle}
+
+
+
+
+ ))}
+
-
-
+ ))}
- ))}
+
);
diff --git a/components/form/file-input.tsx b/components/form/file-input.tsx
new file mode 100644
index 000000000..7c1ab6aa5
--- /dev/null
+++ b/components/form/file-input.tsx
@@ -0,0 +1,33 @@
+import { PhotoIcon } from '@heroicons/react/24/outline';
+import { useId } from 'react';
+
+type FileInputProps = {
+ name: string;
+ label: string;
+};
+
+const FileInput = ({ name, label }: FileInputProps) => {
+ const id = useId();
+ return (
+
+
+
+
+
+
+
+
or drag and drop
+
+
+
+
+ );
+};
+
+export default FileInput;
diff --git a/components/form/input.tsx b/components/form/input.tsx
new file mode 100644
index 000000000..55dfe1204
--- /dev/null
+++ b/components/form/input.tsx
@@ -0,0 +1,20 @@
+import { Field, Input as HeadlessInput, Label } from '@headlessui/react';
+import { InputHTMLAttributes } from 'react';
+
+type InputProps = InputHTMLAttributes
& {
+ label: string;
+};
+
+const Input = ({ label, ...props }: InputProps) => {
+ return (
+
+
+
+
+ );
+};
+
+export default Input;
diff --git a/components/orders/activate-warranty-modal.tsx b/components/orders/activate-warranty-modal.tsx
new file mode 100644
index 000000000..9ac74abfc
--- /dev/null
+++ b/components/orders/activate-warranty-modal.tsx
@@ -0,0 +1,57 @@
+'use client';
+
+import { Dialog, DialogBackdrop, DialogPanel, DialogTitle } from '@headlessui/react';
+import FileInput from 'components/form/file-input';
+import Input from 'components/form/input';
+
+type ActivateWarrantyModalProps = {
+ isOpen: boolean;
+ onClose: () => void;
+};
+
+function ActivateWarrantyModal({ onClose, isOpen }: ActivateWarrantyModalProps) {
+ return (
+
+ );
+}
+
+export default ActivateWarrantyModal;
diff --git a/components/orders/activate-warranty.tsx b/components/orders/activate-warranty.tsx
new file mode 100644
index 000000000..8ba7c7c9c
--- /dev/null
+++ b/components/orders/activate-warranty.tsx
@@ -0,0 +1,25 @@
+'use client';
+
+import { useState } from 'react';
+import ActivateWarrantyModal from './activate-warranty-modal';
+
+type ActivateWarrantyModalProps = {
+ orderId: string;
+};
+
+const ActivateWarranty = ({ orderId }: ActivateWarrantyModalProps) => {
+ const [isOpen, setIsOpen] = useState(false);
+ return (
+ <>
+
+ setIsOpen(false)} />
+ >
+ );
+};
+
+export default ActivateWarranty;
diff --git a/components/orders/mobile-order-actions.tsx b/components/orders/mobile-order-actions.tsx
new file mode 100644
index 000000000..5b8ced240
--- /dev/null
+++ b/components/orders/mobile-order-actions.tsx
@@ -0,0 +1,62 @@
+'use client';
+
+import { Button, Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/react';
+import { EllipsisVerticalIcon } from '@heroicons/react/24/solid';
+import clsx from 'clsx';
+import { Order } from 'lib/shopify/types';
+import Link from 'next/link';
+import { useState } from 'react';
+import ActivateWarrantyModal from './activate-warranty-modal';
+
+const MobileOrderActions = ({ order }: { order: Order }) => {
+ const [isOpen, setIsOpen] = useState(false);
+
+ return (
+ <>
+
+ setIsOpen(false)} />
+ >
+ );
+};
+
+export default MobileOrderActions;
diff --git a/components/orders/order-summary.tsx b/components/orders/order-summary.tsx
index 25aa81a51..4510d0562 100644
--- a/components/orders/order-summary.tsx
+++ b/components/orders/order-summary.tsx
@@ -1,10 +1,11 @@
-import Image from 'next/image';
+import { InformationCircleIcon } from '@heroicons/react/24/outline';
import Price from 'components/price';
import Badge from 'components/ui/badge';
import Heading from 'components/ui/heading';
import Label from 'components/ui/label';
import Text from 'components/ui/text';
import { Order } from 'lib/shopify/types';
+import Image from 'next/image';
export default function OrderSummary({ order }: { order: Order }) {
return (
@@ -12,19 +13,32 @@ export default function OrderSummary({ order }: { order: Order }) {
Order Summary
{order.lineItems.map((lineItem, index) => (
-
-
-
-
-
-
{lineItem.title}
-
+
+
+
+
+ {lineItem.image ? (
+
+ ) : (
+
+
+
+ )}
+
+
+
+ {lineItem.title}
+
+
{
+ return (
+
+
+
+ Order history
+
+
+ Check the status of recent orders, manage returns, and discover similar products.
+
+
+
+ );
+};
+
+export default OrdersHeader;
diff --git a/components/price.tsx b/components/price.tsx
index af096fd09..510b427de 100644
--- a/components/price.tsx
+++ b/components/price.tsx
@@ -1,16 +1,17 @@
import clsx from 'clsx';
+import { JSXElementConstructor } from 'react';
const Price = ({
amount,
className,
- as,
+ as: Component = 'p',
currencyCode = 'USD',
currencyCodeClassName,
showCurrency = false,
prefix
}: {
amount: string;
- as?: 'p' | 'span';
+ as?: keyof JSX.IntrinsicElements | JSXElementConstructor;
className?: string;
currencyCode: string;
currencyCodeClassName?: string;
@@ -25,7 +26,6 @@ const Price = ({
return Included
;
}
- const Component = as || 'p';
// Otherwise, format and display the price
return (
diff --git a/lib/constants.ts b/lib/constants.ts
index eeaf84cfb..2d246a218 100644
--- a/lib/constants.ts
+++ b/lib/constants.ts
@@ -35,6 +35,7 @@ export const TAGS = {
export const HIDDEN_PRODUCT_TAG = 'nextjs-frontend-hidden';
export const DEFAULT_OPTION = 'Default Title';
export const SHOPIFY_GRAPHQL_API_ENDPOINT = '/api/2024-04/graphql.json';
+export const SHOPIFY_GRAPHQL_CUSTOMER_API_ENDPOINT = '/account/customer/api/2024-07/graphql';
export const CORE_WAIVER = 'core-waiver';
export const CORE_VARIANT_ID_KEY = 'coreVariantId';
diff --git a/lib/shopify/fragments/line-item.ts b/lib/shopify/fragments/line-item.ts
new file mode 100644
index 000000000..fb151bf65
--- /dev/null
+++ b/lib/shopify/fragments/line-item.ts
@@ -0,0 +1,25 @@
+const lineItemFragment = /* GraphQL */ `
+ fragment LineItem on LineItem {
+ title
+ image {
+ altText
+ height
+ url
+ width
+ }
+ price {
+ amount
+ currencyCode
+ }
+ quantity
+ sku
+ totalPrice {
+ amount
+ currencyCode
+ }
+ variantTitle
+ id
+ }
+`;
+
+export default lineItemFragment;
diff --git a/lib/shopify/fragments/order-card.ts b/lib/shopify/fragments/order-card.ts
index a7e87671b..4d8dc81b9 100644
--- a/lib/shopify/fragments/order-card.ts
+++ b/lib/shopify/fragments/order-card.ts
@@ -1,9 +1,12 @@
+import lineItemFragment from './line-item';
+
const orderCard = /* GraphQL */ `
fragment OrderCard on Order {
id
number
name
processedAt
+ createdAt
financialStatus
fulfillments(first: 1) {
edges {
@@ -17,20 +20,12 @@ const orderCard = /* GraphQL */ `
currencyCode
}
lineItems(first: 20) {
- edges {
- node {
- title
- quantity
- image {
- altText
- height
- url
- width
- }
- }
+ nodes {
+ ...LineItem
}
}
}
+ ${lineItemFragment}
`;
export default orderCard;
diff --git a/lib/shopify/index.ts b/lib/shopify/index.ts
index 9678e596c..e4b3c864e 100644
--- a/lib/shopify/index.ts
+++ b/lib/shopify/index.ts
@@ -7,6 +7,7 @@ import {
PRICE_FILTER_ID,
PRODUCT_METAFIELD_PREFIX,
SHOPIFY_GRAPHQL_API_ENDPOINT,
+ SHOPIFY_GRAPHQL_CUSTOMER_API_ENDPOINT,
TAGS,
VARIANT_METAFIELD_PREFIX,
YEAR_FILTER_ID
@@ -29,9 +30,12 @@ import {
getCollectionQuery,
getCollectionsQuery
} from './queries/collection';
+import { getCustomerQuery } from './queries/customer';
import { getMenuQuery } from './queries/menu';
import { getMetaobjectQuery, getMetaobjectsQuery } from './queries/metaobject';
import { getImageQuery, getMetaobjectsByIdsQuery } from './queries/node';
+import { getCustomerOrderQuery } from './queries/order';
+import { getCustomerOrdersQuery } from './queries/orders';
import { getPageQuery, getPagesQuery } from './queries/page';
import {
getProductQuery,
@@ -46,18 +50,19 @@ import {
Connection,
Customer,
Filter,
+ Fulfillment,
Image,
+ LineItem,
Menu,
Metaobject,
Money,
Order,
- Fulfillment,
- Transaction,
Page,
PageInfo,
Product,
ProductVariant,
ShopifyAddToCartOperation,
+ ShopifyAddress,
ShopifyCart,
ShopifyCartOperation,
ShopifyCollection,
@@ -65,6 +70,7 @@ import {
ShopifyCollectionProductsOperation,
ShopifyCollectionsOperation,
ShopifyCreateCartOperation,
+ ShopifyCustomer,
ShopifyCustomerOperation,
ShopifyCustomerOrderOperation,
ShopifyCustomerOrdersOperation,
@@ -73,6 +79,8 @@ import {
ShopifyMenuOperation,
ShopifyMetaobject,
ShopifyMetaobjectsOperation,
+ ShopifyMoneyV2,
+ ShopifyOrder,
ShopifyPage,
ShopifyPageOperation,
ShopifyPagesOperation,
@@ -84,26 +92,18 @@ import {
ShopifyRemoveFromCartOperation,
ShopifySetCartAttributesOperation,
ShopifyUpdateCartOperation,
- TransmissionType,
- ShopifyCustomer,
- ShopifyOrder,
- ShopifyAddress,
- ShopifyMoneyV2,
- LineItem
+ Transaction,
+ TransmissionType
} from './types';
-import { getCustomerQuery } from './queries/customer';
-import { getCustomerOrdersQuery } from './queries/orders';
-import { getCustomerOrderQuery } from './queries/order';
const domain = process.env.SHOPIFY_STORE_DOMAIN
? ensureStartsWith(process.env.SHOPIFY_STORE_DOMAIN, 'https://')
: '';
const customerApiUrl = process.env.SHOPIFY_CUSTOMER_ACCOUNT_API_URL;
-const customerApiVersion = process.env.SHOPIFY_CUSTOMER_API_VERSION;
const storefrontEndpoint = `${domain}${SHOPIFY_GRAPHQL_API_ENDPOINT}`;
-const customerEndpoint = `${customerApiUrl}/account/customer/api/${customerApiVersion}/graphql`;
+const customerEndpoint = `${customerApiUrl}/${SHOPIFY_GRAPHQL_CUSTOMER_API_ENDPOINT}`;
const userAgent = '*';
const placeholderProductImage =
@@ -528,24 +528,15 @@ function reshapeOrder(shopifyOrder: ShopifyOrder): Order {
}));
const orderLineItems: LineItem[] =
- shopifyOrder.lineItems?.edges.map((edge) => ({
- id: edge.node.id,
- title: edge.node.title,
- quantity: edge.node.quantity,
- image: {
- url: edge.node.image?.url || placeholderProductImage,
- altText: edge.node.image?.altText || edge.node.title,
- width: 62,
- height: 62
- },
- price: reshapeMoney(edge.node.price),
- totalPrice: reshapeMoney(edge.node.totalPrice),
- variantTitle: edge.node.variantTitle,
- sku: edge.node.sku
+ shopifyOrder.lineItems?.nodes?.map((item) => ({
+ ...item,
+ price: reshapeMoney(item.price),
+ totalPrice: reshapeMoney(item.totalPrice)
})) || [];
const order: Order = {
- id: shopifyOrder.id.replace('gid://shopify/Order/', ''),
+ id: shopifyOrder.id,
+ normalizedId: shopifyOrder.id.replace('gid://shopify/Order/', ''),
name: shopifyOrder.name,
processedAt: shopifyOrder.processedAt,
fulfillments: orderFulfillments,
@@ -556,7 +547,8 @@ function reshapeOrder(shopifyOrder: ShopifyOrder): Order {
subtotal: reshapeMoney(shopifyOrder.subtotal),
totalShipping: reshapeMoney(shopifyOrder.totalShipping),
totalTax: reshapeMoney(shopifyOrder.totalTax),
- totalPrice: reshapeMoney(shopifyOrder.totalPrice)
+ totalPrice: reshapeMoney(shopifyOrder.totalPrice),
+ createdAt: shopifyOrder.createdAt
};
if (shopifyOrder.customer) {
diff --git a/lib/shopify/queries/order.ts b/lib/shopify/queries/order.ts
index cc8e7d5f8..826479f27 100644
--- a/lib/shopify/queries/order.ts
+++ b/lib/shopify/queries/order.ts
@@ -1,3 +1,5 @@
+import lineItemFragment from '../fragments/line-item';
+
// NOTE: https://shopify.dev/docs/api/customer/latest/queries/customer
export const getCustomerOrderQuery = /* GraphQL */ `
query getCustomerOrderQuery($orderId: ID!) {
@@ -55,11 +57,9 @@ export const getCustomerOrderQuery = /* GraphQL */ `
}
}
lineItems(first: 50) {
- edges {
- node {
- id
- ...LineItem
- }
+ nodes {
+ id
+ ...LineItem
}
}
totalPrice {
@@ -194,25 +194,6 @@ export const getCustomerOrderQuery = /* GraphQL */ `
happenedAt
}
- fragment LineItem on LineItem {
- title
- image {
- altText
- height
- url
- width
- }
- price {
- ...Price
- }
- quantity
- sku
- totalPrice {
- ...Price
- }
- variantTitle
- }
-
fragment OrderPaymentInformation on OrderPaymentInformation {
paymentStatus
totalPaidAmount {
@@ -237,4 +218,5 @@ export const getCustomerOrderQuery = /* GraphQL */ `
}
}
}
+ ${lineItemFragment}
`;
diff --git a/lib/shopify/types.ts b/lib/shopify/types.ts
index 466dec33d..ce7fede25 100644
--- a/lib/shopify/types.ts
+++ b/lib/shopify/types.ts
@@ -121,7 +121,7 @@ export type Address = {
export type LineItem = {
id: string;
title: string;
- image: Image;
+ image: Image | null;
price?: Money;
quantity?: number;
sku?: string;
@@ -131,9 +131,11 @@ export type LineItem = {
export type Order = {
id: string;
+ normalizedId: string;
name: string;
customer?: Customer;
processedAt: string;
+ createdAt: string;
fulfillments: Fulfillment[];
transactions: Transaction[];
lineItems: LineItem[];
@@ -156,13 +158,16 @@ export type ShopifyOrder = {
confirmationNumber: string;
customer: ShopifyCustomer;
processedAt: string;
+ createdAt: string;
cancelledAt: string | null;
currencyCode: string;
transactions: ShopifyOrderTransaction[];
billingAddress: ShopifyAddress;
shippingAddress: ShopifyAddress;
fulfillments: Connection;
- lineItems: Connection;
+ lineItems: {
+ nodes: ShopifyLineItem[];
+ };
totalPrice: ShopifyMoneyV2;
subtotal: ShopifyMoneyV2;
totalShipping: ShopifyMoneyV2;
@@ -269,7 +274,7 @@ type ShopifyFulfillmentLineItem = {
type ShopifyLineItem = {
id: string;
title: string;
- image: ShopifyImage;
+ image: Image | null;
price: ShopifyMoneyV2;
quantity: number;
sku: string;
@@ -277,13 +282,6 @@ type ShopifyLineItem = {
variantTitle: string;
};
-type ShopifyImage = {
- altText: string;
- height: number;
- url: string;
- width: number;
-};
-
type ShopifyFulfillmentEvent = {
status: string;
happenedAt: string;
diff --git a/lib/utils.ts b/lib/utils.ts
index ef06cf8e8..1233b5c99 100644
--- a/lib/utils.ts
+++ b/lib/utils.ts
@@ -87,3 +87,11 @@ export function parseJSON(json: any) {
function noproto(k: string, v: string) {
if (k !== '__proto__') return v;
}
+
+export function toPrintDate(date: string) {
+ return new Date(date).toLocaleDateString('en-US', {
+ year: 'numeric',
+ month: 'long',
+ day: 'numeric'
+ });
+}
diff --git a/package.json b/package.json
index 976bad353..96a421952 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,7 @@
"*": "prettier --write --ignore-unknown"
},
"dependencies": {
- "@headlessui/react": "^2.0.1",
+ "@headlessui/react": "^2.1.0",
"@heroicons/react": "^2.1.3",
"@hookform/resolvers": "^3.6.0",
"@radix-ui/react-checkbox": "^1.0.4",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a8d1f95f5..f3b233c26 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@headlessui/react':
- specifier: ^2.0.1
- version: 2.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ specifier: ^2.1.0
+ version: 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@heroicons/react':
specifier: ^2.1.3
version: 2.1.3(react@18.2.0)
@@ -180,14 +180,14 @@ packages:
'@floating-ui/dom@1.6.3':
resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==}
- '@floating-ui/react-dom@2.0.9':
- resolution: {integrity: sha512-q0umO0+LQK4+p6aGyvzASqKbKOJcAHJ7ycE9CuUvfx3s9zTHWmGJTPOIlM/hmSBfUfg/XfY5YhLBLR/LHwShQQ==}
+ '@floating-ui/react-dom@2.1.0':
+ resolution: {integrity: sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==}
peerDependencies:
react: '>=16.8.0'
react-dom: '>=16.8.0'
- '@floating-ui/react@0.26.13':
- resolution: {integrity: sha512-kBa9wntpugzrZ8t/4yWelvSmEKZdeTXTJzrxqyrLmcU/n1SM4nvse8yQh2e1b37rJGvtu0EplV9+IkBrCJ1vkw==}
+ '@floating-ui/react@0.26.17':
+ resolution: {integrity: sha512-ESD+jYWwqwVzaIgIhExrArdsCL1rOAzryG/Sjlu8yaD3Mtqi3uVyhbE2V7jD58Mo52qbzKz2eUY/Xgh5I86FCQ==}
peerDependencies:
react: '>=16.8.0'
react-dom: '>=16.8.0'
@@ -195,8 +195,8 @@ packages:
'@floating-ui/utils@0.2.1':
resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==}
- '@headlessui/react@2.0.1':
- resolution: {integrity: sha512-GxFvHHk27AYELf0WIMa0LgSeVqJ0SOvIwg7USTptMFbtLz31jNGQoolHiQPnvsI/IMmEeJ4ybzQlqV69/uvQ8A==}
+ '@headlessui/react@2.1.0':
+ resolution: {integrity: sha512-/MizQk2xqR5ELkmCI1xWy3VgJULvR8gcAXtZhcK7sY53TNRCPeMdeODEXKSv9LPSSRlEAyzW1+NGJiaXq6dLRw==}
engines: {node: '>=10'}
peerDependencies:
react: ^18
@@ -435,34 +435,34 @@ packages:
'@types/react':
optional: true
- '@react-aria/focus@3.17.0':
- resolution: {integrity: sha512-aRzBw1WTUkcIV3xFrqPA6aB8ZVt3XyGpTaSHAypU0Pgoy2wRq9YeJYpbunsKj9CJmskuffvTqXwAjTcaQish1Q==}
+ '@react-aria/focus@3.17.1':
+ resolution: {integrity: sha512-FLTySoSNqX++u0nWZJPPN5etXY0WBxaIe/YuL/GTEeuqUIuC/2bJSaw5hlsM6T2yjy6Y/VAxBcKSdAFUlU6njQ==}
peerDependencies:
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- '@react-aria/interactions@3.21.2':
- resolution: {integrity: sha512-Ju706DtoEmI/2vsfu9DCEIjDqsRBVLm/wmt2fr0xKbBca7PtmK8daajxFWz+eTq+EJakvYfLr7gWgLau9HyWXg==}
+ '@react-aria/interactions@3.21.3':
+ resolution: {integrity: sha512-BWIuf4qCs5FreDJ9AguawLVS0lV9UU+sK4CCnbCNNmYqOWY+1+gRXCsnOM32K+oMESBxilAjdHW5n1hsMqYMpA==}
peerDependencies:
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- '@react-aria/ssr@3.9.3':
- resolution: {integrity: sha512-5bUZ93dmvHFcmfUcEN7qzYe8yQQ8JY+nHN6m9/iSDCQ/QmCiE0kWXYwhurjw5ch6I8WokQzx66xKIMHBAa4NNA==}
+ '@react-aria/ssr@3.9.4':
+ resolution: {integrity: sha512-4jmAigVq409qcJvQyuorsmBR4+9r3+JEC60wC+Y0MZV0HCtTmm8D9guYXlJMdx0SSkgj0hHAyFm/HvPNFofCoQ==}
engines: {node: '>= 12'}
peerDependencies:
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- '@react-aria/utils@3.24.0':
- resolution: {integrity: sha512-JAxkPhK5fCvFVNY2YG3TW3m1nTzwRcbz7iyTSkUzLFat4N4LZ7Kzh7NMHsgeE/oMOxd8zLY+XsUxMu/E/2GujA==}
+ '@react-aria/utils@3.24.1':
+ resolution: {integrity: sha512-O3s9qhPMd6n42x9sKeJ3lhu5V1Tlnzhu6Yk8QOvDuXf7UGuUjXf9mzfHJt1dYzID4l9Fwm8toczBzPM9t0jc8Q==}
peerDependencies:
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- '@react-stately/utils@3.10.0':
- resolution: {integrity: sha512-nji2i9fTYg65ZWx/3r11zR1F2tGya+mBubRCbMTwHyRnsSLFZaeq/W6lmrOyIy1uMJKBNKLJpqfmpT4x7rw6pg==}
+ '@react-stately/utils@3.10.1':
+ resolution: {integrity: sha512-VS/EHRyicef25zDZcM/ClpzYMC5i2YGN6uegOeQawmgfGjb02yaCX0F0zR69Pod9m2Hr3wunTbtpgVXvYbZItg==}
peerDependencies:
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- '@react-types/shared@3.23.0':
- resolution: {integrity: sha512-GQm/iPiii3ikcaMNR4WdVkJ4w0mKtV3mLqeSfSqzdqbPr6vONkqXbh3RhPlPmAJs1b4QHnexd/wZQP3U9DHOwQ==}
+ '@react-types/shared@3.23.1':
+ resolution: {integrity: sha512-5d+3HbFDxGZjhbMBeFHRQhexMFt4pUce3okyRtUVKbbedQFUrtXSBg9VszgF2RTeQDKDkMCIQDtz5ccP/Lk1gw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
@@ -472,9 +472,6 @@ packages:
'@swc/counter@0.1.3':
resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
- '@swc/helpers@0.5.2':
- resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
-
'@swc/helpers@0.5.5':
resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
@@ -2344,15 +2341,15 @@ snapshots:
'@floating-ui/core': 1.6.0
'@floating-ui/utils': 0.2.1
- '@floating-ui/react-dom@2.0.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@floating-ui/react-dom@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
dependencies:
'@floating-ui/dom': 1.6.3
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- '@floating-ui/react@0.26.13(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@floating-ui/react@0.26.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
dependencies:
- '@floating-ui/react-dom': 2.0.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@floating-ui/react-dom': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@floating-ui/utils': 0.2.1
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -2360,11 +2357,11 @@ snapshots:
'@floating-ui/utils@0.2.1': {}
- '@headlessui/react@2.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@headlessui/react@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
dependencies:
- '@floating-ui/react': 0.26.13(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
- '@react-aria/focus': 3.17.0(react@18.2.0)
- '@react-aria/interactions': 3.21.2(react@18.2.0)
+ '@floating-ui/react': 0.26.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ '@react-aria/focus': 3.17.1(react@18.2.0)
+ '@react-aria/interactions': 3.21.3(react@18.2.0)
'@tanstack/react-virtual': 3.5.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -2564,43 +2561,43 @@ snapshots:
optionalDependencies:
'@types/react': 18.2.72
- '@react-aria/focus@3.17.0(react@18.2.0)':
+ '@react-aria/focus@3.17.1(react@18.2.0)':
dependencies:
- '@react-aria/interactions': 3.21.2(react@18.2.0)
- '@react-aria/utils': 3.24.0(react@18.2.0)
- '@react-types/shared': 3.23.0(react@18.2.0)
- '@swc/helpers': 0.5.2
+ '@react-aria/interactions': 3.21.3(react@18.2.0)
+ '@react-aria/utils': 3.24.1(react@18.2.0)
+ '@react-types/shared': 3.23.1(react@18.2.0)
+ '@swc/helpers': 0.5.5
clsx: 2.1.0
react: 18.2.0
- '@react-aria/interactions@3.21.2(react@18.2.0)':
+ '@react-aria/interactions@3.21.3(react@18.2.0)':
dependencies:
- '@react-aria/ssr': 3.9.3(react@18.2.0)
- '@react-aria/utils': 3.24.0(react@18.2.0)
- '@react-types/shared': 3.23.0(react@18.2.0)
- '@swc/helpers': 0.5.2
+ '@react-aria/ssr': 3.9.4(react@18.2.0)
+ '@react-aria/utils': 3.24.1(react@18.2.0)
+ '@react-types/shared': 3.23.1(react@18.2.0)
+ '@swc/helpers': 0.5.5
react: 18.2.0
- '@react-aria/ssr@3.9.3(react@18.2.0)':
+ '@react-aria/ssr@3.9.4(react@18.2.0)':
dependencies:
- '@swc/helpers': 0.5.2
+ '@swc/helpers': 0.5.5
react: 18.2.0
- '@react-aria/utils@3.24.0(react@18.2.0)':
+ '@react-aria/utils@3.24.1(react@18.2.0)':
dependencies:
- '@react-aria/ssr': 3.9.3(react@18.2.0)
- '@react-stately/utils': 3.10.0(react@18.2.0)
- '@react-types/shared': 3.23.0(react@18.2.0)
- '@swc/helpers': 0.5.2
+ '@react-aria/ssr': 3.9.4(react@18.2.0)
+ '@react-stately/utils': 3.10.1(react@18.2.0)
+ '@react-types/shared': 3.23.1(react@18.2.0)
+ '@swc/helpers': 0.5.5
clsx: 2.1.0
react: 18.2.0
- '@react-stately/utils@3.10.0(react@18.2.0)':
+ '@react-stately/utils@3.10.1(react@18.2.0)':
dependencies:
- '@swc/helpers': 0.5.2
+ '@swc/helpers': 0.5.5
react: 18.2.0
- '@react-types/shared@3.23.0(react@18.2.0)':
+ '@react-types/shared@3.23.1(react@18.2.0)':
dependencies:
react: 18.2.0
@@ -2608,10 +2605,6 @@ snapshots:
'@swc/counter@0.1.3': {}
- '@swc/helpers@0.5.2':
- dependencies:
- tslib: 2.6.2
-
'@swc/helpers@0.5.5':
dependencies:
'@swc/counter': 0.1.3