@progressive-development/pd-page 0.9.2 → 1.0.0

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 (69) hide show
  1. package/LICENSE +21 -2
  2. package/README.md +34 -57
  3. package/dist/generated/locales/be.d.ts +19 -1
  4. package/dist/generated/locales/be.d.ts.map +1 -1
  5. package/dist/generated/locales/de.d.ts +19 -1
  6. package/dist/generated/locales/de.d.ts.map +1 -1
  7. package/dist/generated/locales/en.d.ts +19 -1
  8. package/dist/generated/locales/en.d.ts.map +1 -1
  9. package/dist/index.d.ts +6 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +7 -0
  12. package/dist/locales/be.js +19 -1
  13. package/dist/locales/de.js +19 -1
  14. package/dist/locales/en.js +19 -1
  15. package/dist/pd-contact-us/PdContactUs.d.ts +15 -5
  16. package/dist/pd-contact-us/PdContactUs.d.ts.map +1 -1
  17. package/dist/pd-contact-us/PdContactUs.js +94 -131
  18. package/dist/pd-contact-us/pd-contact-us.stories.d.ts +36 -5
  19. package/dist/pd-contact-us/pd-contact-us.stories.d.ts.map +1 -1
  20. package/dist/pd-content/dist/pd-notice-box/PdNoticeBox.js +224 -0
  21. package/dist/pd-content/dist/pd-notice-box/pd-notice-box.js +8 -0
  22. package/dist/pd-footer/PdFooter.d.ts +27 -15
  23. package/dist/pd-footer/PdFooter.d.ts.map +1 -1
  24. package/dist/pd-footer/PdFooter.js +122 -71
  25. package/dist/pd-footer/pd-footer.stories.d.ts +47 -7
  26. package/dist/pd-footer/pd-footer.stories.d.ts.map +1 -1
  27. package/dist/pd-login/PdLogin.d.ts +59 -0
  28. package/dist/pd-login/PdLogin.d.ts.map +1 -0
  29. package/dist/pd-login/PdLogin.js +292 -0
  30. package/dist/pd-login/pd-login.d.ts +3 -0
  31. package/dist/pd-login/pd-login.d.ts.map +1 -0
  32. package/dist/pd-login/pd-login.stories.d.ts +55 -0
  33. package/dist/pd-login/pd-login.stories.d.ts.map +1 -0
  34. package/dist/pd-login.d.ts +2 -0
  35. package/dist/pd-login.js +8 -0
  36. package/dist/pd-menu/PdMenu.d.ts +72 -40
  37. package/dist/pd-menu/PdMenu.d.ts.map +1 -1
  38. package/dist/pd-menu/PdMenu.js +384 -273
  39. package/dist/pd-menu/pd-menu.stories.d.ts +59 -17
  40. package/dist/pd-menu/pd-menu.stories.d.ts.map +1 -1
  41. package/dist/pd-socialmedia/PdSocialmedia.d.ts +56 -0
  42. package/dist/pd-socialmedia/PdSocialmedia.d.ts.map +1 -0
  43. package/dist/pd-socialmedia/PdSocialmedia.js +426 -0
  44. package/dist/pd-socialmedia/pd-socialmedia-model.d.ts +16 -0
  45. package/dist/pd-socialmedia/pd-socialmedia-model.d.ts.map +1 -0
  46. package/dist/pd-socialmedia/pd-socialmedia-model.js +240 -0
  47. package/dist/pd-socialmedia/pd-socialmedia.d.ts +3 -0
  48. package/dist/pd-socialmedia/pd-socialmedia.d.ts.map +1 -0
  49. package/dist/pd-socialmedia/pd-socialmedia.stories.d.ts +53 -0
  50. package/dist/pd-socialmedia/pd-socialmedia.stories.d.ts.map +1 -0
  51. package/dist/pd-socialmedia.d.ts +2 -0
  52. package/dist/pd-socialmedia.js +7 -0
  53. package/dist/pd-toast/PdToast.d.ts +23 -0
  54. package/dist/pd-toast/PdToast.d.ts.map +1 -0
  55. package/dist/pd-toast/PdToast.js +222 -0
  56. package/dist/pd-toast/pd-toast.d.ts +3 -0
  57. package/dist/pd-toast/pd-toast.d.ts.map +1 -0
  58. package/dist/pd-toast/pd-toast.stories.d.ts +47 -0
  59. package/dist/pd-toast/pd-toast.stories.d.ts.map +1 -0
  60. package/dist/pd-toast.d.ts +2 -0
  61. package/dist/pd-toast.js +8 -0
  62. package/dist/stories/01_index.stories.d.ts +36 -4
  63. package/dist/stories/01_index.stories.d.ts.map +1 -1
  64. package/dist/toast-bus/toast-bus.d.ts +61 -0
  65. package/dist/toast-bus/toast-bus.d.ts.map +1 -0
  66. package/dist/toast-bus/toast-bus.js +42 -0
  67. package/dist/types.d.ts +18 -0
  68. package/dist/types.d.ts.map +1 -1
  69. package/package.json +13 -7
