@ably/ui 17.10.0 → 17.10.1-dev.26bd7a31

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.
Files changed (46) hide show
  1. package/core/Flyout.js +1 -1
  2. package/core/Flyout.js.map +1 -1
  3. package/core/Icon/components/icon-gui-heartbeat-outline.js +2 -0
  4. package/core/Icon/components/icon-gui-heartbeat-outline.js.map +1 -0
  5. package/core/Icon/components/icon-gui-heartbeat-solid.js +2 -0
  6. package/core/Icon/components/icon-gui-heartbeat-solid.js.map +1 -0
  7. package/core/Icon/components/icon-gui-square-3-stack-3d.js +2 -0
  8. package/core/Icon/components/icon-gui-square-3-stack-3d.js.map +1 -0
  9. package/core/Icon/components/index.js +1 -1
  10. package/core/Icon/components/index.js.map +1 -1
  11. package/core/Icon/computed-icons/gui-icons.js +1 -1
  12. package/core/Icon/computed-icons/gui-icons.js.map +1 -1
  13. package/core/Meganav/MeganavBlog.js +2 -0
  14. package/core/Meganav/MeganavBlog.js.map +1 -0
  15. package/core/Meganav/MeganavCustomerStories.js +2 -0
  16. package/core/Meganav/MeganavCustomerStories.js.map +1 -0
  17. package/core/Meganav/MeganavPanel.js +1 -1
  18. package/core/Meganav/MeganavPanel.js.map +1 -1
  19. package/core/Meganav/MeganavPanelItemLinks.js +2 -0
  20. package/core/Meganav/MeganavPanelItemLinks.js.map +1 -0
  21. package/core/Meganav/MeganavTile.js +2 -0
  22. package/core/Meganav/MeganavTile.js.map +1 -0
  23. package/core/Meganav/data.js +1 -1
  24. package/core/Meganav/data.js.map +1 -1
  25. package/core/Meganav/images/cust-logo-doxy-dark.png +0 -0
  26. package/core/Meganav/images/cust-logo-doxy-light.png +0 -0
  27. package/core/Meganav/utils/getMenuItemsForHeader.js +2 -0
  28. package/core/Meganav/utils/getMenuItemsForHeader.js.map +1 -0
  29. package/core/Meganav/utils.js +2 -0
  30. package/core/Meganav/utils.js.map +1 -0
  31. package/core/Meganav.js +1 -1
  32. package/core/Meganav.js.map +1 -1
  33. package/core/ProductTile/ProductLabel.js +1 -1
  34. package/core/ProductTile/ProductLabel.js.map +1 -1
  35. package/core/ProductTile/data.js +1 -1
  36. package/core/ProductTile/data.js.map +1 -1
  37. package/core/icons/gui/icon-gui-heartbeat-outline.svg +4 -0
  38. package/core/icons/gui/icon-gui-heartbeat-solid.svg +4 -0
  39. package/core/sprites-gui.svg +1 -1
  40. package/index.d.ts +146 -27
  41. package/package.json +2 -4
  42. package/AGENTS.md +0 -197
  43. package/core/Meganav/MeganavProductTile.js +0 -2
  44. package/core/Meganav/MeganavProductTile.js.map +0 -1
  45. package/core/Meganav/images/fan-engagement-nav-image.png +0 -0
  46. package/core/Meganav/images/founders-nav-image.png +0 -0
package/index.d.ts CHANGED
@@ -2105,6 +2105,28 @@ export default ForwardRef;
2105
2105
  //# sourceMappingURL=icon-gui-glasses.d.ts.map
2106
2106
  }
2107
2107
 
