@progressive-development/pd-calendar 0.9.2 → 1.0.1

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 (118) hide show
  1. package/LICENSE +21 -2
  2. package/README.md +32 -57
  3. package/dist/generated/locales/be.d.ts +3 -0
  4. package/dist/generated/locales/be.d.ts.map +1 -1
  5. package/dist/generated/locales/de.d.ts +3 -0
  6. package/dist/generated/locales/de.d.ts.map +1 -1
  7. package/dist/generated/locales/en.d.ts +3 -0
  8. package/dist/generated/locales/en.d.ts.map +1 -1
  9. package/dist/index.d.ts +10 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +16 -0
  12. package/dist/locales/be.js +4 -1
  13. package/dist/locales/de.js +3 -0
  14. package/dist/locales/en.js +4 -1
  15. package/dist/pd-calendar/PdCalendar.d.ts +101 -18
  16. package/dist/pd-calendar/PdCalendar.d.ts.map +1 -1
  17. package/dist/pd-calendar/PdCalendar.js +380 -264
  18. package/dist/pd-calendar/pd-calendar-cell/PdCalendarCell.d.ts +40 -33
  19. package/dist/pd-calendar/pd-calendar-cell/PdCalendarCell.d.ts.map +1 -1
  20. package/dist/pd-calendar/pd-calendar-cell/PdCalendarCell.js +173 -113
  21. package/dist/pd-calendar/pd-calendar-day-events-panel/PdCalendarDayEventsPanel.d.ts +27 -0
  22. package/dist/pd-calendar/pd-calendar-day-events-panel/PdCalendarDayEventsPanel.d.ts.map +1 -0
  23. package/dist/pd-calendar/pd-calendar-day-events-panel/PdCalendarDayEventsPanel.js +160 -0
  24. package/dist/pd-calendar/pd-calendar-day-events-panel/pd-calendar-day-events-panel.d.ts +3 -0
  25. package/dist/pd-calendar/pd-calendar-day-events-panel/pd-calendar-day-events-panel.d.ts.map +1 -0
  26. package/dist/pd-calendar/pd-calendar-day-events-panel/pd-calendar-day-events-panel.js +8 -0
  27. package/dist/pd-calendar/pd-calendar-event-cell/PdCalendarEventCell.d.ts +55 -0
  28. package/dist/pd-calendar/pd-calendar-event-cell/PdCalendarEventCell.d.ts.map +1 -0
  29. package/dist/pd-calendar/pd-calendar-event-cell/PdCalendarEventCell.js +341 -0
  30. package/dist/pd-calendar/pd-calendar-event-cell/pd-calendar-event-cell.d.ts +3 -0
  31. package/dist/pd-calendar/pd-calendar-event-cell/pd-calendar-event-cell.d.ts.map +1 -0
  32. package/dist/pd-calendar/pd-calendar-event-cell/pd-calendar-event-cell.js +8 -0
  33. package/dist/pd-calendar/pd-calendar-event-info-panel/PdCalendarEventInfoPanel.d.ts +29 -0
  34. package/dist/pd-calendar/pd-calendar-event-info-panel/PdCalendarEventInfoPanel.d.ts.map +1 -0
  35. package/dist/pd-calendar/pd-calendar-event-info-panel/PdCalendarEventInfoPanel.js +211 -0
  36. package/dist/pd-calendar/pd-calendar-event-info-panel/pd-calendar-event-info-panel.d.ts +3 -0
  37. package/dist/pd-calendar/pd-calendar-event-info-panel/pd-calendar-event-info-panel.d.ts.map +1 -0
  38. package/dist/pd-calendar/pd-calendar-event-info-panel/pd-calendar-event-info-panel.js +8 -0
  39. package/dist/pd-calendar/pd-calendar-list-cell/PdCalendarListCell.d.ts +28 -0
  40. package/dist/pd-calendar/pd-calendar-list-cell/PdCalendarListCell.d.ts.map +1 -0
  41. package/dist/pd-calendar/pd-calendar-list-cell/PdCalendarListCell.js +252 -0
  42. package/dist/pd-calendar/pd-calendar-list-cell/pd-calendar-list-cell.d.ts +3 -0
  43. package/dist/pd-calendar/pd-calendar-list-cell/pd-calendar-list-cell.d.ts.map +1 -0
  44. package/dist/pd-calendar/pd-calendar-list-cell/pd-calendar-list-cell.js +8 -0
  45. package/dist/pd-calendar/pd-calendar-list-view/PdCalendarListView.d.ts +26 -0
  46. package/dist/pd-calendar/pd-calendar-list-view/PdCalendarListView.d.ts.map +1 -0
  47. package/dist/pd-calendar/pd-calendar-list-view/PdCalendarListView.js +165 -0
  48. package/dist/pd-calendar/pd-calendar-list-view/pd-calendar-list-view.d.ts +3 -0
  49. package/dist/pd-calendar/pd-calendar-list-view/pd-calendar-list-view.d.ts.map +1 -0
  50. package/dist/pd-calendar/pd-calendar-list-view/pd-calendar-list-view.js +8 -0
  51. package/dist/pd-calendar/pd-calendar-month-view/PdCalendarMonthView.d.ts +55 -0
  52. package/dist/pd-calendar/pd-calendar-month-view/PdCalendarMonthView.d.ts.map +1 -0
  53. package/dist/pd-calendar/pd-calendar-month-view/PdCalendarMonthView.js +461 -0
  54. package/dist/pd-calendar/pd-calendar-month-view/pd-calendar-month-view.d.ts +3 -0
  55. package/dist/pd-calendar/pd-calendar-month-view/pd-calendar-month-view.d.ts.map +1 -0
  56. package/dist/pd-calendar/pd-calendar-month-view/pd-calendar-month-view.js +8 -0
  57. package/dist/pd-calendar/pd-calendar-time-grid-view/PdCalendarTimeGridView.d.ts +32 -0
  58. package/dist/pd-calendar/pd-calendar-time-grid-view/PdCalendarTimeGridView.d.ts.map +1 -0
  59. package/dist/pd-calendar/pd-calendar-time-grid-view/PdCalendarTimeGridView.js +468 -0
  60. package/dist/pd-calendar/pd-calendar-time-grid-view/pd-calendar-time-grid-view.d.ts +3 -0
  61. package/dist/pd-calendar/pd-calendar-time-grid-view/pd-calendar-time-grid-view.d.ts.map +1 -0
  62. package/dist/pd-calendar/pd-calendar-time-grid-view/pd-calendar-time-grid-view.js +8 -0
  63. package/dist/pd-calendar/pd-calendar-week-cell/PdCalendarWeekCell.d.ts +31 -0
  64. package/dist/pd-calendar/pd-calendar-week-cell/PdCalendarWeekCell.d.ts.map +1 -0
  65. package/dist/pd-calendar/pd-calendar-week-cell/PdCalendarWeekCell.js +134 -0
  66. package/dist/pd-calendar/pd-calendar-week-cell/pd-calendar-week-cell.d.ts +3 -0
  67. package/dist/pd-calendar/pd-calendar-week-cell/pd-calendar-week-cell.d.ts.map +1 -0
  68. package/dist/pd-calendar/pd-calendar-week-cell/pd-calendar-week-cell.js +8 -0
  69. package/dist/pd-calendar/pd-calendar.stories.d.ts +79 -19
  70. package/dist/pd-calendar/pd-calendar.stories.d.ts.map +1 -1
  71. package/dist/pd-calendar/pd-year-popup/PdYearPopup.d.ts +22 -11
  72. package/dist/pd-calendar/pd-year-popup/PdYearPopup.d.ts.map +1 -1
  73. package/dist/pd-calendar/pd-year-popup/PdYearPopup.js +152 -34
  74. package/dist/pd-datepicker/PdDatepicker.d.ts +76 -7
  75. package/dist/pd-datepicker/PdDatepicker.d.ts.map +1 -1
  76. package/dist/pd-datepicker/PdDatepicker.js +257 -50
  77. package/dist/pd-datepicker/pd-date-picker.stories.d.ts +78 -20
  78. package/dist/pd-datepicker/pd-date-picker.stories.d.ts.map +1 -1
  79. package/dist/pd-slot-picker/PdSlotPicker.d.ts +102 -0
  80. package/dist/pd-slot-picker/PdSlotPicker.d.ts.map +1 -0
  81. package/dist/pd-slot-picker/PdSlotPicker.js +339 -0
  82. package/dist/pd-slot-picker/pd-slot-cell/PdSlotCell.d.ts +35 -0
  83. package/dist/pd-slot-picker/pd-slot-cell/PdSlotCell.d.ts.map +1 -0
  84. package/dist/pd-slot-picker/pd-slot-cell/PdSlotCell.js +188 -0
  85. package/dist/pd-slot-picker/pd-slot-cell/pd-slot-cell.d.ts +3 -0
  86. package/dist/pd-slot-picker/pd-slot-cell/pd-slot-cell.d.ts.map +1 -0
  87. package/dist/pd-slot-picker/pd-slot-cell/pd-slot-cell.js +8 -0
  88. package/dist/pd-slot-picker/pd-slot-picker.d.ts +3 -0
  89. package/dist/pd-slot-picker/pd-slot-picker.d.ts.map +1 -0
  90. package/dist/pd-slot-picker/pd-slot-picker.stories.d.ts +67 -0
  91. package/dist/pd-slot-picker/pd-slot-picker.stories.d.ts.map +1 -0
  92. package/dist/pd-slot-picker.d.ts +2 -0
  93. package/dist/pd-slot-picker.js +8 -0
  94. package/dist/shared/PdBaseCell.d.ts +68 -0
  95. package/dist/shared/PdBaseCell.d.ts.map +1 -0
  96. package/dist/shared/PdBaseCell.js +120 -0
  97. package/dist/shared/PdBaseView.d.ts +22 -0
  98. package/dist/shared/PdBaseView.d.ts.map +1 -0
  99. package/dist/shared/PdBaseView.js +46 -0
  100. package/dist/shared/PdCalendarPanelBase.d.ts +34 -0
  101. package/dist/shared/PdCalendarPanelBase.d.ts.map +1 -0
  102. package/dist/shared/PdCalendarPanelBase.js +169 -0
  103. package/dist/shared/calendar-button-bar/calendar-button-bar.d.ts +41 -0
  104. package/dist/shared/calendar-button-bar/calendar-button-bar.d.ts.map +1 -0
  105. package/dist/shared/calendar-button-bar/calendar-button-bar.js +435 -0
  106. package/dist/shared/calendar-locales.d.ts +9 -0
  107. package/dist/shared/calendar-locales.d.ts.map +1 -0
  108. package/dist/shared/calendar-locales.js +30 -0
  109. package/dist/shared/calendar-utils.d.ts +34 -0
  110. package/dist/shared/calendar-utils.d.ts.map +1 -0
  111. package/dist/shared/calendar-utils.js +99 -0
  112. package/dist/shared/calendar-utils.test.d.ts +2 -0
  113. package/dist/shared/calendar-utils.test.d.ts.map +1 -0
  114. package/dist/types.d.ts +102 -1
  115. package/dist/types.d.ts.map +1 -1
  116. package/package.json +10 -5
  117. package/dist/pd-calendar/pd-calendar-cell/pd-calendar-cell.stories.d.ts +0 -15
  118. package/dist/pd-calendar/pd-calendar-cell/pd-calendar-cell.stories.d.ts.map +0 -1
