@vonage/vivid 3.0.0 → 3.1.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 (337) hide show
  1. package/README.md +176 -4
  2. package/accordion/index.js +22 -61
  3. package/accordion-item/index.js +16 -118
  4. package/action-group/index.js +5 -0
  5. package/avatar/index.js +11 -0
  6. package/badge/index.js +9 -53
  7. package/banner/index.js +20 -210
  8. package/breadcrumb/index.js +7 -96
  9. package/breadcrumb-item/index.js +15 -46
  10. package/button/index.js +19 -751
  11. package/calendar/index.js +6 -1520
  12. package/calendar-event/index.js +9 -0
  13. package/card/index.js +10 -133
  14. package/checkbox/index.js +16 -0
  15. package/combobox/index.js +35 -0
  16. package/custom-elements.json +6214 -0
  17. package/data-grid/index.js +1104 -0
  18. package/dialog/index.js +24 -0
  19. package/divider/index.js +6 -0
  20. package/elevation/index.js +4 -30
  21. package/fab/index.js +22 -0
  22. package/focus/index.js +4 -2
  23. package/header/index.js +6 -0
  24. package/icon/index.js +8 -36
  25. package/index.js +77 -26
  26. package/layout/index.js +4 -52
  27. package/lib/accordion/accordion.d.ts +3 -7
  28. package/lib/accordion/accordion.template.d.ts +1 -2
  29. package/lib/accordion/definition.d.ts +1 -0
  30. package/lib/accordion/index.d.ts +1 -2
  31. package/lib/accordion-item/accordion-item.d.ts +2 -6
  32. package/lib/accordion-item/accordion-item.template.d.ts +4 -4
  33. package/lib/accordion-item/definition.d.ts +1 -0
  34. package/lib/accordion-item/index.d.ts +1 -3
  35. package/lib/action-group/action-group.d.ts +10 -0
  36. package/lib/{sidenav-item/sidenav-item.template.d.ts → action-group/action-group.template.d.ts} +2 -2
  37. package/lib/action-group/definition.d.ts +1 -0
  38. package/lib/action-group/index.d.ts +1 -0
  39. package/lib/avatar/avatar.d.ts +15 -0
  40. package/lib/avatar/avatar.template.d.ts +4 -0
  41. package/lib/avatar/definition.d.ts +1 -0
  42. package/lib/avatar/index.d.ts +1 -0
  43. package/lib/badge/badge.d.ts +2 -4
  44. package/lib/badge/definition.d.ts +3 -0
  45. package/lib/badge/index.d.ts +1 -3
  46. package/lib/banner/banner.d.ts +1 -1
  47. package/lib/banner/banner.template.d.ts +0 -2
  48. package/lib/banner/definition.d.ts +1 -0
  49. package/lib/banner/index.d.ts +1 -2
  50. package/lib/breadcrumb/breadcrumb.template.d.ts +4 -0
  51. package/lib/breadcrumb/definition.d.ts +1 -0
  52. package/lib/breadcrumb/index.d.ts +1 -2
  53. package/lib/breadcrumb-item/definition.d.ts +1 -0
  54. package/lib/breadcrumb-item/index.d.ts +1 -3
  55. package/lib/button/button.d.ts +3 -2
  56. package/lib/button/definition.d.ts +1 -0
  57. package/lib/button/index.d.ts +1 -21
  58. package/lib/calendar/calendar.d.ts +3 -1
  59. package/lib/calendar/definition.d.ts +1 -0
  60. package/lib/calendar/index.d.ts +1 -3
  61. package/lib/calendar-event/calendar-event.d.ts +14 -0
  62. package/lib/calendar-event/calendar-event.template.d.ts +4 -0
  63. package/lib/calendar-event/definition.d.ts +1 -0
  64. package/lib/calendar-event/index.d.ts +1 -0
  65. package/lib/card/card.d.ts +2 -2
  66. package/lib/card/definition.d.ts +1 -0
  67. package/lib/card/index.d.ts +1 -5
  68. package/lib/checkbox/checkbox.d.ts +5 -0
  69. package/lib/checkbox/checkbox.template.d.ts +4 -0
  70. package/lib/checkbox/definition.d.ts +1 -0
  71. package/lib/checkbox/index.d.ts +1 -0
  72. package/lib/combobox/combobox.d.ts +14 -0
  73. package/lib/combobox/combobox.template.d.ts +4 -0
  74. package/lib/combobox/definition.d.ts +3 -0
  75. package/lib/combobox/index.d.ts +1 -0
  76. package/lib/components.d.ts +44 -16
  77. package/lib/data-grid/data-grid-cell.d.ts +5 -0
  78. package/lib/data-grid/data-grid-cell.template.d.ts +4 -0
  79. package/lib/data-grid/data-grid-row.d.ts +3 -0
  80. package/lib/data-grid/data-grid-row.template.d.ts +3 -0
  81. package/lib/data-grid/data-grid.d.ts +3 -0
  82. package/lib/data-grid/data-grid.options.d.ts +31 -0
  83. package/lib/data-grid/data-grid.template.d.ts +3 -0
  84. package/lib/data-grid/definition.d.ts +6 -0
  85. package/lib/data-grid/index.d.ts +1 -0
  86. package/lib/dialog/definition.d.ts +1 -0
  87. package/lib/dialog/dialog.d.ts +23 -0
  88. package/lib/dialog/dialog.template.d.ts +4 -0
  89. package/lib/dialog/index.d.ts +1 -0
  90. package/lib/divider/definition.d.ts +1 -0
  91. package/lib/divider/divider.d.ts +3 -0
  92. package/lib/divider/divider.template.d.ts +4 -0
  93. package/lib/divider/index.d.ts +1 -0
  94. package/lib/elevation/definition.d.ts +1 -0
  95. package/lib/elevation/elevation.d.ts +1 -0
  96. package/lib/elevation/index.d.ts +1 -2
  97. package/lib/enums.d.ts +19 -6
  98. package/lib/fab/definition.d.ts +3 -0
  99. package/lib/fab/fab.d.ts +13 -0
  100. package/lib/fab/fab.template.d.ts +4 -0
  101. package/lib/fab/index.d.ts +1 -0
  102. package/lib/focus/definition.d.ts +3 -0
  103. package/lib/focus/index.d.ts +1 -2
  104. package/lib/{sidenav-item/index.d.ts → header/definition.d.ts} +2 -2
  105. package/lib/header/header.d.ts +5 -0
  106. package/lib/header/header.template.d.ts +4 -0
  107. package/lib/header/index.d.ts +1 -0
  108. package/lib/icon/definition.d.ts +3 -0
  109. package/lib/icon/icon.d.ts +5 -6
  110. package/lib/icon/index.d.ts +1 -2
  111. package/lib/layout/definition.d.ts +3 -0
  112. package/lib/layout/index.d.ts +1 -2
  113. package/lib/layout/layout.d.ts +4 -4
  114. package/lib/listbox/definition.d.ts +3 -0
  115. package/lib/listbox/index.d.ts +1 -0
  116. package/lib/listbox/listbox.d.ts +6 -0
  117. package/lib/listbox/listbox.template.d.ts +4 -0
  118. package/lib/menu/definition.d.ts +11 -0
  119. package/lib/menu/index.d.ts +1 -0
  120. package/lib/menu/menu.d.ts +10 -0
  121. package/lib/menu/menu.template.d.ts +3 -0
  122. package/lib/menu-item/definition.d.ts +3 -0
  123. package/lib/menu-item/index.d.ts +1 -0
  124. package/lib/menu-item/menu-item.d.ts +8 -0
  125. package/lib/menu-item/menu-item.template.d.ts +5 -0
  126. package/lib/nav/definition.d.ts +3 -0
  127. package/lib/nav/index.d.ts +1 -0
  128. package/lib/nav/nav.d.ts +3 -0
  129. package/lib/nav/nav.template.d.ts +4 -0
  130. package/lib/nav-disclosure/definition.d.ts +3 -0
  131. package/lib/nav-disclosure/index.d.ts +1 -0
  132. package/lib/nav-disclosure/nav-disclosure.d.ts +10 -0
  133. package/lib/nav-disclosure/nav-disclosure.template.d.ts +4 -0
  134. package/lib/nav-item/definition.d.ts +3 -0
  135. package/lib/nav-item/index.d.ts +1 -0
  136. package/lib/{sidenav-item/sidenav-item.d.ts → nav-item/nav-item.d.ts} +2 -2
  137. package/lib/nav-item/nav-item.template.d.ts +4 -0
  138. package/lib/note/definition.d.ts +3 -0
  139. package/lib/note/index.d.ts +1 -0
  140. package/lib/note/note.d.ts +10 -0
  141. package/lib/{text/text.template.d.ts → note/note.template.d.ts} +2 -2
  142. package/lib/number-field/definition.d.ts +4 -0
  143. package/lib/number-field/index.d.ts +1 -0
  144. package/lib/number-field/number-field.d.ts +14 -0
  145. package/lib/number-field/number-field.template.d.ts +4 -0
  146. package/lib/option/definition.d.ts +3 -0
  147. package/lib/option/index.d.ts +1 -0
  148. package/lib/option/option.d.ts +9 -0
  149. package/lib/option/option.template.d.ts +4 -0
  150. package/lib/popup/definition.d.ts +3 -0
  151. package/lib/popup/index.d.ts +1 -4
  152. package/lib/popup/popup.d.ts +8 -4
  153. package/lib/progress/definition.d.ts +3 -0
  154. package/lib/progress/index.d.ts +1 -2
  155. package/lib/progress/progress.d.ts +1 -1
  156. package/lib/progress-ring/definition.d.ts +3 -0
  157. package/lib/progress-ring/index.d.ts +1 -2
  158. package/lib/progress-ring/progress-ring.d.ts +2 -1
  159. package/lib/radio/definition.d.ts +3 -0
  160. package/lib/radio/index.d.ts +1 -0
  161. package/lib/radio/radio.d.ts +4 -0
  162. package/lib/radio/radio.template.d.ts +4 -0
  163. package/lib/radio-group/definition.d.ts +11 -0
  164. package/lib/radio-group/index.d.ts +1 -0
  165. package/lib/radio-group/radio-group.d.ts +4 -0
  166. package/lib/radio-group/radio-group.template.d.ts +4 -0
  167. package/lib/select/definition.d.ts +3 -0
  168. package/lib/select/index.d.ts +1 -0
  169. package/lib/select/select.d.ts +17 -0
  170. package/lib/select/select.template.d.ts +4 -0
  171. package/lib/side-drawer/definition.d.ts +3 -0
  172. package/lib/side-drawer/index.d.ts +1 -2
  173. package/lib/side-drawer/side-drawer.d.ts +3 -2
  174. package/lib/slider/definition.d.ts +3 -0
  175. package/lib/slider/index.d.ts +1 -0
  176. package/lib/slider/slider.d.ts +4 -0
  177. package/lib/slider/slider.template.d.ts +4 -0
  178. package/lib/switch/definition.d.ts +3 -0
  179. package/lib/switch/index.d.ts +1 -0
  180. package/lib/switch/switch.d.ts +7 -0
  181. package/lib/switch/switch.template.d.ts +4 -0
  182. package/lib/tab/definition.d.ts +3 -0
  183. package/lib/tab/index.d.ts +1 -0
  184. package/lib/tab/tab.d.ts +9 -0
  185. package/lib/tab/tab.template.d.ts +3 -0
  186. package/lib/tab-panel/definition.d.ts +3 -0
  187. package/lib/tab-panel/index.d.ts +1 -0
  188. package/lib/tab-panel/tab-panel.d.ts +3 -0
  189. package/lib/tab-panel/tab-panel.template.d.ts +2 -0
  190. package/lib/tabs/definition.d.ts +3 -0
  191. package/lib/tabs/index.d.ts +1 -0
  192. package/lib/tabs/tabs.d.ts +10 -0
  193. package/lib/tabs/tabs.template.d.ts +2 -0
  194. package/lib/text-anchor/definition.d.ts +3 -0
  195. package/lib/text-anchor/index.d.ts +1 -2
  196. package/lib/text-area/definition.d.ts +3 -0
  197. package/lib/text-area/index.d.ts +1 -0
  198. package/lib/text-area/text-area.d.ts +9 -0
  199. package/lib/text-area/text-area.template.d.ts +4 -0
  200. package/lib/text-field/definition.d.ts +3 -0
  201. package/lib/text-field/index.d.ts +1 -0
  202. package/lib/text-field/text-field.d.ts +14 -0
  203. package/lib/text-field/text-field.template.d.ts +4 -0
  204. package/lib/tooltip/definition.d.ts +3 -0
  205. package/lib/tooltip/index.d.ts +1 -3
  206. package/lib/tooltip/tooltip.d.ts +6 -6
  207. package/listbox/index.js +27 -0
  208. package/menu/index.js +30 -0
  209. package/menu-item/index.js +20 -0
  210. package/nav/index.js +4 -0
  211. package/nav-disclosure/index.js +17 -0
  212. package/nav-item/index.js +22 -0
  213. package/note/index.js +15 -0
  214. package/number-field/index.js +459 -0
  215. package/option/index.js +21 -0
  216. package/package.json +21 -11
  217. package/popup/index.js +21 -2062
  218. package/progress/index.js +6 -98
  219. package/progress-ring/index.js +6 -75
  220. package/radio/index.js +12 -0
  221. package/radio-group/index.js +11 -0
  222. package/select/index.js +34 -0
  223. package/shared/affix.js +2 -8
  224. package/shared/anchor.js +10 -2
  225. package/shared/apply-mixins.js +5 -4
  226. package/shared/aria-global.js +2 -86
  227. package/shared/aria.js +9 -0
  228. package/shared/base-progress.js +5 -0
  229. package/shared/breadcrumb-item.js +1 -1
  230. package/shared/button.js +200 -0
  231. package/shared/calendar-event.js +19 -0
  232. package/shared/definition.js +225 -0
  233. package/shared/definition10.js +99 -0
  234. package/shared/definition11.js +48 -0
  235. package/shared/definition12.js +763 -0
  236. package/shared/definition13.js +111 -0
  237. package/shared/definition14.js +114 -0
  238. package/shared/definition15.js +32 -0
  239. package/shared/definition16.js +172 -0
  240. package/shared/definition17.js +727 -0
  241. package/shared/definition18.js +1531 -0
  242. package/shared/definition19.js +261 -0
  243. package/shared/definition2.js +150 -0
  244. package/shared/definition20.js +221 -0
  245. package/shared/definition21.js +78 -0
  246. package/shared/definition22.js +87 -0
  247. package/shared/definition23.js +58 -0
  248. package/shared/definition24.js +44 -0
  249. package/shared/definition25.js +58 -0
  250. package/shared/definition26.js +348 -0
  251. package/shared/definition27.js +363 -0
  252. package/shared/definition28.js +21 -0
  253. package/shared/definition29.js +75 -0
  254. package/shared/definition3.js +29 -0
  255. package/shared/definition30.js +31 -0
  256. package/shared/definition31.js +49 -0
  257. package/shared/definition32.js +94 -0
  258. package/shared/definition33.js +77 -0
  259. package/shared/definition34.js +45 -0
  260. package/shared/definition35.js +435 -0
  261. package/shared/definition36.js +634 -0
  262. package/shared/definition37.js +86 -0
  263. package/shared/definition38.js +592 -0
  264. package/shared/definition39.js +147 -0
  265. package/shared/definition4.js +19 -0
  266. package/shared/definition40.js +67 -0
  267. package/shared/definition41.js +32 -0
  268. package/shared/definition42.js +440 -0
  269. package/shared/definition43.js +282 -0
  270. package/shared/definition44.js +119 -0
  271. package/shared/definition45.js +77 -0
  272. package/shared/definition5.js +38 -0
  273. package/shared/definition6.js +60 -0
  274. package/shared/definition7.js +45 -0
  275. package/shared/definition8.js +113 -0
  276. package/shared/definition9.js +107 -0
  277. package/shared/design-system/index.d.ts +1 -1
  278. package/shared/dialog-polyfill.esm.js +858 -0
  279. package/shared/direction.js +20 -0
  280. package/shared/dom.js +8 -0
  281. package/shared/enums.js +70 -0
  282. package/shared/es.object.assign.js +2 -3
  283. package/shared/es.regexp.to-string.js +59 -0
  284. package/shared/focus.js +5 -0
  285. package/shared/focus2.js +11 -0
  286. package/shared/form-associated.js +466 -0
  287. package/shared/form-elements.js +127 -0
  288. package/shared/icon.js +538 -567
  289. package/shared/index.js +1664 -83
  290. package/shared/key-codes.js +100 -0
  291. package/shared/listbox.js +995 -0
  292. package/shared/numbers.js +34 -0
  293. package/shared/patterns/affix.d.ts +1 -1
  294. package/shared/patterns/focus.d.ts +3 -0
  295. package/shared/patterns/form-elements/form-elements.d.ts +43 -0
  296. package/shared/patterns/form-elements/index.d.ts +1 -0
  297. package/shared/patterns/index.d.ts +2 -0
  298. package/shared/radio.js +127 -0
  299. package/shared/ref.js +41 -0
  300. package/shared/repeat.js +764 -0
  301. package/shared/select.options.js +10 -0
  302. package/shared/slotted.js +1 -1
  303. package/shared/start-end.js +50 -0
  304. package/shared/string-trim.js +40 -0
  305. package/shared/strings.js +9 -0
  306. package/shared/text-anchor.js +0 -2
  307. package/shared/text-anchor.template.js +6 -5
  308. package/shared/text-field.js +3 -0
  309. package/shared/text-field2.js +225 -0
  310. package/shared/to-string.js +51 -0
  311. package/side-drawer/index.js +5 -81
  312. package/slider/index.js +17 -0
  313. package/styles/core/all.css +83 -0
  314. package/styles/core/theme.css +11 -0
  315. package/styles/core/typography.css +77 -0
  316. package/styles/tokens/theme-dark.css +228 -0
  317. package/styles/tokens/theme-light.css +228 -0
  318. package/switch/index.js +18 -0
  319. package/tab/index.js +16 -0
  320. package/tab-panel/index.js +4 -0
  321. package/tabs/index.js +24 -0
  322. package/text-anchor/index.js +11 -6
  323. package/text-area/index.js +23 -0
  324. package/text-field/index.js +24 -0
  325. package/tooltip/index.js +18 -55
  326. package/vivid.api.json +3695 -0
  327. package/lib/text/index.d.ts +0 -2
  328. package/lib/text/text.d.ts +0 -10
  329. package/shared/index2.js +0 -21
  330. package/shared/object-set-prototype-of.js +0 -1009
  331. package/shared/style-inject.es.js +0 -28
  332. package/shared/web.dom-collections.iterator.js +0 -473
  333. package/sidenav-item/index.js +0 -39
  334. package/styles/fonts/spezia.css +0 -23
  335. package/styles/themes/dark.css +0 -205
  336. package/styles/themes/light.css +0 -205
  337. package/text/index.js +0 -46
