Getting Started
Tailwind v4 & Unity v3
Features
- Superb developer experience for beginners and experts
- Embraces a progressive environments approach
- Accessible headless components
- Examples
Markdown
Nuxt
Content Renderer
The <ContentRenderer> component renders a document coming from a query with queryCollections().
Migrate from Supabase to BetterAuth
supabase.auth.signUp->authClient.signUp.emailsupabase.auth.signInWithPassword->authClient.signIn.emailsupabase.auth.signInWithOAuth->authClient.signIn.socialsupabase.auth.signInAnonymously->authClient.signIn.anonymoussupabase.auth.signOut->authClient.signOutsupabase.auth.getSession->authClient.getSession- you can also useauthClient.useSessionfor reactive state
In progress
- NOVA Create white-label template, components, and styles
- 953 - AEM Add Initial content for White Label template
- 952 - Create Auxiliary styles for white label template as necessary
- 788 - AEM NOVA Limit template list to NOVA templates
- 844 - AEM Making White-label template as default option and defaulting the initial content
- 789 - NOVA Template Thumbnails
- 791 - DevOps Deploying component catalog to higher environments
Completed
- 785 - UX Catalog: Finalize / improve branding for the catalog
- NOVA Create white-label template, components, and styles
- 843 - Figma - Create a branded design system
- 787 - NOVA Add component descriptions for each component
- 786 - NOVA Add Component Thumbnails / Icons
- 785 - UX Finalize / improve branding for the catalog
- I am seeing some issues in component details not loading up.
- Initial view displays 'path not found' until a template is selected
- Remove XPediant Branding from templates
- Share URL not resolving
- Not able to navigate to assets.
- All components say “View Accordion”
- Improve Author/Publish Toggle labeling
- 738 -Documentation Review/Update
Backlog
- DevOps Create pipelines for Sonar and deployment
- UX User feedback mechanism
- UX Improve CSS authoring experience
- UX Improve note experience
- UX Sort by control for component page
- UX Resizable playground frame to preview responsive variations
- UX Improved Author/Publish toggle labeling
- UX Resolve concerns in the initial component playground
- At a minimum, the current blank slate experience should be replaced with basic usage instructions
- (e.g., 1. Select Template, 2. Edit Component, etc...)
- At a minimum, the current blank slate experience should be replaced with basic usage instructions
AEM Paths
v1
/conf/xpomnichannel/settings/wcm/templates/
v2
- /conf/
/settings/wcm/templates/ - /content/dam/
/isa/template-assets - /apps/xpomnichannel/brand-clientlibs/
- /content/experience-fragments/nova/isa/
- /content/nova/
/branded
Regular Expression
/conf/xpomnichannel/(.)*/conf/xpomnichannel/settings(.)*/conf/xpomnichannel/settings(.)*(.)*general-slide(.)*- /conf/Mavyret-Design/settings/(.)*
- /conf/Mavyret-Design
- /conf/Helium-Brand
- /content/nova/helium
- /content/experience-fragments/nova/isa/helium
- /content/dam/helium
- /apps/xpomnichannel/brand-clientlibs/helium
main-content-container
Writing is Designing
Main Stage Just Enough Research Strategy and Testing
Spark Joy (craft) Align a room - Alignment Builder Start conversation
Usable Useful Responsible
Help users do stuff.
- What
- Where
- When
- Who
- Why
Retro
MCS Authoring Retrospective
- More thoughtful typography scale
- Include RTE styles for previewing the style
- Include initial content container layouts
- Populate initial content with configured defaults
- Have sample component reference or style guide
- Have FRD, project numbers, designs defined and final before starting. Agree upon the Source of Truth to eliminate ambiguity.
- Understand limitations, constraints, compromises and work-arounds
- Weekly Fast track style updates very helpful
- You don’t know what you don’t know.
- Daily connects and Steve’s JIRA expertise provided needed guidance and management
- Establish / define layering z-indexing system. Safety bar, modals, absolutely positioned elements/ components
- Continue to be responsive and welcome all questions, concerns with a focus on the total UX for all.
General / Foundation
- z-index system
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
export NODE_OPTIONS="--max-old-space-size=8192"
Button
Callflow
Change --navigation-custom-presentation-selected-area-help-text-text-case from capitalize to normal.
Tap on tiles to select and add them to the presentation. Drag and drop selected tiles to rearrange them.
Text
- Line height, vertically align top
https://codepen.io/VictorTolbert/live/yyLpOPB/a079d1dd0781b70ad91e86360452dc0e
IS916
- Hit AEM Servlet with tokens.json (DEV)
- Gives Project folder under conf
- Auto populates component policies
- Create the 3 templates (DEV)
- General Slide
- XF General (Modals, actual XF usage)
- XF Safety
- Create Content folder for Mavyret (DEV)
- /content/nova/Mavyret_ISAs(Mavyret)/Branded
- Create DAM folder for template Assets
- /content/dam/mavyret(Mavyret)/ISA/Template Assets **** check friendly path names
Meghana
a. Content package DEV -> Local b. Create style guide & Style Guide pages (Local) - /content/nova/Mavyret_ISAs(Mavyret)/Branded/Style Guide - /content/nova/Mavyret_ISAs(Mavyret)/Branded/Style Guide/Button - ... c. Write missing needed styles for components (Local) - ui.apps/src/main/content/jcr_root/apps/xpomnichannel/brand-clientlibs/mavyret/css d. Create package from local with style guide & pages (Local -> Dev) e. PR css changes to admp-isa
Victor
a. Content package DEV -> Local b. Author the structure and initial content of General Slide template (Local) c. Write missing needed styles for template (Local) - ui.apps/src/main/content/jcr_root/apps/xpomnichannel/brand-clientlibs/mavyret/css d. Create package from local - conf/mavyret-design e. PR conf changes & css changes to admp-isa
- Release
- conf/mavyret-design
- /content/nova/Mavyret_ISAs/Branded/Style Guide
- clientlibs/clientlib-mavyret(aux.css & ds-styles.css)
- /content/dam/mavyret/ISA/Template Assets
- /conf/xpomnichannel/settings/wcm/templates/lupron-empty-slide-template
- /conf/xpomnichannel/settings/wcm/templates/lupron-presentation-template
- /conf/xpomnichannel/settings/wcm/templates/lupron-slide-template
- /conf/xpomnichannel/settings/wcm/templates/abbvie-generic-slide-template
- /conf/xpomnichannel/settings/wcm/templates/iae-presentation-page-template
- /conf/xpomnichannel/settings/wcm/templates/skyrizi-derm
- /conf/xpomnichannel/settings/wcm/templates/abbvie-xpomnichannel-metadata-composer
- /conf/NOVA-Testing-Templates/settings/wcm/templates/nova-test-general-slide-template
- /conf/Mavyret-Design/settings/wcm/templates/general-slide
- /conf/Mavyret-Design/settings/wcm/templates/experience-fragment---general
- /conf/Mavyret-Design/settings/wcm/templates/experience-fragment---safety
- /conf/xpomnichannel/settings/wcm/templates/skyrizi-derm-experience-fragment
- /etc.clientlibs/xpomnichannel/brand-clientlibs/mavyret/foundation.css
- /conf/mavyret-design
- /content/dam/mavyret/isa
- /content/nova/Mavyret_ISAs/Branded
- /content/experience-fragments/nova/isa/mavyret
- /content/jcr_root/apps/xpomnichannel/brand-clientlibs
Bu Button Ca Callflow Navigation Ca Callout Carousel Columns Container Cu Custom Presentations Experience Fragment Fl Flip Container Fo Formulary Image Sa Safety Bar Tabs Ta Tabs Header Text Ve Vertical Navigation Vi Video
Send 6:45 - 7pm IST
- Tuesday & Thurs - NOVA UI/UX Check-In Weekly Meghana, Victor, Adam, Sujithra
- /content/aem-component-catalog
- /content/experience-fragments/aem-component-catalog
- /conf/aem-component-catalog
AEM Component Catalog
## AEM Observations and Recommendations
Features
- Accessibility checker
- Show / Edit components within the context of selected template
- Playground w/ shareable link
- Try out custom CSS overrides, with sharable link
- As an author setup component initial
- Template Page/Fragment Usage List
- Hide Dialog Fields
Demo
- Today - redefining tasks to have the Component Catalog Demoable
Tasks
- Finalize / improve branding for the catalog (Name?, Logo(s), Color Scheme, Header, Footer)
- NOVA Add Component Thumbnails / Icons
- NOVA Add descriptions to display each component card
- NOVA Limit template list to NOVA templates
- NOVA Template Thumbnails
- Create pipelines for Sonar and deployment
- Deploying component catalog to higher environments
- Improve Author/Publish Toggle labeling
- All components say “View Accordion”
- Not able to navigate to assets.
- Share URL not resolving
- Remove XPediant Branding from templates
- Initial view displays 'path not found' until a template is selected. Can there be a default or 'blank state' page instead
- I am seeing some issues in component details not loading up.
Ideas / Nice to Haves
- User feedback mechanicism
- Improve CSS authoring experience (similar to codepen, codemirror or Monaco)
- Improve note experience
- Sort by control (Recently updated, etc...)
- Resizable playground frame to preview responsive variations
Questions
- Can I request new features?
- Polish the design and implement the
- I want to be able to work locally, and package up changes to DEV, QA, and or TEST
- I want to demo the component catalog by next week
- Email Bala Amol Shiv
- Set up session with Alejandro
Structure
- apps
- xpomnichannel
- common
- components
- layout
- Container
- layout
- components
- iva
- components
- content
- button
- callout
- carousel
- custom presentations
- content
- components
- common
- xpomnichannel
Design tokens
Design tokens are variables that define visual design for consistency and efficiency. Intended to enable plug-and-play theming across different platformed component libraries within a design system.
- Lightning
- Unity - @abbvie-unity/design-tokens/dist/css/unity-tokens.css
- Ivy
- NOVA
- NEBULA
Unity
Unity Design Tokens
Style Dictionary transformation of Unity Design Tokens using Style Dictionary Utils and supporting the W3C format for Design Tokens
- Mike Paggi mike.paggi@abbvie.com
- John Ye john.ye@abbvie.com
- Michael Sawyers michael.sawyers@abbvie.com
- Alex Padilla alex.padilla@abbvie.com
scripts
prebuild: "npm ci && rimraf dist",build: "npm run build-tokens && npm run move-aggrid && npm run move-tailwind",build-tokens: "style-dictionary build --config ./scripts/config.js/ && npm run sort-css",prepublishOnly: "npm run build",clean: "style-dictionary clean",sort-css: "node scripts/sort-tokens-css.js",sort-json: "node scripts/sort-tokens-json.js",move-aggrid: "node scripts/moveAgGrid.js",move-tailwind: "node scripts/moveTailwind.js"
Dev Dependencies
@types/nodefs-extraprettierrimrafstyle-dictionary
Unity React Component Library
Unity React documentation for instructions on getting started
Scripts
- prepare": "is-ci || husky install",
- start": "npm run storybook",
- storybook": "storybook dev -p 6006",
- build-storybook": "storybook build",
- test-storybook": "test-storybook",
- chromatic": "npx chromatic",
- lint": "eslint src --ext .ts,.tsx",
- lint:ci": "npm run lint -- -f junit --quiet | tail -n +5 | tee eslint-junit.xml",
- prettier": "prettier --check .",
- prettier:fix": "prettier --write .",
- test": "vitest run",
- test:coverage": "vitest coverage",
- test:watch": "vitest watch",
- test:ui": "vitest ui",
- generateEntrypoint": "tsx scripts/generateEntrypoint.ts && prettier --write src/index.ts",
- prebuild": "rimraf ./esm ./cjs ./dist && npm run generateEntrypoint",
- build": "tsup --onSuccess 'npm run build-types && npm run copy-dts'",
- build-types": "npm run build-types-esm && npm run build-types-cjs",
- build-types-esm": "tsc --emitDeclarationOnly --project tsconfig.build.json --outDir esm",
- build-types-cjs": "tsc --emitDeclarationOnly --project tsconfig.build.json --outDir cjs",
- copy-dts": "npm run copy-dts-cjs && npm run copy-dts-esm && npm run copy-tailwind",
- copy-dts-cjs": "copyfiles -u 1 types/tanstack-table.d.ts esm/types",
- copy-dts-esm": "copyfiles -u 1 types/tanstack-table.d.ts cjs/types",
- copy-tailwind": "npm run copy-tailwindcss-cjs && npm run copy-tailwindcss-esm",
- copy-tailwindcss-cjs": "copyfiles -f src/css/unity-tailwind.css cjs",
- copy-tailwindcss-esm": "copyfiles -f src/css/unity-tailwind.css esm",
- prepublishOnly": "npm run build",
- verifyTokens": "node scripts/verifyTokens.mjs"
Dependencies
@abbvie-unity/design-tokens@ariakit/core@ariakit/react@ariakit/react-core@react-aria/progress@react-aria/textfield@react-aria/utils@react-aria/visually-hidden@tanstack/react-table@tanstack/react-virtualariakitariakit-utilsclsxdate-fnslodash.deburrlodash.groupbylodash.isemptypure-react-carouselreact-collapsedreact-datepickerreact-dropzonereact-hot-toastreact-isreact-polymorphic-typesreact-popper-tooltip
Peer Dependencies
reactreact-dom
Dev Dependencies
@babel/preset-env@babel/preset-react@babel/preset-typescript@chromatic-com/storybook@commitlint/cli@commitlint/config-conventional@fortawesome/fontawesome-common-types@fortawesome/fontawesome-svg-core@fortawesome/react-fontawesome@react-types/shared@storybook/addon-a11y@storybook/addon-actions@storybook/addon-essentials@storybook/addon-interactions@storybook/addon-links@storybook/addon-mdx-gfm@storybook/manager-api@storybook/mdx1-csf@storybook/react@storybook/react-vite@storybook/test@storybook/test-runner@storybook/theming@tailwindcss/vite@testing-library/jest-dom@testing-library/react@testing-library/user-event@types/jest-axe@types/lodash@types/lodash.deburr@types/lodash.groupby@types/lodash.isempty@types/node@types/react@types/react-datepicker@types/react-dom@types/react-is@types/resize-observer-browser@typescript-eslint/eslint-plugin@typescript-eslint/parser@vitejs/plugin-react-swc@vitest/coverage-v8@vitest/uiag-grid-reactchromaticcopyfilesdependency-cruiseresbuild-node-externalsesbuild-plugin-svgresbuild-sass-plugineslinteslint-config-airbnbeslint-config-airbnb-typescripteslint-config-prettiereslint-plugin-importeslint-plugin-jsx-a11yeslint-plugin-reacteslint-plugin-react-hookseslint-plugin-storybookhuskyidentity-obj-proxyis-cijest-axejsdomlodashpostcss-modulespostcss-scssprettierprettier-plugin-tailwindcssreactreact-domreact-syntax-highlighterremark-gfmresize-observer-polyfillrimrafsassstorybooktailwindcssts-morphtsuptsxtypescriptvitevite-plugin-dtsvite-plugin-node-polyfillsvite-plugin-svgrvite-tsconfig-pathsvitest
Resources:
- Storybook: Documentation of Unity React components
- Unity Teams Channel: Join to stay updated with all things Unity
- Project Starter Template (unity-vite): Highly recommended for starting new React applications. Quickly scaffold a React + TS application with Unity + authentication + many more features out of the box. If not able to access the github repo, use the Unity-Vite template zip file.
- Unity Design Tokens: (Experimental: For approved usage only) Variables that define visual design for consistency and efficiency. Intended to enable plug-and-play theming across different platformed component libraries within a design system.
- uses
- precautions
- how to use
- missed dose
- overdose
- side effects
IAE Preflight
- Mavyret
- Rinvoq Rheum
- Elahare
- Skryizi Derm
Unity
- https://zeroheight.com/4ffcf4a2d/p/25d34f-download-and-install
- Unity Zeroheight: https://zeroheight.com/2303c99cd/p/3429f6-unity-design-system
- Unity Tailwind: https://main--62cc2d7ddc230761491f3aac.chromatic.com/?path=/docs/patterns-tailwindcss--docs#setup
- FontAwesome Request: https://forms.office.com/pages/responsepage.aspx?id=3gNNb1GVoUuiW9zm9at6zkJiViH9ZPJAj41KiZy6GfRUQkVPRlY0UEJUTFVQRkcwOExSRFlWRkMyTCQlQCN0PWcu&route=shorturl
- Unity v3!: https://zeroheight.com/2303c99cd/p/1275a7-unity-v3
Unity v3!
Powering GenAI apps
With the development of numerous generative AI applications across AbbVie, we are introducing some design elements and components specifically for those systems in Unity v3, which is now available.
But that’s not all… Unity v3 has even more enhancements to cover common use cases and address user feedback.
For Developers, reference this v3 Migration guide for complete Unity React upgrade instructions. Please use Go/UnityReact for developer documentation.
- h-lh, min-h-lh, max-h-lh
- /conf/Helium-Brand
- /conf/Mavyret-Design
- /content/dam/helium/isa/template-assets
- /content/dam/mavyret/isa/template-assets
- /content/experience-fragments/nova/isa
- /content/nova/helium
- https://admp-dev-auth.abbvie.com/aem/experience-fragments.html
- https://admp-dev-auth.abbvie.com/assets.html
- https://admp-dev-auth.abbvie.com/libs/wcm/core/content/sites/templates.html
- https://admp-dev-auth.abbvie.com/sites.html
How to use this token with APIs Provide this token in the Authorization header as a bearer token when making requests to Bitbucket APIs, for example:
Authorization: Bearer ATCTT3xFfGN0dzGjQmWusbNlYjBBkbZCrWa7GR3bKduLCXD-OFHAkBfSww_-jDTrqCelw9q3CQZ5gYVY-vthZwtB8n-Sq1uL5Si265Ms2qbLjVZ4g5ZO130OaUdXoMfOfcwm51HL88h5zLh4M9d4SGa7Vm0NzgqSupA6ZJdOdrmgoXOe9-NFjow=E7072C44
How to use this token with your Git repository To clone this repository using this token, run:
To use this token to push code to this repository, set the Git author on the cloned repository by running the following code snippet in your terminal:
git config user.email 79yqih8lhru4so99wtji4vd4lppmgt@bots.bitbucket.org
Projects
DiVA
- JaMont Fleming
- Haritha Borra
- Kalin Patel
- Geoff Hill
Links / Resources
Test GenAI-powered apps in TypeScript
AEM Component Catalog
Files
.vscodesettings.json
docspublic- favicon-dark.svg
- favicon.svg
- template.html
- config
- apps/aem-catalog
- config
- servlets.AEMDialogProxy.cfg.json
- services.impl.ConfigurationServiceImpl.cfg.json
- services.impl.AEMDialogProxyCommandImpl~accordiondialog.cfg.json
- services.impl.AEMDialogProxyCommandImpl~textdialog.cfg.json
- repoinit.RepositoryInitializer~aem-component-catalog.cfg.json
- config.author
- cors.impl.CORSPolicyImpl
aemcomponent-catalog.cfg.json - repoinit.RepositoryInitializer~author.config
- serviceusermapping.impl.ServiceUserMapperImpl.amended~aemcomponents.cfg.json
- cors.impl.CORSPolicyImpl
- config.publish
- repoinit.RepositoryInitializer~publish.config
- serviceusermapping.impl.ServiceUserMapperImpl.amended~aemcomponents.cfg.json
- config
- apps/aem-catalog
- content
- aem-component-catalog/us
- .content.xml
- en
- .content.xml
- site
- .content.xml
- aemcmp-header
- aemcmp-folder
- experience-fragments/aem-component-catalog
- .content.xml
- en
- .content.xml
- site
- .content.xml
- aemcmp-header
- aemcmp-folder
- en
- .content.xml
- aem-component-catalog/us
- core
- schedulers
- CleanPlaygroundScheduledTask.java
- dto
- AEMPreconfiguredContentsDTO.java
- AEMTemplateDTO.java
- AEMTemplatesDTO.java
- models
- Playground.java
- services
- PreconfiguredContentService.java
- impl
- AEMTemplateServiceImpl.java
- ConfigurationServiceImpl.java
- PlaygroundPageServiceImpl.java
- servlets
- CatalogQueryServlet.java
- ComponentPlaygroundServlet.java
- PreconfiguredContentServlet.java
- schedulers
- apps/aem-component-catalog
- components
- page
- body.html
- head.html
- playground-react
- playground-react.html
- page
- clientlib-react
- js.txt -
Build updates with new hashed filename - js
- main.
.js - Build creates and hashes
- main.
- resources
- asset-manifest.json
- index.html
- static
- js
- main.
.js.map
- main.
- js
- js.txt -
- components/listaemcomponents-react/_cq_dialog
- .content.xml
- components
- ui.frontend-react/src/components
- aemcomponents-dashboard
- AEMComponentsDashboard.jsx
- aemtemplates-dashboard
- AEMTemplatesDashboard.jsx
- playground
- Playground.jsx
- aemcomponents-dashboard
- ui.frontend/src/main/webpack/site
- xpediant-digital.scss
iOS Simulator
Control iOS Simulators from Command Line
- xcrun simctl list
- xcrun simctl create
- xcrun simctl shutdown
- xcrun simctl erase
- xcrun simctl boot
- xcrun simctl help
simctl:
Logins
Veeva Logins
| hcv.rep@abbvie.com.rev | ||
| imm.ae@abbvie.com.rev | ||
| imm.ae@abbvie.com.home | Homeoffice169 | |
| nova.rep@abbviie.com.iplan | AbbVie@Q12025 | |
| jeremy.lyman@abbvie.com.iplan | AbbvieQ424 | |
| rheum.rep@abbvie.com.rev | Review169 | |
| Homeoffice169 | ||
| Homeoffice528 | ||
| rheum.rep@abbvie.com.rev | Homeoffice528 |
10.253.40.23:4503
Rinvoq Rheum
AEM Sync synchronization toolAEM Sync issueAEM Sync VSCode extension:(https://marketplace.visualstudio.com/items?itemName=Yinkai15.aemsync)
exemplar
ĭg-zĕm′plär″, -plər
noun
- One that is worthy of imitation; a perfect example or model. synonym: ideal.
- One that is typical or representative; an example.
- A copy, as of a book.
1 on 1
NOVA ISA Pilot Work
- Sky Derm, Sky Gastro, Rinvoq Derm, Rinvoq Gastro, Rinvoq Rheum
Component Catalog
- Installation and User guide Documentation
- Victor's Validation on feature dev.
- Victor to Provide a bitbucket code repo to checkin the final code
- Chinmay Working with nag on publish.
2025 Goals
2024 Performance Review
Ideas
- Nova Slide Template Starters
- XPGenerator
- XPConnect
- Call Flow
- Custom Presentation
- Vertical Navigation
- Submission
- Veeva
- PromoMats
- IRep
- MRP Action Team
- Sitemap (Nova)
Team
- Amol
- Russ
- Shiv
- Peter
- Jake
- Adam
- Kavita
- Josh
- Steven
- Alex
- Corey
- Chinmay
- Sujithra
- Jessica
- Kelly Wright - manages ADLHUB
Folder Structure
- ISA/IAE/
/Modals - ISA/IAE/
/Modals/Footnotes - ISA/IAE/
/Modals/References - ISA/IAE/
/Modals/Button - ISA/IAE/
/Modals/Button/Hepatoxicity - ISA/IAE/
/Modals/Button/Malignancy - ISA/IAE/
/Modals/Button/Opportunistic Infection - ISA/IAE/
/Modals/Button/Adjudicated Mase - ISA/IAE/
/Modals/Button/Continuous Placebo - ISA/IAE/
/Modals/Button/Placebo - ISA/IAE/
/Modals/Button/Patient Questionnaire results - ISA/IAE/
/Modals/Button/Using OBI - ISA/IAE/
/Modals/Button/Us - ISA/IAE/
/ISI - ISA/IAE/
/ISI/ISI Master - ISA/IAE/
/ISI/ISI Master/Bottom Collapsed ISI - ISA/IAE/
/ISI/ISI Master/Bottom Expanded ISI - ISA/IAE/
/ISI/Indications - ISA/IAE/
/ISI/Indications/All Indications - ISA/IAE/
/ISI/Indications/Plaque Psoriasis (Ps) - ISA/IAE/
/ISI/Indications/Psoriatic (PsA) - ISA/IAE/
/ISI/Indications/Crohn’s Disease (CD) - ISA/IAE/
/ISI/Indications/Ulcerative Colitis (UC) - ISA/IAE/
/Tab Content - Modals
- References
- Footnotes
SonarCube
A3 Current State - Mavyrett
MNA - Elahere
US Commercial Web Content Management Platform Alias: cWCM
- margin
- margin-top
- margin-bottom
- margin-left
- margin-right
- padding
- padding-top
- padding-bottom
- padding-left
- padding-right
- height
- min-height
- max-height
- width
- min-width
- max-width
- top
- bottom
- right
- left
- margin-block
- margin-block-start
- margin-block-end
- margin-inline
- margin-inline-start
- margin-inline-end
- padding-block
- padding-block-start
- padding-block-end
- padding-inline
- padding-inline-start
- padding-inline-end
- block-size
- min-block-size
- max-block-size
- inline-size
- min-inline-size
- max-inline-size
- inset
- inset-block
- inset-inline
- inset-block-start
- inset-block-end
- inset-inline-start
- inset-inline-end
export default defineNuxtConfig({
modules: ['@nuxt/ui-pro']
})
curl -X GET "https://api.cloudflare.com/client/v4/user/tokens/verify" \
-H "Authorization: Bearer 1R7LrG1CvDZiA0PYNFdxQc7YFVY_RmFQyIs2473W" \
-H "Content-Type:application/json"
curl https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai/chat/completions \
--header "Authorization: Bearer $TOKEN" \
--header 'Content-Type: application/json' \
--header 'cf-aig-collect-log: false \
--data ' {
"model": "gpt-4o-mini",
"messages": [
{
"role": "user",
"content": "What is the email address and phone number of user123?"
}
]
}'
curl https://api.cloudflare.com/client/v4/accounts/79485badaa2a9cb269e3f67c73495cdb/ai-gateway/gateways \
-H 'Content-Type: application/json' \
-H "X-Auth-Email: $CLOUDFLARE_EMAIL" \
-H "X-Auth-Key: $CLOUDFLARE_API_KEY" \
-d '{
"id": "my-gateway",
"cache_invalidate_on_update": true,
"cache_ttl": 0,
"collect_logs": true,
"rate_limiting_interval": 0,
"rate_limiting_limit": 0,
"rate_limiting_technique": "fixed"
}'
curl https://api.cloudflare.com/client/v4/accounts/79485badaa2a9cb269e3f67c73495cdb/ai-gateway/gateways \
-H "X-Auth-Email: victo.tolbert@outlook.com" \
-H "X-Auth-Key: 1R7LrG1CvDZiA0PYNFdxQc7YFVY_RmFQyIs2473W"
curl -X POST https://gateway.ai.cloudflare.com/v1/79485badaa2a9cb269e3f67c73495cdb/diva/workers-ai/@cf/meta/llama-3.1-8b-instruct \
--header 'Authorization: Bearer CF_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"prompt": "What is Cloudflare?"}'
POST /v1beta/models/gemini-2.0-flash:generateContent?key=GEMINI_API_KEY HTTP/1.1
Host: generativelanguage.googleapis.com
Content-Type: application/json
{
"contents": [{
"parts":[{"text": "Explain how AI works"}]
}]
}
Component Catalog
Explore components
Human beings face ever more complex and urgent problems, and their effectiveness in dealing with these problems is a matter that is critical to the stability and continued progress of society.
- Doug Engelbart, 1961
CSS Snippets
/**
* Quick fade on target to attract user attention
*/
:target {
animation: target-fade 3s 1
}
@keyframes target-fade {
0% { background-color: rgba(255, 255, 0, .5) }
100% { background-color: rgba(255, 255, 0, 0) }
}
MSSQL Snippets
DECLARE @YourUserId int
SELECT TOP 1 @YourUserId = Id FROM [User]
WHERE PrimaryEmail = 'YourEmailHere'
INSERT INTO ExemplarUserRole (RoleId, UserId, CreatedBy, CreatedOn)
VALUES (1, @YourUserId, @YourUserId, GETDATE())
JavaScript Snippets
// Targets every button with a data-apply-theme attribute,
// and make them apply corresponding theme on click.
document.querySelectorAll("[data-apply-theme]").forEach(button => {
button.addEventListener("keypress", e => {
if ("Enter" !== e.code) {
return;
}
updateTheme(button.dataset.applyTheme);
});
button.addEventListener("click", () =>
updateTheme(button.dataset.applyTheme)
);
});
function updateTheme(theme = "system") {
console.log(`Setting ${theme || "system"} theme.`);
document.body.dataset.theme = theme || "default";
}
How to create query parameters in Javascript? - Stack Overflow
const data = { 'first name': 'George', 'last name': 'Jetson', 'age': 110 }
function encodeQueryData(data) {
const ret = []
for (let d in data)
ret.push(encodeURIComponent(d) + '=' + encodeURIComponent(data[d]))
return ret.join('&')
}
function encodeQueryData(data) {
return new URLSearchParams(data).toString()
}
const querystring = encodeQueryData(data)
Component Catalog v1
Designed in Helium and Built on NOVA!
Features
Backlog
- Add technical documentation
- Add feedback mechanism
- Improve CSS, Notes, Share link,
- Find out to configure AXE
- Can it display WCAG color contrast component
This README would normally document whatever steps are necessary to get your application up and running.
What is this repository for?
- Quick summary
- Version
- Learn Markdown
How do I get set up?
- Summary of set up
- Configuration
- Dependencies
- Database configuration
- How to run tests
- Deployment instructions
Contribution guidelines
- Writing tests
- Code review
- Other guidelines
Who do I talk to?
- Repo owner or admin
- Other community or team contact
Setup
Make sure to install dependencies:
# pnpm
pnpm install
Development Server
Start the development server on http://localhost:3220:
# pnpm
pnpm dev
Production
Build the application for production:
# pnpm
pnpm build
Locally preview production build:
# pnpm
pnpm preview
- - Component Catalog DEMO Internal Team
- - Component Catalog DEMO Lab
- - Navigation Configuration and Display Issue
- - Exception - Configuring Text
- - Display policy styles in a table
- - Can AXE Component be configured
- ISAAP-738 - Component Catalog Documentation Review/Update
- ISAAP-785 - Component Catalog Finalize / improve branding for the catalog
- ISAAP-786 - Component Catalog Add component thumbnails / icons for each NOVA V2 component
- ISAAP-787 - Component Catalog Add descriptions for each NOVA V2 component
- ISAAP-788 - Component Catalog Limit template selection to NOVA V2 components
- ISAAP-789 - Component Catalog Add / update thumbnails for NOVA V2 templates
- ISAAP-790 - Component Catalog Create pipelines for Sonar and deployment
- ISAAP-791 - Component Catalog Deploying component catalog to higher environments
- ISAAP-792 - Component Catalog User feedback mechanism
- ISAAP-793 - Component Catalog Improve CSS authoring experience
- ISAAP-794 - Component Catalog Improve Notes experience
- ISAAP-795 - Component Catalog Sort by control for component page
- ISAAP-796 - Component Catalog Resizable playground frame to preview responsive variations.
- ISAAP-820 - Component Catalog Resolve UX concerns in the initial component playground
- ISAAP-843 - Component Catalog Create a branded design system in Figma
- ISAAP-844 - Component Catalog Configurable default template and default initial content
- ISAAP-936 - Mavyret No underline for default link style buttons
- ISAAP-952 - Component Catalog Create auxillary styles for white-label template as necessary
- ISAAP-953 - Component Catalog Add initial content for white-label template
Jira Issues
https://btsjira.abbvie.com/browse/
| ISSUE | Description |
|---|---|
| Component Catalog DEMO Internal Team | |
| Component Catalog DEMO Lab | |
| Navigation Configuration and Display Issue | |
| Exception - Configuring Text | |
| Display policy styles in a table | |
| Can AXE Component be configured | |
| ISAAP-738 | Component Catalog Documentation Review/Update |
| ISAAP-785 | Component Catalog Finalize / improve branding for the catalog |
| ISAAP-786 | Component Catalog Add component thumbnails / icons for each NOVA V2 component |
| ISAAP-787 | Component Catalog Add descriptions for each NOVA V2 component |
| ISAAP-788 | Component Catalog Limit template selection to NOVA V2 components |
| ISAAP-789 | Component Catalog Add / update thumbnails for NOVA V2 templates |
| ISAAP-790 | Component Catalog Create pipelines for Sonar and deployment |
| ISAAP-791 | Component Catalog Deploying component catalog to higher environments |
| ISAAP-792 | Component Catalog User feedback mechanism |
| ISAAP-793 | Component Catalog Improve CSS authoring experience |
| ISAAP-794 | Component Catalog Improve Notes experience |
| ISAAP-795 | Component Catalog Sort by control for component page |
| ISAAP-796 | Component Catalog Resizable playground frame to preview responsive variations. |
| ISAAP-820 | Component Catalog Resolve UX concerns in the initial component playground |
| ISAAP-843 | Component Catalog Create a branded design system in Figma |
| ISAAP-844 | Component Catalog Configurable default template and default initial content |
| ISAAP-936 | Mavyret No underline for default link style buttons |
| ISAAP-952 | Component Catalog Create auxillary styles for white-label template as necessary |
| ISAAP-953 | Component Catalog Add initial content for white-label template |
Setup
Make sure to install dependencies:
# pnpm
pnpm install
Development Server
Start the development server on http://localhost:3000:
# pnpm
pnpm dev
Production
Build the application for production:
# pnpm
pnpm build
Locally preview production build:
# pnpm
pnpm preview
TEMPORARY SCRATCHPAD
Snippets
import { resolveComponent } from 'vue'
const UBadge = resolveComponent('UBadge')
Foundation
:root {
--ui-text-dimmed: var(--ui-color-neutral-400);
--ui-text-muted: var(--ui-color-neutral-500);
--ui-text-toned: var(--ui-color-neutral-600);
--ui-text: var(--ui-color-neutral-700);
--ui-text-highlighted: var(--ui-color-neutral-900);
--ui-text-inverted: var(--color-white);
--ui-bg: var(--color-white);
--ui-bg-muted: var(--ui-color-neutral-50);
--ui-bg-elevated: var(--ui-color-neutral-100);
--ui-bg-accented: var(--ui-color-neutral-200);
--ui-bg-inverted: var(--ui-color-neutral-900);
--ui-border: var(--ui-color-neutral-200);
--ui-border-muted: var(--ui-color-neutral-200);
--ui-border-accented: var(--ui-color-neutral-300);
--ui-border-inverted: var(--ui-color-neutral-900);
}
.dark {
--ui-text-dimmed: var(--ui-color-neutral-500);
--ui-text-muted: var(--ui-color-neutral-400);
--ui-text-toned: var(--ui-color-neutral-300);
--ui-text: var(--ui-color-neutral-200);
--ui-text-highlighted: var(--color-white);
--ui-text-inverted: var(--ui-color-neutral-900);
--ui-bg: var(--ui-color-neutral-900);
--ui-bg-muted: var(--ui-color-neutral-800);
--ui-bg-elevated: var(--ui-color-neutral-800);
--ui-bg-accented: var(--ui-color-neutral-700);
--ui-bg-inverted: var(--color-white);
--ui-border: var(--ui-color-neutral-800);
--ui-border-muted: var(--ui-color-neutral-700);
--ui-border-accented: var(--ui-color-neutral-700);
--ui-border-inverted: var(--color-white);
}
event - Event Object
timeTextisStartisEndisMirrorisPastisFutureisTodayel- the element. only available in eventDidMount and eventWillUnmountview- View Object
function toggleWeekends() {
calendarOptions.value.weekends = !calendarOptions.value.weekends
}
Sidebar Custom Link Example
import link from '@inertiajs/inertia-vue3/src/link'
import { createApp, h } from 'vue'
const customLink = {
name: 'CustomLink',
props: ['item'],
render() {
return h(link, this.$slots.default)
},
watch: {
'$page.url': function () {
this.onRouteChange()
},
},
inject: ['onRouteChange'],
}
const app = createApp(App)
app.component('custom-link', customLink)
<sidebar-menu :link-component-name="'custom-link'"></sidebar-menu>
!NOTE The
onRouteChangefunction can be injected useful for updating the active state whenever the url change.
Shell Aliases
# alias c="clear"
alias f="open -a Finder"
# ls: adding colors, verbose listing
# and humanize the file sizes:
# alias ls="ls --color -l -h"
# alias ll="$(brew --prefix coreutils)/libexec/gnubin/ls -ahlF --color --group-directories-first"
# some ls aliases
# alias la="ls -A"
# alias ll="ls -Al"
alias ll="ls -ltr"
function dir() {
tree -I '.git|node_modules|bower_componenents|.DS_Store' --dirsfirst --filelimit 90 -L ${1:-3} -aC $2
}
# make aliases sudo-able
alias sudo="sudo "
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
# mkdir: create parent directories:
alias mkdir="mkdir -pv"
# grep: color and show the line
# number for each match:
alias grep="grep -n --color"
alias vm='ssh vagrant@127.0.0.1 -p 2222'
alias debug="node --inspect-brk ./node_modules/jest/bin/jest.js --no-cache --runInBand --watch"
alias sshkey="cat ~/.ssh/id_rsa.pub | pbcopy && echo 'Copied to clipboard.'"
alias shrug="echo '¯\_(ツ)_/¯' | pbcopy && echo 'Copied to clipboard.'"
alias please='sudo $(fc -ln -1)'
alias slime="subl"
# To update brew, npm, gem and their installed packages
alias update='brew update; brew upgrade; brew cleanup; npm update npm -g; npm update -g; sudo gem update --system; sudo gem update'
function muppd () {
echo -e "\033[100;44m"
sudo softwareupdate -ia
brew update
echo -e "\033[0m"
}
# ping: stop after 5 pings:
alias ping="ping -c 5"
alias ip="ifconfig -a | grep -o 'inet6\? \(addr:\)\?\s\?\(\(\([0-9]\+\.\)\{3\}[0-9]\+\)\|[a-fA-F0-9:]\+\)' | awk '{ sub(/inet6? (addr:)? ?/, \"\"); print }'"
alias reloaddns="dscacheutil -flushcache && sudo killall -HUP mDNSResponder"
alias shorten="pushd ~/@vticonsulting/shortener && yarn shorten \"$1\" \"$2\" && popd"
# curl: only display HTTP header:
alias HEAD="curl -I"
# this create a new HEAD command
alias weather="curl -4 http://wttr.in"
alias bsa='browser-sync start --files "**" --server --no-notify'
alias bsap='browser-sync start --proxy "local-dashboard.boosterthon.com" --files "**" --no-notify'
# alias python=python3
# cd into whatever is the forefront Finder window.
cdf() { # short for cdfinder
cd "`osascript -e 'tell app "Finder" to POSIX path of (insertion location as alias)'`"
}
function tdm {
osascript -e 'tell app "System Events" to tell appearance preferences to set dark mode to not dark mode'
}
# process finding
alias pg="pgrep -lf"
alias jqq="/Users/vtolbert/@victortolbert/code/jqq/jqq.rb"
# alias t="php artisan tinker"
function t() {
# Defaults to 3 levels deep, do more with 't 5" or 't. 1*
# pass additional args after
tree -I '.git|node_modules|bower_components|.DS_Store' --dirsfirst --filelimit 26 -L ${1:-3} -aC $2
}
alias a='php artisan'
alias tc="pnpm typecheck"
alias i="pnpm install"
alias d="pnpm dev"
alias b="pnpm build"
alias g='git'
alias l="pnpm lint"
alias lf="pnpm lint:fix"
alias itc="pnpm i && pnpm typecheck"
alias ea="code-insiders ~/.oh-my-zsh/custom/alias.zsh"
alias ez="code-insiders ~/.zshrc"
alias pu='vendor/bin/phpunit'
alias mfs='php artisan migrate:fresh --seed'
alias artclearall='php artisan cache:clear && php artisan view:clear && php artisan config:clear'
alias clearlog='truncate -s 0 $PWD/storage/logs/laravel.log'
alias clearlogs='truncate -s 0 $PWD/storage/logs/*.log'
# IP addresses
alias ip_intern="ipconfig getifaddr en0"
alias ip_extern="curl ipecho.net/plain; echo"
alias eslint="node_modules/.bin/eslint"
# Enhanced WHOIS lookups
alias whois="whois -h whois-servers.net"
# Hide/show all desktop icons (useful when presenting)
alias hidedesktop="defaults write com.apple.finder CreateDesktop -bool false && killall Finder"
alias showdesktop="defaults write com.apple.finder CreateDesktop -bool true && killall Finder"
# fresh () {
# rm -rf .nuxt .data node_modules pnpm-lock.yaml
# pnpm install
# }
alias fresh="rm -rf .nuxt .data node_modules pnpm-lock.yaml && pnpm install"
# Code Launchers
alias ci="code-insiders"
# Git aliases
alias init="git init && git add . && git commit -m '✨ Initial commit'"
alias nah='git reset --hard; git clean -df'
alias wip="git add . && git commit -m 'wip'"
function gitpull {
if [ -d titan-common ]; then
cd titan-common
echo -e "\e[0;32m${PWD##*/}\e[0m"
git pull origin $1
cd ..
fi
echo -e "\e[0;32m${PWD##*/}\e[0m"
git pull origin $1
}
function gitpush {
if [ -d titan-common ]; then
cd titan-common
echo -e "\e[0;32m${PWD##*/}\e[0m"
git push -u origin HEAD
cd ..
fi
echo -e "\e[0;32m${PWD##*/}\e[0m"
git push -u origin HEAD
}
function gitadd {
echo -e "\e[0;32m${PWD##*/}\e[0m"
git add . --all
if [ -d titan-common ]; then
cd titan-common
echo -e "\e[0;32m${PWD##*/}\e[0m"
git add . --all
cd ..
fi
}
function gitstash {
if [ -d titan-common ]; then
echo -e "\e[0;32m${PWD##*/}\e[0m"
cd titan-common
git stash $1
cd ..
fi
echo -e "\e[0;32m${PWD##*/}\e[0m"
git stash $1
}
function gitstatus {
if [ -d titan-common ]; then
cd titan-common
echo -e "\e[0;32m${PWD##*/}\e[0m"
git status
cd ..
fi
echo -e "\e[0;32m${PWD##*/}\e[0m"
git status
}
function gitmerge {
if [ -d titan-common ]; then
cd titan-common
echo -e "\e[0;32m${PWD##*/}\e[0m"
git merge $1
cd ..
fi
echo -e "\e[0;32m${PWD##*/}\e[0m"
git merge $1
}
MDC
Box
The content of the box
Hero
My Page Title
My Title
A rich text will be rendered by the component.
My Alert
The alert component.
Icon Card
Attributes work on:
- link,
code, - italic and bold texts.
The Title is Notes and customVariable is defaultValue




