diff --git a/readme.plan.md b/readme.plan.md index 65af3a9..5e1052e 100644 Binary files a/readme.plan.md and b/readme.plan.md differ diff --git a/ts_web/elements/dees-input-wysiwyg.demo.ts b/ts_web/elements/dees-input-wysiwyg.demo.ts index 678cc8b..fcb2f68 100644 --- a/ts_web/elements/dees-input-wysiwyg.demo.ts +++ b/ts_web/elements/dees-input-wysiwyg.demo.ts @@ -1,8 +1,8 @@ import { html, css, type TemplateResult } from '@design.estate/dees-element'; import '@design.estate/dees-wcctools/demotools'; import './dees-panel.js'; -import type { DeesInputWysiwyg } from './dees-input-wysiwyg.js'; -import type { IBlock } from './wysiwyg/wysiwyg.types.js'; +import type { DeesInputWysiwyg } from './dees-input-wysiwyg/dees-input-wysiwyg.js'; +import type { IBlock } from './dees-input-wysiwyg/wysiwyg.types.js'; interface IDemoEditor { basic: DeesInputWysiwyg; @@ -1066,4 +1066,4 @@ POST /api/v2/batch -`; \ No newline at end of file +`; diff --git a/ts_web/elements/dees-input-wysiwyg.ts b/ts_web/elements/dees-input-wysiwyg.ts index c999573..2fa899b 100644 --- a/ts_web/elements/dees-input-wysiwyg.ts +++ b/ts_web/elements/dees-input-wysiwyg.ts @@ -1,2 +1,3 @@ -// Re-export the modular component from the wysiwyg directory -export { DeesInputWysiwyg } from './wysiwyg/dees-input-wysiwyg.js'; \ No newline at end of file +// Re-export the component and related helpers from the dedicated subdirectory +export { DeesInputWysiwyg } from './dees-input-wysiwyg/dees-input-wysiwyg.js'; +export * from './dees-input-wysiwyg/index.js'; diff --git a/ts_web/elements/dees-input-wysiwyg/index.ts b/ts_web/elements/dees-input-wysiwyg/index.ts index 138fcf8..2483218 100644 --- a/ts_web/elements/dees-input-wysiwyg/index.ts +++ b/ts_web/elements/dees-input-wysiwyg/index.ts @@ -15,4 +15,4 @@ export * from './wysiwyg.modalmanager.js'; export * from './wysiwyg.history.js'; export * from './dees-wysiwyg-block.js'; export * from './dees-slash-menu.js'; -export * from './dees-formatting-menu.js'; \ No newline at end of file +export * from './dees-formatting-menu.js'; diff --git a/ts_web/elements/dees-stepper/dees-stepper.demo.ts b/ts_web/elements/dees-stepper/dees-stepper.demo.ts new file mode 100644 index 0000000..c8eae72 --- /dev/null +++ b/ts_web/elements/dees-stepper/dees-stepper.demo.ts @@ -0,0 +1,134 @@ +import { html } from '@design.estate/dees-element'; + +export const stepperDemo = () => html` + + + + Continue + + `, + validationFunc: async (stepperArg, elementArg) => { + const deesForm = elementArg.querySelector('dees-form'); + deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true }); + }, + }, + { + title: 'Profile Details', + content: html` + + + + Continue + + `, + validationFunc: async (stepperArg, elementArg) => { + const deesForm = elementArg.querySelector('dees-form'); + deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true }); + }, + }, + { + title: 'Contact Information', + content: html` + + + + Continue + + `, + validationFunc: async (stepperArg, elementArg) => { + const deesForm = elementArg.querySelector('dees-form'); + deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true }); + }, + }, + { + title: 'Team Size', + content: html` + + + Continue + + `, + validationFunc: async (stepperArg, elementArg) => { + const deesForm = elementArg.querySelector('dees-form'); + deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true }); + }, + }, + { + title: 'Goals', + content: html` + + + Continue + + `, + validationFunc: async (stepperArg, elementArg) => { + const deesForm = elementArg.querySelector('dees-form'); + deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true }); + }, + }, + { + title: 'Brand Preferences', + content: html` + + + + Continue + + `, + validationFunc: async (stepperArg, elementArg) => { + const deesForm = elementArg.querySelector('dees-form'); + deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true }); + }, + }, + { + title: 'Integrations', + content: html` + + + Continue + + `, + validationFunc: async (stepperArg, elementArg) => { + const deesForm = elementArg.querySelector('dees-form'); + deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true }); + }, + }, + { + title: 'Review & Launch', + content: html` + + Almost there! Review your selections and launch whenever you're ready. + + `, + }, + ] as const} + > +`; diff --git a/ts_web/elements/dees-stepper/dees-stepper.ts b/ts_web/elements/dees-stepper/dees-stepper.ts index ea6188b..5d3c905 100644 --- a/ts_web/elements/dees-stepper/dees-stepper.ts +++ b/ts_web/elements/dees-stepper/dees-stepper.ts @@ -14,6 +14,7 @@ import { } from '@design.estate/dees-element'; import * as domtools from '@design.estate/dees-domtools'; +import { stepperDemo } from './dees-stepper.demo.js'; export interface IStep { title: string; @@ -31,139 +32,7 @@ declare global { @customElement('dees-stepper') export class DeesStepper extends DeesElement { - public static demo = () => - html` - - - - Continue - - `, - validationFunc: async (stepperArg, elementArg) => { - const deesForm = elementArg.querySelector('dees-form'); - deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true }); - }, - }, - { - title: 'Profile Details', - content: html` - - - - Continue - - `, - validationFunc: async (stepperArg, elementArg) => { - const deesForm = elementArg.querySelector('dees-form'); - deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true }); - }, - }, - { - title: 'Contact Information', - content: html` - - - - Continue - - `, - validationFunc: async (stepperArg, elementArg) => { - const deesForm = elementArg.querySelector('dees-form'); - deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true }); - }, - }, - { - title: 'Team Size', - content: html` - - - Continue - - `, - validationFunc: async (stepperArg, elementArg) => { - const deesForm = elementArg.querySelector('dees-form'); - deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true }); - }, - }, - { - title: 'Goals', - content: html` - - - Continue - - `, - validationFunc: async (stepperArg, elementArg) => { - const deesForm = elementArg.querySelector('dees-form'); - deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true }); - }, - }, - { - title: 'Brand Preferences', - content: html` - - - - Continue - - `, - validationFunc: async (stepperArg, elementArg) => { - const deesForm = elementArg.querySelector('dees-form'); - deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true }); - }, - }, - { - title: 'Integrations', - content: html` - - - Continue - - `, - validationFunc: async (stepperArg, elementArg) => { - const deesForm = elementArg.querySelector('dees-form'); - deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true }); - }, - }, - { - title: 'Review & Launch', - content: html` - - Almost there! Review your selections and launch whenever you're ready. - - `, - }, - ] as IStep[]} - > - `; + public static demo = stepperDemo; @property({ type: Array,
Almost there! Review your selections and launch whenever you're ready.