@redvars/peacock 3.5.0 → 3.6.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 (314) hide show
  1. package/dist/BaseButton-BNFAYn-S.js +219 -0
  2. package/dist/BaseButton-BNFAYn-S.js.map +1 -0
  3. package/dist/BaseHyperlinkMixin-BNuwbiEf.js +65 -0
  4. package/dist/BaseHyperlinkMixin-BNuwbiEf.js.map +1 -0
  5. package/dist/BaseInput-14YmcfK7.js +27 -0
  6. package/dist/BaseInput-14YmcfK7.js.map +1 -0
  7. package/dist/assets/components.css +1 -1
  8. package/dist/assets/components.css.map +1 -1
  9. package/dist/assets/styles.css +1 -1
  10. package/dist/assets/styles.css.map +1 -1
  11. package/dist/banner.js +14 -30
  12. package/dist/banner.js.map +1 -1
  13. package/dist/{button-DMN1dPAg.js → button-colors-Ccys3hvS.js} +5 -468
  14. package/dist/button-colors-Ccys3hvS.js.map +1 -0
  15. package/dist/button-group.js +228 -8
  16. package/dist/button-group.js.map +1 -1
  17. package/dist/button.js +294 -8
  18. package/dist/button.js.map +1 -1
  19. package/dist/calendar-column-view.js +634 -0
  20. package/dist/calendar-column-view.js.map +1 -0
  21. package/dist/calendar-event-BrQ_SEKD.js +199 -0
  22. package/dist/calendar-event-BrQ_SEKD.js.map +1 -0
  23. package/dist/calendar-month-view.js +376 -0
  24. package/dist/calendar-month-view.js.map +1 -0
  25. package/dist/calendar.js +339 -0
  26. package/dist/calendar.js.map +1 -0
  27. package/dist/canvas.js +361 -0
  28. package/dist/canvas.js.map +1 -0
  29. package/dist/card.js +18 -73
  30. package/dist/card.js.map +1 -1
  31. package/dist/cb-compound-expression.js +125 -0
  32. package/dist/cb-compound-expression.js.map +1 -0
  33. package/dist/cb-divider.js +150 -0
  34. package/dist/cb-divider.js.map +1 -0
  35. package/dist/cb-expression.js +75 -0
  36. package/dist/cb-expression.js.map +1 -0
  37. package/dist/cb-predicate.js +137 -0
  38. package/dist/cb-predicate.js.map +1 -0
  39. package/dist/chart-bar.js.map +1 -1
  40. package/dist/chart-doughnut.js +2 -2
  41. package/dist/chart-doughnut.js.map +1 -1
  42. package/dist/chart-pie.js +2 -2
  43. package/dist/chart-pie.js.map +1 -1
  44. package/dist/chart-stacked-bar.js.map +1 -1
  45. package/dist/code-editor.js +2 -1
  46. package/dist/code-editor.js.map +1 -1
  47. package/dist/code-highlighter.js +2 -1
  48. package/dist/code-highlighter.js.map +1 -1
  49. package/dist/condition-builder.js +58 -0
  50. package/dist/condition-builder.js.map +1 -0
  51. package/dist/custom-elements-jsdocs.json +10860 -5567
  52. package/dist/custom-elements.json +16180 -7996
  53. package/dist/dropdown-button.js +216 -0
  54. package/dist/dropdown-button.js.map +1 -0
  55. package/dist/event-manager-D-QCmUgR.js +113 -0
  56. package/dist/event-manager-D-QCmUgR.js.map +1 -0
  57. package/dist/fab.js +421 -9
  58. package/dist/fab.js.map +1 -1
  59. package/dist/flow-designer-dZnLJOQT.js +1656 -0
  60. package/dist/flow-designer-dZnLJOQT.js.map +1 -0
  61. package/dist/flow-designer-node-XMe-jlKg.js +548 -0
  62. package/dist/flow-designer-node-XMe-jlKg.js.map +1 -0
  63. package/dist/flow-designer-node.js +4 -0
  64. package/dist/flow-designer-node.js.map +1 -0
  65. package/dist/flow-designer.js +16 -0
  66. package/dist/flow-designer.js.map +1 -0
  67. package/dist/html-editor.js +358 -0
  68. package/dist/html-editor.js.map +1 -0
  69. package/dist/icon-button-CK1ZuE-2.js +247 -0
  70. package/dist/icon-button-CK1ZuE-2.js.map +1 -0
  71. package/dist/index.js +31 -8
  72. package/dist/index.js.map +1 -1
  73. package/dist/{is-dark-mode-DicqGkCJ.js → is-dark-mode-DOcaw4Yq.js} +2 -27
  74. package/dist/is-dark-mode-DOcaw4Yq.js.map +1 -0
  75. package/dist/modal.js +418 -0
  76. package/dist/modal.js.map +1 -0
  77. package/dist/{select-4pl4XBj7.js → navigation-rail-DyO0oAZU.js} +2000 -2767
  78. package/dist/navigation-rail-DyO0oAZU.js.map +1 -0
  79. package/dist/notification-manager.js +268 -0
  80. package/dist/notification-manager.js.map +1 -0
  81. package/dist/notification.js +3 -2
  82. package/dist/notification.js.map +1 -1
  83. package/dist/peacock-loader.js +102 -14
  84. package/dist/peacock-loader.js.map +1 -1
  85. package/dist/popover-NC7b1lTq.js +1971 -0
  86. package/dist/popover-NC7b1lTq.js.map +1 -0
  87. package/dist/popover-content.js +125 -0
  88. package/dist/popover-content.js.map +1 -0
  89. package/dist/popover.js +4 -0
  90. package/dist/popover.js.map +1 -0
  91. package/dist/search.js +4 -0
  92. package/dist/search.js.map +1 -1
  93. package/dist/split-button.js +388 -0
  94. package/dist/split-button.js.map +1 -0
  95. package/dist/src/__controllers/floating-controller.d.ts +35 -0
  96. package/dist/src/__mixins/BaseButtonMixin.d.ts +20 -0
  97. package/dist/src/__mixins/BaseHyperlinkMixin.d.ts +18 -0
  98. package/dist/src/__mixins/MixinConstructor.d.ts +1 -0
  99. package/dist/src/banner/banner.d.ts +0 -4
  100. package/dist/src/button/BaseButton.d.ts +4 -47
  101. package/dist/src/button/button/button.d.ts +32 -3
  102. package/dist/src/button/button-group/button-group.d.ts +2 -2
  103. package/dist/src/button/icon-button/icon-button.d.ts +33 -8
  104. package/dist/src/calendar/base-event.d.ts +10 -0
  105. package/dist/src/calendar/calendar-column-view.d.ts +41 -0
  106. package/dist/src/calendar/calendar-event.d.ts +7 -0
  107. package/dist/src/calendar/calendar-month-view.d.ts +31 -0
  108. package/dist/src/calendar/calendar.d.ts +65 -0
  109. package/dist/src/calendar/event-manager.d.ts +17 -0
  110. package/dist/src/calendar/index.d.ts +4 -0
  111. package/dist/src/calendar/types.d.ts +13 -0
  112. package/dist/src/calendar/utils.d.ts +31 -0
  113. package/dist/src/canvas/canvas.d.ts +92 -0
  114. package/dist/src/canvas/index.d.ts +2 -0
  115. package/dist/src/card/card.d.ts +4 -15
  116. package/dist/src/condition-builder/cb-compound-expression.d.ts +31 -0
  117. package/dist/src/condition-builder/cb-divider.d.ts +26 -0
  118. package/dist/src/condition-builder/cb-expression.d.ts +31 -0
  119. package/dist/src/condition-builder/cb-predicate.d.ts +30 -0
  120. package/dist/src/condition-builder/condition-builder.d.ts +27 -0
  121. package/dist/src/condition-builder/index.d.ts +5 -0
  122. package/dist/src/dropdown-button/dropdown-button.d.ts +68 -0
  123. package/dist/src/dropdown-button/index.d.ts +1 -0
  124. package/dist/src/fab/fab.d.ts +4 -35
  125. package/dist/src/flow-designer/commands.d.ts +66 -0
  126. package/dist/src/flow-designer/flow-designer-node.d.ts +46 -0
  127. package/dist/src/flow-designer/flow-designer.d.ts +133 -0
  128. package/dist/src/flow-designer/index.d.ts +7 -0
  129. package/dist/src/flow-designer/layout.d.ts +30 -0
  130. package/dist/src/flow-designer/types.d.ts +142 -0
  131. package/dist/src/flow-designer/validation.d.ts +43 -0
  132. package/dist/src/flow-designer/workflow-utils.d.ts +40 -0
  133. package/dist/src/focus-ring/focus-ring.d.ts +11 -5
  134. package/dist/src/html-editor/html-editor.d.ts +56 -0
  135. package/dist/src/html-editor/index.d.ts +2 -0
  136. package/dist/src/index.d.ts +16 -1
  137. package/dist/src/link/link.d.ts +1 -1
  138. package/dist/src/menu/menu/menu.d.ts +5 -7
  139. package/dist/src/menu/menu-item/menu-item.d.ts +14 -13
  140. package/dist/src/modal/index.d.ts +1 -0
  141. package/dist/src/modal/modal.d.ts +63 -0
  142. package/dist/src/navigation-rail/index.d.ts +2 -0
  143. package/dist/src/navigation-rail/navigation-rail-item.d.ts +55 -0
  144. package/dist/src/navigation-rail/navigation-rail.d.ts +71 -0
  145. package/dist/src/notification-manager/index.d.ts +1 -0
  146. package/dist/src/notification-manager/notification-manager.d.ts +44 -0
  147. package/dist/src/popover/index.d.ts +2 -0
  148. package/dist/src/popover/popover-content.d.ts +29 -0
  149. package/dist/src/popover/popover.d.ts +62 -0
  150. package/dist/src/sidebar-menu/index.d.ts +3 -0
  151. package/dist/src/sidebar-menu/sidebar-menu-item.d.ts +58 -0
  152. package/dist/src/sidebar-menu/sidebar-menu.d.ts +38 -0
  153. package/dist/src/sidebar-menu/sidebar-sub-menu.d.ts +35 -0
  154. package/dist/src/split-button/index.d.ts +1 -0
  155. package/dist/src/split-button/split-button.d.ts +72 -0
  156. package/dist/src/toolbar/toolbar.d.ts +10 -10
  157. package/dist/src/tooltip/tooltip.d.ts +5 -15
  158. package/dist/src/url-field/index.d.ts +1 -0
  159. package/dist/src/url-field/url-field.d.ts +48 -0
  160. package/dist/test/flow-designer.test.d.ts +1 -0
  161. package/dist/test/sidebar-menu.test.d.ts +1 -0
  162. package/dist/toolbar.js +10 -10
  163. package/dist/toolbar.js.map +1 -1
  164. package/dist/tsconfig.tsbuildinfo +1 -1
  165. package/package.json +4 -2
  166. package/readme.md +73 -65
  167. package/scss/mixin.scss +16 -0
  168. package/src/__controllers/floating-controller.ts +237 -0
  169. package/src/__mixins/BaseButtonMixin.ts +83 -0
  170. package/src/__mixins/BaseHyperlinkMixin.ts +68 -0
  171. package/src/__mixins/MixinConstructor.ts +1 -0
  172. package/src/{__base_element → __mixins}/README.md +2 -2
  173. package/src/banner/banner.scss +20 -25
  174. package/src/banner/banner.ts +1 -7
  175. package/src/button/BaseButton.ts +11 -100
  176. package/src/button/button/button-sizes.scss +4 -2
  177. package/src/button/button/button.ts +77 -23
  178. package/src/button/button-group/button-group.ts +2 -2
  179. package/src/button/icon-button/icon-button.ts +75 -33
  180. package/src/calendar/base-event.ts +49 -0
  181. package/src/calendar/calendar-column-view.scss +326 -0
  182. package/src/calendar/calendar-column-view.ts +392 -0
  183. package/src/calendar/calendar-event.ts +20 -0
  184. package/src/calendar/calendar-month-view.scss +192 -0
  185. package/src/calendar/calendar-month-view.ts +244 -0
  186. package/src/calendar/calendar.scss +71 -0
  187. package/src/calendar/calendar.ts +298 -0
  188. package/src/calendar/event-manager.ts +117 -0
  189. package/src/calendar/index.ts +4 -0
  190. package/src/calendar/types.ts +14 -0
  191. package/src/calendar/utils.ts +180 -0
  192. package/src/canvas/canvas.scss +60 -0
  193. package/src/canvas/canvas.ts +391 -0
  194. package/src/canvas/index.ts +2 -0
  195. package/src/card/card.ts +11 -71
  196. package/src/chart-bar/chart-bar.ts +9 -14
  197. package/src/chart-bar/chart-stacked-bar.ts +12 -18
  198. package/src/chart-doughnut/chart-doughnut.ts +23 -27
  199. package/src/chart-pie/chart-pie.ts +19 -23
  200. package/src/checkbox/checkbox.scss +17 -34
  201. package/src/checkbox/checkbox.ts +3 -1
  202. package/src/code-highlighter/code-highlighter.scss +1 -0
  203. package/src/code-highlighter/code-highlighter.ts +1 -1
  204. package/src/condition-builder/cb-compound-expression.scss +37 -0
  205. package/src/condition-builder/cb-compound-expression.ts +80 -0
  206. package/src/condition-builder/cb-divider.scss +93 -0
  207. package/src/condition-builder/cb-divider.ts +56 -0
  208. package/src/condition-builder/cb-expression.scss +14 -0
  209. package/src/condition-builder/cb-expression.ts +49 -0
  210. package/src/condition-builder/cb-predicate.scss +35 -0
  211. package/src/condition-builder/cb-predicate.ts +102 -0
  212. package/src/condition-builder/condition-builder.scss +13 -0
  213. package/src/condition-builder/condition-builder.ts +38 -0
  214. package/src/condition-builder/index.ts +5 -0
  215. package/src/date-picker/date-picker.ts +1 -1
  216. package/src/dropdown-button/demo/index.html +110 -0
  217. package/src/dropdown-button/dropdown-button.scss +22 -0
  218. package/src/dropdown-button/dropdown-button.ts +206 -0
  219. package/src/dropdown-button/index.ts +1 -0
  220. package/src/elevation/elevation.scss +5 -5
  221. package/src/fab/fab.ts +29 -100
  222. package/src/flow-designer/DEMO.md +239 -0
  223. package/src/flow-designer/commands.ts +278 -0
  224. package/src/flow-designer/flow-designer-node.ts +172 -0
  225. package/src/flow-designer/flow-designer.scss +457 -0
  226. package/src/flow-designer/flow-designer.ts +611 -0
  227. package/src/flow-designer/index.ts +41 -0
  228. package/src/flow-designer/layout.ts +357 -0
  229. package/src/flow-designer/types.ts +166 -0
  230. package/src/flow-designer/validation.ts +284 -0
  231. package/src/flow-designer/workflow-utils.ts +282 -0
  232. package/src/focus-ring/focus-ring.ts +47 -40
  233. package/src/html-editor/html-editor.scss +146 -0
  234. package/src/html-editor/html-editor.ts +276 -0
  235. package/src/html-editor/index.ts +3 -0
  236. package/src/index.ts +28 -1
  237. package/src/input/input.ts +3 -1
  238. package/src/link/link.ts +2 -2
  239. package/src/menu/menu/menu.scss +2 -2
  240. package/src/menu/menu/menu.ts +91 -101
  241. package/src/menu/menu-item/menu-item.scss +4 -0
  242. package/src/menu/menu-item/menu-item.ts +85 -79
  243. package/src/modal/index.ts +1 -0
  244. package/src/modal/modal.scss +206 -0
  245. package/src/modal/modal.ts +201 -0
  246. package/src/navigation-rail/index.ts +2 -0
  247. package/src/navigation-rail/navigation-rail-item.scss +216 -0
  248. package/src/navigation-rail/navigation-rail-item.ts +223 -0
  249. package/src/navigation-rail/navigation-rail.scss +72 -0
  250. package/src/navigation-rail/navigation-rail.ts +149 -0
  251. package/src/notification/notification.ts +3 -2
  252. package/src/notification-manager/index.ts +1 -0
  253. package/src/notification-manager/notification-manager.scss +113 -0
  254. package/src/notification-manager/notification-manager.ts +199 -0
  255. package/src/number-field/number-field.ts +6 -4
  256. package/src/pagination/pagination.ts +6 -4
  257. package/src/peacock-loader.ts +93 -5
  258. package/src/popover/index.ts +2 -0
  259. package/src/popover/popover-content.scss +69 -0
  260. package/src/popover/popover-content.ts +51 -0
  261. package/src/popover/popover.scss +7 -0
  262. package/src/popover/popover.ts +170 -0
  263. package/src/search/search.ts +4 -0
  264. package/src/sidebar-menu/demo/index.html +68 -0
  265. package/src/sidebar-menu/index.ts +3 -0
  266. package/src/sidebar-menu/sidebar-menu-item.scss +102 -0
  267. package/src/sidebar-menu/sidebar-menu-item.ts +151 -0
  268. package/src/{tree-view/tree-view.scss → sidebar-menu/sidebar-menu.scss} +1 -1
  269. package/src/sidebar-menu/sidebar-menu.ts +182 -0
  270. package/src/sidebar-menu/sidebar-sub-menu.scss +130 -0
  271. package/src/sidebar-menu/sidebar-sub-menu.ts +160 -0
  272. package/src/skeleton/skeleton.scss +18 -24
  273. package/src/snackbar/snackbar.ts +1 -1
  274. package/src/split-button/index.ts +1 -0
  275. package/src/split-button/split-button-colors.scss +56 -0
  276. package/src/split-button/split-button-sizes.scss +28 -0
  277. package/src/split-button/split-button.scss +79 -0
  278. package/src/split-button/split-button.ts +236 -0
  279. package/src/table/table.ts +2 -2
  280. package/src/tabs/tab.ts +4 -3
  281. package/src/text/text.css-component.scss +7 -1
  282. package/src/time-picker/time-picker.ts +1 -1
  283. package/src/toolbar/toolbar.ts +10 -10
  284. package/src/tooltip/tooltip.scss +4 -3
  285. package/src/tooltip/tooltip.ts +64 -98
  286. package/src/url-field/index.ts +1 -0
  287. package/src/url-field/url-field.scss +50 -0
  288. package/src/url-field/url-field.ts +239 -0
  289. package/dist/button-DMN1dPAg.js.map +0 -1
  290. package/dist/button-group-CX9CUUXk.js +0 -435
  291. package/dist/button-group-CX9CUUXk.js.map +0 -1
  292. package/dist/fab-C5Nzxk0E.js +0 -497
  293. package/dist/fab-C5Nzxk0E.js.map +0 -1
  294. package/dist/is-dark-mode-DicqGkCJ.js.map +0 -1
  295. package/dist/select-4pl4XBj7.js.map +0 -1
  296. package/dist/spread-B5cgadZl.js +0 -32
  297. package/dist/spread-B5cgadZl.js.map +0 -1
  298. package/dist/src/__base_element/BaseHyperlink.d.ts +0 -20
  299. package/dist/src/menu/menu/MenuSurfaceController.d.ts +0 -18
  300. package/dist/src/tree-view/index.d.ts +0 -2
  301. package/dist/src/tree-view/tree-node.d.ts +0 -69
  302. package/dist/src/tree-view/tree-view.d.ts +0 -40
  303. package/dist/src/tree-view/wc-tree-view.d.ts +0 -6
  304. package/dist/test/tree-view.test.d.ts +0 -1
  305. package/dist/throttle-C7ZAPqtu.js +0 -24
  306. package/dist/throttle-C7ZAPqtu.js.map +0 -1
  307. package/src/__base_element/BaseHyperlink.ts +0 -42
  308. package/src/menu/menu/MenuSurfaceController.ts +0 -61
  309. package/src/tree-view/demo/index.html +0 -57
  310. package/src/tree-view/index.ts +0 -2
  311. package/src/tree-view/tree-node.scss +0 -101
  312. package/src/tree-view/tree-node.ts +0 -268
  313. package/src/tree-view/tree-view.ts +0 -182
  314. package/src/tree-view/wc-tree-view.ts +0 -9