Author Experience

Publish Experience

Author Mode

Component Config

Component List Overview

Component Page

Component Thumbnails
![]()
Components Tab

Templates Page

Demo Content

Enable Author View

Enable Publish View

Header Properties

Import Content

Live Usage Path

Live Usage Tab

Page 8 Image 2

Page 9 Image 2

Page 9 Image 3

Playground Options

Playground Page

Template Config

Template Configuration Path Pattern

Template List Overview

Template List Usage Count

Template Thumbnails
![]()
Templates Tab

Usage Report

Deployments
| Date | |
|---|---|
| 05/28 | LL |
| 06/04 | LL |
| 06/05 | Prod Author. |
| 06/11 | LL |
| 06/12 | Prod Author |
Rinvoq Rheum
/conf/Rinvoq-Rheum/settings/wcm/templates/content/aem-component-catalog/nova//content/aem-component-catalog/nova/components.html/content/aem-component-catalog/nova/templates.html/apps/xpomnichannel/brand-clientlibs/rinvoq-rheum
:root {
--rinvoq-gold: #ffd100;
--rinvoq-gold-55: #ffe673;
--rinvoq-gold-30: #fff1b3;
--rinvoq-charcoal: #25282A;
--rinvoq-charcoal-85: #46484a;
--rinvoq-charcoal-55: #87898a;
--rinvoq-charcoal-25: #c9c9ca;
--rinvoq-plum: #90124A;
--rinvoq-plum-70: #b15980;
--rinvoq-plum-40: #d3a0b7;
--rinvoq-plum-40: #d3a0b7;
--font-family-sans: "Graphik";
--font-thin: 100;
--font-normal: 400;
--font-medium: 500;
--font-semibold: 600;
--font-bold: 700;
--font-black: 900;
--text-3xs: 9px;
--text-2xs: 10px;
--text-xs: 12px;
--text-sm: 14px;
--text-base: 16px;
--text-lg: 18px;
--text-xl: 20px;
--text-2xl: 24px;
--text-3xl: 30px;
--text-4xl: 36px;
--border-radius: 5px;
--white: #fff;
--black: #000;
--tabs-header-background: #D9D9D9;
--tabs-header-border-radius: 4px;
--tabs-header-height: 35px;
--rounded-full: 9999px;
--button-text-color: white;
--button-font-size: 12px;
--button-font-weight: 700;
/* Template */
--header-height: 86px;
--main-content-height: 696px;
--footer-height: 52px;
--container-1-width: auto;
--container-1-opacity: .98;
--container-2-width: auto;
--container-2-height: 384px;
--container-3-text-color: #fff;
--container-3-background-color: #193052;
--container-3-width: auto;
--container-3-height: 384px;
--container-3-opacity: .93;
}
# Stage 1: Build
FROM node:22.14.0-slim AS base
ENV HOST=0.0.0.0 PORT=3000
EXPOSE ${PORT}
FROM base AS build
COPY . /app
WORKDIR /app
# Install dependencies
RUN pnpm install
WORKDIR /app
ENV NODE_ENV=production
# Build the application
RUN pnpm run build
##### Copy just the files we need into the image
FROM base AS deploy
WORKDIR /app
RUN mkdir dist
COPY --from=build ./app/dist ./dist
RUN npm install -g serve
CMD [ "serve", "-s", "dist" ]
- Monaco Editor
- Monoco Editor React
- Nuxt Monaco Editor
- Build a Code Text Editor in React in 10 Minutes (Syntax Highlighting, Dark Theme)
- Build a React.js Monaco Code Syntax Highlighter Editor With Different Themes in Browser Using JSX
Currently we have 4 options in formulary
- Default - pulls all categories
- Commerical - only commercial plans
- Medicaid - "* Medicaid"(FFS Medicaid & Managed Medicaid)
- Medicare - Medicare plans
adding a new option for Commerica/HIX as part of this https://btsjira.abbvie.com/browse/ISAAP-958 we will hotfix to 1.28 and deployment on 05/29.
We have groomed a ticet for next sprint to make these categories dynamic , pulled from a global admi config
Everyone - June 19/20th will be the go-live for the Mavyret ISA! Designed in Helium and Built on NOVA!
Botox LMS DSU
- Tedeschi, Steven, steven.tedeschi@abbvie.com
- Raasiha Michael, raasiha.michael@abbvie.com
- Pankaj Rohira, pankaj.rohira@abbvie.com
- Rupa Srujana, yakkala.rupasrujanasindhura@abbvie.com
- Vikas Sharma, vikas.sharma@abbvie.com
- Poornima Yadav
- Sakthi Manoharan, Saranya saranya.sakthimanoharan@abbvie.com
- Mohammed Rahamathulla, Mohammed Rilla, mohammedrilla.mohammedrahamathulla@abbvie.com
- Ajit Mahajani, Radhika, radhika.ajitmahajani@abbvie.com
- Venkataraman, Shankar, shankar.venkataraman@abbvie.com
- Tolbert, Victor, victor.tolbert@abbvie.com
Botox LMS Daily Tech Connect
- Raasiha Michael, raasiha.michael@abbvie.com
- Pankaj Rohira, pankaj.rohira@abbvie.com
- Rupa Srujana, yakkala.rupasrujanasindhura@abbvie.com
- Vikas Sharma, vikas.sharma@abbvie.com
- Poornima Yadav
- Tolbert, Victor,victor.tolbert@abbvie.com
Botox LMS| Additional Scope: RBA Alerts
- Advani, Kavita L, kavita.advani@abbvie.com
- Puthezhath, Rajeev, rajeev.puthezhath@abbvie.com
- Pankaj Rohira, pankaj.rohira@abbvie.com
- Vikas Sharma, vikas.sharma@abbvie.com
- Tolbert, Victor,victor.tolbert@abbvie.com
https://github.com/adobe/aem-guides-wknd/compare/aem-guides-wknd-3.1.0...aem-guides-wknd-3.2.0