2108
+ declare module '@ably/ui/core/Icon/components/icon-gui-heartbeat-outline' {
2109
+ import * as React from "react";
2110
+ interface SVGRProps {
2111
+ title?: string;
2112
+ titleId?: string;
2113
+ }
2114
+ const ForwardRef: React.ForwardRefExoticComponent<Omit<React.SVGProps<SVGSVGElement> & SVGRProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
2115
+ export default ForwardRef;
2116
+ //# sourceMappingURL=icon-gui-heartbeat-outline.d.ts.map
2117
+ }
2118
+
2119
+ declare module '@ably/ui/core/Icon/components/icon-gui-heartbeat-solid' {
2120
+ import * as React from "react";
2121
+ interface SVGRProps {
2122
+ title?: string;
2123
+ titleId?: string;
2124
+ }
2125
+ const ForwardRef: React.ForwardRefExoticComponent<Omit<React.SVGProps<SVGSVGElement> & SVGRProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
2126
+ export default ForwardRef;
2127
+ //# sourceMappingURL=icon-gui-heartbeat-solid.d.ts.map
2128
+ }
2129
+
2108
2130
  declare module '@ably/ui/core/Icon/components/icon-gui-history' {
2109
2131
  import * as React from "react";
2110
2132
  interface SVGRProps {
@@ -2369,6 +2391,17 @@ export default ForwardRef;
2369
2391
  //# sourceMappingURL=icon-gui-spinner-light.d.ts.map
2370
2392
  }
2371
2393
 
2394
+ declare module '@ably/ui/core/Icon/components/icon-gui-square-3-stack-3d' {
2395
+ import * as React from "react";
2396
+ interface SVGRProps {
2397
+ title?: string;
2398
+ titleId?: string;
2399
+ }
2400
+ const ForwardRef: React.ForwardRefExoticComponent<Omit<React.SVGProps<SVGSVGElement> & SVGRProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
2401
+ export default ForwardRef;
2402
+ //# sourceMappingURL=icon-gui-square-3-stack-3d.d.ts.map
2403
+ }
2404
+
2372
2405
  declare module '@ably/ui/core/Icon/components/icon-product-ai-transport-mono' {
2373
2406
  import * as React from "react";
2374
2407
  interface SVGRProps {
@@ -5011,6 +5044,8 @@ import IconGuiFilterFlowStep3 from "@ably/ui/core/icon-gui-filter-flow-step-3";
5011
5044
  import IconGuiFlowerGrowth from "@ably/ui/core/icon-gui-flower-growth";
5012
5045
  import IconGuiFurtherReading from "@ably/ui/core/icon-gui-further-reading";
5013
5046
  import IconGuiGlasses from "@ably/ui/core/icon-gui-glasses";
5047
+ import IconGuiHeartbeatOutline from "@ably/ui/core/icon-gui-heartbeat-outline";
5048
+ import IconGuiHeartbeatSolid from "@ably/ui/core/icon-gui-heartbeat-solid";
5014
5049
  import IconGuiHistory from "@ably/ui/core/icon-gui-history";
5015
5050
  import IconGuiLiveChat from "@ably/ui/core/icon-gui-live-chat";
5016
5051
  import IconGuiMouse from "@ably/ui/core/icon-gui-mouse";
@@ -5035,7 +5070,7 @@ import IconGuiRefresh from "@ably/ui/core/icon-gui-refresh";
5035
5070
  import IconGuiResources from "@ably/ui/core/icon-gui-resources";
5036
5071
  import IconGuiSpinnerDark from "@ably/ui/core/icon-gui-spinner-dark";
5037
5072
  import IconGuiSpinnerLight from "@ably/ui/core/icon-gui-spinner-light";
5038
- export { IconGuiAblyBadge, IconGuiCheckCircledFill, IconGuiCheckLotusCircled, IconGuiChecklistChecked, IconGuiCodeDoc, IconGuiCursor, IconGuiExpand, IconGuiFilterFlowStep0, IconGuiFilterFlowStep1, IconGuiFilterFlowStep2, IconGuiFilterFlowStep3, IconGuiFlowerGrowth, IconGuiFurtherReading, IconGuiGlasses, IconGuiHistory, IconGuiLiveChat, IconGuiMouse, IconGuiPartial, IconGuiPitfall, IconGuiProdAiTransportOutline, IconGuiProdAiTransportSolid, IconGuiProdAssetTrackingOutline, IconGuiProdAssetTrackingSolid, IconGuiProdChatOutline, IconGuiProdChatSolid, IconGuiProdLiveobjectsOutline, IconGuiProdLiveobjectsSolid, IconGuiProdLivesyncOutline, IconGuiProdLivesyncSolid, IconGuiProdPubsubOutline, IconGuiProdPubsubSolid, IconGuiProdSpacesOutline, IconGuiProdSpacesSolid, IconGuiQuoteMarksFill, IconGuiRefresh, IconGuiResources, IconGuiSpinnerDark, IconGuiSpinnerLight, };
5073
+ export { IconGuiAblyBadge, IconGuiCheckCircledFill, IconGuiCheckLotusCircled, IconGuiChecklistChecked, IconGuiCodeDoc, IconGuiCursor, IconGuiExpand, IconGuiFilterFlowStep0, IconGuiFilterFlowStep1, IconGuiFilterFlowStep2, IconGuiFilterFlowStep3, IconGuiFlowerGrowth, IconGuiFurtherReading, IconGuiGlasses, IconGuiHeartbeatOutline, IconGuiHeartbeatSolid, IconGuiHistory, IconGuiLiveChat, IconGuiMouse, IconGuiPartial, IconGuiPitfall, IconGuiProdAiTransportOutline, IconGuiProdAiTransportSolid, IconGuiProdAssetTrackingOutline, IconGuiProdAssetTrackingSolid, IconGuiProdChatOutline, IconGuiProdChatSolid, IconGuiProdLiveobjectsOutline, IconGuiProdLiveobjectsSolid, IconGuiProdLivesyncOutline, IconGuiProdLivesyncSolid, IconGuiProdPubsubOutline, IconGuiProdPubsubSolid, IconGuiProdSpacesOutline, IconGuiProdSpacesSolid, IconGuiQuoteMarksFill, IconGuiRefresh, IconGuiResources, IconGuiSpinnerDark, IconGuiSpinnerLight, };
5039
5074
  import IconProductAiTransportMono from "@ably/ui/core/icon-product-ai-transport-mono";
5040
5075
  import IconProductAiTransport from "@ably/ui/core/icon-product-ai-transport";
5041
5076
  import IconProductAssetTrackingMono from "@ably/ui/core/icon-product-asset-tracking-mono";
@@ -5278,7 +5313,7 @@ export const displayIcons: readonly ["icon-display-48hrs", "icon-display-ably-ch
5278
5313
  }
5279
5314
 
5280
5315
  declare module '@ably/ui/core/Icon/computed-icons/gui-icons' {
5281
- export const guiIcons: readonly ["icon-gui-ably-badge", "icon-gui-check-circled-fill", "icon-gui-check-lotus-circled", "icon-gui-checklist-checked", "icon-gui-code-doc", "icon-gui-cursor", "icon-gui-expand", "icon-gui-filter-flow-step-0", "icon-gui-filter-flow-step-1", "icon-gui-filter-flow-step-2", "icon-gui-filter-flow-step-3", "icon-gui-flower-growth", "icon-gui-further-reading", "icon-gui-glasses", "icon-gui-history", "icon-gui-live-chat", "icon-gui-mouse", "icon-gui-partial", "icon-gui-pitfall", "icon-gui-prod-ai-transport-outline", "icon-gui-prod-ai-transport-solid", "icon-gui-prod-asset-tracking-outline", "icon-gui-prod-asset-tracking-solid", "icon-gui-prod-chat-outline", "icon-gui-prod-chat-solid", "icon-gui-prod-liveobjects-outline", "icon-gui-prod-liveobjects-solid", "icon-gui-prod-livesync-outline", "icon-gui-prod-livesync-solid", "icon-gui-prod-pubsub-outline", "icon-gui-prod-pubsub-solid", "icon-gui-prod-spaces-outline", "icon-gui-prod-spaces-solid", "icon-gui-quote-marks-fill", "icon-gui-refresh", "icon-gui-resources", "icon-gui-spinner-dark", "icon-gui-spinner-light"];
5316
+ export const guiIcons: readonly ["icon-gui-ably-badge", "icon-gui-check-circled-fill", "icon-gui-check-lotus-circled", "icon-gui-checklist-checked", "icon-gui-code-doc", "icon-gui-cursor", "icon-gui-expand", "icon-gui-filter-flow-step-0", "icon-gui-filter-flow-step-1", "icon-gui-filter-flow-step-2", "icon-gui-filter-flow-step-3", "icon-gui-flower-growth", "icon-gui-further-reading", "icon-gui-glasses", "icon-gui-heartbeat-outline", "icon-gui-heartbeat-solid", "icon-gui-history", "icon-gui-live-chat", "icon-gui-mouse", "icon-gui-partial", "icon-gui-pitfall", "icon-gui-prod-ai-transport-outline", "icon-gui-prod-ai-transport-solid", "icon-gui-prod-asset-tracking-outline", "icon-gui-prod-asset-tracking-solid", "icon-gui-prod-chat-outline", "icon-gui-prod-chat-solid", "icon-gui-prod-liveobjects-outline", "icon-gui-prod-liveobjects-solid", "icon-gui-prod-livesync-outline", "icon-gui-prod-livesync-solid", "icon-gui-prod-pubsub-outline", "icon-gui-prod-pubsub-solid", "icon-gui-prod-spaces-outline", "icon-gui-prod-spaces-solid", "icon-gui-quote-marks-fill", "icon-gui-refresh", "icon-gui-resources", "icon-gui-spinner-dark", "icon-gui-spinner-light"];
5282
5317
  //# sourceMappingURL=gui-icons.d.ts.map
5283
5318
  }
5284
5319
 
@@ -5299,7 +5334,7 @@ export const techIcons: readonly ["icon-tech-ably", "icon-tech-ably-api-streamer
5299
5334
 
5300
5335
  declare module '@ably/ui/core/Icon/types' {
5301
5336
  export const iconNames: {
5302
- gui: readonly ["icon-gui-ably-badge", "icon-gui-check-circled-fill", "icon-gui-check-lotus-circled", "icon-gui-checklist-checked", "icon-gui-code-doc", "icon-gui-cursor", "icon-gui-expand", "icon-gui-filter-flow-step-0", "icon-gui-filter-flow-step-1", "icon-gui-filter-flow-step-2", "icon-gui-filter-flow-step-3", "icon-gui-flower-growth", "icon-gui-further-reading", "icon-gui-glasses", "icon-gui-history", "icon-gui-live-chat", "icon-gui-mouse", "icon-gui-partial", "icon-gui-pitfall", "icon-gui-prod-ai-transport-outline", "icon-gui-prod-ai-transport-solid", "icon-gui-prod-asset-tracking-outline", "icon-gui-prod-asset-tracking-solid", "icon-gui-prod-chat-outline", "icon-gui-prod-chat-solid", "icon-gui-prod-liveobjects-outline", "icon-gui-prod-liveobjects-solid", "icon-gui-prod-livesync-outline", "icon-gui-prod-livesync-solid", "icon-gui-prod-pubsub-outline", "icon-gui-prod-pubsub-solid", "icon-gui-prod-spaces-outline", "icon-gui-prod-spaces-solid", "icon-gui-quote-marks-fill", "icon-gui-refresh", "icon-gui-resources", "icon-gui-spinner-dark", "icon-gui-spinner-light"];
5337
+ gui: readonly ["icon-gui-ably-badge", "icon-gui-check-circled-fill", "icon-gui-check-lotus-circled", "icon-gui-checklist-checked", "icon-gui-code-doc", "icon-gui-cursor", "icon-gui-expand", "icon-gui-filter-flow-step-0", "icon-gui-filter-flow-step-1", "icon-gui-filter-flow-step-2", "icon-gui-filter-flow-step-3", "icon-gui-flower-growth", "icon-gui-further-reading", "icon-gui-glasses", "icon-gui-heartbeat-outline", "icon-gui-heartbeat-solid", "icon-gui-history", "icon-gui-live-chat", "icon-gui-mouse", "icon-gui-partial", "icon-gui-pitfall", "icon-gui-prod-ai-transport-outline", "icon-gui-prod-ai-transport-solid", "icon-gui-prod-asset-tracking-outline", "icon-gui-prod-asset-tracking-solid", "icon-gui-prod-chat-outline", "icon-gui-prod-chat-solid", "icon-gui-prod-liveobjects-outline", "icon-gui-prod-liveobjects-solid", "icon-gui-prod-livesync-outline", "icon-gui-prod-livesync-solid", "icon-gui-prod-pubsub-outline", "icon-gui-prod-pubsub-solid", "icon-gui-prod-spaces-outline", "icon-gui-prod-spaces-solid", "icon-gui-quote-marks-fill", "icon-gui-refresh", "icon-gui-resources", "icon-gui-spinner-dark", "icon-gui-spinner-light"];
5303
5338
  display: readonly ["icon-display-48hrs", "icon-display-ably-channels", "icon-display-about-ably-col", "icon-display-api", "icon-display-api-keys", "icon-display-architectural-guidance", "icon-display-asset-tracking-col", "icon-display-authentication", "icon-display-avatar-stack", "icon-display-browser", "icon-display-calendar", "icon-display-call-mobile", "icon-display-careers-col", "icon-display-case-studies-col", "icon-display-chat-col", "icon-display-chat-mono", "icon-display-chat-stack", "icon-display-chat-stack-col", "icon-display-cloud-servers", "icon-display-compare-tech-col", "icon-display-connection-state-recovery", "icon-display-consumer-groups", "icon-display-custom", "icon-display-custom-cname", "icon-display-customers-col", "icon-display-data-broadcast-col", "icon-display-data-broadcast-mono", "icon-display-data-synchronization-col", "icon-display-dedicated-cluster", "icon-display-deltas", "icon-display-docs-col", "icon-display-documentation", "icon-display-dynamic-channel-groups", "icon-display-edge-network", "icon-display-elasticity", "icon-display-equalisers-mono", "icon-display-events-col", "icon-display-exactly-once-delivery", "icon-display-examples-col", "icon-display-fan-out", "icon-display-firehose", "icon-display-gdpr", "icon-display-general-comms", "icon-display-granular-permissions", "icon-display-hipaa", "icon-display-hipaa-mono", "icon-display-history", "icon-display-integrations", "icon-display-integrations-col", "icon-display-it-support-access", "icon-display-it-support-helpdesk", "icon-display-kafka-at-the-edge-col", "icon-display-laptop", "icon-display-last-seen", "icon-display-lightbulb-col", "icon-display-live-chat", "icon-display-live-updates-results-metrics-col", "icon-display-map-pin", "icon-display-message", "icon-display-message-batching", "icon-display-message-persistence", "icon-display-message-queues", "icon-display-multi-user-spaces-col", "icon-display-observe-analytics", "icon-display-padlock-closed", "icon-display-platform", "icon-display-play", "icon-display-premium-support", "icon-display-privacy-shield-framework", "icon-display-private-link", "icon-display-push-notifications", "icon-display-push-notifications-col", "icon-display-push-notifications-mono", "icon-display-quickstart-guides-col", "icon-display-reactions", "icon-display-read-receipts", "icon-display-resources-col", "icon-display-rewind", "icon-display-sdks-col", "icon-display-send-received-messages", "icon-display-servers", "icon-display-shopping-cart", "icon-display-sla", "icon-display-soc2-type2", "icon-display-soc2-type2-mono", "icon-display-something-else", "icon-display-something-else-mono", "icon-display-subscription-filters", "icon-display-support-chat-mono", "icon-display-system-metadata", "icon-display-tech-account-comms", "icon-display-tutorials-demos-col", "icon-display-ui", "icon-display-ui-mono", "icon-display-virtual-events", "icon-display-virtual-events-col"];
5304
5339
  social: readonly ["icon-social-discord", "icon-social-discord-mono", "icon-social-facebook", "icon-social-facebook-mono", "icon-social-github", "icon-social-github-mono", "icon-social-glassdoor", "icon-social-glassdoor-mono", "icon-social-google", "icon-social-google-mono", "icon-social-linkedin", "icon-social-linkedin-mono", "icon-social-slack", "icon-social-slack-mono", "icon-social-stackoverflow", "icon-social-stackoverflow-mono", "icon-social-twitter", "icon-social-twitter-mono", "icon-social-x", "icon-social-x-mono", "icon-social-youtube", "icon-social-youtube-mono"];
5305
5340
  tech: readonly ["icon-tech-ably", "icon-tech-ably-api-streamer", "icon-tech-ably-firehose", "icon-tech-ably-native", "icon-tech-activemq", "icon-tech-activitypub", "icon-tech-aerospike", "icon-tech-akka", "icon-tech-amazon-ec2", "icon-tech-amazon-event-bridge", "icon-tech-amqp091", "icon-tech-amqp10", "icon-tech-android-full", "icon-tech-android-head", "icon-tech-angular", "icon-tech-anycable", "icon-tech-apache-cassandra", "icon-tech-apache-cordova", "icon-tech-apache-kafka", "icon-tech-apache-spark", "icon-tech-apachepulsar", "icon-tech-apachestorm", "icon-tech-apns", "icon-tech-assemblyai", "icon-tech-atmosphere", "icon-tech-aws", "icon-tech-aws-app-sync", "icon-tech-aws-aurora", "icon-tech-aws-gateway-websockets", "icon-tech-aws-sns", "icon-tech-aws-sqs", "icon-tech-awsiot", "icon-tech-awskinesis", "icon-tech-awslambda", "icon-tech-awssqs", "icon-tech-azure-api", "icon-tech-azure-archive-api", "icon-tech-azure-bus", "icon-tech-azure-cosmos", "icon-tech-azure-event-hub", "icon-tech-azure-functions", "icon-tech-azure-search", "icon-tech-azure-static-web-app", "icon-tech-azure-static-web-apps", "icon-tech-azure-storage", "icon-tech-azure-web-pubsub", "icon-tech-azurefunctions", "icon-tech-azureservicebus", "icon-tech-azuresignalR", "icon-tech-bayeux", "icon-tech-c++", "icon-tech-centrifugo", "icon-tech-claude", "icon-tech-claude-mono", "icon-tech-client-side-frameworks", "icon-tech-clojure", "icon-tech-cloudflare-durable-objects", "icon-tech-cloudflareworkers", "icon-tech-cocoa", "icon-tech-confluent", "icon-tech-cord", "icon-tech-csharp", "icon-tech-curl", "icon-tech-customwebhooks", "icon-tech-datadog", "icon-tech-design-patterns", "icon-tech-devplatforms", "icon-tech-diffusion-data", "icon-tech-django", "icon-tech-engineio", "icon-tech-event-driven-servers", "icon-tech-fanout-io", "icon-tech-fast-api", "icon-tech-fauna", "icon-tech-featherjs", "icon-tech-firebase", "icon-tech-firebase-cloud-messaging", "icon-tech-flutter", "icon-tech-gcloudbigquery", "icon-tech-gclouddataflow", "icon-tech-gcloudfunctions", "icon-tech-gcloudpubsub", "icon-tech-go", "icon-tech-grpc", "icon-tech-hivemq", "icon-tech-http2", "icon-tech-http3", "icon-tech-httprest", "icon-tech-idempotency", "icon-tech-ifttt", "icon-tech-integrations", "icon-tech-ios", "icon-tech-ios-generic", "icon-tech-ipados", "icon-tech-ipfs", "icon-tech-ironmq", "icon-tech-java", "icon-tech-javascript", "icon-tech-jms", "icon-tech-json", "icon-tech-json-web-tokens", "icon-tech-kaazing", "icon-tech-kotlin", "icon-tech-ksql-db", "icon-tech-kubernetes", "icon-tech-laravel-broadcast", "icon-tech-laravel-echo", "icon-tech-lightstreamer", "icon-tech-liveblocks", "icon-tech-longpolling", "icon-tech-macos", "icon-tech-matrix", "icon-tech-meteor", "icon-tech-mongo-db", "icon-tech-mono", "icon-tech-mqtt", "icon-tech-mysql", "icon-tech-native-script", "icon-tech-net", "icon-tech-netlify", "icon-tech-nextjs", "icon-tech-nkn", "icon-tech-nodejs", "icon-tech-objectivec", "icon-tech-openai", "icon-tech-parse-server", "icon-tech-php", "icon-tech-planetscale", "icon-tech-postgres", "icon-tech-prisma", "icon-tech-programminglanguages", "icon-tech-protcol-adaptors", "icon-tech-protocols", "icon-tech-pub-sub", "icon-tech-pubnub", "icon-tech-push-technology", "icon-tech-pusher", "icon-tech-python", "icon-tech-quic", "icon-tech-rabbitMQ", "icon-tech-railsactioncable", "icon-tech-react", "icon-tech-react-app", "icon-tech-reactnative", "icon-tech-redis", "icon-tech-redpanda", "icon-tech-replicache", "icon-tech-rethinkdb", "icon-tech-rocketmq", "icon-tech-ruby", "icon-tech-scala", "icon-tech-scaledrone", "icon-tech-serversentevents", "icon-tech-serversideframeworks", "icon-tech-signalR", "icon-tech-snowflake", "icon-tech-socketio", "icon-tech-sockjs", "icon-tech-solace", "icon-tech-spring", "icon-tech-stomp", "icon-tech-streamdata-io", "icon-tech-streamr", "icon-tech-swift", "icon-tech-symfony", "icon-tech-symfony-mercure", "icon-tech-tcp-ip", "icon-tech-tenefit", "icon-tech-terraform", "icon-tech-terraform-outline", "icon-tech-tvos", "icon-tech-twilio", "icon-tech-typescript", "icon-tech-udp-protocol", "icon-tech-unity", "icon-tech-vercel", "icon-tech-vscode", "icon-tech-vuejs", "icon-tech-wamp", "icon-tech-watchos", "icon-tech-web", "icon-tech-web-push", "icon-tech-webhooks", "icon-tech-webrtc", "icon-tech-websockets", "icon-tech-websub", "icon-tech-xamarin", "icon-tech-xhr-streaming", "icon-tech-xmpp", "icon-tech-zapier", "icon-tech-zeromq"];
@@ -5384,6 +5419,40 @@ export default _default;
5384
5419
  //# sourceMappingURL=Logo.d.ts.map
5385
5420
  }
5386
5421
 
5422
+ declare module '@ably/ui/core/Meganav/MeganavBlog' {
5423
+ export type BlogPost = {
5424
+ title: string;
5425
+ link: string;
5426
+ categories: string[];
5427
+ pubDate: string;
5428
+ };
5429
+ export type MeganavBlogProps = {
5430
+ title: string;
5431
+ link: string;
5432
+ posts: BlogPost[];
5433
+ };
5434
+ const MeganavBlog: ({ title, link, posts }: MeganavBlogProps) => import("react/jsx-runtime").JSX.Element;
5435
+ export default MeganavBlog;
5436
+ //# sourceMappingURL=MeganavBlog.d.ts.map
5437
+ }
5438
+
5439
+ declare module '@ably/ui/core/Meganav/MeganavCustomerStories' {
5440
+ export type CustomerStoryHighlight = {
5441
+ companyName: string;
5442
+ companyDesc: string;
5443
+ companyLink: string;
5444
+ companyLogo: string;
5445
+ companyLogoDark?: string;
5446
+ };
5447
+ const MeganavCustomerStories: ({ customerStoriesHighlight, title, link, }: {
5448
+ customerStoriesHighlight: CustomerStoryHighlight;
5449
+ title: string;
5450
+ link: string;
5451
+ }) => import("react/jsx-runtime").JSX.Element;
5452
+ export default MeganavCustomerStories;
5453
+ //# sourceMappingURL=MeganavCustomerStories.d.ts.map
5454
+ }
5455
+
5387
5456
  declare module '@ably/ui/core/Meganav/MeganavMobile' {
5388
5457
  import { AccordionData } from ".@ably/ui/core/Accordion/types";
5389
5458
  export const MeganavMobile: ({ navItems }: {
@@ -5394,42 +5463,69 @@ export const MeganavMobile: ({ navItems }: {
5394
5463
 
5395
5464
  declare module '@ably/ui/core/Meganav/MeganavPanel' {
5396
5465
  import React from "react";
5397
- import { FlyoutPanelHighlight, FlyoutPanelList } from "@ably/ui/core/data";
5398
- export const MeganavPanel: ({ displayProductTile, panelLeft, panelLeftClassName, panelRightHeading, panelRightItems, panelRightBottom, }: {
5466
+ import { FlyoutPanelList } from "@ably/ui/core/data";
5467
+ import { MeganavPanelItemLink } from "@ably/ui/core/MeganavPanelItemLinks";
5468
+ type MeganavPanelProps = {
5399
5469
  displayProductTile?: boolean;
5400
- panelLeft?: FlyoutPanelHighlight;
5401
- panelLeftClassName?: string;
5402
- panelRightHeading?: string;
5403
- panelRightItems: FlyoutPanelList[];
5470
+ panelLeft?: React.ReactNode;
5471
+ panelMiddleItems?: React.ReactNode;
5472
+ panelRightItems?: MeganavPanelItemLink[];
5404
5473
  panelRightBottom?: React.ReactNode;
5474
+ };
5475
+ export const MeganavPanel: ({ displayProductTile, panelLeft, panelMiddleItems, panelRightItems, panelRightBottom, }: MeganavPanelProps) => import("react/jsx-runtime").JSX.Element;
5476
+ export const MeganavPanelFullwidth: ({ panelItems, }: {
5477
+ panelItems: FlyoutPanelList[];
5405
5478
  }) => import("react/jsx-runtime").JSX.Element;
5479
+ export {};
5406
5480
  //# sourceMappingURL=MeganavPanel.d.ts.map
5407
5481
  }
5408
5482
 
5409
- declare module '@ably/ui/core/Meganav/MeganavProductTile' {
5410
- import { ProductTileProps } from ".@ably/ui/core/ProductTile";
5411
- const MeganavProductTile: ({ name, productLink, showDescription, showLabel, size, animateIcons, }: ProductTileProps & {
5412
- productLink?: string;
5413
- }) => import("react/jsx-runtime").JSX.Element;
5414
- export default MeganavProductTile;
5415
- //# sourceMappingURL=MeganavProductTile.d.ts.map
5483
+ declare module '@ably/ui/core/Meganav/MeganavPanelItemLinks' {
5484
+ import { IconName } from ".@ably/ui/core/Icon/types";
5485
+ import { FlyoutPanelList } from "@ably/ui/core/data";
5486
+ export type MeganavPanelItemLink = {
5487
+ label?: string;
5488
+ listItems: FlyoutPanelList[];
5489
+ icon?: IconName;
5490
+ link?: {
5491
+ label: string;
5492
+ link: string;
5493
+ };
5494
+ };
5495
+ const MeganavPanelItemLinks: ({ label, listItems, link, }: MeganavPanelItemLink) => import("react/jsx-runtime").JSX.Element;
5496
+ export default MeganavPanelItemLinks;
5497
+ //# sourceMappingURL=MeganavPanelItemLinks.d.ts.map
5498
+ }
5499
+
5500
+ declare module '@ably/ui/core/Meganav/MeganavTile' {
5501
+ import { ProductName } from ".@ably/ui/core/ProductTile/data";
5502
+ import { IconName } from ".@ably/ui/core/Icon/types";
5503
+ export type MeganavTileProps = {
5504
+ link: string;
5505
+ productName?: ProductName;
5506
+ navLabel?: string;
5507
+ navIcon?: IconName;
5508
+ navDescription?: string;
5509
+ animateIcons?: boolean;
5510
+ showAblyText?: boolean;
5511
+ };
5512
+ const MeganavTile: ({ productName, navLabel, navIcon, navDescription, link, animateIcons, showAblyText, }: MeganavTileProps) => import("react/jsx-runtime").JSX.Element;
5513
+ export default MeganavTile;
5514
+ //# sourceMappingURL=MeganavTile.d.ts.map
5416
5515
  }
5417
5516
 
5418
5517
  declare module '@ably/ui/core/Meganav/data' {
5419
5518
  import React from "react";
5420
5519
  import { IconName } from ".@ably/ui/core/Icon/types";
5520
+ import { CustomerStoryHighlight } from "@ably/ui/core/MeganavCustomerStories";
5521
+ import { BlogPost } from "@ably/ui/core/MeganavBlog";
5421
5522
  export type FlyoutPanelList = {
5422
5523
  label: string;
5423
- icon: IconName;
5524
+ icon?: IconName;
5424
5525
  link: string;
5425
5526
  isMobile?: boolean;
5426
- };
5427
- export type FlyoutPanelHighlight = {
5428
- heading: string;
5429
- content: string;
5430
- labelLink: string;
5431
- url: string;
5432
- image: string;
5527
+ description?: string;
5528
+ badge?: string;
5433
5529
  };
5434
5530
  export type MenuItem = {
5435
5531
  name: string;
@@ -5438,6 +5534,11 @@ export type MenuItem = {
5438
5534
  content?: React.ReactNode;
5439
5535
  panelClassName?: string;
5440
5536
  };
5537
+ export const productsMenu: FlyoutPanelList[];
5538
+ export const compareMenu: FlyoutPanelList[];
5539
+ export const solutionsMenu: FlyoutPanelList[];
5540
+ export const customerStoriesHighlight: CustomerStoryHighlight;
5541
+ export const companyMenu: FlyoutPanelList[];
5441
5542
  export const ablyAwards: {
5442
5543
  image: string;
5443
5544
  desc: string;
@@ -5447,7 +5548,7 @@ export const menuItemLinks: {
5447
5548
  link: string;
5448
5549
  isHiddenMobile: boolean;
5449
5550
  }[];
5450
- export const menuItemsForHeader: MenuItem[];
5551
+ export const defaultBlogPosts: BlogPost[];
5451
5552
  export const productsForNav: {
5452
5553
  pubsub: {
5453
5554
  link: string;
@@ -5501,8 +5602,24 @@ export const productsForNav: {
5501
5602
  //# sourceMappingURL=data.d.ts.map
5502
5603
  }
5503
5604
 
5605
+ declare module '@ably/ui/core/Meganav/utils/getMenuItemsForHeader' {
5606
+ import { BlogPost } from ".@ably/ui/core/MeganavBlog";
5607
+ import { MenuItem } from ".@ably/ui/core/data";
5608
+ export const getMenuItemsForHeader: (blogPosts: BlogPost[]) => MenuItem[];
5609
+ //# sourceMappingURL=getMenuItemsForHeader.d.ts.map
5610
+ }
5611
+
5612
+ declare module '@ably/ui/core/Meganav/utils' {
5613
+ export const PanelTitle: ({ title, link, }: {
5614
+ title: string;
5615
+ link?: string;
5616
+ }) => import("react/jsx-runtime").JSX.Element;
5617
+ //# sourceMappingURL=utils.d.ts.map
5618
+ }
5619
+
5504
5620
  declare module '@ably/ui/core/Meganav' {
5505
5621
  import { HeaderSessionState, ThemedScrollpoint } from "@ably/ui/core/Header";
5622
+ import { BlogPost } from "@ably/ui/core/Meganav/MeganavBlog";
5506
5623
  export type MeganavNoticeBannerProps = {
5507
5624
  props: {
5508
5625
  title: string;
@@ -5521,12 +5638,13 @@ export type MeganavNoticeBannerProps = {
5521
5638
  };
5522
5639
  export type MeganavProps = {
5523
5640
  sessionState: HeaderSessionState;
5641
+ blogPosts: BlogPost[];
5524
5642
  notice?: MeganavNoticeBannerProps;
5525
5643
  theme?: string;
5526
5644
  themedScrollpoints?: ThemedScrollpoint[];
5527
5645
  onNoticeClose?: () => void;
5528
5646
  };
5529
- const Meganav: ({ sessionState, notice, theme, themedScrollpoints, onNoticeClose, }: MeganavProps) => import("react/jsx-runtime").JSX.Element;
5647
+ const Meganav: ({ sessionState, notice, theme, themedScrollpoints, onNoticeClose, blogPosts, }: MeganavProps) => import("react/jsx-runtime").JSX.Element;
5530
5648
  export default Meganav;
5531
5649
  //# sourceMappingURL=Meganav.d.ts.map
5532
5650
  }
@@ -5674,9 +5792,10 @@ type ProductLabelProps = {
5674
5792
  selected?: boolean;
5675
5793
  numericalSize: number;
5676
5794
  showLabel?: boolean;
5795
+ showAblyText?: boolean;
5677
5796
  className?: string;
5678
5797
  };
5679
- const ProductLabel: ({ label, unavailable, selected, numericalSize, showLabel, className, }: ProductLabelProps) => import("react/jsx-runtime").JSX.Element | null;
5798
+ const ProductLabel: ({ label, unavailable, selected, numericalSize, showLabel, showAblyText, className, }: ProductLabelProps) => import("react/jsx-runtime").JSX.Element | null;
5680
5799
  export default ProductLabel;
5681
5800
  //# sourceMappingURL=ProductLabel.d.ts.map
5682
5801
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ably/ui",
3
- "version": "17.10.0",
3
+ "version": "17.10.1-dev.26bd7a31",
4
4
  "description": "Home of the Ably design system library ([design.ably.com](https://design.ably.com)). It provides a showcase, development/test environment and a publishing pipeline for different distributables.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,9 +12,7 @@
12
12
  "reset",
13
13
  "tailwind.config.js",
14
14
  "tailwind.extend.js",
15
- "index.d.ts",
16
- "AGENTS.md",
17
- "CLAUDE.md"
15
+ "index.d.ts"
18
16
  ],
19
17
  "types": "index.d.ts",
20
18
  "msw": {
package/AGENTS.md DELETED
@@ -1,197 +0,0 @@
1
- # Agent Development Guide
2
-
3
- This file is not necessarily for people, the intended audience is automated agents.
4
-
5
- ## Other references
6
-
7
- Consider the content of `README.md` as well, it contains technical information
8
- used by contributors to this project, as well as consumers of this project
9
-
10
- ## Consumers
11
-
12
- This project is intended to primarily be consumed by the Ably website, voltaire
13
- & docs projects. It is distributed via NPM as the `@ably/ui` package.
14
-
15
- ## Build & Test Commands
16
-
17
- - `pnpm build` - Build the library (prebuild, icons, swc, tsc, cleanup)
18
- - `pnpm test` - Run all tests with Vitest
19
- - `pnpm test -- src/core/insights/index.test.ts` - Run a single test file
20
- - `pnpm lint` - Run ESLint on all files
21
- - `pnpm format:check` - Check formatting with Prettier
22
- - `pnpm format:write` - Auto-format all files with Prettier
23
- - `pnpm storybook` - Start Storybook dev server on port 6006
24
- - `pnpm start` - Start Vite dev server on port 5000
25
-
26
- ## Code Style
27
-
28
- - **Language**: TypeScript with strict mode enabled
29
- - **React**: Use functional components with hooks; React 18.x
30
- - **Imports**: Default export for main component, named exports for types/utils
31
- - **Naming**: PascalCase for components/types, camelCase for functions/variables,
32
- kebab-case for files
33
- - **Types**: Define prop types as `ComponentNameProps`, use `PropsWithChildren<T>`
34
- when needed
35
- - **Styling**: Tailwind 3.4.
36
- - **Utility**: Use `cn()` from `./src/core/utils/cn` for className merging (clsx
37
- & tailwind-merge)
38
- - **Formatting**: Prettier defaults (no config = defaults), 2-space indent
39
- - **Error Handling**: Wrap external service calls in try-catch, log with logger module
40
- - **Comments**: JSDoc for props, inline comments for complex logic
41
-
42
- Keep emojis in the code to a minimum, only introduce them if there is precedent
43
- in the file you're working on.
44
-
45
- Comments and commit messages should not include statements like "local tests pass",
46
- this is a given for how we work.
47
-
48
- ## Development
49
-
50
- - Run `pnpm lint` & `pnpm format:write` on files after making changes, we lint
51
- files in CI and don't want preventable failures. `pnpm lint:fix` should also
52
- apply our formatting rules while trying to fix most things for you
53
- - Run tests with `pnpm test` after making file changes
54
-
55
- ## Styling Guide
56
-
57
- ### Color Palettes
58
-
59
- The design system uses semantic color palettes defined in `src/core/styles/properties.css`
60
- and configured for Tailwind in `tailwind.config.js`. Each palette has a different
61
- number of color values:
62
-
63
- - **Neutral**: 000, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300 (14 values)
64
- - **Orange**: 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100 (11 values)
65
- - **Yellow**: 100, 200, 300, 400, 500, 600, 700, 800, 900 (9 values)
66
- - **Green**: 100, 200, 300, 400, 500, 600, 700, 800, 900 (9 values)
67
- - **Blue**: 100, 200, 300, 400, 500, 600, 700, 800, 900 (9 values)
68
- - **Violet**: 100, 200, 300, 400, 500, 600, 700, 800, 900 (9 values)
69
- - **Pink**: 100, 200, 300, 400, 500, 600, 700, 800, 900 (9 values)
70
-
71
- ### Interactive Element Styling Patterns
72
-
73
- When developing components with @ably/ui, **always** use Tailwind classes following
74
- these established patterns to ensure consistent interactive behavior across light
75
- and dark modes:
76
-
77
- #### Dark Mode Mirroring
78
-
79
- For any given color, add a dark mode class that mirrors it across the palette.
80
- Lower values (lighter colors) in light mode should map to higher values (darker
81
- colors) in dark mode, and vice versa.
82
-
83
- **Examples:**
84
-
85
- - `bg-neutral-100` pairs with `dark:bg-neutral-1200`
86
- - `bg-neutral-200` pairs with `dark:bg-neutral-1100`
87
- - `bg-neutral-1200` pairs with `dark:bg-neutral-100`
88
- - `text-neutral-1300` pairs with `dark:text-neutral-000`
89
- - `bg-orange-200` pairs with `dark:bg-orange-900` (orange has 11 values: 200 + 900 = 1100)
90
- - `bg-blue-300` pairs with `dark:bg-blue-700` (blue has 9 values: 300 + 700 = 1000)
91
-
92
- The sum of mirrored color numbers should equal the total palette range. Different
93
- palettes have different ranges, so calculate mirrors accordingly:
94
-
95
- - Neutral (000-1300): `light + dark = 1300`
96
- - Orange (100-1100): `light + dark = 1200`
97
- - Secondary colors (100-900): `light + dark = 1000`
98
-
99
- #### Hover States
100
-
101
- Use the **next color value** along the palette for hover states:
102
-
103
- - `bg-neutral-100` → `hover:bg-neutral-200`
104
- - `bg-neutral-200` → `hover:bg-neutral-300`
105
- - `bg-orange-600` → `hover:bg-orange-700`
106
-
107
- Apply this pattern to both light and dark mode classes:
108
-
109
- ```
110
- bg-neutral-200 hover:bg-neutral-300
111
- dark:bg-neutral-1100 dark:hover:bg-neutral-1000
112
- ```
113
-
114
- #### Active States
115
-
116
- Use **two color values** along the palette for active/pressed states:
117
-
118
- - `bg-neutral-100` → `active:bg-neutral-300`
119
- - `bg-neutral-200` → `active:bg-neutral-400`
120
- - `bg-orange-600` → `active:bg-orange-800`
121
-
122
- Apply to both modes:
123
-
124
- ```
125
- bg-neutral-200 hover:bg-neutral-300 active:bg-neutral-400
126
- dark:bg-neutral-1100 dark:hover:bg-neutral-1000 dark:active:bg-neutral-900
127
- ```
128
-
129
- #### Focus Styles
130
-
131
- Add the `focus-base` class to all interactive elements (buttons, links, inputs,
132
- selects, etc.). This class is defined in `src/core/styles/utils.css` and provides
133
- consistent focus styling with an accessible outline:
134
-
135
- ```css
136
- .focus-base {
137
- @apply focus:outline-none focus-visible:outline-4 focus-visible:outline-offset-0 focus-visible:outline-gui-focus;
138
- }
139
- ```
140
-
141
- #### Transitions
142
-
143
- Add `transition-colors` to interactive elements unless a higher-specificity
144
- `transition` class is already present (e.g., `transition-all`, `transition-transform`).
145
- This ensures smooth visual feedback for state changes.
146
-
147
- ### Complete Example
148
-
149
- Here's a complete button component demonstrating all patterns:
150
-
151
- ```tsx
152
- <button
153
- className={cn(
154
- "px-4 py-2 rounded",
155
- "bg-neutral-200 hover:bg-neutral-300 active:bg-neutral-400",
156
- "dark:bg-neutral-1100 dark:hover:bg-neutral-1000 dark:active:bg-neutral-900",
157
- "text-neutral-1300 dark:text-neutral-000",
158
- "focus-base transition-colors",
159
- )}
160
- >
161
- Click me
162
- </button>
163
- ```
164
-
165
- ### Additional Examples
166
-
167
- **Select dropdown:**
168
-
169
- ```tsx
170
- <Select.Trigger
171
- className="bg-neutral-200 hover:bg-neutral-300 active:bg-neutral-400 dark:bg-neutral-1100 dark:hover:bg-neutral-1000 dark:active:bg-neutral-900 focus-base transition-colors border border-neutral-300 dark:border-neutral-1000"
172
- >
173
- ```
174
-
175
- **Badge with orange:**
176
-
177
- ```tsx
178
- <span
179
- className="bg-orange-200 hover:bg-orange-300 active:bg-orange-400 dark:bg-orange-900 dark:hover:bg-orange-800 dark:active:bg-orange-700 focus-base transition-colors"
180
- >
181
- ```
182
-
183
- **Toggle/Switch:**
184
-
185
- ```tsx
186
- <Switch
187
- className="bg-neutral-600 hover:bg-neutral-700 active:bg-neutral-800 data-[state=checked]:bg-orange-600 data-[state=checked]:hover:bg-orange-700 data-[state=checked]:active:bg-orange-800 focus-base transition-colors"
188
- >
189
- ```
190
-
191
- ## Git workflow
192
-
193
- - Always do work on a new branch, start the branch on the HEAD of `origin/main`
194
- - Before pushing the branch run the tests and linters to ensure they are happy
195
- - When updating a branch, rebase on `origin/main` and force-push (with lease)
196
- - Use our PR template in the `.github` folder as a reference for the pull request
197
- - Keep commit messages concise
@@ -1,2 +0,0 @@
1
- import React from"react";import cn from"../utils/cn";import{products}from"../ProductTile/data";import ProductIcon from"../ProductTile/ProductIcon";import ProductLabel from"../ProductTile/ProductLabel";import ProductDescription from"../ProductTile/ProductDescription";const CONTAINER_GAP_RATIO=3;const MeganavProductTile=({name,productLink,showDescription=true,showLabel=true,size="40px",animateIcons=false})=>{const{icon,hoverIcon,label,unavailable,description}=products[name]??{};const numericalSize=parseInt(size,10);return React.createElement("a",{href:productLink?productLink:"#",className:cn("transition-colors group/product-tile","flex flex-col p-3 rounded-lg gap-2","bg-neutral-000 dark:bg-neutral-1300",{"hover:bg-neutral-100 dark:hover:bg-neutral-1200":!unavailable},{"pointer-events-auto":!unavailable},{"pointer-events-none":unavailable}),"aria-hidden":unavailable},React.createElement("span",{className:cn("items-center flex"),style:{gap:numericalSize/CONTAINER_GAP_RATIO}},React.createElement(ProductIcon,{size:numericalSize,name:icon,hoverName:animateIcons?hoverIcon:undefined,unavailable:!!unavailable,selected:false}),React.createElement(ProductLabel,{label:label,unavailable:!!unavailable,numericalSize:numericalSize,showLabel:showLabel,selected:false})),React.createElement(ProductDescription,{description:description,unavailable:!!unavailable,showDescription:showDescription,selected:false}))};export default MeganavProductTile;
2
- //# sourceMappingURL=MeganavProductTile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/core/Meganav/MeganavProductTile.tsx"],"sourcesContent":["import React from \"react\";\nimport cn from \"../utils/cn\";\nimport { products } from \"../ProductTile/data\";\nimport ProductIcon from \"../ProductTile/ProductIcon\";\nimport ProductLabel from \"../ProductTile/ProductLabel\";\nimport ProductDescription from \"../ProductTile/ProductDescription\";\nimport { ProductTileProps } from \"../ProductTile\";\n\nconst CONTAINER_GAP_RATIO = 3;\n\nconst MeganavProductTile = ({\n name,\n productLink,\n showDescription = true,\n showLabel = true,\n size = \"40px\",\n animateIcons = false,\n}: ProductTileProps & { productLink?: string }) => {\n const { icon, hoverIcon, label, unavailable, description } =\n products[name] ?? {};\n const numericalSize = parseInt(size, 10);\n\n return (\n <a\n href={productLink ? productLink : \"#\"}\n className={cn(\n \"transition-colors group/product-tile\",\n \"flex flex-col p-3 rounded-lg gap-2\",\n \"bg-neutral-000 dark:bg-neutral-1300\",\n {\n \"hover:bg-neutral-100 dark:hover:bg-neutral-1200\": !unavailable,\n },\n { \"pointer-events-auto\": !unavailable },\n { \"pointer-events-none\": unavailable },\n )}\n aria-hidden={unavailable}\n >\n <span\n className={cn(\"items-center flex\")}\n style={{\n gap: numericalSize / CONTAINER_GAP_RATIO,\n }}\n >\n <ProductIcon\n size={numericalSize}\n name={icon}\n hoverName={animateIcons ? hoverIcon : undefined}\n unavailable={!!unavailable}\n selected={false}\n />\n <ProductLabel\n label={label}\n unavailable={!!unavailable}\n numericalSize={numericalSize}\n showLabel={showLabel}\n selected={false}\n />\n </span>\n <ProductDescription\n description={description}\n unavailable={!!unavailable}\n showDescription={showDescription}\n selected={false}\n />\n </a>\n );\n};\n\nexport default MeganavProductTile;\n"],"names":["React","cn","products","ProductIcon","ProductLabel","ProductDescription","CONTAINER_GAP_RATIO","MeganavProductTile","name","productLink","showDescription","showLabel","size","animateIcons","icon","hoverIcon","label","unavailable","description","numericalSize","parseInt","a","href","className","aria-hidden","span","style","gap","hoverName","undefined","selected"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAAOC,OAAQ,aAAc,AAC7B,QAASC,QAAQ,KAAQ,qBAAsB,AAC/C,QAAOC,gBAAiB,4BAA6B,AACrD,QAAOC,iBAAkB,6BAA8B,AACvD,QAAOC,uBAAwB,mCAAoC,CAGnE,MAAMC,oBAAsB,EAE5B,MAAMC,mBAAqB,CAAC,CAC1BC,IAAI,CACJC,WAAW,CACXC,gBAAkB,IAAI,CACtBC,UAAY,IAAI,CAChBC,KAAO,MAAM,CACbC,aAAe,KAAK,CACwB,IAC5C,KAAM,CAAEC,IAAI,CAAEC,SAAS,CAAEC,KAAK,CAAEC,WAAW,CAAEC,WAAW,CAAE,CACxDhB,QAAQ,CAACM,KAAK,EAAI,CAAC,EACrB,MAAMW,cAAgBC,SAASR,KAAM,IAErC,OACE,oBAACS,KACCC,KAAMb,YAAcA,YAAc,IAClCc,UAAWtB,GACT,uCACA,qCACA,sCACA,CACE,kDAAmD,CAACgB,WACtD,EACA,CAAE,sBAAuB,CAACA,WAAY,EACtC,CAAE,sBAAuBA,WAAY,GAEvCO,cAAaP,aAEb,oBAACQ,QACCF,UAAWtB,GAAG,qBACdyB,MAAO,CACLC,IAAKR,cAAgBb,mBACvB,GAEA,oBAACH,aACCS,KAAMO,cACNX,KAAMM,KACNc,UAAWf,aAAeE,UAAYc,UACtCZ,YAAa,CAAC,CAACA,YACfa,SAAU,QAEZ,oBAAC1B,cACCY,MAAOA,MACPC,YAAa,CAAC,CAACA,YACfE,cAAeA,cACfR,UAAWA,UACXmB,SAAU,SAGd,oBAACzB,oBACCa,YAAaA,YACbD,YAAa,CAAC,CAACA,YACfP,gBAAiBA,gBACjBoB,SAAU,QAIlB,CAEA,gBAAevB,kBAAmB"}