@@ -0,0 +1,339 @@
1
+ import { a as i, _ as __decorate, I as IndividualComponent, i as i$1, b, A } from './IndividualComponent-DUINtMGK.js';
2
+ import { n } from './property-1psGvXOq.js';
3
+ import { r } from './state-DwbEjqVk.js';
4
+ import { a as addDays, b as addMonths, f as formatDate, C as CalendarEvent } from './calendar-event-BrQ_SEKD.js';
5
+
6
+ var css_248z = i`* {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ .screen-reader-only {
11
+ display: none !important;
12
+ }
13
+
14
+ :host {
15
+ display: block;
16
+ height: 100%;
17
+ min-height: 20em;
18
+ --calendar-border-color: var(--color-outline-variant);
19
+ --calendar-scale-color: var(--color-outline-variant);
20
+ --calendar-event-bg-color: var(--color-primary-container);
21
+ --calendar-event-bg-color--hover: var(--color-inverse-primary);
22
+ --calendar-event-border-color: var(--color-primary);
23
+ --calendar-event-text-color: var(--color-on-primary-container);
24
+ --calendar-event-text-color--hover: var(--color-on-primary);
25
+ --calendar-surface: var(--color-surface);
26
+ --calendar-surface-variant: var(--color-surface-variant);
27
+ --calendar-on-surface: var(--color-on-surface);
28
+ --calendar-on-surface-variant: var(--color-on-surface-variant);
29
+ }
30
+
31
+ .calendar {
32
+ height: 100%;
33
+ display: flex;
34
+ flex-direction: column;
35
+ background: var(--calendar-surface);
36
+ border-radius: var(--shape-corner-large);
37
+ overflow: hidden;
38
+ }
39
+
40
+ .calendar-header .calendar-header-classic {
41
+ display: flex;
42
+ align-items: center;
43
+ padding: 0.75rem 1rem;
44
+ gap: 0.5rem;
45
+ }
46
+ .calendar-header .calendar-header-classic .header-left {
47
+ display: flex;
48
+ gap: 0.5rem;
49
+ align-items: center;
50
+ flex: 1;
51
+ }
52
+ .calendar-header .calendar-header-classic .header-left .title {
53
+ display: flex;
54
+ align-items: center;
55
+ font-weight: 500;
56
+ font-size: 1rem;
57
+ color: var(--calendar-on-surface);
58
+ padding-inline-start: 0.5rem;
59
+ }
60
+ .calendar-header .calendar-header-classic .header-right {
61
+ display: flex;
62
+ align-items: center;
63
+ }
64
+
65
+ .calendar-body {
66
+ flex: 1;
67
+ overflow: auto;
68
+ }
69
+ .calendar-body .view-container {
70
+ height: 100%;
71
+ }`;
72
+
73
+ /**
74
+ * @label Calendar
75
+ * @tag wc-calendar
76
+ * @rawTag calendar
77
+ * @summary A Material 3 inspired full calendar component for displaying events in day, week, or month views.
78
+ *
79
+ * @cssprop --calendar-border-color - Border color used throughout the calendar grid.
80
+ * @cssprop --calendar-event-bg-color - Background color for calendar events.
81
+ * @cssprop --calendar-event-border-color - Left border color for calendar events.
82
+ *
83
+ * @fires {CustomEvent} event-click - Dispatched when a calendar event is clicked. Detail contains `{ event }`.
84
+ * @fires {CustomEvent} view-change - Dispatched when the calendar view changes. Detail contains `{ view }`.
85
+ * @fires {CustomEvent} date-change - Dispatched when the context date changes. Detail contains `{ date }`.
86
+ *
87
+ * @example
88
+ * ```html
89
+ * <wc-calendar view="week" style="height: 600px"></wc-calendar>
90
+ * ```
91
+ */
92
+ let Calendar = class Calendar extends i$1 {
93
+ constructor() {
94
+ super(...arguments);
95
+ /**
96
+ * Calendar events array.
97
+ */
98
+ this.events = [];
99
+ /**
100
+ * Available views configuration.
101
+ */
102
+ this.availableViews = [
103
+ { label: 'Day', value: 'day', type: 'column', days: 1 },
104
+ { label: 'Week', value: 'week', type: 'column', days: 7 },
105
+ { label: 'Month', value: 'month', type: 'month' },
106
+ ];
107
+ /**
108
+ * Current calendar view.
109
+ */
110
+ this.view = 'week';
111
+ /**
112
+ * Whether events are clickable.
113
+ */
114
+ this.eventClickable = true;
115
+ /**
116
+ * Show loading state.
117
+ */
118
+ this.showLoader = false;
119
+ /**
120
+ * Timezone string (e.g. 'America/New_York').
121
+ */
122
+ this.timezone = '';
123
+ /**
124
+ * The context date for the calendar view.
125
+ */
126
+ this.contextDate = null;
127
+ this._currentTime = new Date();
128
+ }
129
+ connectedCallback() {
130
+ super.connectedCallback();
131
+ if (this.timezone) {
132
+ this._currentTime = new Date(new Date().toLocaleString('en', { timeZone: this.timezone }));
133
+ }
134
+ else {
135
+ this._currentTime = new Date();
136
+ }
137
+ if (!this.contextDate) {
138
+ this.contextDate = this._currentTime;
139
+ }
140
+ }
141
+ willUpdate(changedProperties) {
142
+ if (changedProperties.has('view') || changedProperties.has('availableViews')) {
143
+ this._currentView = this.availableViews.find(v => v.value === this.view);
144
+ }
145
+ }
146
+ _onColumnViewDateClick(evt) {
147
+ evt.stopPropagation();
148
+ this.view = 'day';
149
+ this.contextDate = evt.detail.date;
150
+ this.dispatchEvent(new CustomEvent('view-change', {
151
+ detail: { view: this.view },
152
+ bubbles: true,
153
+ composed: true,
154
+ }));
155
+ this.dispatchEvent(new CustomEvent('date-change', {
156
+ detail: { date: this.contextDate },
157
+ bubbles: true,
158
+ composed: true,
159
+ }));
160
+ }
161
+ _onEventClick(evt) {
162
+ evt.stopPropagation();
163
+ this.dispatchEvent(new CustomEvent('event-click', {
164
+ detail: { event: evt.detail.event },
165
+ bubbles: true,
166
+ composed: true,
167
+ }));
168
+ }
169
+ previous() {
170
+ if (!this._currentView)
171
+ return;
172
+ if (this._currentView.days) {
173
+ this.contextDate = addDays(this.contextDate, -1 * this._currentView.days);
174
+ }
175
+ else if (this._currentView.type === 'month') {
176
+ this.contextDate = addMonths(this.contextDate, -1);
177
+ }
178
+ this.dispatchEvent(new CustomEvent('date-change', {
179
+ detail: { date: this.contextDate },
180
+ bubbles: true,
181
+ composed: true,
182
+ }));
183
+ }
184
+ next() {
185
+ if (!this._currentView)
186
+ return;
187
+ if (this._currentView.days) {
188
+ this.contextDate = addDays(this.contextDate, this._currentView.days);
189
+ }
190
+ else if (this._currentView.type === 'month') {
191
+ this.contextDate = addMonths(this.contextDate, 1);
192
+ }
193
+ this.dispatchEvent(new CustomEvent('date-change', {
194
+ detail: { date: this.contextDate },
195
+ bubbles: true,
196
+ composed: true,
197
+ }));
198
+ }
199
+ _goToToday() {
200
+ this.contextDate = this._currentTime;
201
+ this.dispatchEvent(new CustomEvent('date-change', {
202
+ detail: { date: this.contextDate },
203
+ bubbles: true,
204
+ composed: true,
205
+ }));
206
+ }
207
+ _onViewSegmentChange(evt) {
208
+ if (!evt.detail.value)
209
+ return;
210
+ this.view = evt.detail.value;
211
+ this.dispatchEvent(new CustomEvent('view-change', {
212
+ detail: { view: this.view },
213
+ bubbles: true,
214
+ composed: true,
215
+ }));
216
+ }
217
+ _renderHeader() {
218
+ return b `
219
+ <div class="calendar-header-classic">
220
+ <div class="header-left">
221
+ <wc-button
222
+ variant="outlined"
223
+ size="sm"
224
+ class="color-secondary"
225
+ @click=${() => this._goToToday()}
226
+ >
227
+ Today
228
+ </wc-button>
229
+ <wc-icon-button
230
+ variant="text"
231
+ size="sm"
232
+ class="color-secondary"
233
+ @click=${() => this.previous()}
234
+ >
235
+ <wc-icon name="chevron_left"></wc-icon>
236
+ </wc-icon-button>
237
+ <wc-icon-button
238
+ variant="text"
239
+ size="sm"
240
+ class="color-secondary"
241
+ @click=${() => this.next()}
242
+ >
243
+ <wc-icon name="chevron_right"></wc-icon>
244
+ </wc-icon-button>
245
+ <div class="title">
246
+ ${this.contextDate
247
+ ? formatDate(this.contextDate, 'MMMM d, yyyy')
248
+ : ''}
249
+ </div>
250
+ </div>
251
+ <div class="header-right">
252
+ <wc-segmented-button-group @change=${this._onViewSegmentChange}>
253
+ ${this.availableViews.map(v => b `<wc-segmented-button
254
+ .value=${v.value}
255
+ ?selected=${this.view === v.value}
256
+ >
257
+ ${v.label}
258
+ </wc-segmented-button>`)}
259
+ </wc-segmented-button-group>
260
+ </div>
261
+ </div>
262
+ `;
263
+ }
264
+ _renderCalendarView() {
265
+ if (!this._currentView)
266
+ return b `<div>Invalid view</div>`;
267
+ const calEvents = this.events.map(event => new CalendarEvent(event.start, event.end, event.title, event.color, event));
268
+ if (this._currentView.type === 'column') {
269
+ return b `
270
+ <wc-calendar-column-view
271
+ .events=${calEvents}
272
+ .view=${this._currentView.value}
273
+ .days=${this._currentView.days || 7}
274
+ .currentTime=${this._currentTime}
275
+ .contextDate=${this.contextDate}
276
+ ?event-clickable=${this.eventClickable}
277
+ @column-view-date-click=${this._onColumnViewDateClick}
278
+ @column-view-event-click=${this._onEventClick}
279
+ ></wc-calendar-column-view>
280
+ `;
281
+ }
282
+ else if (this._currentView.type === 'month') {
283
+ return b `
284
+ <wc-calendar-month-view
285
+ .events=${calEvents}
286
+ .currentTime=${this._currentTime}
287
+ .contextDate=${this.contextDate}
288
+ ?event-clickable=${this.eventClickable}
289
+ @month-view-event-click=${this._onEventClick}
290
+ ></wc-calendar-month-view>
291
+ `;
292
+ }
293
+ return A;
294
+ }
295
+ render() {
296
+ return b `
297
+ <div class="calendar">
298
+ <div class="calendar-header">${this._renderHeader()}</div>
299
+ <div class="calendar-body">
300
+ <div class="view-container">${this._renderCalendarView()}</div>
301
+ </div>
302
+ </div>
303
+ `;
304
+ }
305
+ };
306
+ Calendar.styles = [css_248z];
307
+ __decorate([
308
+ n({ type: Array })
309
+ ], Calendar.prototype, "events", void 0);
310
+ __decorate([
311
+ n({ type: Array, attribute: 'available-views' })
312
+ ], Calendar.prototype, "availableViews", void 0);
313
+ __decorate([
314
+ n({ type: String, reflect: true })
315
+ ], Calendar.prototype, "view", void 0);
316
+ __decorate([
317
+ n({ type: Boolean, attribute: 'event-clickable' })
318
+ ], Calendar.prototype, "eventClickable", void 0);
319
+ __decorate([
320
+ n({ type: Boolean, attribute: 'show-loader' })
321
+ ], Calendar.prototype, "showLoader", void 0);
322
+ __decorate([
323
+ n({ type: String })
324
+ ], Calendar.prototype, "timezone", void 0);
325
+ __decorate([
326
+ n({ type: Object, attribute: false })
327
+ ], Calendar.prototype, "contextDate", void 0);
328
+ __decorate([
329
+ r()
330
+ ], Calendar.prototype, "_currentTime", void 0);
331
+ __decorate([
332
+ r()
333
+ ], Calendar.prototype, "_currentView", void 0);
334
+ Calendar = __decorate([
335
+ IndividualComponent
336
+ ], Calendar);
337
+
338
+ export { Calendar };
339
+ //# sourceMappingURL=calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.js","sources":["../../src/calendar/calendar.ts"],"sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { addDays, addMonths, formatDate } from './utils.js';\nimport { CalendarEvent } from './calendar-event.js';\nimport type { CalendarViewType, EventType } from './types.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport styles from './calendar.scss';\n\n/**\n * @label Calendar\n * @tag wc-calendar\n * @rawTag calendar\n * @summary A Material 3 inspired full calendar component for displaying events in day, week, or month views.\n *\n * @cssprop --calendar-border-color - Border color used throughout the calendar grid.\n * @cssprop --calendar-event-bg-color - Background color for calendar events.\n * @cssprop --calendar-event-border-color - Left border color for calendar events.\n *\n * @fires {CustomEvent} event-click - Dispatched when a calendar event is clicked. Detail contains `{ event }`.\n * @fires {CustomEvent} view-change - Dispatched when the calendar view changes. Detail contains `{ view }`.\n * @fires {CustomEvent} date-change - Dispatched when the context date changes. Detail contains `{ date }`.\n *\n * @example\n * ```html\n * <wc-calendar view=\"week\" style=\"height: 600px\"></wc-calendar>\n * ```\n */\n@IndividualComponent\nexport class Calendar extends LitElement {\n static styles = [styles];\n\n /**\n * Calendar events array.\n */\n @property({ type: Array })\n events: EventType[] = [];\n\n /**\n * Available views configuration.\n */\n @property({ type: Array, attribute: 'available-views' })\n availableViews: CalendarViewType[] = [\n { label: 'Day', value: 'day', type: 'column', days: 1 },\n { label: 'Week', value: 'week', type: 'column', days: 7 },\n { label: 'Month', value: 'month', type: 'month' },\n ];\n\n /**\n * Current calendar view.\n */\n @property({ type: String, reflect: true })\n view: string = 'week';\n\n /**\n * Whether events are clickable.\n */\n @property({ type: Boolean, attribute: 'event-clickable' })\n eventClickable: boolean = true;\n\n /**\n * Show loading state.\n */\n @property({ type: Boolean, attribute: 'show-loader' })\n showLoader: boolean = false;\n\n /**\n * Timezone string (e.g. 'America/New_York').\n */\n @property({ type: String })\n timezone: string = '';\n\n /**\n * The context date for the calendar view.\n */\n @property({ type: Object, attribute: false })\n contextDate: Date | null = null;\n\n @state()\n private _currentTime: Date = new Date();\n\n @state()\n private _currentView: CalendarViewType | undefined;\n\n override connectedCallback() {\n super.connectedCallback();\n if (this.timezone) {\n this._currentTime = new Date(\n new Date().toLocaleString('en', { timeZone: this.timezone }),\n );\n } else {\n this._currentTime = new Date();\n }\n if (!this.contextDate) {\n this.contextDate = this._currentTime;\n }\n }\n\n override willUpdate(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('view') || changedProperties.has('availableViews')) {\n this._currentView = this.availableViews.find(v => v.value === this.view);\n }\n }\n\n private _onColumnViewDateClick(evt: CustomEvent) {\n evt.stopPropagation();\n this.view = 'day';\n this.contextDate = evt.detail.date;\n this.dispatchEvent(\n new CustomEvent('view-change', {\n detail: { view: this.view },\n bubbles: true,\n composed: true,\n }),\n );\n this.dispatchEvent(\n new CustomEvent('date-change', {\n detail: { date: this.contextDate },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _onEventClick(evt: CustomEvent) {\n evt.stopPropagation();\n this.dispatchEvent(\n new CustomEvent('event-click', {\n detail: { event: evt.detail.event },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n previous() {\n if (!this._currentView) return;\n if (this._currentView.days) {\n this.contextDate = addDays(\n this.contextDate!,\n -1 * this._currentView.days,\n );\n } else if (this._currentView.type === 'month') {\n this.contextDate = addMonths(this.contextDate!, -1);\n }\n this.dispatchEvent(\n new CustomEvent('date-change', {\n detail: { date: this.contextDate },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n next() {\n if (!this._currentView) return;\n if (this._currentView.days) {\n this.contextDate = addDays(\n this.contextDate!,\n this._currentView.days,\n );\n } else if (this._currentView.type === 'month') {\n this.contextDate = addMonths(this.contextDate!, 1);\n }\n this.dispatchEvent(\n new CustomEvent('date-change', {\n detail: { date: this.contextDate },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _goToToday() {\n this.contextDate = this._currentTime;\n this.dispatchEvent(\n new CustomEvent('date-change', {\n detail: { date: this.contextDate },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _onViewSegmentChange(evt: CustomEvent<{ value: string | null }>) {\n if (!evt.detail.value) return;\n this.view = evt.detail.value;\n this.dispatchEvent(\n new CustomEvent('view-change', {\n detail: { view: this.view },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _renderHeader() {\n return html`\n <div class=\"calendar-header-classic\">\n <div class=\"header-left\">\n <wc-button\n variant=\"outlined\"\n size=\"sm\"\n class=\"color-secondary\"\n @click=${() => this._goToToday()}\n >\n Today\n </wc-button>\n <wc-icon-button\n variant=\"text\"\n size=\"sm\"\n class=\"color-secondary\"\n @click=${() => this.previous()}\n >\n <wc-icon name=\"chevron_left\"></wc-icon>\n </wc-icon-button>\n <wc-icon-button\n variant=\"text\"\n size=\"sm\"\n class=\"color-secondary\"\n @click=${() => this.next()}\n >\n <wc-icon name=\"chevron_right\"></wc-icon>\n </wc-icon-button>\n <div class=\"title\">\n ${this.contextDate\n ? formatDate(this.contextDate, 'MMMM d, yyyy')\n : ''}\n </div>\n </div>\n <div class=\"header-right\">\n <wc-segmented-button-group @change=${this._onViewSegmentChange}>\n ${this.availableViews.map(\n v =>\n html`<wc-segmented-button\n .value=${v.value}\n ?selected=${this.view === v.value}\n >\n ${v.label}\n </wc-segmented-button>`,\n )}\n </wc-segmented-button-group>\n </div>\n </div>\n `;\n }\n\n private _renderCalendarView() {\n if (!this._currentView) return html`<div>Invalid view</div>`;\n\n const calEvents = this.events.map(\n event =>\n new CalendarEvent(\n event.start,\n event.end,\n event.title,\n event.color,\n event,\n ),\n );\n\n if (this._currentView.type === 'column') {\n return html`\n <wc-calendar-column-view\n .events=${calEvents}\n .view=${this._currentView.value}\n .days=${this._currentView.days || 7}\n .currentTime=${this._currentTime}\n .contextDate=${this.contextDate}\n ?event-clickable=${this.eventClickable}\n @column-view-date-click=${this._onColumnViewDateClick}\n @column-view-event-click=${this._onEventClick}\n ></wc-calendar-column-view>\n `;\n } else if (this._currentView.type === 'month') {\n return html`\n <wc-calendar-month-view\n .events=${calEvents}\n .currentTime=${this._currentTime}\n .contextDate=${this.contextDate}\n ?event-clickable=${this.eventClickable}\n @month-view-event-click=${this._onEventClick}\n ></wc-calendar-month-view>\n `;\n }\n return nothing;\n }\n\n render() {\n return html`\n <div class=\"calendar\">\n <div class=\"calendar-header\">${this._renderHeader()}</div>\n <div class=\"calendar-body\">\n <div class=\"view-container\">${this._renderCalendarView()}</div>\n </div>\n </div>\n `;\n }\n}\n"],"names":["LitElement","html","nothing","styles","property","state"],"mappings":"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"}