react-adobe1
React micro-frontend framework allowing you to host multiple React components from HTML.
container-c0795cc6b5 playground-react aem-GridColumn aem-GridColumn--default--12
Quick Tip ⚡️
Do more with your screen captures! Right-click on the overlay to open context menu.
Got it!
Quick Tip ⚡️
Select *Capture History... from CleanShot menu to restore closed files.
Got it!
Quick Tip ⚡️
Double-click on the overlay to open the Annotate tool.
Got it!
Features / Benefits
| Features | Benefits |
|---|---|
| Easily edit with a click | Streamlined content updates |
| Instant previews. | Real-time feedback on changes. |
| Collaborative editing | Improved team workflows |
| Version history | Easy rollback to previous states |
Body
<sly data-sly-use.pageHeader="com.xpediantsolutions.ccatalog.core.models.PageHeader">
<header class="navbar navbar-expand-lg bg-abbvie px-8 py-2" style="background-color: rgb(7, 29, 73);">
<nav class="container">
<a class="navbar-brand flex items-center gap-2 text-white" href="/">
<img
src="/etc.clientlibs/aem-component-catalog/clientlibs/clientlib-react/resources/images/logos/logo-nova.svg"
alt="NOVA Logo"
>
<span class="font-bold">Component Catalog</span>
</a>
<button
class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbarCollapse"
aria-controls="navbarCollapse"
aria-expanded="false"
aria-label="Toggle navigation"
><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<sly data-sly-test.link1Dropdown="${ !pageHeader.headerMainLink1Url }">
<li class="nav-item dropdown ${ pageHeader.activateMainLink1 ? 'active' : '' }">
<a
class="nav-link dropdown-toggle"
href="${pageHeader.headerMainLink1Url}"
role="button"
data-bs-toggle="dropdown"
aria-expanded="false"
>
${ pageHeader.headerMainLink1Label }
</a>
<ul class="dropdown-menu" data-sly-list="${ pageHeader.headerSublinks1List }">
<li>
<a class="dropdown-item" href="${ item.subLabel }">
${ item.subUrl }
</a>
</li>
</ul>
</li>
</sly>
<sly data-sly-test="${ !link1Dropdown} ">
<li class="nav-item ${ pageHeader.activateMainLink1 ? 'active' : '' }">
<a class="nav-link" href="${ pageHeader.headerMainLink1Url }">
<!-- Components Link -->
${ pageHeader.headerMainLink1Label }
</a>
</li>
</sly>
<sly data-sly-test.link2Dropdown="${ !pageHeader.headerMainLink2Url }">
<li class="nav-item dropdown ${ pageHeader.activateMainLink2 ? 'active' : '' }">
<a
class="nav-link dropdown-toggle"
href="${ pageHeader.headerMainLink2Url }"
role="button"
data-bs-toggle="dropdown"
aria-expanded="false"
>
${ pageHeader.headerMainLink2Label }
</a>
<ul
class="dropdown-menu"
data-sly-list="${ pageHeader.headerSublinks2List }"
>
<li>
<a class="dropdown-item" href="${ item.subLabel }">
${ item.subUrl }
</a>
</li>
</ul>
</li>
</sly>
<sly data-sly-test="${ !link2Dropdown }">
<li class="nav-item ${ pageHeader.activateMainLink2 ? 'active' : '' }">
<a class="nav-link" href="${ pageHeader.headerMainLink2Url }">
<!-- Templates Link -->
${ pageHeader.headerMainLink2Label }
</a>
</li>
</sly>
</ul>
</div>
</nav>
</header>
</sly>
<main class="mt-8">
<sly
data-sly-use.templatedContainer="com.day.cq.wcm.foundation.TemplatedContainer"
data-sly-repeat.child="${ templatedContainer.structureResources }"
data-sly-resource="${ child.path @ resourceType=child.resourceType, decorationTagName='div' }"
></sly>
</main>
<div class="footer" style="background-color: rgb(7, 29, 73); color: white">
<footer class="container mt-4">
<div class="row">
<div class="col">
<img src="/etc.clientlibs/aem-component-catalog/clientlibs/clientlib-react/resources/images/logos/logo-abbvie.svg" alt="AbbVie Logo">
<!--
/etc.clientlibs/aem-component-catalog/clientlibs/clientlib-axe.js
/etc.clientlibs/aem-component-catalog/clientlibs/clientlib-base.css
/etc.clientlibs/aem-component-catalog/clientlibs/clientlib-react/resources
/etc.clientlibs/aem-component-catalog/clientlibs/clientlib-react/resources/
/etc.clientlibs/aem-component-catalog/clientlibs/clientlib-react/resources/mock.model.json
-->
</div>
<div class="col">
<div id="copyright" class="text-end">
<p class="fl_left enable-tooltips">
<a
href="https://abbv.ie/nova"
target="_blank"
style="color: white; text-decoration: none;"
>abbv.ie/nova</a>
</p>
</div>
</div>
</div>
</footer>
</div>
Head
<template
data-sly-template.head="${ @ page, pwa }"
data-sly-use.headlibRenderer="headlibs.html"
data-sly-use.headResources="head.resources.html"
>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>${ page.title } ${ page.brandSlug ? ' | ' : '' } ${ page.brandSlug }</title>
<meta data-sly-test.keywords="${ page.keywords }" name="keywords" content="${ keywords }"/>
<meta
data-sly-test.description="${ page.description || properties['jcr:description'] }"
name="description"
content="${ description }"
/>
<meta
data-sly-test.templateName="${ page.templateName }"
name="template"
content="${ templateName }"
/>
<meta
data-sly-test="${ page.robotsTags }"
name="robots"
content="${ page.robotsTags @ join=', ' }"
>
<sly data-sly-test="${ pwa.enabled }">
<link rel="manifest" href="${ pwa.manifestPath }" crossorigin="use-credentials" />
<meta name="theme-color" content="${ pwa.themeColor }" />
<link rel="apple-touch-icon" href="${ pwa.iconPath }" />
<sly
data-sly-use.clientlib="core/wcm/components/commons/v1/templates/clientlib.html"
data-sly-call="${ clientlib.css @ categories='core.wcm.components.page.v2.pwa' }"
></sly>
<meta name="cq:sw_path" content="${ pwa.serviceWorkerPath @ context ='text' }"/>
</sly>
<sly data-sly-include="head.links.html"></sly>
<sly data-sly-include="customheaderlibs.html"></sly>
<sly
data-sly-call="${
headlibRenderer.headlibs @
page = page,
designPath = page.designPath,
staticDesignPath = page.staticDesignPath,
clientLibCategories = page.clientLibCategories,
clientLibCategoriesJsHead = page.clientLibCategoriesJsHead,
hasCloudconfigSupport = page.hasCloudconfigSupport
}"
></sly>
<sly
data-sly-test.appResourcesPath=${page.appResourcesPath}
data-sly-call="${ headResources.favicons @ path = appResourcesPath }"
></sly>
<sly data-sly-list="${ page.htmlPageItems }">
<script
data-sly-test="${ item.location.name == 'header' }"
data-sly-element="${ item.element.name @ context='unsafe' }"
data-sly-attribute="${ item.attributes }"
></script>
</sly>
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
<style type="text/tailwindcss">
@theme {
--color-abbvie: rgb(7, 29, 73);
}
</style>
<!-- Material Symbols -->
<!-- Each icon must be declared alphabetically to optimize loading -->
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&icon_names=accessibility_new,add,close,delete,info,link,palette,save,tune,warning" />
</template>
Perfect! I can see you're already using Tailwind CSS v4 via CDN and have some Tailwind classes mixed with Bootstrap. Let me help you convert the remaining Bootstrap classes to Tailwind CSS v4 equivalents and optimize the setup.
Updated Head Template## Updated Body Template## Updated React Component with Phosphor Icons
Here's how to update your React components to use Phosphor icons:## Summary of Changes & Next Steps## Icon Replacement Guide## Summary
I've provided a complete conversion of your AEM templates and components from Bootstrap to Tailwind CSS v4 with Phosphor icons. Here are the key updates:
✅ Head Template
- Updated to use Tailwind CSS v4 stable CDN
- Enhanced theme configuration with AEM brand colors
- Added Phosphor icons (replacing Material Symbols)
- Created custom utility classes for AEM components
✅ Body Template
- Converted Bootstrap navbar to Tailwind responsive navigation
- Replaced Bootstrap grid with Tailwind grid/flexbox
- Added Alpine.js for dropdown functionality
- Removed inline styles in favor of utility classes
- Implemented mobile-first responsive design
✅ React Component Updates
- Example showing Phosphor icon integration
- Modern Tailwind utility classes
- Improved accessibility and interactions
- Maintained all AEM functionality
✅ Complete Migration Guide
- Icon mapping reference
- Testing checklist
- Breaking changes documentation
- Rollback strategy
Key Benefits:
- ✨ Modern, maintainable CSS architecture
- 📱 Better mobile responsiveness
- 🎨 Consistent design system
- ⚡ Improved development experience
- 🔧 Maintained AEM integration
Next Steps:
- Update your remaining React components using the provided patterns
- Test thoroughly in your AEM environment
- Remove any remaining Bootstrap dependencies
- Consider moving from CDN to npm package for production
The conversion maintains full AEM compatibility while modernizing your UI stack. Would you like me to help you update any specific components or address any concerns about the AEM integration?
--container-7xl 1280px
.container
containermx-autopx-4sm:px-6lg:px-
.container {
max-width: 1280px;
}
label.form-label
blocktext-sm/6font-medium- `text-gray-900``
label.form-label {
}
select.select
col-start-1row-start-1w-fullappearance-nonerounded-mdbg-whitepy-1.5pr-8pl-3text-basetext-gray-900outline-1-outline-offset-1outline-gray-300focus:outline-2focus:-outline-offset-2focus:outline-indigo-600sm:text-sm/6
.select {
}
Navbar
scripts=" create service user adaptive-write create path (sling:Folder) /var/xpediant set ACL for adaptive-write allow jcr:read on /apps, /content, /conf allow jcr:all on /var/xpediant end "
com.adobe.granite.cors.impl.CORSPolicyImpl~aem-component-catalog.cfg.json
{
"alloworigin": ["http://localhost:3000"],
"allowedpaths": ["/(content|conf)/aem-component-catalog.*"],
"supportedheaders": [
"Authorization",
"Origin",
"Accept",
"X-Requested-With",
"Content-Type",
"Access-Control-Request-Method",
"Access-Control-Request-Headers"
],
"supportedmethods": ["GET","HEAD"],
"alloworiginregexp": []
}
org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~aemcomponents.cfg.json
{
"service.ranking": "0",
"user.mapping": [
"aem-component-catalog.core:COMPONENTS=[adaptive-write]"
]
}
Subject: AEM Component Catalog Update – Demo Pushed to June 18
Hi Team,
A quick note on the AEM Component Catalog MVP: While we had aimed for a June 6 demo, I’m extending the timeline slightly to lock in some final design refinements.
Here’s the updated plan:
Final design pass: by Tues, June 10
Content creation by Mukesh: June 11–13
MVP demo: During the Core team meeting on June 18
This ensures we deliver something clean, usable, and future-proof. Thanks for the continued support!
Best, Victor
Subject: AEM Component Catalog Update – Demo Pushed to June 18
Hi Team,
Quick update on the AEM Component Catalog MVP: While we initially aimed for a June 6 demo, I’ve extended the timeline slightly to incorporate some key design and development refinements.
I had originally expected a subset of authored components would be enough to gather early feedback, but after today’s internal review, the direction is to wait until the full set is complete before demoing. That shift gives us a better opportunity to present the catalog as a cohesive, ready-to-use resource.
Updated plan:
Final design: by June 10
Content authored by Mukesh: June 11–13
Demo: Core team meeting on June 18
Thanks again for the support—looking forward to sharing the final result.
Best, Victor
AEM Component Catalog Update – Demo Pushed to June 18
Hi Team,
Quick update on the AEM Component Catalog MVP: While we initially aimed for a June 6 demo, I’ve extended the timeline slightly to incorporate some key design and development refinements.
I had originally expected a subset of authored components would be enough to gather early feedback, but after today’s internal review, the direction is to wait until the full set is complete before demoing. That shift gives us a better opportunity to present the catalog as a cohesive, ready-to-use resource.
Updated plan:
Final design: by June 10
Content authored by Mukesh: June 11–13
Demo: Core team meeting on June 18
Thanks again for the support—looking forward to sharing the final reult.
Best, Victor
<template
data-sly-template.head="${ @ page, pwa }"
data-sly-use.headlibRenderer="headlibs.html"
data-sly-use.headResources="head.resources.html"
>
<meta charset="UTF-8">
<title>${page.title}${page.brandSlug ? ' | ' : ''}${page.brandSlug}</title>
<meta data-sly-test.keywords="${page.keywords}" name="keywords" content="${keywords}"/>
<meta data-sly-test.description="${page.description || properties['jcr:description']}" name="description" content="${description}"/>
<meta data-sly-test.templateName="${page.templateName}" name="template" content="${templateName}"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta data-sly-test="${page.robotsTags}" name="robots" content="${page.robotsTags @ join=', '}">
<sly data-sly-test="${pwa.enabled}">
<link rel="manifest" href="${pwa.manifestPath}" crossorigin="use-credentials"/>
<meta name="theme-color" content="${pwa.themeColor}"/>
<link rel="apple-touch-icon" href="${pwa.iconPath}"/>
<sly
data-sly-use.clientlib="core/wcm/components/commons/v1/templates/clientlib.html"
data-sly-call="${clientlib.css @ categories='core.wcm.components.page.v2.pwa'}"></sly>
<meta name="cq:sw_path" content="${pwa.serviceWorkerPath @ context ='text'}"/>
</sly>
<sly data-sly-include="head.links.html"></sly>
<sly data-sly-include="customheaderlibs.html"></sly>
<sly data-sly-call="${headlibRenderer.headlibs @
page = page,
designPath = page.designPath,
staticDesignPath = page.staticDesignPath,
clientLibCategories = page.clientLibCategories,
clientLibCategoriesJsHead = page.clientLibCategoriesJsHead,
hasCloudconfigSupport = page.hasCloudconfigSupport}"></sly>
<sly data-sly-test.appResourcesPath=${page.appResourcesPath} data-sly-call="${headResources.favicons @ path = appResourcesPath}"></sly>
<sly data-sly-list="${page.htmlPageItems}">
<script
data-sly-test="${item.location.name == 'header'}"
data-sly-element="${item.element.name @ context='unsafe'}" data-sly-attribute="${item.attributes}"
></script>
</sly>
<link
rel="stylesheet"
type="text/css"
href="https://cdn.jsdelivr.net/npm/@phosphor-icons/web@2.1.1/src/duotone/style.css"
/>
<!-- <link href="https://cdn.jsdelivr.net/npm/daisyui@5" rel="stylesheet" type="text/css" /> -->
<!-- <link href="https://cdn.jsdelivr.net/npm/daisyui@5/themes.css" rel="stylesheet" type="text/css" /> -->
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser"></script>
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/forms"></script>
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/typography"></script>
<script src="https://cdn.jsdelivr.net/npm/tailwindcss-animate"></script>
<!-- <script src="https://cdn.jsdelivr.net/npm/tailwind-merge@3.3.0/dist/bundle-cjs.min.js"></script> -->
<style type="text/tailwindcss">
@theme {
--color-abbvie: rgb(7, 29, 73);
--color-primary: oklch(85.65% 0.083 198.57);
--color-primary-DEFAULT: oklch(85.65% 0.083 198.57);
--color-primary-50: oklch(97.33% 0.017 196.88);
--color-primary-100: oklch(95.6% 0.025 199.78);
--color-primary-200: oklch(93.02% 0.041 198.33);
--color-primary-300: oklch(90.61% 0.056 199);
--color-primary-400: oklch(87.97% 0.07 199.34);
--color-primary-500: oklch(85.65% 0.083 198.57);
--color-primary-600: oklch(83.46% 0.095 198.02);
--color-primary-700: oklch(81.11% 0.105 198.37);
--color-primary-800: oklch(79.12% 0.113 197.98);
--color-primary-900: oklch(77.31% 0.119 198.41);
--color-primary-950: oklch(76.27% 0.121 197.65);
--color-secondary-DEFAULT: oklch(55.33% 0.235 297.11);
--color-secondary-50: oklch(91.16% 0.045 303.91);
--color-secondary-100: oklch(86.66% 0.067 303.42);
--color-secondary-200: oklch(78.86% 0.109 302.94);
--color-secondary-300: oklch(70.07% 0.158 301.68);
--color-secondary-400: oklch(61.85% 0.202 299.71);
--color-secondary-500: oklch(55.33% 0.235 297.11);
--color-secondary-600: oklch(49.38% 0.259 292.25);
--color-secondary-700: oklch(43.61% 0.226 292.4);
--color-secondary-800: oklch(38.4% 0.196 293.12);
--color-secondary-900: oklch(32.17% 0.161 293.64);
--color-secondary-950: oklch(28.99% 0.143 293.93);
--background-image-linear: linear-gradient(266deg, var(--color-primary) 0%, var(--color-accent) 99.58%);
--background-image-helium: url("/etc.clientlibs/aem-component-catalog/clientlibs/clientlib-react/resources/images/backgrounds/background-main.jpeg");
}
</style>
</template>
content.config.ts
Write the docs
--
Packages
/aem-component-catalog/nebula/content/aem-component-catalog/nova/conf/aem-component-catalog/conf/aem-component-catalog/conf/Helium-Brand/content/dam/aem-component-catalog/content/dam/helium/content/experience-fragments/nova/isa/helium/content/cq:tags/helium/content/models.html/conf/aem-component-catalog
Local Helium Content
/content/nova/helium/content/experience-fragments/nova/isa/helium/conf/Helium-Brand/content/dam/helium/brand-clientlibs/helium
Local Component Catalog
/apps/aem-component-catalog/apps/aem-component-catalog-packages/content/aem-component-catalog/content/nova/content/experience-fragments/nova/content/dam/helium/content/dam/mavyret/content/cq:tags/nova- /conf/Mavyret-Design`
- /conf/Helium-Brand`
- /conf/Rinvoq-Rheum`
- /apps/xpomnichannel/brand-clientlibs/mavyret`
LMS
/apps/learning/apps/learning-packages/apps/learning-vendor-packages/conf/learning/content/learning/content/experience-fragments/learning/content/dam/learning
NOVA
/content/dam/assets <-- Wide open, unused/content/dam/assets/nova/content/dam/resources<-- Not used/content/dam/diva/content/dam/adlhub
GrapQL
http://localhost:4502/aem/graphiql.html
| Title | Content Fragment List |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/contentfragmentlist |
| Resource Super Type | /apps/core/wcm/components/contentfragmentlist/v2/contentfragmentlist |
| cq:styleElements | div, section, article, main, aside, header, footer |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Accordion |
|---|---|
| Description | |
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/accordion |
| Resource Super Type | /apps/core/wcm/components/accordion/v1/accordion |
| Container | true |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Breadcrumb |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/breadcrumb |
| Resource Super Type | /apps/core/wcm/components/breadcrumb/v3/breadcrumb |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Form Button |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Form |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/form/button |
| Resource Super Type | /apps/core/wcm/components/form/button/v2/button |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Button |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/button |
| Resource Super Type | /apps/core/wcm/components/button/v2/button |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Core Form Container |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Form |
| Description | Container for components that allow users to submit information |
| Resource Type | /apps/aem-component-catalog/components/form/container |
| Resource Super Type | /apps/core/wcm/components/form/container/v2/container |
| Container | true |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Container |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/container |
| Resource Super Type | /apps/core/wcm/components/container/v1/container |
| Container | true |
| cq:styleElements | div, section, article, main, aside, header, footer |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Download |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/download |
| Resource Super Type | /apps/core/wcm/components/download/v2/download |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Experience Fragment |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/experiencefragment |
| Resource Super Type | /apps/core/wcm/components/experiencefragment/v2/experiencefragment |
| cq:styleElements | div, section, article, main, aside, header, footer |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Content Fragment |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/contentfragment |
| Resource Super Type | /apps/core/wcm/components/contentfragment/v1/contentfragment |
| cq:styleElements | div, section, article, main, aside, header, footer |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Embed |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/embed |
| Resource Super Type | /apps/core/wcm/components/embed/v2/embed |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Core Form Container |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Form |
| Description | Container for components that allow users to submit information |
| Resource Type | /apps/aem-component-catalog/components/form/container |
| Resource Super Type | /apps/core/wcm/components/form/container/v2/container |
| Container | true |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Form Hidden |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Form |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/form/hidden |
| Resource Super Type | /apps/core/wcm/components/form/hidden/v2/hidden |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Image |
|---|---|
| Icon | Inherited from component /apps/xpomnichannel/common/components/content/image |
| Group | NOVA V2 |
| Description | Renders visual content with flexible styling options. |
| Resource Type | /apps/xpomnichannel/common/components/content/image/v2/image |
| Resource Super Type | /apps/xpomnichannel/common/components/content/image |
| Creation Date | 16 days ago |
| Created by | admin |
| Title | List |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/list |
| Resource Super Type | /apps/core/wcm/components/list/v3/list |
| Creation Date | 2 months ago |
| Created by | admin |
| teaserDelegate | aem-component-catalog/components/teaser |
| Title | Language Navigation |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Structure |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/languagenavigation |
| Resource Super Type | /apps/core/wcm/components/languagenavigation/v2/languagenavigation |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Navigation |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Structure |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/navigation |
| Resource Super Type | /apps/core/wcm/components/navigation/v2/navigation |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Form Button |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Form |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/form/button |
| Resource Super Type | /apps/core/wcm/components/form/button/v2/button |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | IVA General Slide |
|---|---|
| Icon | Defined by localized component title |
| Group | .hidden |
| Description | |
| Resource Type | /apps/xpomnichannel/iva/components/structure/general-slide |
| Resource Super Type | /apps/xpomnichannel/common/components/structure/page |
| iRepType | MultichannelSlide |
| Creation Date | 16 days ago |
| Created by | admin |
| Title | List AEM Components |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/listaemcomponents-react |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | List AEM Templates |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/listaemtemplates-react |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Form Options |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Form |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/form/options |
| Resource Super Type | /apps/core/wcm/components/form/options/v2/options |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | PDF Viewer |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/pdfviewer |
| Resource Super Type | /apps/core/wcm/components/pdfviewer/v1/pdfviewer |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Playground |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/playground-react |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Progress Bar |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/progressbar |
| Resource Super Type | /apps/core/wcm/components/progressbar/v1/progressbar |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Separator |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/separator |
| Resource Super Type | /apps/core/wcm/components/separator/v1/separator |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Quick Search |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Structure |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/search |
| Resource Super Type | /apps/core/wcm/components/search/v2/search |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Table of Contents |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/tableofcontents |
| Resource Super Type | /apps/core/wcm/components/tableofcontents/v1/tableofcontents |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Quick Search |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Structure |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/search |
| Resource Super Type | /apps/core/wcm/components/search/v2/search |
| Creation Date | 2 months ago |
| Created by | admin |
| Title | Tabs |
|---|---|
| Icon | Defined by localized component title |
| Group | AEM Component Catalog - Content |
| Description | |
| Resource Type | /apps/aem-component-catalog/components/tabs |
| Resource Super Type | /apps/core/wcm/components/tabs/v1/tabs |
| Container | true |
| Creation Date | 2 months ago |
| Created by | admin |
ttle: USB4 40Gbs Full-Featured USB-C Coaxial Cable description: Suitable for USB C Smartphones, Tablets and Laptops asn: JUCX27L12
j5creeate
- 8K Ultra HD
- Ultra High Speed
- 100W PD Charging
- Up to 40Gbps data transfer speed
- Supports 8K@60 video display
- Supports up to 100W fast charging for compatible USB-C® devices
- Built-in PD 3.0 E-Marker (USB4°) chip ensures safe and stable fast charging
- Compatible with USB™, Thunderbolt™ 4, and Thunderbolt™ 3 devices
- Supports Thunderbolt™ 4 for connecting Thunderbolt™ devices
- A double-braided coaxial cable that can resist electromagnetic interference and damage from outside
What's is the total reality of your job right now?
- What are your current tasks (200)
- Phone calls, emails, conversations, errands, brainstorming ideas.
- What are you current projects (30 - 100)
- Outcomes agreed to acheived requiring more than one action to complete them
- Tires, Taxes
- Outcomes agreed to acheived requiring more than one action to complete them
- What are my current areas of responsibility (10 - 15)
- Main areas of the job.... Staff development, asset planning, customer service
- Finances, Health...
- How are thing
Elements Collection:
Button- Primary interactive elementText- Typography elementImage- Media elementVideo- Media element
Components Collection:
Callout- Messaging componentTable- Data display componentSafetyBar- Alert componentFlipContainer- Interactive componentFormularyData- Data componentTabsHeader- Navigation component
Patterns Collection:
Carousel- Content showcase patternCallflowNavigation- Complex navigation patternVerticalNavigation- Sidebar navigation patternCustomPresentations- Content presentation patternExperienceFragment- Content reuse pattern
Layouts Collection
helium/
├── css/
│ ├── helium-plugin.css # Tailwind plugin CSS
│ ├── helium-variables.css # Theme variables (CSS custom props)
│ └── theme-switcher.css # Minimal theme switch styles
├── js/
│ └── theme-switcher.js # Multi-theme toggle script
├── themes/
│ └── themes.json # Theme metadata (optional use)
└── README.md
POCS Markets Avails
For my portfolio site, using Nuxt 3 and Nuxt Content, I'm thinking about recreating some of the projects I worked on at the different companies in different domains, an Online Vehicle Classifieds website, a startup trying to adapt spot tv advertising sales, services and products to compete with the digital landscape, a golfing tour website with leaderboards, a for-profit fundrasing for schools company centered around character-building and a fun-run, where participant would get sponsors (teachers, parents, grandparents, neighbors) to pledge based-up goals. Kids can pick from gifts as rewards, a roofing inspections services company for insurance companies (large and independent), and a health and wellness site.
Help me create some more content collections for the models. Some examples of the properties and entity names, below. Some of the Entities relate to others. I'd like to be able to query across the different collections.
FunRun
- Teachers
- Students
- Sponsors
- Participant
Golfing Tour
- Tournaments
- Player
- Position
- Rounds
- Leaderboard
- Schedule
Spot TV Digital Buyer/Seller Enablement Analytics and Reporting
- Avails
- Buyers
- Campaigns
- DMAs
- Sellers
- Markets
- Price Guide
- TV Shows
Vehicle Classified
- Vehicles
- Make
- Model
- Year
- Payment Forms (Donations, Authorize.net, Stripe, etc..)
Insurance Claims Consulting
- Payment Forms (Donations, Authorize.net, Stripe, etc..)
- Ladder Assist
- Full Exterior & Interior Inspections
- Estimates
- Contents
- Tree Removal
- Mitigation & Repair
- Engineering
Design System
Accounts Apis Assets Clients Colors Episodes Events Examples Features Frameworks Interests Resources States Teams Tokens Topics Vendors
Structure
root header main aside section article footer overlays
Layout
- Container
- Columns
- Tabs
Typography
- Title
- Heading
- Subheading
- Body
- Small
- Bulleted-list
- Dashed-list
- Numbered-list
- Blockquote
- Monostyled
- Italic
- Bold
- Underline
- Strike through
Common Elements
- expand
- collapse
- previous
- next
- close
- indicator-dot
- template/background-slide
- template/background-main
- Update Nova Authoring Meeting Series (Open Hour)
- Is it possible to securely use the JIRA VS Code plugin