@@ -0,0 +1,55 @@
1
+ import { Meta, StoryObj } from '@storybook/web-components-vite';
2
+ /**
3
+ * Story arguments interface for pd-login component.
4
+ * Maps to the component's public API.
5
+ */
6
+ interface PdLoginArgs {
7
+ /** Shows loading state on the submit button */
8
+ loading: boolean;
9
+ /** Error message to display above the form */
10
+ errorMessage: string;
11
+ /** Success message to display above the form */
12
+ successMessage: string;
13
+ /** Hide the forgot password link */
14
+ hideForgotPassword: boolean;
15
+ }
16
+ /**
17
+ * ## pd-login
18
+ *
19
+ * Login form component for email/password authentication with a built-in forgot password flow.
20
+ *
21
+ * ### Features
22
+ * - Email and password fields with built-in validation (via pd-form-container)
23
+ * - Loading state that disables the submit button and shows a spinner
24
+ * - Error and success message display via pd-notice-box
25
+ * - Built-in forgot password view with automatic email prefill
26
+ * - Enter key submits the form from any input field
27
+ * - Localized labels via @lit/localize
28
+ *
29
+ * ### Views
30
+ * - **login**: Default form with email, password, and forgot password link
31
+ * - **forgot-password**: Password reset form with email field only
32
+ *
33
+ * ### Accessibility
34
+ * - Uses pd-form-container for proper form semantics and validation
35
+ * - Submit button disabled until form is valid (prevents empty submissions)
36
+ * - Loading state uses aria-busy on the button
37
+ * - Error messages displayed in pd-notice-box for screen reader visibility
38
+ */
39
+ declare const meta: Meta<PdLoginArgs>;
40
+ export default meta;
41
+ type Story = StoryObj<PdLoginArgs>;
42
+ /** Default login form with standard labels. Interactive via Controls panel. */
43
+ export declare const Default: Story;
44
+ /** Overview of all login form states — default, loading, error, success, and no forgot password. */
45
+ export declare const AllStates: Story;
46
+ /** Forgot password view — demonstrates the built-in password reset flow. */
47
+ export declare const ForgotPasswordFlow: Story;
48
+ /**
49
+ * Interactive login with simulated authentication.
50
+ * Use test@example.com / password123 for success, anything else for error.
51
+ */
52
+ export declare const InteractiveDemo: Story;
53
+ /** CSS Custom Properties -- Branded and Redesigned variants. */
54
+ export declare const CustomStyling: Story;
55
+ //# sourceMappingURL=pd-login.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pd-login.stories.d.ts","sourceRoot":"","sources":["../../src/pd-login/pd-login.stories.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAOrE,OAAO,eAAe,CAAC;AAMvB;;;GAGG;AACH,UAAU,WAAW;IACnB,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AA8BD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,WAAW,CAsF3B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAMnC,+EAA+E;AAC/E,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAMjC,oGAAoG;AACpG,eAAO,MAAM,SAAS,EAAE,KAkDvB,CAAC;AAMF,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,EAAE,KAwChC,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KA+C7B,CAAC;AAMF,gEAAgE;AAChE,eAAO,MAAM,aAAa,EAAE,KAkE3B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './pd-login/pd-login'
2
+ export {}
@@ -0,0 +1,8 @@
1
+ import { PdLogin } from './pd-login/PdLogin.js';
2
+
3
+ const tag = "pd-login";
4
+ if (!customElements.get(tag)) {
5
+ customElements.define(tag, PdLogin);
6
+ }
7
+
8
+ export { PdLogin };
@@ -1,70 +1,102 @@
1
1
  import { LitElement, CSSResultGroup } from 'lit';
2
2
  import { PdMenuItem } from '../types.js';