@@ -0,0 +1,763 @@
1
+ import { F as FoundationElement, U as __classPrivateFieldGet, _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
2
+ import { C as CalendarEvent } from './calendar-event.js';
3
+ import './es.object.assign.js';
4
+ import { b as _has, _ as _curry1, a as _curry2 } from './_has.js';
5
+ import { r as repeat } from './repeat.js';
6
+
7
+ /**
8
+ * Tests whether or not an object is an array.
9
+ *
10
+ * @private
11
+ * @param {*} val The object to test.
12
+ * @return {Boolean} `true` if `val` is an array, `false` otherwise.
13
+ * @example
14
+ *
15
+ * _isArray([]); //=> true
16
+ * _isArray(null); //=> false
17
+ * _isArray({}); //=> false
18
+ */
19
+ var _isArray = Array.isArray || function _isArray(val) {
20
+ return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';
21
+ };
22
+
23
+ function _isString(x) {
24
+ return Object.prototype.toString.call(x) === '[object String]';
25
+ }
26
+
27
+ var toString = Object.prototype.toString;
28
+
29
+ var _isArguments =
30
+ /*#__PURE__*/
31
+ function () {
32
+ return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {
33
+ return toString.call(x) === '[object Arguments]';
34
+ } : function _isArguments(x) {
35
+ return _has('callee', x);
36
+ };
37
+ }();
38
+
39
+ var _isArguments$1 = _isArguments;
40
+
41
+ var hasEnumBug = !
42
+ /*#__PURE__*/
43
+ {
44
+ toString: null
45
+ }.propertyIsEnumerable('toString');
46
+ var nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug
47
+
48
+ var hasArgsEnumBug =
49
+ /*#__PURE__*/
50
+ function () {
51
+
52
+ return arguments.propertyIsEnumerable('length');
53
+ }();
54
+
55
+ var contains = function contains(list, item) {
56
+ var idx = 0;
57
+
58
+ while (idx < list.length) {
59
+ if (list[idx] === item) {
60
+ return true;
61
+ }
62
+
63
+ idx += 1;
64
+ }
65
+
66
+ return false;
67
+ };
68
+ /**
69
+ * Returns a list containing the names of all the enumerable own properties of
70
+ * the supplied object.
71
+ * Note that the order of the output array is not guaranteed to be consistent
72
+ * across different JS platforms.
73
+ *
74
+ * @func
75
+ * @memberOf R
76
+ * @since v0.1.0
77
+ * @category Object
78
+ * @sig {k: v} -> [k]
79
+ * @param {Object} obj The object to extract properties from
80
+ * @return {Array} An array of the object's own properties.
81
+ * @see R.keysIn, R.values
82
+ * @example
83
+ *
84
+ * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']
85
+ */
86
+
87
+
88
+ var keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?
89
+ /*#__PURE__*/
90
+ _curry1(function keys(obj) {
91
+ return Object(obj) !== obj ? [] : Object.keys(obj);
92
+ }) :
93
+ /*#__PURE__*/
94
+ _curry1(function keys(obj) {
95
+ if (Object(obj) !== obj) {
96
+ return [];
97
+ }
98
+
99
+ var prop, nIdx;
100
+ var ks = [];
101
+
102
+ var checkArgsLength = hasArgsEnumBug && _isArguments$1(obj);
103
+
104
+ for (prop in obj) {
105
+ if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {
106
+ ks[ks.length] = prop;
107
+ }
108
+ }
109
+
110
+ if (hasEnumBug) {
111
+ nIdx = nonEnumerableProps.length - 1;
112
+
113
+ while (nIdx >= 0) {
114
+ prop = nonEnumerableProps[nIdx];
115
+
116
+ if (_has(prop, obj) && !contains(ks, prop)) {
117
+ ks[ks.length] = prop;
118
+ }
119
+
120
+ nIdx -= 1;
121
+ }
122
+ }
123
+
124
+ return ks;
125
+ });
126
+ var keys$1 = keys;
127
+
128
+ /**
129
+ * Gives a single-word string description of the (native) type of a value,
130
+ * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not
131
+ * attempt to distinguish user Object types any further, reporting them all as
132
+ * 'Object'.
133
+ *
134
+ * @func
135
+ * @memberOf R
136
+ * @since v0.8.0
137
+ * @category Type
138
+ * @sig (* -> {*}) -> String
139
+ * @param {*} val The value to test
140
+ * @return {String}
141
+ * @example
142
+ *
143
+ * R.type({}); //=> "Object"
144
+ * R.type(1); //=> "Number"
145
+ * R.type(false); //=> "Boolean"
146
+ * R.type('s'); //=> "String"
147
+ * R.type(null); //=> "Null"
148
+ * R.type([]); //=> "Array"
149
+ * R.type(/[A-z]/); //=> "RegExp"
150
+ * R.type(() => {}); //=> "Function"
151
+ * R.type(undefined); //=> "Undefined"
152
+ */
153
+
154
+ var type =
155
+ /*#__PURE__*/
156
+ _curry1(function type(val) {
157
+ return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);
158
+ });
159
+
160
+ var type$1 = type;
161
+
162
+ /**
163
+ * A function that returns the `!` of its argument. It will return `true` when
164
+ * passed false-y value, and `false` when passed a truth-y one.
165
+ *
166
+ * @func
167
+ * @memberOf R
168
+ * @since v0.1.0
169
+ * @category Logic
170
+ * @sig * -> Boolean
171
+ * @param {*} a any value
172
+ * @return {Boolean} the logical inverse of passed argument.
173
+ * @see R.complement
174
+ * @example
175
+ *
176
+ * R.not(true); //=> false
177
+ * R.not(false); //=> true
178
+ * R.not(0); //=> true
179
+ * R.not(1); //=> false
180
+ */
181
+
182
+ var not =
183
+ /*#__PURE__*/
184
+ _curry1(function not(a) {
185
+ return !a;
186
+ });
187
+
188
+ var not$1 = not;
189
+
190
+ function _arrayFromIterator(iter) {
191
+ var list = [];
192
+ var next;
193
+
194
+ while (!(next = iter.next()).done) {
195
+ list.push(next.value);
196
+ }
197
+
198
+ return list;
199
+ }
200
+
201
+ function _includesWith(pred, x, list) {
202
+ var idx = 0;
203
+ var len = list.length;
204
+
205
+ while (idx < len) {
206
+ if (pred(x, list[idx])) {
207
+ return true;
208
+ }
209
+
210
+ idx += 1;
211
+ }
212
+
213
+ return false;
214
+ }
215
+
216
+ function _functionName(f) {
217
+ // String(x => x) evaluates to "x => x", so the pattern may not match.
218
+ var match = String(f).match(/^function (\w*)/);
219
+ return match == null ? '' : match[1];
220
+ }
221
+
222
+ // Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
223
+ function _objectIs(a, b) {
224
+ // SameValue algorithm
225
+ if (a === b) {
226
+ // Steps 1-5, 7-10
227
+ // Steps 6.b-6.e: +0 != -0
228
+ return a !== 0 || 1 / a === 1 / b;
229
+ } else {
230
+ // Step 6.a: NaN == NaN
231
+ return a !== a && b !== b;
232
+ }
233
+ }
234
+
235
+ var _objectIs$1 = typeof Object.is === 'function' ? Object.is : _objectIs;
236
+
237
+ /**
238
+ * private _uniqContentEquals function.
239
+ * That function is checking equality of 2 iterator contents with 2 assumptions
240
+ * - iterators lengths are the same
241
+ * - iterators values are unique
242
+ *
243
+ * false-positive result will be returned for comparision of, e.g.
244
+ * - [1,2,3] and [1,2,3,4]
245
+ * - [1,1,1] and [1,2,3]
246
+ * */
247
+
248
+ function _uniqContentEquals(aIterator, bIterator, stackA, stackB) {
249
+ var a = _arrayFromIterator(aIterator);
250
+
251
+ var b = _arrayFromIterator(bIterator);
252
+
253
+ function eq(_a, _b) {
254
+ return _equals(_a, _b, stackA.slice(), stackB.slice());
255
+ } // if *a* array contains any element that is not included in *b*
256
+
257
+
258
+ return !_includesWith(function (b, aItem) {
259
+ return !_includesWith(eq, aItem, b);
260
+ }, b, a);
261
+ }
262
+
263
+ function _equals(a, b, stackA, stackB) {
264
+ if (_objectIs$1(a, b)) {
265
+ return true;
266
+ }
267
+
268
+ var typeA = type$1(a);
269
+
270
+ if (typeA !== type$1(b)) {
271
+ return false;
272
+ }
273
+
274
+ if (a == null || b == null) {
275
+ return false;
276
+ }
277
+
278
+ if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {
279
+ return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);
280
+ }
281
+
282
+ if (typeof a.equals === 'function' || typeof b.equals === 'function') {
283
+ return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);
284
+ }
285
+
286
+ switch (typeA) {
287
+ case 'Arguments':
288
+ case 'Array':
289
+ case 'Object':
290
+ if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {
291
+ return a === b;
292
+ }
293
+
294
+ break;
295
+
296
+ case 'Boolean':
297
+ case 'Number':
298
+ case 'String':
299
+ if (!(typeof a === typeof b && _objectIs$1(a.valueOf(), b.valueOf()))) {
300
+ return false;
301
+ }
302
+
303
+ break;
304
+
305
+ case 'Date':
306
+ if (!_objectIs$1(a.valueOf(), b.valueOf())) {
307
+ return false;
308
+ }
309
+
310
+ break;
311
+
312
+ case 'Error':
313
+ return a.name === b.name && a.message === b.message;
314
+
315
+ case 'RegExp':
316
+ if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {
317
+ return false;
318
+ }
319
+
320
+ break;
321
+ }
322
+
323
+ var idx = stackA.length - 1;
324
+
325
+ while (idx >= 0) {
326
+ if (stackA[idx] === a) {
327
+ return stackB[idx] === b;
328
+ }
329
+
330
+ idx -= 1;
331
+ }
332
+
333
+ switch (typeA) {
334
+ case 'Map':
335
+ if (a.size !== b.size) {
336
+ return false;
337
+ }
338
+
339
+ return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));
340
+
341
+ case 'Set':
342
+ if (a.size !== b.size) {
343
+ return false;
344
+ }
345
+
346
+ return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));
347
+
348
+ case 'Arguments':
349
+ case 'Array':
350
+ case 'Object':
351
+ case 'Boolean':
352
+ case 'Number':
353
+ case 'String':
354
+ case 'Date':
355
+ case 'Error':
356
+ case 'RegExp':
357
+ case 'Int8Array':
358
+ case 'Uint8Array':
359
+ case 'Uint8ClampedArray':
360
+ case 'Int16Array':
361
+ case 'Uint16Array':
362
+ case 'Int32Array':
363
+ case 'Uint32Array':
364
+ case 'Float32Array':
365
+ case 'Float64Array':
366
+ case 'ArrayBuffer':
367
+ break;
368
+
369
+ default:
370
+ // Values of other types are only equal if identical.
371
+ return false;
372
+ }
373
+
374
+ var keysA = keys$1(a);
375
+
376
+ if (keysA.length !== keys$1(b).length) {
377
+ return false;
378
+ }
379
+
380
+ var extendedStackA = stackA.concat([a]);
381
+ var extendedStackB = stackB.concat([b]);
382
+ idx = keysA.length - 1;
383
+
384
+ while (idx >= 0) {
385
+ var key = keysA[idx];
386
+
387
+ if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {
388
+ return false;
389
+ }
390
+
391
+ idx -= 1;
392
+ }
393
+
394
+ return true;
395
+ }
396
+
397
+ /**
398
+ * Returns `true` if its arguments are equivalent, `false` otherwise. Handles
399
+ * cyclical data structures.
400
+ *
401
+ * Dispatches symmetrically to the `equals` methods of both arguments, if
402
+ * present.
403
+ *
404
+ * @func
405
+ * @memberOf R
406
+ * @since v0.15.0
407
+ * @category Relation
408
+ * @sig a -> b -> Boolean
409
+ * @param {*} a
410
+ * @param {*} b
411
+ * @return {Boolean}
412
+ * @example
413
+ *
414
+ * R.equals(1, 1); //=> true
415
+ * R.equals(1, '1'); //=> false
416
+ * R.equals([1, 2, 3], [1, 2, 3]); //=> true
417
+ *
418
+ * const a = {}; a.v = a;
419
+ * const b = {}; b.v = b;
420
+ * R.equals(a, b); //=> true
421
+ */
422
+
423
+ var equals =
424
+ /*#__PURE__*/
425
+ _curry2(function equals(a, b) {
426
+ return _equals(a, b, [], []);
427
+ });
428
+
429
+ var equals$1 = equals;
430
+
431
+ function _isObject(x) {
432
+ return Object.prototype.toString.call(x) === '[object Object]';
433
+ }
434
+
435
+ /**
436
+ * Returns the empty value of its argument's type. Ramda defines the empty
437
+ * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other
438
+ * types are supported if they define `<Type>.empty`,
439
+ * `<Type>.prototype.empty` or implement the
440
+ * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).
441
+ *
442
+ * Dispatches to the `empty` method of the first argument, if present.
443
+ *
444
+ * @func
445
+ * @memberOf R
446
+ * @since v0.3.0
447
+ * @category Function
448
+ * @sig a -> a
449
+ * @param {*} x
450
+ * @return {*}
451
+ * @example
452
+ *
453
+ * R.empty(Just(42)); //=> Nothing()
454
+ * R.empty([1, 2, 3]); //=> []
455
+ * R.empty('unicorns'); //=> ''
456
+ * R.empty({x: 1, y: 2}); //=> {}
457
+ */
458
+
459
+ var empty =
460
+ /*#__PURE__*/
461
+ _curry1(function empty(x) {
462
+ return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : _isArray(x) ? [] : _isString(x) ? '' : _isObject(x) ? {} : _isArguments$1(x) ? function () {
463
+ return arguments;
464
+ }() : void 0 // else
465
+ ;
466
+ });
467
+
468
+ var empty$1 = empty;
469
+
470
+ /**
471
+ * Returns `true` if the given value is its type's empty value; `false`
472
+ * otherwise.
473
+ *
474
+ * @func
475
+ * @memberOf R
476
+ * @since v0.1.0
477
+ * @category Logic
478
+ * @sig a -> Boolean
479
+ * @param {*} x
480
+ * @return {Boolean}
481
+ * @see R.empty
482
+ * @example
483
+ *
484
+ * R.isEmpty([1, 2, 3]); //=> false
485
+ * R.isEmpty([]); //=> true
486
+ * R.isEmpty(''); //=> true
487
+ * R.isEmpty(null); //=> false
488
+ * R.isEmpty({}); //=> true
489
+ * R.isEmpty({length: 0}); //=> false
490
+ */
491
+
492
+ var isEmpty =
493
+ /*#__PURE__*/
494
+ _curry1(function isEmpty(x) {
495
+ return x != null && equals$1(x, empty$1(x));
496
+ });
497
+
498
+ var isEmpty$1 = isEmpty;
499
+
500
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Fri, 03 Feb 2023 15:57:56 GMT\n */\nol {\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n[role=grid i] {\n position: relative;\n z-index: 0;\n display: grid;\n margin: auto;\n grid-template-areas: \". column-headers\" \"row-headers calendar\";\n grid-template-columns: min-content auto;\n inline-size: max(100%, 500px);\n min-inline-size: 880px;\n}\n\n.row-headers {\n display: grid;\n grid-area: row-headers;\n grid-template-rows: repeat(24, 1fr);\n margin-inline-end: 2px;\n}\n.row-headers > [role=rowheader i] {\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n}\n.row-headers > [role=rowheader i] > time {\n font: var(--vvd-typography-base-condensed);\n font-size: small;\n line-height: 1;\n text-transform: uppercase;\n white-space: nowrap;\n}\n\n.calendar-row {\n display: contents;\n}\n\n.calendar-grid-presentation {\n display: grid;\n overflow: hidden;\n background: var(--vvd-color-surface-2dp);\n border-radius: 6px;\n counter-reset: listing;\n filter: var(--vvd-shadow-surface-2dp);\n gap: 1px;\n grid-area: calendar;\n grid-auto-flow: column;\n grid-template: repeat(24, 1fr)/repeat(7, 1fr);\n}\n\n.hours {\n display: contents;\n}\n.hours > [role=listitem i] {\n position: relative;\n grid-column: 1/8;\n grid-row: var(--row);\n min-block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) + 8));\n pointer-events: none;\n}\n.hours > [role=listitem i]:not(:first-child)::after {\n position: absolute;\n border-block-end: var(--vvd-color-neutral-100) 1px solid;\n content: \"\";\n inline-size: 100%;\n margin-block-start: -1px;\n}\n.hours > [role=listitem i]:nth-child(24n+1) {\n --row: 1;\n}\n.hours > [role=listitem i]:nth-child(24n+2) {\n --row: 2;\n}\n.hours > [role=listitem i]:nth-child(24n+3) {\n --row: 3;\n}\n.hours > [role=listitem i]:nth-child(24n+4) {\n --row: 4;\n}\n.hours > [role=listitem i]:nth-child(24n+5) {\n --row: 5;\n}\n.hours > [role=listitem i]:nth-child(24n+6) {\n --row: 6;\n}\n.hours > [role=listitem i]:nth-child(24n+7) {\n --row: 7;\n}\n.hours > [role=listitem i]:nth-child(24n+8) {\n --row: 8;\n}\n.hours > [role=listitem i]:nth-child(24n+9) {\n --row: 9;\n}\n.hours > [role=listitem i]:nth-child(24n+10) {\n --row: 10;\n}\n.hours > [role=listitem i]:nth-child(24n+11) {\n --row: 11;\n}\n.hours > [role=listitem i]:nth-child(24n+12) {\n --row: 12;\n}\n.hours > [role=listitem i]:nth-child(24n+13) {\n --row: 13;\n}\n.hours > [role=listitem i]:nth-child(24n+14) {\n --row: 14;\n}\n.hours > [role=listitem i]:nth-child(24n+15) {\n --row: 15;\n}\n.hours > [role=listitem i]:nth-child(24n+16) {\n --row: 16;\n}\n.hours > [role=listitem i]:nth-child(24n+17) {\n --row: 17;\n}\n.hours > [role=listitem i]:nth-child(24n+18) {\n --row: 18;\n}\n.hours > [role=listitem i]:nth-child(24n+19) {\n --row: 19;\n}\n.hours > [role=listitem i]:nth-child(24n+20) {\n --row: 20;\n}\n.hours > [role=listitem i]:nth-child(24n+21) {\n --row: 21;\n}\n.hours > [role=listitem i]:nth-child(24n+22) {\n --row: 22;\n}\n.hours > [role=listitem i]:nth-child(24n+23) {\n --row: 23;\n}\n.hours > [role=listitem i]:nth-child(24n+24) {\n --row: 24;\n}\n\n[role=gridcell i] {\n display: grid;\n gap: 1px;\n grid-auto-flow: column;\n}\n\n[role=gridcell i],\n[role=columnheader i],\n[role=columnheader i] [role=button i] {\n position: relative;\n}\n[role=gridcell i]::before,\n[role=columnheader i]::before,\n[role=columnheader i] [role=button i]::before {\n position: absolute;\n z-index: -1;\n background-color: var(--vvd-color-information-400);\n content: \"\";\n}\n@supports (inset: 0) {\n [role=gridcell i]::before,\n[role=columnheader i]::before,\n[role=columnheader i] [role=button i]::before {\n inset: 0;\n }\n}\n@supports not (inset: 0) {\n [role=gridcell i]::before,\n[role=columnheader i]::before,\n[role=columnheader i] [role=button i]::before {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n[role=gridcell i]:focus,\n[role=columnheader i]:focus,\n[role=columnheader i] [role=button i]:focus {\n outline: none;\n}\n[role=gridcell i]:not(:focus-visible)::before,\n[role=columnheader i]:not(:focus-visible)::before,\n[role=columnheader i] [role=button i]:not(:focus-visible)::before {\n display: none;\n}\n\n.columns {\n display: contents;\n}\n.columns > [role=gridcell i] {\n position: relative;\n grid-column: var(--column);\n grid-row: 1/25;\n}\n.columns > [role=gridcell i]:nth-child(1) {\n --column: 1;\n}\n.columns > [role=gridcell i]:nth-child(2) {\n --column: 2;\n}\n.columns > [role=gridcell i]:nth-child(3) {\n --column: 3;\n}\n.columns > [role=gridcell i]:nth-child(4) {\n --column: 4;\n}\n.columns > [role=gridcell i]:nth-child(5) {\n --column: 5;\n}\n.columns > [role=gridcell i]:nth-child(6) {\n --column: 6;\n}\n.columns > [role=gridcell i]:nth-child(7) {\n --column: 7;\n}\n.columns > [role=gridcell i]:not(:first-child)::after {\n position: absolute;\n block-size: 100%;\n border-inline-end: var(--vvd-color-neutral-100) 1px solid;\n content: \"\";\n margin-inline-start: -1px;\n}\n\n.column-headers {\n display: grid;\n grid-area: column-headers;\n grid-template-columns: repeat(7, 1fr);\n}\n.column-headers [role=columnheader i] h2 {\n display: grid;\n align-items: baseline;\n margin: 0;\n font: var(--vvd-typography-heading-4);\n grid-template-columns: 1fr auto 1fr;\n}\n.column-headers [role=columnheader i] h2 > em {\n font: inherit;\n inline-size: min-content;\n}\n@supports (inset: 0) {\n .column-headers [role=columnheader i] h2 > em {\n inset-inline-start: 0;\n }\n}\n@supports not (inset: 0) {\n .column-headers [role=columnheader i] h2 > em {\n left: 0;\n }\n}\n.column-headers [role=columnheader i] h2 > small {\n font: var(--vvd-typography-base-condensed);\n text-transform: uppercase;\n}";
501
+
502
+ const ARROW_UP = 'ArrowUp';
503
+ const ARROW_RIGHT = 'ArrowRight';
504
+ const ARROW_DOWN = 'ArrowDown';
505
+ const ARROW_LEFT = 'ArrowLeft';
506
+ function isCellOrHeader(el) {
507
+ return el instanceof HTMLElement && (el.matches('[role="gridcell"i]') || el.matches('[role="columnheader"i]'));
508
+ }
509
+ const getCellOrHeader = f => f.matches('[role="columnheader"i]') ? '[role="gridcell"i]' : '[role="columnheader"i]';
510
+ function getNextFocusableGridElement(key, activeElement) {
511
+ if (activeElement.parentNode instanceof HTMLElement) {
512
+ switch (key) {
513
+ case ARROW_RIGHT:
514
+ return activeElement.nextElementSibling || activeElement.parentNode.firstElementChild;
515
+ case ARROW_LEFT:
516
+ return activeElement.previousElementSibling || activeElement.parentNode.lastElementChild;
517
+ case ARROW_UP:
518
+ case ARROW_DOWN:
519
+ {
520
+ const {
521
+ children
522
+ } = activeElement.parentNode;
523
+ const i = Array.from(children).indexOf(activeElement);
524
+ return this.shadowRoot.querySelector(`${getCellOrHeader(activeElement)}:nth-child(${i + 1})`);
525
+ }
526
+ }
527
+ }
528
+ }
529
+ function getHeaderDescendantGridCell(key, activeElement) {
530
+ if (key !== ARROW_DOWN) {
531
+ return;
532
+ }
533
+ const header = activeElement.closest('[role="columnheader"i]');
534
+ const columnHeaders = this.shadowRoot.querySelectorAll('[role="columnheader"i]');
535
+ const i = Array.from(columnHeaders).indexOf(header);
536
+ return this.shadowRoot.querySelector(`[role="gridcell"i]:nth-child(${i + 1})`);
537
+ }
538
+
539
+ function getDay(el) {
540
+ const cellOrHeader = el.closest('[role="gridcell"i], [role="columnheader"i]');
541
+ if (cellOrHeader) {
542
+ const {
543
+ parentElement
544
+ } = cellOrHeader;
545
+ if (parentElement) {
546
+ return parentElement.children && Array.from(parentElement.children).indexOf(cellOrHeader);
547
+ }
548
+ }
549
+ }
550
+ function getHour(e, el, hours) {
551
+ const rowHeaderOrCell = el.closest('[role="rowheader"], [role="gridcell"i]');
552
+ if (rowHeaderOrCell) {
553
+ const DOMRect = rowHeaderOrCell.getBoundingClientRect();
554
+ const offsetY = e.clientY - DOMRect.y;
555
+ const hourHeight = DOMRect.height / hours;
556
+ const hour = offsetY / hourHeight;
557
+ return Math.round((hour + Number.EPSILON) * 100) / 100;
558
+ }
559
+ }
560
+ const getEventContext = function getEventContext(e) {
561
+ if (!(e instanceof KeyboardEvent || e instanceof MouseEvent)) {
562
+ throw new Error('Invalid event. Event must be instance of KeyboardEvent or MouseEvent');
563
+ }
564
+ const [el] = e.composedPath();
565
+ if (!(el && el instanceof HTMLElement && this.shadowRoot.contains(el))) {
566
+ throw new Error('Invalid event. Event must contain a target object which is a direct descendant of calendar');
567
+ }
568
+ const day = getDay(el);
569
+ let hour;
570
+ if (e instanceof MouseEvent) {
571
+ hour = getHour(e, el, this._hours);
572
+ }
573
+ const context = Object.assign(Object.assign({}, day != undefined && {
574
+ day
575
+ }), hour != undefined && {
576
+ hour
577
+ });
578
+ return not$1(isEmpty$1(context)) ? context : null;
579
+ };
580
+
581
+ var _Calendar_instances, _Calendar_activeCalendarEvent_get;
582
+ class Calendar extends FoundationElement {
583
+ constructor() {
584
+ super(...arguments);
585
+ _Calendar_instances.add(this);
586
+ this.hour12 = false;
587
+ this._hours = 24;
588
+ this._days = 7;
589
+ this.hoursAsDatetime = Array.from({
590
+ length: this._hours - 1
591
+ }).fill(new Date(new Date().setHours(0, 0, 0))).map((d, i) => new Date(d.setHours(++i)));
592
+ this._generateDaysArr = dateArr => {
593
+ if (dateArr.length == this._days) {
594
+ return dateArr;
595
+ }
596
+ const lastDate = new Date(dateArr[dateArr.length - 1]);
597
+ lastDate.setDate(lastDate.getDate() + 1);
598
+ return this._generateDaysArr([...dateArr, lastDate]);
599
+ };
600
+ this.getEventContext = getEventContext;
601
+ }
602
+ getCalendarEventContainingCell(calendarEvent) {
603
+ const slotName = calendarEvent.getAttribute('slot');
604
+ const gridCell = this.shadowRoot.querySelector(`slot[name="${slotName}"i]`);
605
+ return gridCell.parentElement;
606
+ }
607
+ arrowKeysInteractions(key) {
608
+ const {
609
+ activeElement
610
+ } = this.shadowRoot;
611
+ let focusNext;
612
+ if (isCellOrHeader(activeElement)) {
613
+ focusNext = getNextFocusableGridElement.call(this, key, activeElement);
614
+ } else if (__classPrivateFieldGet(this, _Calendar_instances, "a", _Calendar_activeCalendarEvent_get)) {
615
+ focusNext = this.getCalendarEventContainingCell(__classPrivateFieldGet(this, _Calendar_instances, "a", _Calendar_activeCalendarEvent_get));
616
+ } else if (activeElement === null || activeElement === void 0 ? void 0 : activeElement.matches('em[role="button"i]')) {
617
+ focusNext = getHeaderDescendantGridCell.call(this, key, activeElement);
618
+ } else {
619
+ focusNext = this.shadowRoot.querySelector('[role="columnheader"i]');
620
+ }
621
+ this.activateElement(focusNext);
622
+ }
623
+ activateElement(el) {
624
+ const onBlur = ({
625
+ target
626
+ }) => target.setAttribute('tabindex', '-1');
627
+ el === null || el === void 0 ? void 0 : el.addEventListener('blur', onBlur, {
628
+ once: true
629
+ });
630
+ el === null || el === void 0 ? void 0 : el.setAttribute('tabindex', '0');
631
+ el === null || el === void 0 ? void 0 : el.focus();
632
+ }
633
+ onKeydown({
634
+ key
635
+ }) {
636
+ const isArrow = [ARROW_UP, ARROW_RIGHT, ARROW_DOWN, ARROW_LEFT].some(predefinedKey => predefinedKey == key);
637
+ if (isArrow) {
638
+ this.arrowKeysInteractions(key);
639
+ }
640
+ return !isArrow;
641
+ }
642
+ }
643
+ _Calendar_instances = new WeakSet(), _Calendar_activeCalendarEvent_get = function _Calendar_activeCalendarEvent_get() {
644
+ const {
645
+ activeElement
646
+ } = document;
647
+ return activeElement instanceof CalendarEvent ? activeElement : null;
648
+ };
649
+ __decorate([attr, __metadata("design:type", Object)], Calendar.prototype, "datetime", void 0);
650
+ __decorate([attr({
651
+ attribute: 'start-day'
652
+ }), __metadata("design:type", String)], Calendar.prototype, "startDay", void 0);
653
+ __decorate([attr, __metadata("design:type", Object)], Calendar.prototype, "locales", void 0);
654
+ __decorate([attr({
655
+ mode: 'boolean'
656
+ }), __metadata("design:type", Object)], Calendar.prototype, "hour12", void 0);
657
+
658
+ function getValidDateString(date) {
659
+ const twoDigit = num => `0${num}`.slice(-2);
660
+ return `${date.getFullYear()}-${twoDigit(date.getMonth() + 1)}-${twoDigit(date.getDate())}`;
661
+ }
662
+ const weekdaysMap = new Map([['sunday', 0], ['monday', 1]]);
663
+ function getFirstDateOfTheWeek(date = new Date(), startDay) {
664
+ date = new Date(date);
665
+ let num = weekdaysMap.get(startDay);
666
+ num !== null && num !== void 0 ? num : num = 1;
667
+ const day = date.getDate() - (date.getDay() + 7 - num) % 7;
668
+ return new Date(date.setDate(day));
669
+ }
670
+
671
+ let _2 = t => t,
672
+ _t,
673
+ _t2,
674
+ _t3,
675
+ _t4,
676
+ _t5,
677
+ _t6,
678
+ _t7;
679
+ const HoursTemplate = () => {
680
+ return html(_t || (_t = _2`
681
+ <div class="row-headers" role="presentation">
682
+ ${0}
683
+ </div>`), repeat(x => x.hoursAsDatetime, html(_t2 || (_t2 = _2`<span role="rowheader">
684
+ <time datetime="${0}">
685
+ ${0}
686
+ </time>
687
+ </span>`), (x, c) => new Intl.DateTimeFormat(c.parent.locales, {
688
+ hour: 'numeric',
689
+ minute: 'numeric',
690
+ hour12: false
691
+ }).format(x), (x, c) => new Intl.DateTimeFormat(c.parent.locales, {
692
+ hour: 'numeric',
693
+ hour12: c.parent.hour12
694
+ }).format(x))));
695
+ };
696
+ const DaysTemplate = () => {
697
+ return html(_t3 || (_t3 = _2`
698
+ <div class="column-headers" role="row">
699
+ ${0}
700
+ </div>`), repeat(x => x._generateDaysArr([getFirstDateOfTheWeek(x.datetime, x.startDay)]), html(_t4 || (_t4 = _2`
701
+ <div role="columnheader" tabindex="-1">
702
+ <time datetime=${0}>
703
+ <h2>
704
+ <!-- TODO add to column aria-labelledby or describedby to count
705
+ events and related day e.g. "3 events, Sunday, March 8" -->
706
+ <em tabindex="0" role="button" aria-label=${0}>
707
+ ${0}
708
+ </em>
709
+ <small aria-hidden="true">
710
+ ${0}
711
+ </small>
712
+ </h2>
713
+ </time>
714
+ </div>`), x => getValidDateString(x), (x, c) => new Intl.DateTimeFormat(c.parent.locales, {
715
+ weekday: 'long',
716
+ month: 'long',
717
+ day: 'numeric'
718
+ }).format(x), (x, c) => new Intl.DateTimeFormat(c.parent.locales, {
719
+ day: '2-digit'
720
+ }).format(x), (x, c) => new Intl.DateTimeFormat(c.parent.locales, {
721
+ weekday: 'short'
722
+ }).format(x))));
723
+ };
724
+ const ColumnTemplate = html(_t5 || (_t5 = _2`
725
+ <div role="gridcell" tabindex="-1">
726
+ <slot name="day-${0}"></slot>
727
+ </div>
728
+ `), (_, c) => c.index);
729
+ const CalendarTemplate = () => html(_t6 || (_t6 = _2`
730
+ <div role="grid" @keydown=${0}>
731
+ ${0}
732
+ <div role="row" class="calendar-row">
733
+ ${0}
734
+ <div class="calendar-grid-presentation" role="presentation">
735
+ <div class="hours" role="list">
736
+ ${0}
737
+ </div>
738
+ <div class="columns" role="presentation">
739
+ ${0}
740
+ </div>
741
+ <slot></slot>
742
+ </div>
743
+ </div>
744
+ </div>
745
+ `), (x, c) => x.onKeydown(c.event), DaysTemplate, HoursTemplate, repeat(x => Array.from({
746
+ length: x.hoursAsDatetime.length + 1
747
+ }), html(_t7 || (_t7 = _2`
748
+ <div role="listitem"></div>`))), repeat(x => Array.from(Array(x._days)), ColumnTemplate, {
749
+ positioning: true
750
+ }));
751
+
752
+ const calendarDefinition = Calendar.compose({
753
+ baseName: 'calendar',
754
+ template: CalendarTemplate,
755
+ styles: css_248z,
756
+ shadowOptions: {
757
+ delegatesFocus: true
758
+ }
759
+ });
760
+ const calendarRegistries = [calendarDefinition()];
761
+ const registerCalendar = registerFactory(calendarRegistries);
762
+
763
+ export { calendarRegistries as a, calendarDefinition as c, registerCalendar as r };