package/LICENSE CHANGED
@@ -1,2 +1,21 @@
1
- No License, all rights reserved
2
- @2021 - PD Progressive Development UG
1
+ MIT License
2
+
3
+ Copyright (c) 2021-present PD Progressive Development UG
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,76 +1,51 @@
1
- # \<pd-calendar>
1
+ # @progressive-development/pd-calendar
2
2
 
3
- This webcomponent follows the [open-wc](https://github.com/open-wc/open-wc) recommendation.
3
+ [![npm version](https://img.shields.io/npm/v/@progressive-development/pd-calendar.svg)](https://www.npmjs.com/package/@progressive-development/pd-calendar)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
5
+
6
+ Calendar and datepicker components for date selection and event display.
7
+
8
+ ## Features
9
+
10
+ - **Lit 3 & TypeScript** – Modern, type-safe web components
11
+ - **Accessible** – WCAG 2.1 compliant, keyboard navigation, ARIA support
12
+ - **Themeable** – CSS Custom Properties for easy customization
13
+ - **Localized** – Built-in i18n support (EN, DE, BE)
14
+ - **Lightweight** – No heavy dependencies, tree-shakeable
15
+ - **Framework-agnostic** – Works with React, Vue, Angular, or vanilla JS
16
+ - **FullCalendar Integration** – Complete wrapper for FullCalendar with dayGrid, timeGrid, and list views
17
+ - **Dual View System** – Switch between calendar grid and list view with custom date range support
18
+ - **Flexible Datepicker** – Single date, date range, and date+time selection with min/max constraints
19
+ - **Touch & Keyboard Navigation** – Swipe gestures, mouse wheel, and full keyboard support (Arrow keys, Home/End)
4
20
 
5
21
  ## Installation
6
22
 
7
23
  ```bash
8
- npm i pd-calendar
24
+ npm install @progressive-development/pd-calendar
9
25
  ```
10
26
 
11
- ## Usage
27
+ ## Quick Start
12
28
 
13
29
  ```html
14
30
  <script type="module">
15
- import 'pd-calendar/pd-calendar.js';
31
+ import '@progressive-development/pd-calendar';
16
32
  </script>
17
33
 
18
- <pd-calendar></pd-calendar>
34
+ <pd-datepicker label="Select date"></pd-datepicker>
19
35
  ```
20
36
 
21
- ## Linting and formatting
37
+ ## Components
22
38
 
23
- To scan the project for linting and formatting errors, run
39
+ | Component | Description |
40
+ |-----------|-------------|
41
+ | `<pd-calendar>` | Month view calendar with day selection |
42
+ | `<pd-datepicker>` | Date picker input with popup calendar |
43
+ | `<pd-fullcalendar>` | Full-featured event calendar (FullCalendar wrapper) |
24
44
 
25
- ```bash
26
- npm run lint
27
- ```
28
-
29
- To automatically fix linting and formatting errors, run
30
-
31
- ```bash
32
- npm run format
33
- ```
45
+ ## Documentation
34
46
 
35
- ## Testing with Web Test Runner
36
-
37
- To execute a single test run:
38
-
39
- ```bash
40
- npm run test
41
- ```
42
-
43
- To run the tests in interactive watch mode run:
44
-
45
- ```bash
46
- npm run test:watch
47
- ```
47
+ 📖 **Full documentation:** [pd-components.web.app](https://pd-components.web.app/)
48
48
 
49
- ## Demoing with Storybook
50
-
51
- To run a local instance of Storybook for your component, run
52
-
53
- ```bash
54
- npm run storybook
55
- ```
56
-
57
- To build a production version of Storybook, run
58
-
59
- ```bash
60
- npm run storybook:build
61
- ```
62
-
63
-
64
- ## Tooling configs
65
-
66
- For most of the tools, the configuration is in the `package.json` to minimize the amount of files in your project.
67
-
68
- If you customize the configuration a lot, you can consider moving them to individual files.
69
-
70
- ## Local Demo with `web-dev-server`
71
-
72
- ```bash
73
- npm start
74
- ```
49
+ ## License
75
50
 
76
- To run a local development server that serves the basic demo located in `demo/index.html`
51
+ MIT © [PD Progressive Development UG](https://progressive-development.com)
@@ -22,5 +22,8 @@ export declare const templates: {
22
22
  "pd.datepicker.time": string;
23
23
  "pd.datepicker.today": string;
24
24
  "pd.form.field.selectDateTimeRequired": string;
25
+ "pd.calendar.list.empty": string;
26
+ "pd.datepicker.selectTime": string;
27
+ "pd.datepicker.selectDate": string;
25
28
  };
26
29
  //# sourceMappingURL=be.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"be.d.ts","sourceRoot":"","sources":["../../../src/generated/locales/be.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;CAwBrB,CAAC"}
1
+ {"version":3,"file":"be.d.ts","sourceRoot":"","sources":["../../../src/generated/locales/be.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BrB,CAAC"}
@@ -18,7 +18,10 @@ export declare const templates: {
18
18
  "pd.datepicker.shortday.fri": string;
19
19
  "pd.datepicker.shortday.sat": string;
20
20
  "pd.datepicker.shortday.sun": string;
21
+ "pd.calendar.list.empty": string;
22
+ "pd.datepicker.selectTime": string;
21
23
  "pd.form.field.selectDateTimeRequired": string;
24
+ "pd.datepicker.selectDate": string;
22
25
  "pd.datepicker.time": string;
23
26
  "pd.datepicker.today": string;
24
27
  "pd.datepicker.reset": string;
@@ -1 +1 @@
1
- {"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../../src/generated/locales/de.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;CAwBrB,CAAC"}
1
+ {"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../../src/generated/locales/de.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BrB,CAAC"}
@@ -22,5 +22,8 @@ export declare const templates: {
22
22
  "pd.datepicker.time": string;
23
23
  "pd.datepicker.today": string;
24
24
  "pd.form.field.selectDateTimeRequired": string;
25
+ "pd.calendar.list.empty": string;
26
+ "pd.datepicker.selectTime": string;
27
+ "pd.datepicker.selectDate": string;
25
28
  };
26
29
  //# sourceMappingURL=en.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/generated/locales/en.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;CAwBrB,CAAC"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/generated/locales/en.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BrB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,15 @@
1
+ export { PdBaseCell } from './shared/PdBaseCell.js';
1
2
  export { PdCalendar } from './pd-calendar/pd-calendar.js';
3
+ export { PdCalendarListCell } from './pd-calendar/pd-calendar-list-cell/pd-calendar-list-cell.js';
4
+ export { PdCalendarWeekCell } from './pd-calendar/pd-calendar-week-cell/pd-calendar-week-cell.js';
5
+ export { PdCalendarEventCell } from './pd-calendar/pd-calendar-event-cell/pd-calendar-event-cell.js';
6
+ export { PdSlotPicker } from './pd-slot-picker/pd-slot-picker.js';
7
+ export { PdSlotCell } from './pd-slot-picker/pd-slot-cell/pd-slot-cell.js';
2
8
  export { PdDatepicker } from './pd-datepicker/pd-datepicker.js';
3
- export type { CalendarCellInfo, CalendarData } from './types.js';
9
+ export { PdCalendarPanelBase } from './shared/PdCalendarPanelBase.js';
10
+ export { PdCalendarEventInfoPanel } from './pd-calendar/pd-calendar-event-info-panel/pd-calendar-event-info-panel.js';
11
+ export { PdCalendarDayEventsPanel } from './pd-calendar/pd-calendar-day-events-panel/pd-calendar-day-events-panel.js';
12
+ export type { CalendarCellInfo, CalendarData, CalendarConfig, CalendarCategoryConfig, CalendarCategoryMap, CalendarListRange, PdEventInput, CalendarViewType, AvailableCalendarViewTypes, WeekDayIndex, WeekViewConfig, SlotPickerValue, EventInfoActions, } from './types.js';
4
13
  export { templates as beTemplates } from './generated/locales/be.js';
5
14
  export { templates as deTemplates } from './generated/locales/de.js';
6
15
  export { templates as enTemplates } from './generated/locales/en.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4EAA4E,CAAC;AACtH,OAAO,EAAE,wBAAwB,EAAE,MAAM,4EAA4E,CAAC;AAEtH,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,0BAA0B,EAC1B,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,23 @@
1
+ export { PdBaseCell } from './shared/PdBaseCell.js';
1
2
  import './pd-calendar.js';
3
+ import './pd-calendar/pd-calendar-list-cell/pd-calendar-list-cell.js';
4
+ import './pd-calendar/pd-calendar-week-cell/pd-calendar-week-cell.js';
5
+ import './pd-calendar/pd-calendar-event-cell/pd-calendar-event-cell.js';
6
+ import './pd-slot-picker.js';
7
+ import './pd-slot-picker/pd-slot-cell/pd-slot-cell.js';
2
8
  import './pd-datepicker.js';
9
+ export { PdCalendarPanelBase } from './shared/PdCalendarPanelBase.js';
10
+ import './pd-calendar/pd-calendar-event-info-panel/pd-calendar-event-info-panel.js';
11
+ import './pd-calendar/pd-calendar-day-events-panel/pd-calendar-day-events-panel.js';
3
12
  export { templates as beTemplates } from './locales/be.js';
4
13
  export { templates as deTemplates } from './locales/de.js';
5
14
  export { templates as enTemplates } from './locales/en.js';
6
15
  export { PdCalendar } from './pd-calendar/PdCalendar.js';
16
+ export { PdCalendarListCell } from './pd-calendar/pd-calendar-list-cell/PdCalendarListCell.js';
17
+ export { PdCalendarWeekCell } from './pd-calendar/pd-calendar-week-cell/PdCalendarWeekCell.js';
18
+ export { PdCalendarEventCell } from './pd-calendar/pd-calendar-event-cell/PdCalendarEventCell.js';
19
+ export { PdSlotPicker } from './pd-slot-picker/PdSlotPicker.js';
20
+ export { PdSlotCell } from './pd-slot-picker/pd-slot-cell/PdSlotCell.js';
7
21
  export { PdDatepicker } from './pd-datepicker/PdDatepicker.js';
22
+ export { PdCalendarEventInfoPanel } from './pd-calendar/pd-calendar-event-info-panel/PdCalendarEventInfoPanel.js';
23
+ export { PdCalendarDayEventsPanel } from './pd-calendar/pd-calendar-day-events-panel/PdCalendarDayEventsPanel.js';
@@ -21,7 +21,10 @@ const templates = {
21
21
  "pd.datepicker.shortday.wed": `Wo`,
22
22
  "pd.datepicker.time": `Tijdstip`,
23
23
  "pd.datepicker.today": `Vandaag`,
24
- "pd.form.field.selectDateTimeRequired": `Invoer onvolledig`
24
+ "pd.form.field.selectDateTimeRequired": `Invoer onvolledig`,
25
+ "pd.calendar.list.empty": `Keine Einträge vorhanden`,
26
+ "pd.datepicker.selectTime": `Uhrzeit auswählen`,
27
+ "pd.datepicker.selectDate": `Datum auswählen`
25
28
  };
26
29
 
27
30
  export { templates };
@@ -18,7 +18,10 @@ const templates = {
18
18
  "pd.datepicker.shortday.fri": `Fr`,
19
19
  "pd.datepicker.shortday.sat": `Sa`,
20
20
  "pd.datepicker.shortday.sun": `So`,
21
+ "pd.calendar.list.empty": `Keine Einträge vorhanden`,
22
+ "pd.datepicker.selectTime": `Uhrzeit auswählen`,
21
23
  "pd.form.field.selectDateTimeRequired": `Eingabe unvollständig`,
24
+ "pd.datepicker.selectDate": `Datum auswählen`,
22
25
  "pd.datepicker.time": `Uhrzeit`,
23
26
  "pd.datepicker.today": `Heute`,
24
27
  "pd.datepicker.reset": `Reset`
@@ -21,7 +21,10 @@ const templates = {
21
21
  "pd.datepicker.shortday.wed": `Wed`,
22
22
  "pd.datepicker.time": `Time`,
23
23
  "pd.datepicker.today": `Today`,
24
- "pd.form.field.selectDateTimeRequired": `Input incomplete`
24
+ "pd.form.field.selectDateTimeRequired": `Input incomplete`,
25
+ "pd.calendar.list.empty": `Keine Einträge vorhanden`,
26
+ "pd.datepicker.selectTime": `Uhrzeit auswählen`,
27
+ "pd.datepicker.selectDate": `Datum auswählen`
25
28
  };
26
29
 
27
30
  export { templates };
@@ -1,50 +1,133 @@
1
1
  import { LitElement, PropertyValues, CSSResultGroup } from 'lit';
2
- import { CalendarData } from '../types.js';
2
+ import { CalendarData, AvailableCalendarViewTypes, CalendarConfig, CalendarListRange, WeekViewConfig, EventInfoActions } from '../types.js';
3
3
  /**
4
- * PdCalendar displays monthly view with information (selectable day cell).
5
- *
6
- * @fires change-month
7
- * @fires select-date
8
- * @fires mouse-enter-date
9
- * @fires mouse-leave-date
4
+ * Monthly calendar component for displaying dates with optional info and selection.
10
5
  *
11
6
  * @tagname pd-calendar
7
+ * @summary Monthly calendar view with navigation, date info, and selection support.
8
+ *
9
+ * @event change-month - Fired when navigating to a different month. Detail: `{ newDate: Date, next?: boolean, prev?: boolean }`.
10
+ * @event select-date - Fired when a date is selected. Detail: `{ dateKey: string, date: Date }`.
11
+ * @event select-event - Fired when an event is selected. Detail: `{ dateKey: string, entry: CalendarCellInfo, index: number }`.
12
+ * @event event-action - Fired when an action icon in the info panel is clicked. Detail: `{ action: "detail" | "edit" | "delete", dateKey: string, entry: CalendarCellInfo }`.
13
+ * @event mouse-enter-date - Fired when hovering over a date cell. Detail: `{ dateKey: string, date: Date }`.
14
+ * @event mouse-leave-date - Fired when leaving a date cell.
15
+ *
16
+ * @slot calFooter - Footer content below the calendar grid.
17
+ *
18
+ * @cssprop --pd-calendar-width - Width of the calendar. Default: `100%`.
19
+ * @cssprop --pd-calendar-min-width - Minimum width of the calendar. Default: `220px`.
20
+ * @cssprop --pd-calendar-cell-height - Height of each day cell. Default: `70px`.
21
+ * @cssprop --pd-calendar-compact-breakpoint - Width threshold for compact mode. Default: `500px`.
22
+ * @cssprop --pd-calendar-padding - Padding around the calendar. Default: `var(--pd-spacing-sm)`.
23
+ * @cssprop --pd-calendar-gap - Gap between cells. Default: `2px`.
24
+ * @cssprop --pd-calendar-grid-bg-col - Background color of the grid (visible as gaps). Default: `var(--pd-default-disabled-lightest-col)`.
25
+ * @cssprop --pd-calendar-week-title-bg-col - Background color of weekday headers. Default: `var(--pd-default-dark-col)`.
26
+ * @cssprop --pd-calendar-week-title-font-col - Text color of weekday headers. Default: `var(--pd-on-primary-col)`.
27
+ * @cssprop --pd-calendar-weekday-title-font-size - Font size of weekday headers. Default: `0.85em`.
28
+ * @cssprop --pd-focus-ring-col - Focus outline color for keyboard navigation. Default: `var(--pd-default-col)`. Defined globally in color tokens.
29
+ * @cssprop --pd-calendar-cell-empty-bg-col - Background color for empty cells. Default: `var(--pd-default-disabled-lightest-col)`.
12
30
  */
13
31
  export declare class PdCalendar extends LitElement {
32
+ /** Reference date for initial calendar view. */
14
33
  refDate?: Date;
34
+ /** Whether dates are selectable. */
15
35
  selectableDates: boolean;
36
+ /** Year values for year selection popup. Empty array disables popup. */
16
37
  withYearPopup: string[];
38
+ /** Enable mouse wheel navigation between months. */
17
39
  withWheelNavigation: boolean;
40
+ /** Enable touch swipe navigation between months. */
18
41
  withTouchNavigation: boolean;
42
+ /** Show selection highlight on selected date. */
19
43
  showSelection: boolean;
44
+ /** Hide Saturday and Sunday columns. */
20
45
  hideWeekend: boolean;
46
+ /** Months allowed to navigate backwards (-1 = unlimited). */
21
47
  prevMonthConstraint: number;
48
+ /** Months allowed to navigate forwards (-1 = unlimited). */
22
49
  nextMonthConstraint: number;
50
+ /** Calendar data with info per date key (YYYY-MM-DD). */
23
51
  data: CalendarData;
52
+ /** CSS class for day number positioning ('top-left' or 'center'). */
24
53
  numberClass: string;
25
- private _viewType;
54
+ /** Available view types for the view toggle buttons. If not set, no toggle is shown. */
55
+ availableViewTypes?: AvailableCalendarViewTypes;
56
+ /** Calendar configuration including category definitions. */
57
+ config?: CalendarConfig;
58
+ /**
59
+ * Custom date range for list view. When set, list view shows entries within this range
60
+ * instead of the current month, and navigation is disabled.
61
+ */
62
+ listRange?: CalendarListRange;
63
+ /** Configuration for the week (timeGrid) view. */
64
+ weekViewConfig?: WeekViewConfig;
65
+ /** Cell rendering mode for month view: "simple" (default) or "events" (event bars). */
66
+ cellType: "simple" | "events";
67
+ /** Which action icons to show in the event info panel. */
68
+ eventActions?: EventInfoActions;
69
+ /** @ignore */
70
+ private _infoPanelEntry?;
71
+ /** @ignore */
72
+ private _infoPanelDateKey;
73
+ /** @ignore */
74
+ private _infoPanelAnchorRect?;
75
+ /** @ignore */
76
+ private _dayEventsPanelEntries?;
77
+ /** @ignore */
78
+ private _dayEventsPanelDateKey;
79
+ /** @ignore */
80
+ private _dayEventsPanelAnchorRect?;
81
+ /** @ignore - Current view mode (dayGrid = month view, list = list view) */
82
+ private _currentViewType;
83
+ /** @ignore */
26
84
  private _currentDate;
27
- private _wheelDelta;
85
+ /** @ignore - Monday of the currently displayed week (for timeGrid view) */
86
+ private _currentWeekStart?;
28
87
  private _monthName;
29
88
  private _year;
30
89
  private _numberOfDays;
31
- private _daysFromPreviousMonth;
32
90
  private _currentMonthNavNr;
33
91
  static styles: CSSResultGroup;
34
92
  connectedCallback(): void;
35
93
  update(changedProperties: PropertyValues<this>): void;
36
94
  render(): import('lit').TemplateResult<1>;
37
- private renderMonthCalendar;
38
- private _openYearPopup;
39
- private _getWeekDays;
95
+ /** Handles navigation from the month view (wheel/touch/keyboard). */
96
+ private _handleViewNavigate;
97
+ /** Handles view type change from the button bar. */
98
+ private _handleViewChange;
99
+ private _handleNavigationEvent;
100
+ /** Opens the event info panel. Closes the day-events panel if open. */
101
+ private _handleSelectEvent;
102
+ /** Opens the day-events panel. Closes the event info panel if open. */
103
+ private _handleShowDayEvents;
104
+ /** Handles select-event from within the day-events panel. */
105
+ private _handleDayEventsSelectEvent;
106
+ private _closeInfoPanel;
107
+ private _closeDayEventsPanel;
108
+ /** Re-dispatches event-action from the info panel. */
109
+ private _reDispatchEventAction;
40
110
  private _nextMonth;
41
111
  private _previousMonth;
42
- private _wheelEvent;
43
- private _touchStartEvent;
44
- private _touchEndEvent;
45
- private _initFromDate;
46
- private static _getPreviousMonthDays;
47
112
  private _checkNextMonthConstraint;
48
113
  private _checkPrevMonthConstraint;
114
+ private _nextWeek;
115
+ private _previousWeek;
116
+ private _initFromDate;
117
+ /** Returns the Monday of the week that contains `date`. */
118
+ private _getMonday;
119
+ /**
120
+ * Formats the range title based on the listRange dates.
121
+ */
122
+ private _formatRangeTitle;
123
+ /**
124
+ * Formats the week title, e.g. "10. - 16. Feb" or "28. Jan - 03. Feb".
125
+ */
126
+ private _formatWeekTitle;
127
+ private _parseDate;
128
+ /** Returns effective visible day indices for week title calculation. */
129
+ private _getVisibleDays;
130
+ /** Calculates the actual Date for a given monday-based day index. */
131
+ private _getDateForDayIndex;
49
132
  }
50
133
  //# sourceMappingURL=PdCalendar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PdCalendar.d.ts","sourceRoot":"","sources":["../../src/pd-calendar/PdCalendar.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAK5E,OAAO,0CAA0C,CAAC;AAIlD,OAAO,wCAAwC,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAqD3C;;;;;;;;;GASG;AACH,qBACa,UAAW,SAAQ,UAAU;IAExC,OAAO,CAAC,EAAE,IAAI,CAAC;IAGf,eAAe,UAAS;IAGxB,aAAa,EAAE,MAAM,EAAE,CAAM;IAG7B,mBAAmB,UAAS;IAG5B,mBAAmB,UAAS;IAG5B,aAAa,UAAS;IAGtB,WAAW,UAAS;IAGpB,mBAAmB,SAAM;IAGzB,mBAAmB,SAAM;IAGzB,IAAI,EAAE,YAAY,CAAM;IAGxB,WAAW,SAAc;IAGzB,OAAO,CAAC,SAAS,CAAc;IAG/B,OAAO,CAAC,YAAY,CAAc;IAGlC,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,sBAAsB,CAAc;IAC5C,OAAO,CAAC,kBAAkB,CAAK;IAE/B,OAAgB,MAAM,EAAE,cAAc,CAsHpC;IAEO,iBAAiB,IAAI,IAAI;IAKzB,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAOrD,MAAM;IAOf,OAAO,CAAC,mBAAmB;IA6E3B,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAUpC,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,yBAAyB;CAOlC"}
1
+ {"version":3,"file":"PdCalendar.d.ts","sourceRoot":"","sources":["../../src/pd-calendar/PdCalendar.ts"],"names":[],"mappings":"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"}