3
+ import { ButtonData } from '@progressive-development/pd-forms';
3
4
  /**
4
- * Menü-Komponente zur Navigation in der Anwendung.
5
+ * Application navigation menu with responsive burger menu.
5
6
  *
6
- * @fires route-event Wird ausgelöst, wenn ein Menüpunkt mit Route geklickt wird
7
- * @fires locale-change – Wird ausgelöst, wenn die Sprache gewechselt wird
7
+ * @summary Responsive navigation menu with scroll-to-section and language selector.
8
8
  *
9
- * @slot slotLogo – Slot für das App-Logo
10
9
  * @tagname pd-menu
10
+ *
11
+ * @event route-event - Fired when a menu item with route is clicked.
12
+ * @event locale-change - Fired when language is changed.
13
+ * @event section-activated - Fired when the active section changes during scroll. Detail: `{ sectionId }`.
14
+ *
15
+ * @slot slotLogo - Slot for application logo.
16
+ *
17
+ * @cssprop --pd-menu-height - Menu height. Default: `100px`.
18
+ * @cssprop --pd-menu-bg-col - Menu background. Default: `var(--pd-default-col)`.
19
+ * @cssprop --pd-menu-shadow - Menu shadow. Default: `var(--pd-shadow-lg)`.
20
+ * @cssprop --pd-menu-border-radius - Menu border radius. Default: `0`.
21
+ * @cssprop --pd-menu-max-width - Max menu container width. Default: `var(--pd-content-max-width, 1170px)`.
22
+ * @cssprop --pd-menu-font-col - Menu text color. Default: `var(--pd-default-bg-col)`.
23
+ * @cssprop --pd-menu-font-family - Menu font family. Default: `var(--pd-default-font-title-family)`.
24
+ * @cssprop --pd-menu-font-size - Menu font size. Default: `1.2em`.
25
+ * @cssprop --pd-menu-font-weight - Menu font weight. Default: `bold`.
26
+ * @cssprop --pd-menu-item-padding - Menu item padding. Default: `0.6em`.
27
+ * @cssprop --pd-menu-item-bg-hover-col - Item hover background.
28
+ * @cssprop --pd-menu-burger-bg-col - Burger menu background. Default: `var(--pd-default-bg-col)`.
29
+ * @cssprop --pd-menu-burger-bottomborder - Burger menu bottom border.
30
+ * @cssprop --pd-menu-burger-top - Burger menu top offset. Default: `var(--pd-menu-height)`.
31
+ * @cssprop --pd-menu-burger-font-col - Burger menu text color. Default: `var(--pd-default-font-link-col)`.
32
+ * @cssprop --pd-menu-logo-maxwidth - Logo max width. Default: `8rem`.
33
+ * @cssprop --pd-menu-logo-padding - Logo padding. Default: `2em`.
34
+ * @cssprop --pd-menu-logo-color - Logo fill color. Default: `#067394`.
11
35
  */
12
36
  export declare class PdMenu extends LitElement {
13
- /**
14
- * Aktuelle aktive Route (zur Hervorhebung)
15
- */
37
+ /** Currently active route for highlighting. */
16
38
  activeRoute: string;
17
- /**
18
- * Aktuell ausgewählte Sprache
19
- */
39
+ /** Currently selected language (value from ButtonData). */
20
40
  selectedLocale: string;
21
- /**
22
- * Aktuell ausgewählte Sprache
23
- */
41
+ /** Route to navigate on logo click. */
24
42
  logoRoute?: string;
25
- /**
26
- * Liste verfügbarer Sprachen
27
- */
28
- locales: string[];
29
- /**
30
- * Hauptmenüeinträge
31
- */
43
+ /** Available language options with text (display) and value (locale code). */
44
+ locales: ButtonData[];
45
+ /** Main menu entries. */
32
46
  menuItems: PdMenuItem[];
33
- /**
34
- * Zusätzliche Einträge in der oberen Menüzeile
35
- */
47
+ /** Additional entries in top menu. */
36
48
  topMenuItems: PdMenuItem[];
37
- /**
38
- * Flag, ob Burger-Menü deaktiviert ist
39
- */
49
+ /** Disable responsive burger menu. */
40
50
  noBurgerMenu: boolean;
41
- /**
42
- * Größe des Headers (für Scroll-Berechnung)
43
- */
44
- headerSize: number;
45
51
  /**
46
52
  * Index des aktiven Inhaltsbereichs (bei Scroll)
47
- */
53
+ * @ignore */
48
54
  private _activeSecIndex;
49
55
  /**
50
56
  * Burger-Menü aktiv?
51
- */
57
+ * @ignore */
52
58
  private _activeBurgerMenu;
53
- /**
54
- * Sprachmenü aktiv?
55
- */
56
- private _activeLocaleMenu;
57
59
  /**
58
60
  * Zeige mobile Ansicht?
59
- */
61
+ * @ignore */
60
62
  private _smallScreen;
63
+ /** @ignore */
64
+ private _mediaQueryList?;
65
+ /** @ignore */
66
+ private _boundScrollHandler;
67
+ /** @ignore */
68
+ private _boundMediaQueryHandler;
61
69
  static styles: CSSResultGroup;
62
- protected firstUpdated(): void;
70
+ connectedCallback(): void;
71
+ disconnectedCallback(): void;
72
+ private _ticking;
73
+ private _handleScroll;
74
+ private _handleMediaQuery;
75
+ private _updateActiveSection;
63
76
  render(): import('lit').TemplateResult<1>;
64
77
  private _renderItems;
78
+ /**
79
+ * Handles keyboard events on menu items.
80
+ */
81
+ private _handleMenuItemKeydown;
82
+ /**
83
+ * Handles keyboard events on burger menu toggle.
84
+ */
85
+ private _handleBurgerKeydown;
65
86
  private _toggleBurgerMenu;
66
- private _toggleLocaleSelection;
67
- private _localeClicked;
87
+ /**
88
+ * Returns the index of the currently selected locale in the locales array.
89
+ */
90
+ private _getSelectedLocaleIndex;
91
+ /**
92
+ * Returns compact locale options for mobile display.
93
+ * Uses shortText if available, otherwise falls back to text.
94
+ */
95
+ private _getCompactLocales;
96
+ /**
97
+ * Handles locale selection change from PdButtonSelectGroup.
98
+ */
99
+ private _handleLocaleChange;
68
100
  private _menuItemClicked;
69
101
  private _logoClicked;
70
102
  private static _scrollToTop;
@@ -1 +1 @@
1
- {"version":3,"file":"PdMenu.d.ts","sourceRoot":"","sources":["../../src/pd-menu/PdMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAQ5D,OAAO,0CAA0C,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;;GAQG;AACH,qBAAa,MAAO,SAAQ,UAAU;IACpC;;OAEG;IAEH,WAAW,SAAM;IAEjB;;OAEG;IAEH,cAAc,SAAM;IAEpB;;OAEG;IAEH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IAEH,OAAO,EAAE,MAAM,EAAE,CAAM;IAEvB;;OAEG;IAEH,SAAS,EAAE,UAAU,EAAE,CAAM;IAE7B;;OAEG;IAEH,YAAY,EAAE,UAAU,EAAE,CAAM;IAEhC;;OAEG;IAEH,YAAY,UAAS;IAErB;;OAEG;IAEH,UAAU,SAAK;IAEf;;OAEG;IAEH,OAAO,CAAC,eAAe,CAAK;IAE5B;;OAEG;IAEH,OAAO,CAAC,iBAAiB,CAAS;IAElC;;OAEG;IAEH,OAAO,CAAC,iBAAiB,CAAS;IAElC;;OAEG;IAEH,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAgB,MAAM,EAAE,cAAc,CAuOpC;IAEF,SAAS,CAAC,YAAY;IAmCtB,MAAM;IAqEN,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,MAAM,CAAC,YAAY;CAG5B"}
1
+ {"version":3,"file":"PdMenu.d.ts","sourceRoot":"","sources":["../../src/pd-menu/PdMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAO5D,OAAO,0CAA0C,CAAC;AAClD,OAAO,0DAA0D,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBACa,MAAO,SAAQ,UAAU;IACpC,+CAA+C;IAE/C,WAAW,SAAM;IAEjB,2DAA2D;IAE3D,cAAc,SAAM;IAEpB,uCAAuC;IAEvC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,8EAA8E;IAE9E,OAAO,EAAE,UAAU,EAAE,CAAM;IAE3B,yBAAyB;IAEzB,SAAS,EAAE,UAAU,EAAE,CAAM;IAE7B,sCAAsC;IAEtC,YAAY,EAAE,UAAU,EAAE,CAAM;IAEhC,sCAAsC;IAEtC,YAAY,UAAS;IAErB;;iBAEa;IAEb,OAAO,CAAC,eAAe,CAAK;IAE5B;;iBAEa;IAEb,OAAO,CAAC,iBAAiB,CAAS;IAElC;;iBAEa;IAEb,OAAO,CAAC,YAAY,CAAS;IAE7B,cAAc;IACd,OAAO,CAAC,eAAe,CAAC,CAAiB;IAEzC,cAAc;IACd,OAAO,CAAC,mBAAmB,CAAiC;IAE5D,cAAc;IACd,OAAO,CAAC,uBAAuB,CAAqC;IAEpE,OAAgB,MAAM,EAAE,cAAc,CAgOpC;IAEO,iBAAiB;IAiBjB,oBAAoB;IAe7B,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,oBAAoB;IA0D5B,MAAM;IAqFN,OAAO,CAAC,YAAY;IAgCpB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAI/B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,gBAAgB;IA8CxB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,MAAM,CAAC,YAAY;CAG5B"}