@esri/calcite-components 1.0.0-next.318 → 1.0.0-next.321

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 (122) hide show
  1. package/dist/calcite/assets/calcite-icon/centerAlign16.json +1 -0
  2. package/dist/calcite/assets/calcite-icon/centerAlign24.json +1 -0
  3. package/dist/calcite/assets/calcite-icon/centerAlign32.json +1 -0
  4. package/dist/calcite/assets/calcite-icon/convert16.json +1 -0
  5. package/dist/calcite/assets/calcite-icon/convert24.json +1 -0
  6. package/dist/calcite/assets/calcite-icon/convert32.json +1 -0
  7. package/dist/calcite/assets/calcite-icon/formDropdown16.json +1 -0
  8. package/dist/calcite/assets/calcite-icon/formDropdown24.json +1 -0
  9. package/dist/calcite/assets/calcite-icon/formDropdown32.json +1 -0
  10. package/dist/calcite/assets/calcite-icon/language16.json +1 -0
  11. package/dist/calcite/assets/calcite-icon/language24.json +1 -0
  12. package/dist/calcite/assets/calcite-icon/language32.json +1 -0
  13. package/dist/calcite/assets/calcite-icon/languageTranslate16.json +1 -0
  14. package/dist/calcite/assets/calcite-icon/languageTranslate24.json +1 -0
  15. package/dist/calcite/assets/calcite-icon/languageTranslate32.json +1 -0
  16. package/dist/calcite/assets/calcite-icon/leftAlign16.json +1 -0
  17. package/dist/calcite/assets/calcite-icon/leftAlign24.json +1 -0
  18. package/dist/calcite/assets/calcite-icon/leftAlign32.json +1 -0
  19. package/dist/calcite/assets/calcite-icon/terminal16.json +1 -0
  20. package/dist/calcite/assets/calcite-icon/terminal24.json +1 -0
  21. package/dist/calcite/assets/calcite-icon/terminal32.json +1 -0
  22. package/dist/calcite/assets/calcite-icon/touch16.json +1 -0
  23. package/dist/calcite/assets/calcite-icon/touch24.json +1 -0
  24. package/dist/calcite/assets/calcite-icon/touch32.json +1 -0
  25. package/dist/calcite/calcite.esm.js +1 -1
  26. package/dist/calcite/p-04bce033.entry.js +5 -0
  27. package/dist/calcite/p-1480eb2d.entry.js +5 -0
  28. package/dist/calcite/p-2cd9d307.entry.js +5 -0
  29. package/dist/calcite/{p-8b2d4eac.system.entry.js → p-4e95e13d.system.entry.js} +1 -1
  30. package/dist/calcite/p-58208234.system.entry.js +5 -0
  31. package/dist/calcite/p-6e050609.entry.js +5 -0
  32. package/dist/calcite/p-8e252799.system.js +1 -1
  33. package/dist/calcite/{p-f97e1a2d.entry.js → p-a57aa5d0.entry.js} +1 -1
  34. package/dist/calcite/p-ad617a5a.entry.js +5 -0
  35. package/dist/calcite/p-cb55c32c.system.entry.js +5 -0
  36. package/dist/calcite/p-ed82600e.system.entry.js +5 -0
  37. package/dist/calcite/{p-44a07313.system.entry.js → p-f7b5dd98.system.entry.js} +1 -1
  38. package/dist/calcite/p-fa9a1d8f.system.entry.js +5 -0
  39. package/dist/cjs/calcite-button.cjs.entry.js +2 -2
  40. package/dist/cjs/calcite-color-picker_3.cjs.entry.js +3 -3
  41. package/dist/cjs/calcite-combobox_3.cjs.entry.js +4 -1
  42. package/dist/cjs/calcite-input-time-picker_2.cjs.entry.js +349 -223
  43. package/dist/cjs/calcite-option_3.cjs.entry.js +3 -1
  44. package/dist/cjs/calcite-panel.cjs.entry.js +3 -3
  45. package/dist/cjs/calcite.cjs.js +1 -1
  46. package/dist/cjs/loader.cjs.js +1 -1
  47. package/dist/collection/components/calcite-button/calcite-button.js +3 -2
  48. package/dist/collection/components/calcite-combobox/calcite-combobox.js +4 -1
  49. package/dist/collection/components/calcite-icon/assets/calcite-icon/centerAlign16.json +1 -0
  50. package/dist/collection/components/calcite-icon/assets/calcite-icon/centerAlign24.json +1 -0
  51. package/dist/collection/components/calcite-icon/assets/calcite-icon/centerAlign32.json +1 -0
  52. package/dist/collection/components/calcite-icon/assets/calcite-icon/convert16.json +1 -0
  53. package/dist/collection/components/calcite-icon/assets/calcite-icon/convert24.json +1 -0
  54. package/dist/collection/components/calcite-icon/assets/calcite-icon/convert32.json +1 -0
  55. package/dist/collection/components/calcite-icon/assets/calcite-icon/formDropdown16.json +1 -0
  56. package/dist/collection/components/calcite-icon/assets/calcite-icon/formDropdown24.json +1 -0
  57. package/dist/collection/components/calcite-icon/assets/calcite-icon/formDropdown32.json +1 -0
  58. package/dist/collection/components/calcite-icon/assets/calcite-icon/language16.json +1 -0
  59. package/dist/collection/components/calcite-icon/assets/calcite-icon/language24.json +1 -0
  60. package/dist/collection/components/calcite-icon/assets/calcite-icon/language32.json +1 -0
  61. package/dist/collection/components/calcite-icon/assets/calcite-icon/languageTranslate16.json +1 -0
  62. package/dist/collection/components/calcite-icon/assets/calcite-icon/languageTranslate24.json +1 -0
  63. package/dist/collection/components/calcite-icon/assets/calcite-icon/languageTranslate32.json +1 -0
  64. package/dist/collection/components/calcite-icon/assets/calcite-icon/leftAlign16.json +1 -0
  65. package/dist/collection/components/calcite-icon/assets/calcite-icon/leftAlign24.json +1 -0
  66. package/dist/collection/components/calcite-icon/assets/calcite-icon/leftAlign32.json +1 -0
  67. package/dist/collection/components/calcite-icon/assets/calcite-icon/terminal16.json +1 -0
  68. package/dist/collection/components/calcite-icon/assets/calcite-icon/terminal24.json +1 -0
  69. package/dist/collection/components/calcite-icon/assets/calcite-icon/terminal32.json +1 -0
  70. package/dist/collection/components/calcite-icon/assets/calcite-icon/touch16.json +1 -0
  71. package/dist/collection/components/calcite-icon/assets/calcite-icon/touch24.json +1 -0
  72. package/dist/collection/components/calcite-icon/assets/calcite-icon/touch32.json +1 -0
  73. package/dist/collection/components/calcite-input-time-picker/calcite-input-time-picker.js +81 -76
  74. package/dist/collection/components/calcite-option/calcite-option.js +3 -1
  75. package/dist/collection/components/calcite-panel/calcite-panel.js +3 -3
  76. package/dist/collection/components/calcite-time-picker/calcite-time-picker.css +56 -91
  77. package/dist/collection/components/calcite-time-picker/calcite-time-picker.js +254 -289
  78. package/dist/collection/components/calcite-time-picker/resources.js +15 -9
  79. package/dist/collection/utils/time.js +144 -36
  80. package/dist/components/calcite-button2.js +2 -2
  81. package/dist/components/calcite-color-picker-swatch2.js +3 -3
  82. package/dist/components/calcite-combobox.js +4 -1
  83. package/dist/components/calcite-input-time-picker.js +51 -48
  84. package/dist/components/calcite-option.js +3 -1
  85. package/dist/components/calcite-panel.js +3 -3
  86. package/dist/components/calcite-time-picker2.js +320 -187
  87. package/dist/custom-elements/index.js +366 -235
  88. package/dist/esm/calcite-button.entry.js +2 -2
  89. package/dist/esm/calcite-color-picker_3.entry.js +3 -3
  90. package/dist/esm/calcite-combobox_3.entry.js +4 -1
  91. package/dist/esm/calcite-input-time-picker_2.entry.js +349 -223
  92. package/dist/esm/calcite-option_3.entry.js +3 -1
  93. package/dist/esm/calcite-panel.entry.js +3 -3
  94. package/dist/esm/calcite.js +1 -1
  95. package/dist/esm/loader.js +1 -1
  96. package/dist/esm-es5/calcite-button.entry.js +1 -1
  97. package/dist/esm-es5/calcite-color-picker_3.entry.js +1 -1
  98. package/dist/esm-es5/calcite-combobox_3.entry.js +1 -1
  99. package/dist/esm-es5/calcite-input-time-picker_2.entry.js +2 -2
  100. package/dist/esm-es5/calcite-option_3.entry.js +1 -1
  101. package/dist/esm-es5/calcite-panel.entry.js +1 -1
  102. package/dist/esm-es5/calcite.js +1 -1
  103. package/dist/esm-es5/loader.js +1 -1
  104. package/dist/extras/docs-json.json +22 -100
  105. package/dist/types/components/calcite-input-time-picker/calcite-input-time-picker.d.ts +12 -4
  106. package/dist/types/components/calcite-panel/calcite-panel.d.ts +1 -1
  107. package/dist/types/components/calcite-time-picker/calcite-time-picker.d.ts +35 -23
  108. package/dist/types/components/calcite-time-picker/resources.d.ts +14 -8
  109. package/dist/types/components.d.ts +16 -40
  110. package/dist/types/utils/time.d.ts +18 -5
  111. package/hydrate/index.js +384 -243
  112. package/package.json +10 -10
  113. package/readme.md +2 -2
  114. package/dist/calcite/p-12a9599d.system.entry.js +0 -5
  115. package/dist/calcite/p-2b137143.system.entry.js +0 -5
  116. package/dist/calcite/p-35c5e6bd.entry.js +0 -5
  117. package/dist/calcite/p-88784777.system.entry.js +0 -5
  118. package/dist/calcite/p-9634f89d.entry.js +0 -5
  119. package/dist/calcite/p-a98e5444.system.entry.js +0 -5
  120. package/dist/calcite/p-e1da1646.entry.js +0 -5
  121. package/dist/calcite/p-e78e743b.entry.js +0 -5
  122. package/dist/calcite/p-fccc1605.entry.js +0 -5
package/hydrate/index.js CHANGED
@@ -9224,11 +9224,11 @@ class CalciteButton {
9224
9224
  render() {
9225
9225
  const dir = getElementDir(this.el);
9226
9226
  const Tag = this.childElType;
9227
- const loader = (hAsync("div", { class: CSS$I.buttonLoader }, this.hasLoader ? (hAsync("calcite-loader", { active: true, class: this.loading ? CSS$I.loadingIn : CSS$I.loadingOut, inline: true, label: this.intlLoading, scale: "m" })) : null));
9227
+ const loaderNode = this.hasLoader ? (hAsync("div", { class: CSS$I.buttonLoader }, hAsync("calcite-loader", { active: true, class: this.loading ? CSS$I.loadingIn : CSS$I.loadingOut, inline: true, label: this.intlLoading, scale: "m" }))) : null;
9228
9228
  const iconStartEl = (hAsync("calcite-icon", { class: { [CSS$I.icon]: true, [CSS$I.iconStart]: true }, flipRtl: this.iconFlipRtl === "start" || this.iconFlipRtl === "both", icon: this.iconStart, scale: "s" }));
9229
9229
  const iconEndEl = (hAsync("calcite-icon", { class: { [CSS$I.icon]: true, [CSS$I.iconEnd]: true }, flipRtl: this.iconFlipRtl === "end" || this.iconFlipRtl === "both", icon: this.iconEnd, scale: "s" }));
9230
9230
  const contentEl = (hAsync("span", { class: CSS$I.content }, hAsync("slot", null)));
9231
- return (hAsync(Tag, { "aria-label": getLabelText(this), class: { [CSS_UTILITY.rtl]: dir === "rtl", [CSS$I.contentSlotted]: this.hasContent }, disabled: this.disabled || this.loading, href: this.childElType === "a" && this.href, name: this.childElType === "button" && this.name, onClick: this.handleClick, ref: (el) => (this.childEl = el), rel: this.childElType === "a" && this.rel, tabIndex: this.disabled || this.loading ? -1 : null, target: this.childElType === "a" && this.target, type: this.childElType === "button" && this.type }, loader, this.iconStart ? iconStartEl : null, this.hasContent ? contentEl : null, this.iconEnd ? iconEndEl : null));
9231
+ return (hAsync(Tag, { "aria-label": getLabelText(this), class: { [CSS_UTILITY.rtl]: dir === "rtl", [CSS$I.contentSlotted]: this.hasContent }, disabled: this.disabled || this.loading, href: this.childElType === "a" && this.href, name: this.childElType === "button" && this.name, onClick: this.handleClick, ref: (el) => (this.childEl = el), rel: this.childElType === "a" && this.rel, tabIndex: this.disabled || this.loading ? -1 : null, target: this.childElType === "a" && this.target, type: this.childElType === "button" && this.type }, loaderNode, this.iconStart ? iconStartEl : null, this.hasContent ? contentEl : null, this.iconEnd ? iconEndEl : null));
9232
9232
  }
9233
9233
  //--------------------------------------------------------------------------
9234
9234
  //
@@ -10104,7 +10104,7 @@ cs.get.rgb = function (string) {
10104
10104
 
10105
10105
  var abbr = /^#([a-f0-9]{3,4})$/i;
10106
10106
  var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;
10107
- var rgba = /^rgba?\(\s*([+-]?\d+)\s*,?\s*([+-]?\d+)\s*,?\s*([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
10107
+ var rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
10108
10108
  var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
10109
10109
  var keyword = /^(\w+)$/;
10110
10110
 
@@ -10191,7 +10191,7 @@ cs.get.hsl = function (string) {
10191
10191
  return null;
10192
10192
  }
10193
10193
 
10194
- var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?[\d\.]+)\s*)?\)$/;
10194
+ var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
10195
10195
  var match = string.match(hsl);
10196
10196
 
10197
10197
  if (match) {
@@ -10212,7 +10212,7 @@ cs.get.hwb = function (string) {
10212
10212
  return null;
10213
10213
  }
10214
10214
 
10215
- var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/;
10215
+ var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
10216
10216
  var match = string.match(hwb);
10217
10217
 
10218
10218
  if (match) {
@@ -15200,7 +15200,9 @@ class CalciteCombobox {
15200
15200
  };
15201
15201
  this.setInactiveIfNotContained = (event) => {
15202
15202
  const composedPath = event.composedPath();
15203
- if (!this.active || composedPath.includes(this.el) || composedPath.includes(this.referenceEl)) {
15203
+ if ((!this.active && !this.open) ||
15204
+ composedPath.includes(this.el) ||
15205
+ composedPath.includes(this.referenceEl)) {
15204
15206
  return;
15205
15207
  }
15206
15208
  if (this.allowCustomValues && this.text) {
@@ -15215,6 +15217,7 @@ class CalciteCombobox {
15215
15217
  this.updateActiveItemIndex(-1);
15216
15218
  }
15217
15219
  this.active = false;
15220
+ this.open = false;
15218
15221
  };
15219
15222
  this.setMenuEl = (el) => {
15220
15223
  this.menuEl = el;
@@ -19816,6 +19819,72 @@ class CalciteInputMessage {
19816
19819
  }
19817
19820
 
19818
19821
  const maxTenthForMinuteAndSecond = 5;
19822
+ function createLocaleDateTimeFormatter(locale, includeSeconds = true) {
19823
+ try {
19824
+ const options = {
19825
+ hour: "2-digit",
19826
+ minute: "2-digit",
19827
+ timeZone: "UTC"
19828
+ };
19829
+ if (includeSeconds) {
19830
+ options.second = "2-digit";
19831
+ }
19832
+ return new Intl.DateTimeFormat(locale, options);
19833
+ }
19834
+ catch (e) {
19835
+ throw new Error(`Invalid locale supplied while attempting to create a DateTime formatter: ${locale}`);
19836
+ }
19837
+ }
19838
+ function formatTimePart(number) {
19839
+ const numberAsString = number.toString();
19840
+ return number >= 0 && number <= 9 ? numberAsString.padStart(2, "0") : numberAsString;
19841
+ }
19842
+ function formatTimeString(value) {
19843
+ if (!isValidTime(value)) {
19844
+ return null;
19845
+ }
19846
+ const [hourString, minuteString, secondString] = value.split(":");
19847
+ const hour = formatTimePart(parseInt(hourString));
19848
+ const minute = formatTimePart(parseInt(minuteString));
19849
+ if (secondString) {
19850
+ const second = formatTimePart(parseInt(secondString));
19851
+ return `${hour}:${minute}:${second}`;
19852
+ }
19853
+ return `${hour}:${minute}`;
19854
+ }
19855
+ function getLocaleHourCycle(locale) {
19856
+ const formatter = createLocaleDateTimeFormatter(locale);
19857
+ const parts = formatter.formatToParts(new Date(Date.UTC(0, 0, 0, 0, 0, 0)));
19858
+ return getLocalizedTimePart("meridiem", parts) ? "12" : "24";
19859
+ }
19860
+ function getLocalizedTimePart(part, parts) {
19861
+ var _a, _b, _c, _d;
19862
+ if (!part || !parts) {
19863
+ return null;
19864
+ }
19865
+ if (part === "hourSuffix") {
19866
+ const hourIndex = parts.indexOf(parts.find(({ type }) => type === "hour"));
19867
+ const minuteIndex = parts.indexOf(parts.find(({ type }) => type === "minute"));
19868
+ const hourSuffix = parts[hourIndex + 1];
19869
+ return hourSuffix && hourSuffix.type === "literal" && minuteIndex - hourIndex === 2
19870
+ ? ((_a = hourSuffix.value) === null || _a === void 0 ? void 0 : _a.trim()) || null
19871
+ : null;
19872
+ }
19873
+ if (part === "minuteSuffix") {
19874
+ const minuteIndex = parts.indexOf(parts.find(({ type }) => type === "minute"));
19875
+ const secondIndex = parts.indexOf(parts.find(({ type }) => type === "second"));
19876
+ const minuteSuffix = parts[minuteIndex + 1];
19877
+ return minuteSuffix && minuteSuffix.type === "literal" && secondIndex - minuteIndex === 2
19878
+ ? ((_b = minuteSuffix.value) === null || _b === void 0 ? void 0 : _b.trim()) || null
19879
+ : null;
19880
+ }
19881
+ if (part === "secondSuffix") {
19882
+ const secondIndex = parts.indexOf(parts.find(({ type }) => type === "second"));
19883
+ const secondSuffix = parts[secondIndex + 1];
19884
+ return secondSuffix && secondSuffix.type === "literal" ? ((_c = secondSuffix.value) === null || _c === void 0 ? void 0 : _c.trim()) || null : null;
19885
+ }
19886
+ return ((_d = parts.find(({ type }) => (part == "meridiem" ? type === "dayPeriod" : type === part))) === null || _d === void 0 ? void 0 : _d.value) || null;
19887
+ }
19819
19888
  function getMeridiem(hour) {
19820
19889
  if (!isValidNumber(hour)) {
19821
19890
  return null;
@@ -19823,51 +19892,93 @@ function getMeridiem(hour) {
19823
19892
  const hourAsNumber = parseInt(hour);
19824
19893
  return hourAsNumber >= 0 && hourAsNumber <= 11 ? "AM" : "PM";
19825
19894
  }
19826
- function getMeridiemHour(hour) {
19827
- if (!isValidNumber(hour)) {
19828
- return null;
19895
+ function isValidTime(value) {
19896
+ if (!value || value.startsWith(":") || value.endsWith(":")) {
19897
+ return false;
19829
19898
  }
19830
- const hourAsNumber = parseInt(hour);
19831
- if (hourAsNumber === 0) {
19832
- return "12";
19899
+ const splitValue = value.split(":");
19900
+ const validLength = splitValue.length > 1 && splitValue.length < 4;
19901
+ if (!validLength) {
19902
+ return false;
19903
+ }
19904
+ const [hour, minute, second] = splitValue;
19905
+ const hourAsNumber = parseInt(splitValue[0]);
19906
+ const minuteAsNumber = parseInt(splitValue[1]);
19907
+ const secondAsNumber = parseInt(splitValue[2]);
19908
+ const hourValid = isValidNumber(hour) && hourAsNumber >= 0 && hourAsNumber < 24;
19909
+ const minuteValid = isValidNumber(minute) && minuteAsNumber >= 0 && minuteAsNumber < 60;
19910
+ const secondValid = isValidNumber(second) && secondAsNumber >= 0 && secondAsNumber < 60;
19911
+ if ((hourValid && minuteValid && !second) || (hourValid && minuteValid && secondValid)) {
19912
+ return true;
19833
19913
  }
19834
- return hourAsNumber > 12 ? formatTimePart(hourAsNumber - 12) : hour;
19835
19914
  }
19836
- function parseTimeString(value) {
19837
- const timeString = formatTimeString(value);
19838
- const [hour, minute, second] = timeString ? timeString.split(":") : [null, null, null];
19839
- return {
19840
- hour,
19841
- minute,
19842
- second: second || (hour && minute ? "00" : null)
19843
- };
19915
+ function isValidTimePart(value, part) {
19916
+ if (part === "meridiem") {
19917
+ return value === "AM" || value === "PM";
19918
+ }
19919
+ if (!isValidNumber(value)) {
19920
+ return false;
19921
+ }
19922
+ const valueAsNumber = Number(value);
19923
+ return part === "hour" ? valueAsNumber >= 0 && valueAsNumber < 24 : valueAsNumber >= 0 && valueAsNumber < 60;
19844
19924
  }
19845
- function formatTimeString(value) {
19846
- if (!value || value.endsWith(":") || value.startsWith(":")) {
19925
+ function localizeTimePart(value, part, locale) {
19926
+ if (!isValidTimePart(value, part)) {
19927
+ return;
19928
+ }
19929
+ const valueAsNumber = parseInt(value);
19930
+ const date = new Date(Date.UTC(0, 0, 0, part === "hour" ? valueAsNumber : part === "meridiem" ? (value === "AM" ? 0 : 12) : 0, part === "minute" ? valueAsNumber : 0, part === "second" ? valueAsNumber : 0));
19931
+ if (!date) {
19932
+ return;
19933
+ }
19934
+ const formatter = createLocaleDateTimeFormatter(locale);
19935
+ const parts = formatter.formatToParts(date);
19936
+ return getLocalizedTimePart(part, parts);
19937
+ }
19938
+ function localizeTimeString(value, locale = "en", includeSeconds = true) {
19939
+ if (!isValidTime(value)) {
19847
19940
  return null;
19848
19941
  }
19849
- const splitValue = value.split(":");
19850
- if (splitValue.length > 1) {
19851
- const [hour, minute, second] = splitValue;
19852
- const hourAsNumber = parseInt(splitValue[0]);
19853
- const minuteAsNumber = parseInt(splitValue[1]);
19854
- const secondAsNumber = parseInt(splitValue[2]);
19855
- const hourValid = isValidNumber(hour) && hourAsNumber >= 0 && hourAsNumber < 24;
19856
- const minuteValid = isValidNumber(minute) && minuteAsNumber >= 0 && minuteAsNumber < 60;
19857
- const secondValid = isValidNumber(second) && secondAsNumber >= 0 && secondAsNumber < 60;
19858
- if ((hourValid && minuteValid && !second) || (hourValid && minuteValid && secondValid)) {
19859
- let newValue = `${formatTimePart(hourAsNumber)}:${formatTimePart(minuteAsNumber)}`;
19860
- if (secondValid) {
19861
- newValue = `${newValue}:${formatTimePart(secondAsNumber)}`;
19862
- }
19863
- return newValue;
19864
- }
19942
+ const { hour, minute, second = "0" } = parseTimeString(value);
19943
+ const dateFromTimeString = new Date(Date.UTC(0, 0, 0, parseInt(hour), parseInt(minute), parseInt(second)));
19944
+ const formatter = createLocaleDateTimeFormatter(locale, includeSeconds);
19945
+ return (formatter === null || formatter === void 0 ? void 0 : formatter.format(dateFromTimeString)) || null;
19946
+ }
19947
+ function localizeTimeStringToParts(value, locale = "en") {
19948
+ if (!isValidTime(value)) {
19949
+ return null;
19950
+ }
19951
+ const { hour, minute, second = "0" } = parseTimeString(value);
19952
+ const dateFromTimeString = new Date(Date.UTC(0, 0, 0, parseInt(hour), parseInt(minute), parseInt(second)));
19953
+ if (dateFromTimeString) {
19954
+ const formatter = createLocaleDateTimeFormatter(locale);
19955
+ const parts = formatter.formatToParts(dateFromTimeString);
19956
+ return {
19957
+ localizedHour: getLocalizedTimePart("hour", parts),
19958
+ localizedHourSuffix: getLocalizedTimePart("hourSuffix", parts),
19959
+ localizedMinute: getLocalizedTimePart("minute", parts),
19960
+ localizedMinuteSuffix: getLocalizedTimePart("minuteSuffix", parts),
19961
+ localizedSecond: getLocalizedTimePart("second", parts),
19962
+ localizedSecondSuffix: getLocalizedTimePart("secondSuffix", parts),
19963
+ localizedMeridiem: getLocalizedTimePart("meridiem", parts)
19964
+ };
19865
19965
  }
19866
19966
  return null;
19867
19967
  }
19868
- function formatTimePart(number) {
19869
- const numberAsString = number.toString();
19870
- return number >= 0 && number <= 9 ? numberAsString.padStart(2, "0") : numberAsString;
19968
+ function parseTimeString(value) {
19969
+ if (isValidTime(value)) {
19970
+ const [hour, minute, second] = value.split(":");
19971
+ return {
19972
+ hour,
19973
+ minute,
19974
+ second
19975
+ };
19976
+ }
19977
+ return {
19978
+ hour: null,
19979
+ minute: null,
19980
+ second: null
19981
+ };
19871
19982
  }
19872
19983
 
19873
19984
  const calciteInputTimePickerCss = "@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}/*!@:root*/.sc-calcite-input-time-picker:root{--calcite-animation-timing:300ms}/*!@.calcite-animate*/.calcite-animate.sc-calcite-input-time-picker{opacity:0;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:var(--calcite-animation-timing);animation-duration:var(--calcite-animation-timing)}/*!@.calcite-animate__in*/.calcite-animate__in.sc-calcite-input-time-picker{-webkit-animation-name:in;animation-name:in}/*!@.calcite-animate__in-down*/.calcite-animate__in-down.sc-calcite-input-time-picker{-webkit-animation-name:in-down;animation-name:in-down}/*!@.calcite-animate__in-up*/.calcite-animate__in-up.sc-calcite-input-time-picker{-webkit-animation-name:in-up;animation-name:in-up}/*!@.calcite-animate__in-scale*/.calcite-animate__in-scale.sc-calcite-input-time-picker{-webkit-animation-name:in-scale;animation-name:in-scale}/*!@:root*/.sc-calcite-input-time-picker:root{--calcite-popper-transition:150ms ease-in-out}/*!@:host([hidden])*/[hidden].sc-calcite-input-time-picker-h{display:none}/*!@:host*/.sc-calcite-input-time-picker-h{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}/*!@::slotted(input[slot=hidden-form-input])*/.sc-calcite-input-time-picker-s>input[slot=hidden-form-input]{bottom:0 !important;left:0 !important;margin:0 !important;opacity:0 !important;outline:none !important;padding:0 !important;position:absolute !important;right:0 !important;top:0 !important;-webkit-transform:none !important;transform:none !important;-webkit-appearance:none !important;z-index:-1 !important}";
@@ -19885,8 +19996,11 @@ class CalciteInputTimePicker {
19885
19996
  this.active = false;
19886
19997
  /** The disabled state of the time input */
19887
19998
  this.disabled = false;
19888
- /** Format of the hour value (12-hour or 24-hour) (this will be replaced by locale eventually) */
19889
- this.hourDisplayFormat = "12";
19999
+ /**
20000
+ * BCP 47 language tag for desired language and country format
20001
+ * @internal
20002
+ */
20003
+ this.locale = document.documentElement.lang || navigator.language || "en";
19890
20004
  /**
19891
20005
  * When true, makes the component required for form-submission.
19892
20006
  *
@@ -19910,56 +20024,60 @@ class CalciteInputTimePicker {
19910
20024
  //--------------------------------------------------------------------------
19911
20025
  this.calciteInputBlurHandler = () => {
19912
20026
  this.active = false;
19913
- const newValue = formatTimeString(this.calciteInputEl.value) || formatTimeString(this.value);
19914
- if (newValue !== this.calciteInputEl.value) {
19915
- this.setInputValue(newValue);
19916
- }
20027
+ const shouldIncludeSeconds = this.shouldIncludeSeconds();
20028
+ const localizedInputValue = localizeTimeString(this.calciteInputEl.value, this.locale, shouldIncludeSeconds);
20029
+ this.setInputValue(localizedInputValue || localizeTimeString(this.value, this.locale, shouldIncludeSeconds));
19917
20030
  };
19918
20031
  this.calciteInputFocusHandler = () => {
19919
20032
  this.active = true;
19920
20033
  };
19921
20034
  this.calciteInputInputHandler = (event) => {
19922
- this.setValue({ value: event.detail.value });
20035
+ const target = event.target;
20036
+ this.setValue({ value: target.value });
20037
+ };
20038
+ this.timePickerChangeHandler = (event) => {
20039
+ event.stopPropagation();
20040
+ const target = event.target;
20041
+ const value = target.value;
20042
+ this.setValue({ value, origin: "time-picker" });
19923
20043
  };
19924
20044
  this.setCalciteInputEl = (el) => {
19925
20045
  this.calciteInputEl = el;
19926
20046
  };
20047
+ this.setCalciteTimePickerEl = (el) => {
20048
+ this.calciteTimePickerEl = el;
20049
+ };
19927
20050
  this.setInputValue = (newInputValue) => {
19928
20051
  if (!this.calciteInputEl) {
19929
20052
  return;
19930
20053
  }
19931
- if (this.hourDisplayFormat === "12") {
19932
- const { hour, minute, second } = parseTimeString(newInputValue);
19933
- this.calciteInputEl.value = newInputValue
19934
- ? `${getMeridiemHour(hour)}:${minute}${this.step !== 60 ? ":" + second : ""} ${getMeridiem(hour)}`
19935
- : null;
19936
- }
19937
- else {
19938
- this.calciteInputEl.value = newInputValue;
19939
- }
20054
+ this.calciteInputEl.value = newInputValue;
19940
20055
  };
19941
20056
  this.setValue = ({ value, origin = "input" }) => {
19942
20057
  const previousValue = this.value;
19943
- const validatedNewValue = formatTimeString(value);
20058
+ const newValue = formatTimeString(value);
20059
+ const newLocalizedValue = localizeTimeString(newValue, this.locale, this.shouldIncludeSeconds());
19944
20060
  this.internalValueChange = origin !== "external" && origin !== "loading";
19945
20061
  const shouldEmit = origin !== "loading" &&
19946
20062
  origin !== "external" &&
19947
20063
  ((value !== this.previousValidValue && !value) ||
19948
- !!(!this.previousValidValue && validatedNewValue) ||
19949
- (validatedNewValue !== this.previousValidValue && validatedNewValue));
20064
+ !!(!this.previousValidValue && newValue) ||
20065
+ (newValue !== this.previousValidValue && newValue));
19950
20066
  if (value) {
19951
20067
  if (shouldEmit) {
19952
- this.previousValidValue = validatedNewValue;
20068
+ this.previousValidValue = newValue;
19953
20069
  }
19954
- if (validatedNewValue && validatedNewValue !== this.value) {
19955
- this.value = validatedNewValue;
20070
+ if (newValue && newValue !== this.value) {
20071
+ this.value = newValue;
19956
20072
  }
20073
+ this.localizedValue = newLocalizedValue;
19957
20074
  }
19958
20075
  else {
19959
20076
  this.value = value;
20077
+ this.localizedValue = null;
19960
20078
  }
19961
20079
  if (origin === "time-picker" || origin === "external") {
19962
- this.setInputValue(validatedNewValue);
20080
+ this.setInputValue(newLocalizedValue);
19963
20081
  }
19964
20082
  if (shouldEmit) {
19965
20083
  const changeEvent = this.calciteInputTimePickerChange.emit();
@@ -19970,17 +20088,26 @@ class CalciteInputTimePicker {
19970
20088
  this.previousValidValue = previousValue;
19971
20089
  }
19972
20090
  else {
19973
- this.previousValidValue = validatedNewValue;
20091
+ this.previousValidValue = newValue;
19974
20092
  }
19975
20093
  }
19976
20094
  };
19977
20095
  }
20096
+ localeWatcher(newLocale) {
20097
+ this.setInputValue(localizeTimeString(this.value, newLocale, this.shouldIncludeSeconds()));
20098
+ }
19978
20099
  valueWatcher(newValue) {
19979
20100
  if (!this.internalValueChange) {
19980
20101
  this.setValue({ value: newValue, origin: "external" });
19981
20102
  }
19982
20103
  this.internalValueChange = false;
19983
20104
  }
20105
+ clickHandler(event) {
20106
+ if (event.composedPath().includes(this.calciteTimePickerEl)) {
20107
+ return;
20108
+ }
20109
+ this.setFocus();
20110
+ }
19984
20111
  keyUpHandler(event) {
19985
20112
  if (event.key === "Escape" && this.active) {
19986
20113
  this.active = false;
@@ -19991,21 +20118,6 @@ class CalciteInputTimePicker {
19991
20118
  event.stopPropagation();
19992
20119
  this.active = false;
19993
20120
  }
19994
- timePickerChangeHandler(event) {
19995
- event.preventDefault();
19996
- event.stopPropagation();
19997
- if (event.detail) {
19998
- const { hour, minute, second } = event.detail;
19999
- let value;
20000
- if (hour && minute) {
20001
- value = second && this.step !== 60 ? `${hour}:${minute}:${second}` : `${hour}:${minute}`;
20002
- }
20003
- else {
20004
- value = "";
20005
- }
20006
- this.setValue({ value, origin: "time-picker" });
20007
- }
20008
- }
20009
20121
  timePickerFocusHandler(event) {
20010
20122
  event.preventDefault();
20011
20123
  event.stopPropagation();
@@ -20028,6 +20140,9 @@ class CalciteInputTimePicker {
20028
20140
  onLabelClick() {
20029
20141
  this.setFocus();
20030
20142
  }
20143
+ shouldIncludeSeconds() {
20144
+ return this.step < 60;
20145
+ }
20031
20146
  //--------------------------------------------------------------------------
20032
20147
  //
20033
20148
  // Lifecycle
@@ -20035,15 +20150,13 @@ class CalciteInputTimePicker {
20035
20150
  //--------------------------------------------------------------------------
20036
20151
  connectedCallback() {
20037
20152
  if (this.value) {
20038
- this.setValue({ value: this.value, origin: "loading" });
20153
+ this.setValue({ value: isValidTime(this.value) ? this.value : undefined, origin: "loading" });
20039
20154
  }
20040
20155
  connectLabel(this);
20041
20156
  connectForm(this);
20042
20157
  }
20043
20158
  componentDidLoad() {
20044
- if (this.calciteInputEl.value !== this.value) {
20045
- this.setInputValue(this.value);
20046
- }
20159
+ this.setInputValue(this.localizedValue);
20047
20160
  }
20048
20161
  disconnectedCallback() {
20049
20162
  disconnectLabel(this);
@@ -20055,12 +20168,12 @@ class CalciteInputTimePicker {
20055
20168
  //
20056
20169
  // --------------------------------------------------------------------------
20057
20170
  render() {
20058
- const { hour, minute, second } = parseTimeString(this.value);
20059
20171
  const popoverId = `${this.referenceElementId}-popover`;
20060
- return (hAsync(Host, null, hAsync("div", { "aria-controls": popoverId, "aria-haspopup": "dialog", "aria-label": this.name, "aria-owns": popoverId, id: this.referenceElementId, role: "combobox" }, hAsync("calcite-input", { disabled: this.disabled, icon: "clock", label: getLabelText(this), onCalciteInputBlur: this.calciteInputBlurHandler, onCalciteInputFocus: this.calciteInputFocusHandler, onCalciteInputInput: this.calciteInputInputHandler, ref: this.setCalciteInputEl, scale: this.scale, step: this.step })), hAsync("calcite-popover", { id: popoverId, label: "Time Picker", open: this.active || false, referenceElement: this.referenceElementId }, hAsync("calcite-time-picker", { hour: hour, "hour-display-format": this.hourDisplayFormat, intlHour: this.intlHour, intlHourDown: this.intlHourDown, intlHourUp: this.intlHourUp, intlMeridiem: this.intlMeridiem, intlMeridiemDown: this.intlMeridiemDown, intlMeridiemUp: this.intlMeridiemUp, intlMinute: this.intlMinute, intlMinuteDown: this.intlMinuteDown, intlMinuteUp: this.intlMinuteUp, intlSecond: this.intlSecond, intlSecondDown: this.intlSecondDown, intlSecondUp: this.intlSecondUp, minute: minute, scale: this.scale, second: second, step: this.step })), hAsync(HiddenFormInputSlot, { component: this })));
20172
+ return (hAsync(Host, null, hAsync("div", { "aria-controls": popoverId, "aria-haspopup": "dialog", "aria-label": this.name, "aria-owns": popoverId, id: this.referenceElementId, role: "combobox" }, hAsync("calcite-input", { disabled: this.disabled, icon: "clock", label: getLabelText(this), onCalciteInputBlur: this.calciteInputBlurHandler, onCalciteInputFocus: this.calciteInputFocusHandler, onCalciteInputInput: this.calciteInputInputHandler, ref: this.setCalciteInputEl, scale: this.scale, step: this.step })), hAsync("calcite-popover", { id: popoverId, label: "Time Picker", open: this.active || false, referenceElement: this.referenceElementId }, hAsync("calcite-time-picker", { intlHour: this.intlHour, intlHourDown: this.intlHourDown, intlHourUp: this.intlHourUp, intlMeridiem: this.intlMeridiem, intlMeridiemDown: this.intlMeridiemDown, intlMeridiemUp: this.intlMeridiemUp, intlMinute: this.intlMinute, intlMinuteDown: this.intlMinuteDown, intlMinuteUp: this.intlMinuteUp, intlSecond: this.intlSecond, intlSecondDown: this.intlSecondDown, intlSecondUp: this.intlSecondUp, lang: this.locale, onCalciteTimePickerChange: this.timePickerChangeHandler, ref: this.setCalciteTimePickerEl, scale: this.scale, step: this.step, value: this.value })), hAsync(HiddenFormInputSlot, { component: this })));
20061
20173
  }
20062
20174
  get el() { return getElement(this); }
20063
20175
  static get watchers() { return {
20176
+ "locale": ["localeWatcher"],
20064
20177
  "value": ["valueWatcher"]
20065
20178
  }; }
20066
20179
  static get style() { return calciteInputTimePickerCss; }
@@ -20070,7 +20183,6 @@ class CalciteInputTimePicker {
20070
20183
  "$members$": {
20071
20184
  "active": [1540],
20072
20185
  "disabled": [516],
20073
- "hourDisplayFormat": [1, "hour-display-format"],
20074
20186
  "intlHour": [1, "intl-hour"],
20075
20187
  "intlHourDown": [1, "intl-hour-down"],
20076
20188
  "intlHourUp": [1, "intl-hour-up"],
@@ -20083,14 +20195,16 @@ class CalciteInputTimePicker {
20083
20195
  "intlSecond": [1, "intl-second"],
20084
20196
  "intlSecondDown": [1, "intl-second-down"],
20085
20197
  "intlSecondUp": [1, "intl-second-up"],
20198
+ "locale": [1025, "lang"],
20086
20199
  "name": [1],
20087
20200
  "required": [516],
20088
20201
  "scale": [513],
20089
20202
  "step": [2],
20090
20203
  "value": [1025],
20204
+ "localizedValue": [32],
20091
20205
  "setFocus": [64]
20092
20206
  },
20093
- "$listeners$": [[0, "keyup", "keyUpHandler"], [0, "calciteTimePickerBlur", "timePickerBlurHandler"], [0, "calciteTimePickerChange", "timePickerChangeHandler"], [0, "calciteTimePickerFocus", "timePickerFocusHandler"]],
20207
+ "$listeners$": [[0, "click", "clickHandler"], [0, "keyup", "keyUpHandler"], [0, "calciteTimePickerBlur", "timePickerBlurHandler"], [0, "calciteTimePickerFocus", "timePickerFocusHandler"]],
20094
20208
  "$lazyBundleId$": "-",
20095
20209
  "$attrsToReflect$": [["active", "active"], ["disabled", "disabled"], ["required", "required"], ["scale", "scale"]]
20096
20210
  }; }
@@ -21099,8 +21213,10 @@ class CalciteOption {
21099
21213
  var _a;
21100
21214
  this.ensureTextContentDependentProps();
21101
21215
  (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.observe(this.el, {
21216
+ attributeFilter: ["label", "value"],
21217
+ characterData: true,
21102
21218
  childList: true,
21103
- attributeFilter: ["label", "value"]
21219
+ subtree: true
21104
21220
  });
21105
21221
  }
21106
21222
  disconnectedCallback() {
@@ -21474,7 +21590,7 @@ class CalcitePanel {
21474
21590
  this.setBackRef = (node) => {
21475
21591
  this.backButtonEl = node;
21476
21592
  };
21477
- this.panelKeyUpHandler = (event) => {
21593
+ this.panelKeyDownHandler = (event) => {
21478
21594
  if (event.key === "Escape") {
21479
21595
  this.dismiss();
21480
21596
  }
@@ -21591,12 +21707,12 @@ class CalcitePanel {
21591
21707
  return (hAsync("div", { class: CSS$j.fabContainer }, hAsync("slot", { name: SLOTS$c.fab })));
21592
21708
  }
21593
21709
  render() {
21594
- const { dismissed, disabled, dismissible, el, loading, panelKeyUpHandler } = this;
21710
+ const { dismissed, disabled, dismissible, el, loading, panelKeyDownHandler } = this;
21595
21711
  const rtl = getElementDir(el) === "rtl";
21596
21712
  const panelNode = (hAsync("article", { "aria-busy": loading.toString(), class: {
21597
21713
  [CSS$j.container]: true,
21598
21714
  [CSS_UTILITY.rtl]: rtl
21599
- }, hidden: dismissible && dismissed, onKeyUp: panelKeyUpHandler, ref: this.setContainerRef, tabIndex: dismissible ? 0 : -1 }, this.renderHeaderNode(), this.renderContent(), this.renderFooterSlottedContent() || this.renderFooterActions()));
21715
+ }, hidden: dismissible && dismissed, onKeyDown: panelKeyDownHandler, ref: this.setContainerRef, tabIndex: dismissible ? 0 : -1 }, this.renderHeaderNode(), this.renderContent(), this.renderFooterSlottedContent() || this.renderFooterActions()));
21600
21716
  return (hAsync(Fragment, null, loading || disabled ? hAsync("calcite-scrim", { loading: loading }) : null, panelNode));
21601
21717
  }
21602
21718
  get el() { return getElement(this); }
@@ -29853,26 +29969,32 @@ class CalciteTileSelectGroup {
29853
29969
  }
29854
29970
 
29855
29971
  const CSS$5 = {
29972
+ button: "button",
29856
29973
  buttonBottomLeft: "button--bottom-left",
29857
29974
  buttonBottomRight: "button--bottom-right",
29858
- button: "button",
29859
- delimiter: "delimiter",
29860
- hour: "hour",
29861
29975
  buttonHourDown: "button--hour-down",
29862
29976
  buttonHourUp: "button--hour-up",
29863
- input: "input",
29864
- meridiem: "meridiem",
29865
29977
  buttonMeridiemDown: "button--meridiem-down",
29866
29978
  buttonMeridiemUp: "button--meridiem-up",
29867
- minute: "minute",
29868
29979
  buttonMinuteDown: "button--minute-down",
29869
29980
  buttonMinuteUp: "button--minute-up",
29870
- second: "second",
29871
29981
  buttonSecondDown: "button--second-down",
29872
29982
  buttonSecondUp: "button--second-up",
29873
- timePicker: "time-picker",
29874
29983
  buttonTopLeft: "button--top-left",
29875
- buttonTopRight: "button--top-right"
29984
+ buttonTopRight: "button--top-right",
29985
+ column: "column",
29986
+ delimiter: "delimiter",
29987
+ hour: "hour",
29988
+ input: "input",
29989
+ meridiem: "meridiem",
29990
+ minute: "minute",
29991
+ second: "second",
29992
+ showMeridiem: "show-meridiem",
29993
+ showSecond: "show-second",
29994
+ "scale-s": "scale-s",
29995
+ "scale-m": "scale-m",
29996
+ "scale-l": "scale-l",
29997
+ timePicker: "time-picker"
29876
29998
  };
29877
29999
  const TEXT$2 = {
29878
30000
  hour: "Hour",
@@ -29889,8 +30011,11 @@ const TEXT$2 = {
29889
30011
  secondUp: "Increase second"
29890
30012
  };
29891
30013
 
29892
- const calciteTimePickerCss = "@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}/*!@:root*/.sc-calcite-time-picker:root{--calcite-animation-timing:300ms}/*!@.calcite-animate*/.calcite-animate.sc-calcite-time-picker{opacity:0;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:var(--calcite-animation-timing);animation-duration:var(--calcite-animation-timing)}/*!@.calcite-animate__in*/.calcite-animate__in.sc-calcite-time-picker{-webkit-animation-name:in;animation-name:in}/*!@.calcite-animate__in-down*/.calcite-animate__in-down.sc-calcite-time-picker{-webkit-animation-name:in-down;animation-name:in-down}/*!@.calcite-animate__in-up*/.calcite-animate__in-up.sc-calcite-time-picker{-webkit-animation-name:in-up;animation-name:in-up}/*!@.calcite-animate__in-scale*/.calcite-animate__in-scale.sc-calcite-time-picker{-webkit-animation-name:in-scale;animation-name:in-scale}/*!@:root*/.sc-calcite-time-picker:root{--calcite-popper-transition:150ms ease-in-out}/*!@:host([hidden])*/[hidden].sc-calcite-time-picker-h{display:none}/*!@:host*/.sc-calcite-time-picker-h{color:var(--calcite-ui-text-1);display:inline-block;font-weight:var(--calcite-font-weight-medium);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}/*!@.time-picker*/.time-picker.sc-calcite-time-picker{-webkit-box-shadow:0 6px 20px -4px rgba(0, 0, 0, 0.1), 0 4px 12px -2px rgba(0, 0, 0, 0.08);box-shadow:0 6px 20px -4px rgba(0, 0, 0, 0.1), 0 4px 12px -2px rgba(0, 0, 0, 0.08);-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;border-radius:var(--calcite-border-radius)}/*!@span*/span.sc-calcite-time-picker{-ms-flex-align:center;align-items:center;background-color:var(--calcite-ui-foreground-1);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center}/*!@span.button*/span.button.sc-calcite-time-picker{cursor:pointer}/*!@span.button:hover, span.button:focus*/span.button.sc-calcite-time-picker:hover,span.button.sc-calcite-time-picker:focus{background-color:var(--calcite-ui-foreground-2)}/*!@span.button:focus*/span.button.sc-calcite-time-picker:focus{outline:2px solid transparent;outline-offset:2px}/*!@span.button:active*/span.button.sc-calcite-time-picker:active{background-color:var(--calcite-ui-foreground-3)}/*!@span.button.top-left*/span.button.top-left.sc-calcite-time-picker{border-top-left-radius:var(--calcite-border-radius)}/*!@span.button.bottom-left*/span.button.bottom-left.sc-calcite-time-picker{border-bottom-left-radius:var(--calcite-border-radius)}/*!@span.button.top-right*/span.button.top-right.sc-calcite-time-picker{border-top-right-radius:var(--calcite-border-radius)}/*!@span.button.bottom-right*/span.button.bottom-right.sc-calcite-time-picker{border-bottom-right-radius:var(--calcite-border-radius)}/*!@span.button calcite-icon*/span.button.sc-calcite-time-picker calcite-icon.sc-calcite-time-picker{color:var(--calcite-ui-text-3)}/*!@span.input*/span.input.sc-calcite-time-picker{font-weight:var(--calcite-font-weight-medium);position:relative}/*!@span.input:hover*/span.input.sc-calcite-time-picker:hover{-webkit-box-shadow:inset 0 0 0 2px var(--calcite-ui-foreground-2);box-shadow:inset 0 0 0 2px var(--calcite-ui-foreground-2)}/*!@span.input:focus, span.input:hover:focus*/span.input.sc-calcite-time-picker:focus,span.input.sc-calcite-time-picker:hover:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:inset 0 0 0 2px var(--calcite-ui-brand);box-shadow:inset 0 0 0 2px var(--calcite-ui-brand)}/*!@:host([scale=s])*/[scale=s].sc-calcite-time-picker-h{font-size:var(--calcite-font-size--1)}/*!@:host([scale=s]) span*/[scale=s].sc-calcite-time-picker-h span.sc-calcite-time-picker{height:24px;width:40px}/*!@:host([scale=s]) .delimiter*/[scale=s].sc-calcite-time-picker-h .delimiter.sc-calcite-time-picker{height:72px}/*!@:host([scale=s][hour-display-format=\"12\"]) .time-picker*/[scale=s][hour-display-format=\"12\"].sc-calcite-time-picker-h .time-picker.sc-calcite-time-picker{width:124.2px}/*!@:host([scale=s][hour-display-format=\"12\"]:not([step=\"60\"])) .time-picker*/[scale=s][hour-display-format=\"12\"].sc-calcite-time-picker-h:not([step=\"60\"]) .time-picker.sc-calcite-time-picker{width:168px}/*!@:host([scale=s][hour-display-format=\"24\"]) .time-picker*/[scale=s][hour-display-format=\"24\"].sc-calcite-time-picker-h .time-picker.sc-calcite-time-picker{width:84.2px}/*!@:host([scale=s][hour-display-format=\"24\"]:not([step=\"60\"])) .time-picker*/[scale=s][hour-display-format=\"24\"].sc-calcite-time-picker-h:not([step=\"60\"]) .time-picker.sc-calcite-time-picker{width:128.4px}/*!@:host([scale=m])*/[scale=m].sc-calcite-time-picker-h{font-size:var(--calcite-font-size-0)}/*!@:host([scale=m]) span*/[scale=m].sc-calcite-time-picker-h span.sc-calcite-time-picker{height:32px;width:44px}/*!@:host([scale=m]) .delimiter*/[scale=m].sc-calcite-time-picker-h .delimiter.sc-calcite-time-picker{height:96px}/*!@:host([scale=m][hour-display-format=\"12\"]) .time-picker*/[scale=m][hour-display-format=\"12\"].sc-calcite-time-picker-h .time-picker.sc-calcite-time-picker{width:136.8px}/*!@:host([scale=m][hour-display-format=\"12\"]:not([step=\"60\"])) .time-picker*/[scale=m][hour-display-format=\"12\"].sc-calcite-time-picker-h:not([step=\"60\"]) .time-picker.sc-calcite-time-picker{width:186px}/*!@:host([scale=m][hour-display-format=\"24\"]) .time-picker*/[scale=m][hour-display-format=\"24\"].sc-calcite-time-picker-h .time-picker.sc-calcite-time-picker{width:92.8px}/*!@:host([scale=m][hour-display-format=\"24\"]:not([step=\"60\"])) .time-picker*/[scale=m][hour-display-format=\"24\"].sc-calcite-time-picker-h:not([step=\"60\"]) .time-picker.sc-calcite-time-picker{width:141.6px}/*!@:host([scale=l])*/[scale=l].sc-calcite-time-picker-h{font-size:var(--calcite-font-size-1)}/*!@:host([scale=l]) span*/[scale=l].sc-calcite-time-picker-h span.sc-calcite-time-picker{height:48px;width:64px}/*!@:host([scale=l]) .delimiter*/[scale=l].sc-calcite-time-picker-h .delimiter.sc-calcite-time-picker{height:144px}/*!@:host([scale=l][hour-display-format=\"12\"]) .time-picker*/[scale=l][hour-display-format=\"12\"].sc-calcite-time-picker-h .time-picker.sc-calcite-time-picker{width:198px}/*!@:host([scale=l][hour-display-format=\"12\"]:not([step=\"60\"])) .time-picker*/[scale=l][hour-display-format=\"12\"].sc-calcite-time-picker-h:not([step=\"60\"]) .time-picker.sc-calcite-time-picker{width:268px}/*!@:host([scale=l][hour-display-format=\"24\"]) .time-picker*/[scale=l][hour-display-format=\"24\"].sc-calcite-time-picker-h .time-picker.sc-calcite-time-picker{width:134px}/*!@:host([scale=l][hour-display-format=\"24\"]:not([step=\"60\"])) .time-picker*/[scale=l][hour-display-format=\"24\"].sc-calcite-time-picker-h:not([step=\"60\"]) .time-picker.sc-calcite-time-picker{width:204px}";
30014
+ const calciteTimePickerCss = "@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}/*!@:root*/.sc-calcite-time-picker:root{--calcite-animation-timing:300ms}/*!@.calcite-animate*/.calcite-animate.sc-calcite-time-picker{opacity:0;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:var(--calcite-animation-timing);animation-duration:var(--calcite-animation-timing)}/*!@.calcite-animate__in*/.calcite-animate__in.sc-calcite-time-picker{-webkit-animation-name:in;animation-name:in}/*!@.calcite-animate__in-down*/.calcite-animate__in-down.sc-calcite-time-picker{-webkit-animation-name:in-down;animation-name:in-down}/*!@.calcite-animate__in-up*/.calcite-animate__in-up.sc-calcite-time-picker{-webkit-animation-name:in-up;animation-name:in-up}/*!@.calcite-animate__in-scale*/.calcite-animate__in-scale.sc-calcite-time-picker{-webkit-animation-name:in-scale;animation-name:in-scale}/*!@:root*/.sc-calcite-time-picker:root{--calcite-popper-transition:150ms ease-in-out}/*!@:host([hidden])*/[hidden].sc-calcite-time-picker-h{display:none}/*!@:host*/.sc-calcite-time-picker-h{display:inline-block}/*!@.time-picker*/.time-picker.sc-calcite-time-picker{background-color:var(--calcite-ui-foreground-1);display:-ms-flexbox;display:flex;font-weight:var(--calcite-font-weight-medium);-ms-flex-align:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-shadow:0 6px 20px -4px rgba(0, 0, 0, 0.1), 0 4px 12px -2px rgba(0, 0, 0, 0.08);box-shadow:0 6px 20px -4px rgba(0, 0, 0, 0.1), 0 4px 12px -2px rgba(0, 0, 0, 0.08);color:var(--calcite-ui-text-1);border-radius:var(--calcite-border-radius)}/*!@.time-picker .column*/.time-picker.sc-calcite-time-picker .column.sc-calcite-time-picker{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}/*!@.time-picker .button*/.time-picker.sc-calcite-time-picker .button.sc-calcite-time-picker{background-color:var(--calcite-ui-foreground-1);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}/*!@.time-picker .button:hover, .time-picker .button:focus*/.time-picker.sc-calcite-time-picker .button.sc-calcite-time-picker:hover,.time-picker.sc-calcite-time-picker .button.sc-calcite-time-picker:focus{background-color:var(--calcite-ui-foreground-2);outline:2px solid transparent;outline-offset:2px}/*!@.time-picker .button:active*/.time-picker.sc-calcite-time-picker .button.sc-calcite-time-picker:active{background-color:var(--calcite-ui-foreground-3)}/*!@.time-picker .button.top-left*/.time-picker.sc-calcite-time-picker .button.top-left.sc-calcite-time-picker{border-top-left-radius:var(--calcite-border-radius)}/*!@.time-picker .button.bottom-left*/.time-picker.sc-calcite-time-picker .button.bottom-left.sc-calcite-time-picker{border-bottom-left-radius:var(--calcite-border-radius)}/*!@.time-picker .button.top-right*/.time-picker.sc-calcite-time-picker .button.top-right.sc-calcite-time-picker{border-top-right-radius:var(--calcite-border-radius)}/*!@.time-picker .button.bottom-right*/.time-picker.sc-calcite-time-picker .button.bottom-right.sc-calcite-time-picker{border-bottom-right-radius:var(--calcite-border-radius)}/*!@.time-picker .button calcite-icon*/.time-picker.sc-calcite-time-picker .button.sc-calcite-time-picker calcite-icon.sc-calcite-time-picker{color:var(--calcite-ui-text-3)}/*!@.time-picker .input*/.time-picker.sc-calcite-time-picker .input.sc-calcite-time-picker{background-color:var(--calcite-ui-foreground-1);cursor:pointer;font-weight:var(--calcite-font-weight-medium);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}/*!@.time-picker .input:hover*/.time-picker.sc-calcite-time-picker .input.sc-calcite-time-picker:hover{-webkit-box-shadow:inset 0 0 0 2px var(--calcite-ui-foreground-2);box-shadow:inset 0 0 0 2px var(--calcite-ui-foreground-2)}/*!@.time-picker .input:focus, .time-picker .input:hover:focus*/.time-picker.sc-calcite-time-picker .input.sc-calcite-time-picker:focus,.time-picker.sc-calcite-time-picker .input.sc-calcite-time-picker:hover:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:inset 0 0 0 2px var(--calcite-ui-brand);box-shadow:inset 0 0 0 2px var(--calcite-ui-brand)}/*!@.time-picker.scale-s*/.time-picker.scale-s.sc-calcite-time-picker{font-size:var(--calcite-font-size--1)}/*!@.time-picker.scale-s .button,\n.time-picker.scale-s .input*/.time-picker.scale-s.sc-calcite-time-picker .button.sc-calcite-time-picker,.time-picker.scale-s.sc-calcite-time-picker .input.sc-calcite-time-picker{padding-left:0.75rem;padding-right:0.75rem;padding-top:0.25rem;padding-bottom:0.25rem}/*!@.time-picker.scale-s:not(.show-meridiem) .delimiter:last-child*/.time-picker.scale-s.sc-calcite-time-picker:not(.show-meridiem) .delimiter.sc-calcite-time-picker:last-child{-webkit-padding-end:0.75rem;padding-inline-end:0.75rem}/*!@.time-picker.scale-m*/.time-picker.scale-m.sc-calcite-time-picker{font-size:var(--calcite-font-size-0)}/*!@.time-picker.scale-m .button,\n.time-picker.scale-m .input*/.time-picker.scale-m.sc-calcite-time-picker .button.sc-calcite-time-picker,.time-picker.scale-m.sc-calcite-time-picker .input.sc-calcite-time-picker{padding-left:1rem;padding-right:1rem;padding-top:0.5rem;padding-bottom:0.5rem}/*!@.time-picker.scale-m:not(.show-meridiem) .delimiter:last-child*/.time-picker.scale-m.sc-calcite-time-picker:not(.show-meridiem) .delimiter.sc-calcite-time-picker:last-child{-webkit-padding-end:1rem;padding-inline-end:1rem}/*!@.time-picker.scale-l*/.time-picker.scale-l.sc-calcite-time-picker{font-size:var(--calcite-font-size-1)}/*!@.time-picker.scale-l .button,\n.time-picker.scale-l .input*/.time-picker.scale-l.sc-calcite-time-picker .button.sc-calcite-time-picker,.time-picker.scale-l.sc-calcite-time-picker .input.sc-calcite-time-picker{padding-left:1.25rem;padding-right:1.25rem;padding-top:0.75rem;padding-bottom:0.75rem}/*!@.time-picker.scale-l:not(.show-meridiem) .delimiter:last-child*/.time-picker.scale-l.sc-calcite-time-picker:not(.show-meridiem) .delimiter.sc-calcite-time-picker:last-child{-webkit-padding-end:1.25rem;padding-inline-end:1.25rem}";
29893
30015
 
30016
+ function capitalize(str) {
30017
+ return str.charAt(0).toUpperCase() + str.slice(1);
30018
+ }
29894
30019
  class CalciteTimePicker {
29895
30020
  constructor(hostRef) {
29896
30021
  registerInstance(this, hostRef);
@@ -29902,10 +30027,6 @@ class CalciteTimePicker {
29902
30027
  // Properties
29903
30028
  //
29904
30029
  //--------------------------------------------------------------------------
29905
- /** The hour value (24-hour format) */
29906
- this.hour = null;
29907
- /** Format of the hour value (12-hour or 24-hour) (this will be replaced by locale eventually) */
29908
- this.hourDisplayFormat = "12";
29909
30030
  /** aria-label for the hour input
29910
30031
  * @default "Hour"
29911
30032
  */
@@ -29954,35 +30075,25 @@ class CalciteTimePicker {
29954
30075
  * @default "Increase second"
29955
30076
  */
29956
30077
  this.intlSecondUp = TEXT$2.secondUp;
29957
- /** The minute value */
29958
- this.minute = null;
29959
- /** The second value */
29960
- this.second = null;
30078
+ /**
30079
+ * BCP 47 language tag for desired language and country format
30080
+ * @internal
30081
+ */
30082
+ this.locale = document.documentElement.lang || navigator.language || "en";
29961
30083
  /** The scale (size) of the time picker */
29962
30084
  this.scale = "m";
29963
30085
  /** number that specifies the granularity that the value must adhere to */
29964
30086
  this.step = 60;
29965
- this.timeChanged = false;
29966
- // --------------------------------------------------------------------------
29967
- //
29968
- // State
29969
- //
29970
- // --------------------------------------------------------------------------
29971
- /** The am/pm value */
29972
- this.meridiem = null;
29973
- this.displayHour = this.getDisplayHour();
29974
- // --------------------------------------------------------------------------
29975
- //
29976
- // Private Methods
29977
- //
29978
- // --------------------------------------------------------------------------
30087
+ /** The selected time in UTC */
30088
+ this.value = null;
30089
+ this.showSecond = this.step < 60;
29979
30090
  this.decrementHour = () => {
29980
30091
  const newHour = !this.hour ? 0 : this.hour === "00" ? 23 : parseInt(this.hour) - 1;
29981
- this.setTime("hour", newHour);
30092
+ this.setValuePart("hour", newHour);
29982
30093
  };
29983
30094
  this.decrementMeridiem = () => {
29984
30095
  const newMeridiem = this.meridiem === "PM" ? "AM" : "PM";
29985
- this.setTime("meridiem", newMeridiem);
30096
+ this.setValuePart("meridiem", newMeridiem);
29986
30097
  };
29987
30098
  this.decrementMinuteOrSecond = (key) => {
29988
30099
  let newValue;
@@ -29993,7 +30104,7 @@ class CalciteTimePicker {
29993
30104
  else {
29994
30105
  newValue = 59;
29995
30106
  }
29996
- this.setTime(key, newValue);
30107
+ this.setValuePart(key, newValue);
29997
30108
  };
29998
30109
  this.decrementMinute = () => {
29999
30110
  this.decrementMinuteOrSecond("minute");
@@ -30015,7 +30126,7 @@ class CalciteTimePicker {
30015
30126
  const keyAsNumber = parseInt(key);
30016
30127
  let newHour;
30017
30128
  if (isValidNumber(this.hour)) {
30018
- switch (this.hourDisplayFormat) {
30129
+ switch (this.hourCycle) {
30019
30130
  case "12":
30020
30131
  newHour =
30021
30132
  this.hour === "01" && keyAsNumber >= 0 && keyAsNumber <= 2
@@ -30038,13 +30149,13 @@ class CalciteTimePicker {
30038
30149
  else {
30039
30150
  newHour = keyAsNumber;
30040
30151
  }
30041
- this.setTime("hour", newHour);
30152
+ this.setValuePart("hour", newHour);
30042
30153
  }
30043
30154
  else {
30044
30155
  switch (key) {
30045
30156
  case "Backspace":
30046
30157
  case "Delete":
30047
- this.setTime("hour", null);
30158
+ this.setValuePart("hour", null);
30048
30159
  break;
30049
30160
  case "ArrowDown":
30050
30161
  event.preventDefault();
@@ -30068,7 +30179,7 @@ class CalciteTimePicker {
30068
30179
  };
30069
30180
  this.incrementMeridiem = () => {
30070
30181
  const newMeridiem = this.meridiem === "AM" ? "PM" : "AM";
30071
- this.setTime("meridiem", newMeridiem);
30182
+ this.setValuePart("meridiem", newMeridiem);
30072
30183
  };
30073
30184
  this.incrementHour = () => {
30074
30185
  const newHour = isValidNumber(this.hour)
@@ -30076,7 +30187,7 @@ class CalciteTimePicker {
30076
30187
  ? 0
30077
30188
  : parseInt(this.hour) + 1
30078
30189
  : 1;
30079
- this.setTime("hour", newHour);
30190
+ this.setValuePart("hour", newHour);
30080
30191
  };
30081
30192
  this.incrementMinuteOrSecond = (key) => {
30082
30193
  const newValue = isValidNumber(this[key])
@@ -30084,7 +30195,7 @@ class CalciteTimePicker {
30084
30195
  ? 0
30085
30196
  : parseInt(this[key]) + 1
30086
30197
  : 0;
30087
- this.setTime(key, newValue);
30198
+ this.setValuePart(key, newValue);
30088
30199
  };
30089
30200
  this.incrementMinute = () => {
30090
30201
  this.incrementMinuteOrSecond("minute");
@@ -30100,14 +30211,14 @@ class CalciteTimePicker {
30100
30211
  this.meridiemKeyDownHandler = (event) => {
30101
30212
  switch (event.key) {
30102
30213
  case "a":
30103
- this.setTime("meridiem", "AM");
30214
+ this.setValuePart("meridiem", "AM");
30104
30215
  break;
30105
30216
  case "p":
30106
- this.setTime("meridiem", "PM");
30217
+ this.setValuePart("meridiem", "PM");
30107
30218
  break;
30108
30219
  case "Backspace":
30109
30220
  case "Delete":
30110
- this.setTime("meridiem", null);
30221
+ this.setValuePart("meridiem", null);
30111
30222
  break;
30112
30223
  case "ArrowUp":
30113
30224
  event.preventDefault();
@@ -30148,13 +30259,13 @@ class CalciteTimePicker {
30148
30259
  else {
30149
30260
  newMinute = keyAsNumber;
30150
30261
  }
30151
- this.setTime("minute", newMinute);
30262
+ this.setValuePart("minute", newMinute);
30152
30263
  }
30153
30264
  else {
30154
30265
  switch (key) {
30155
30266
  case "Backspace":
30156
30267
  case "Delete":
30157
- this.setTime("minute", null);
30268
+ this.setValuePart("minute", null);
30158
30269
  break;
30159
30270
  case "ArrowDown":
30160
30271
  event.preventDefault();
@@ -30196,13 +30307,13 @@ class CalciteTimePicker {
30196
30307
  else {
30197
30308
  newSecond = keyAsNumber;
30198
30309
  }
30199
- this.setTime("second", newSecond);
30310
+ this.setValuePart("second", newSecond);
30200
30311
  }
30201
30312
  else {
30202
30313
  switch (key) {
30203
30314
  case "Backspace":
30204
30315
  case "Delete":
30205
- this.setTime("second", null);
30316
+ this.setValuePart("second", null);
30206
30317
  break;
30207
30318
  case "ArrowDown":
30208
30319
  event.preventDefault();
@@ -30224,59 +30335,96 @@ class CalciteTimePicker {
30224
30335
  this.incrementSecond();
30225
30336
  }
30226
30337
  };
30227
- this.setTime = (key, value, emit = true) => {
30228
- switch (key) {
30229
- default:
30230
- return;
30231
- case "hour":
30232
- this.hour = typeof value === "number" ? formatTimePart(value) : value;
30233
- break;
30234
- case "minute":
30235
- this.minute = typeof value === "number" ? formatTimePart(value) : value;
30236
- break;
30237
- case "second":
30238
- this.second = typeof value === "number" ? formatTimePart(value) : value;
30239
- break;
30240
- case "meridiem":
30241
- if (isValidNumber(this.hour)) {
30242
- const hourAsNumber = parseInt(this.hour);
30243
- switch (value) {
30244
- case "AM":
30245
- if (hourAsNumber >= 12) {
30246
- this.hour = formatTimePart(hourAsNumber - 12);
30247
- }
30248
- break;
30249
- case "PM":
30250
- if (hourAsNumber < 12) {
30251
- this.hour = formatTimePart(hourAsNumber + 12);
30252
- }
30253
- break;
30254
- }
30255
- this.meridiem = value;
30256
- }
30257
- else {
30258
- this.meridiem = value;
30338
+ this.setHourEl = (el) => (this.hourEl = el);
30339
+ this.setMeridiemEl = (el) => (this.meridiemEl = el);
30340
+ this.setMinuteEl = (el) => (this.minuteEl = el);
30341
+ this.setSecondEl = (el) => (this.secondEl = el);
30342
+ this.setValue = (value, emit = true) => {
30343
+ if (isValidTime(value)) {
30344
+ const { hour, minute, second } = parseTimeString(value);
30345
+ const { localizedHour, localizedHourSuffix, localizedMinute, localizedMinuteSuffix, localizedSecond, localizedSecondSuffix, localizedMeridiem } = localizeTimeStringToParts(value, this.locale);
30346
+ this.localizedHour = localizedHour;
30347
+ this.localizedHourSuffix = localizedHourSuffix;
30348
+ this.localizedMinute = localizedMinute;
30349
+ this.localizedMinuteSuffix = localizedMinuteSuffix;
30350
+ this.localizedSecond = localizedSecond;
30351
+ this.localizedSecondSuffix = localizedSecondSuffix;
30352
+ this.hour = hour;
30353
+ this.minute = minute;
30354
+ this.second = second;
30355
+ if (localizedMeridiem) {
30356
+ this.localizedMeridiem = localizedMeridiem;
30357
+ this.meridiem = getMeridiem(this.hour);
30358
+ }
30359
+ }
30360
+ else {
30361
+ this.hour = null;
30362
+ this.localizedHour = null;
30363
+ this.localizedHourSuffix = null;
30364
+ this.localizedMeridiem = null;
30365
+ this.localizedMinute = null;
30366
+ this.localizedMinuteSuffix = null;
30367
+ this.localizedSecond = null;
30368
+ this.localizedSecondSuffix = null;
30369
+ this.meridiem = null;
30370
+ this.minute = null;
30371
+ this.second = null;
30372
+ this.value = null;
30373
+ }
30374
+ if (emit) {
30375
+ this.calciteTimePickerChange.emit();
30376
+ }
30377
+ };
30378
+ this.setValuePart = (key, value, emit = true) => {
30379
+ var _a;
30380
+ if (key === "meridiem") {
30381
+ this.meridiem = value;
30382
+ if (isValidNumber(this.hour)) {
30383
+ const hourAsNumber = parseInt(this.hour);
30384
+ switch (value) {
30385
+ case "AM":
30386
+ if (hourAsNumber >= 12) {
30387
+ this.hour = formatTimePart(hourAsNumber - 12);
30388
+ }
30389
+ break;
30390
+ case "PM":
30391
+ if (hourAsNumber < 12) {
30392
+ this.hour = formatTimePart(hourAsNumber + 12);
30393
+ }
30394
+ break;
30259
30395
  }
30260
- break;
30396
+ this.localizedHour = localizeTimePart(this.hour, "hour", this.locale);
30397
+ }
30261
30398
  }
30262
- this.timeChanged = true;
30399
+ else {
30400
+ this[key] = typeof value === "number" ? formatTimePart(value) : value;
30401
+ this[`localized${capitalize(key)}`] = localizeTimePart(this[key], key, this.locale);
30402
+ }
30403
+ if (this.hour && this.minute) {
30404
+ const showSeconds = this.second && this.showSecond;
30405
+ this.value = `${this.hour}:${this.minute}:${showSeconds ? this.second : "00"}`;
30406
+ }
30407
+ else {
30408
+ this.value = null;
30409
+ }
30410
+ this.localizedMeridiem = this.value
30411
+ ? ((_a = localizeTimeStringToParts(this.value, this.locale)) === null || _a === void 0 ? void 0 : _a.localizedMeridiem) || null
30412
+ : localizeTimePart(this.meridiem, "meridiem", this.locale);
30263
30413
  if (emit) {
30264
- this.calciteTimePickerChange.emit(this.getTime());
30414
+ this.calciteTimePickerChange.emit();
30265
30415
  }
30266
30416
  };
30267
30417
  }
30268
- hourChanged(newHour) {
30269
- if (this.hourDisplayFormat === "12" && isValidNumber(newHour)) {
30270
- this.meridiem = getMeridiem(newHour);
30271
- }
30418
+ localeWatcher(newLocale) {
30419
+ this.hourCycle = getLocaleHourCycle(newLocale);
30420
+ this.setValue(this.value, false);
30272
30421
  }
30273
- timeChangeHandler() {
30274
- const { hour, minute } = this.getTime();
30275
- if (!hour && !minute) {
30276
- this.setTime("meridiem", null, false);
30277
- }
30278
- if (this.timeChanged) {
30279
- this.timeChanged = false;
30422
+ valueWatcher(newValue) {
30423
+ this.setValue(newValue, false);
30424
+ }
30425
+ hourChanged(newHour) {
30426
+ if (this.meridiem && isValidNumber(newHour)) {
30427
+ this.setValuePart("meridiem", getMeridiem(newHour));
30280
30428
  }
30281
30429
  }
30282
30430
  //--------------------------------------------------------------------------
@@ -30307,7 +30455,7 @@ class CalciteTimePicker {
30307
30455
  if (this.step !== 60) {
30308
30456
  this.setFocus("second");
30309
30457
  }
30310
- else if (this.hourDisplayFormat === "12") {
30458
+ else if (this.hourCycle === "12") {
30311
30459
  this.setFocus("meridiem");
30312
30460
  }
30313
30461
  break;
@@ -30319,7 +30467,7 @@ class CalciteTimePicker {
30319
30467
  this.setFocus("minute");
30320
30468
  break;
30321
30469
  case "ArrowRight":
30322
- if (this.hourDisplayFormat === "12") {
30470
+ if (this.hourCycle === "12") {
30323
30471
  this.setFocus("meridiem");
30324
30472
  }
30325
30473
  break;
@@ -30349,6 +30497,11 @@ class CalciteTimePicker {
30349
30497
  var _a;
30350
30498
  (_a = this[`${target || "hour"}El`]) === null || _a === void 0 ? void 0 : _a.focus();
30351
30499
  }
30500
+ // --------------------------------------------------------------------------
30501
+ //
30502
+ // Private Methods
30503
+ //
30504
+ // --------------------------------------------------------------------------
30352
30505
  buttonActivated(event) {
30353
30506
  const key = event.key;
30354
30507
  if (key === " ") {
@@ -30356,40 +30509,14 @@ class CalciteTimePicker {
30356
30509
  }
30357
30510
  return isActivationKey(key);
30358
30511
  }
30359
- getDisplayHour() {
30360
- if (!this.hour) {
30361
- return "--";
30362
- }
30363
- if (this.hourDisplayFormat === "12") {
30364
- return getMeridiemHour(this.hour);
30365
- }
30366
- return this.hour;
30367
- }
30368
- getTime() {
30369
- return {
30370
- hour: this.hour,
30371
- minute: this.minute,
30372
- second: this.second
30373
- };
30374
- }
30375
30512
  // --------------------------------------------------------------------------
30376
30513
  //
30377
30514
  // Lifecycle
30378
30515
  //
30379
30516
  // --------------------------------------------------------------------------
30380
30517
  connectedCallback() {
30381
- if (this.hourDisplayFormat === "12") {
30382
- this.meridiem = getMeridiem(this.hour);
30383
- }
30384
- if (isValidNumber(this.hour)) {
30385
- this.hour = formatTimePart(parseInt(this.hour));
30386
- }
30387
- if (isValidNumber(this.minute)) {
30388
- this.minute = formatTimePart(parseInt(this.minute));
30389
- }
30390
- if (isValidNumber(this.second)) {
30391
- this.second = formatTimePart(parseInt(this.second));
30392
- }
30518
+ this.setValue(this.value, false);
30519
+ this.hourCycle = getLocaleHourCycle(this.locale);
30393
30520
  }
30394
30521
  // --------------------------------------------------------------------------
30395
30522
  //
@@ -30397,66 +30524,69 @@ class CalciteTimePicker {
30397
30524
  //
30398
30525
  // --------------------------------------------------------------------------
30399
30526
  render() {
30400
- const iconScale = this.scale === "s" || this.scale === "m" ? "s" : "m";
30401
- const includeSeconds = this.step !== 60;
30402
30527
  const hourIsNumber = isValidNumber(this.hour);
30528
+ const iconScale = this.scale === "s" || this.scale === "m" ? "s" : "m";
30403
30529
  const minuteIsNumber = isValidNumber(this.minute);
30404
30530
  const secondIsNumber = isValidNumber(this.second);
30405
- return (hAsync(Host, null, hAsync("div", { class: CSS$5.timePicker }, hAsync("div", { role: "group" }, hAsync("span", { "aria-label": this.intlHourUp, class: {
30531
+ const showMeridiem = this.hourCycle === "12";
30532
+ return (hAsync("div", { class: {
30533
+ [CSS$5.timePicker]: true,
30534
+ [CSS$5.showMeridiem]: showMeridiem,
30535
+ [CSS$5.showSecond]: this.showSecond,
30536
+ [CSS$5[`scale-${this.scale}`]]: true
30537
+ } }, hAsync("div", { class: CSS$5.column, role: "group" }, hAsync("span", { "aria-label": this.intlHourUp, class: {
30406
30538
  [CSS$5.button]: true,
30407
30539
  [CSS$5.buttonHourUp]: true,
30408
30540
  [CSS$5.buttonTopLeft]: true
30409
- }, onClick: this.incrementHour, onKeyDown: this.hourUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlHour, "aria-valuemax": "23", "aria-valuemin": "1", "aria-valuenow": hourIsNumber && parseInt(this.hour), "aria-valuetext": this.hour, class: {
30541
+ }, onClick: this.incrementHour, onKeyDown: this.hourUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlHour, "aria-valuemax": "23", "aria-valuemin": "1", "aria-valuenow": (hourIsNumber && parseInt(this.hour)) || "0", "aria-valuetext": this.hour, class: {
30410
30542
  [CSS$5.input]: true,
30411
30543
  [CSS$5.hour]: true
30412
- }, onFocus: this.focusHandler, onKeyDown: this.hourKeyDownHandler, ref: (el) => (this.hourEl = el), role: "spinbutton", tabIndex: 0 }, this.getDisplayHour()), hAsync("span", { "aria-label": this.intlHourDown, class: {
30544
+ }, onFocus: this.focusHandler, onKeyDown: this.hourKeyDownHandler, ref: this.setHourEl, role: "spinbutton", tabIndex: 0 }, this.localizedHour || "--"), hAsync("span", { "aria-label": this.intlHourDown, class: {
30413
30545
  [CSS$5.button]: true,
30414
30546
  [CSS$5.buttonHourDown]: true,
30415
30547
  [CSS$5.buttonBottomLeft]: true
30416
- }, onClick: this.decrementHour, onKeyDown: this.hourDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale }))), hAsync("span", { class: CSS$5.delimiter }, ":"), hAsync("div", { role: "group" }, hAsync("span", { "aria-label": this.intlMinuteUp, class: {
30548
+ }, onClick: this.decrementHour, onKeyDown: this.hourDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale }))), hAsync("span", { class: CSS$5.delimiter }, this.localizedHourSuffix), hAsync("div", { class: CSS$5.column, role: "group" }, hAsync("span", { "aria-label": this.intlMinuteUp, class: {
30417
30549
  [CSS$5.button]: true,
30418
30550
  [CSS$5.buttonMinuteUp]: true
30419
- }, onClick: this.incrementMinute, onKeyDown: this.minuteUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlMinute, "aria-valuemax": "12", "aria-valuemin": "1", "aria-valuenow": minuteIsNumber && parseInt(this.minute), "aria-valuetext": this.minute, class: {
30551
+ }, onClick: this.incrementMinute, onKeyDown: this.minuteUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlMinute, "aria-valuemax": "12", "aria-valuemin": "1", "aria-valuenow": (minuteIsNumber && parseInt(this.minute)) || "0", "aria-valuetext": this.minute, class: {
30420
30552
  [CSS$5.input]: true,
30421
30553
  [CSS$5.minute]: true
30422
- }, onFocus: this.focusHandler, onKeyDown: this.minuteKeyDownHandler, ref: (el) => (this.minuteEl = el), role: "spinbutton", tabIndex: 0 }, this.minute ? this.minute : "--"), hAsync("span", { "aria-label": this.intlMinuteDown, class: {
30554
+ }, onFocus: this.focusHandler, onKeyDown: this.minuteKeyDownHandler, ref: this.setMinuteEl, role: "spinbutton", tabIndex: 0 }, this.localizedMinute || "--"), hAsync("span", { "aria-label": this.intlMinuteDown, class: {
30423
30555
  [CSS$5.button]: true,
30424
30556
  [CSS$5.buttonMinuteDown]: true
30425
- }, onClick: this.decrementMinute, onKeyDown: this.minuteDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale }))), includeSeconds && hAsync("span", { class: CSS$5.delimiter }, ":"), includeSeconds && (hAsync("div", { role: "group" }, hAsync("span", { "aria-label": this.intlSecondUp, class: {
30557
+ }, onClick: this.decrementMinute, onKeyDown: this.minuteDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale }))), this.showSecond && hAsync("span", { class: CSS$5.delimiter }, this.localizedMinuteSuffix), this.showSecond && (hAsync("div", { class: CSS$5.column, role: "group" }, hAsync("span", { "aria-label": this.intlSecondUp, class: {
30426
30558
  [CSS$5.button]: true,
30427
30559
  [CSS$5.buttonSecondUp]: true
30428
- }, onClick: this.incrementSecond, onKeyDown: this.secondUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlSecond, "aria-valuemax": "59", "aria-valuemin": "0", "aria-valuenow": secondIsNumber && parseInt(this.second), "aria-valuetext": this.second, class: {
30560
+ }, onClick: this.incrementSecond, onKeyDown: this.secondUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlSecond, "aria-valuemax": "59", "aria-valuemin": "0", "aria-valuenow": (secondIsNumber && parseInt(this.second)) || "0", "aria-valuetext": this.second, class: {
30429
30561
  [CSS$5.input]: true,
30430
30562
  [CSS$5.second]: true
30431
- }, onFocus: this.focusHandler, onKeyDown: this.secondKeyDownHandler, ref: (el) => (this.secondEl = el), role: "spinbutton", tabIndex: 0 }, this.second ? this.second : "--"), hAsync("span", { "aria-label": this.intlSecondDown, class: {
30563
+ }, onFocus: this.focusHandler, onKeyDown: this.secondKeyDownHandler, ref: this.setSecondEl, role: "spinbutton", tabIndex: 0 }, this.localizedSecond || "--"), hAsync("span", { "aria-label": this.intlSecondDown, class: {
30432
30564
  [CSS$5.button]: true,
30433
30565
  [CSS$5.buttonSecondDown]: true
30434
- }, onClick: this.decrementSecond, onKeyDown: this.secondDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale })))), this.hourDisplayFormat === "12" && (hAsync("div", { role: "group" }, hAsync("span", { "aria-label": this.intlMeridiemUp, class: {
30566
+ }, onClick: this.decrementSecond, onKeyDown: this.secondDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale })))), this.localizedSecondSuffix && (hAsync("span", { class: CSS$5.delimiter }, this.localizedSecondSuffix)), showMeridiem && (hAsync("div", { class: CSS$5.column, role: "group" }, hAsync("span", { "aria-label": this.intlMeridiemUp, class: {
30435
30567
  [CSS$5.button]: true,
30436
30568
  [CSS$5.buttonMeridiemUp]: true,
30437
30569
  [CSS$5.buttonTopRight]: true
30438
- }, onClick: this.incrementMeridiem, onKeyDown: this.meridiemUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlMeridiem, "aria-valuemax": "2", "aria-valuemin": "1", "aria-valuenow": this.meridiem === "AM" ? "1" : this.meridiem === "PM" ? "2" : undefined, "aria-valuetext": this.meridiem, class: {
30570
+ }, onClick: this.incrementMeridiem, onKeyDown: this.meridiemUpButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-up", scale: iconScale })), hAsync("span", { "aria-label": this.intlMeridiem, "aria-valuemax": "2", "aria-valuemin": "1", "aria-valuenow": (this.meridiem === "PM" && "2") || "1", "aria-valuetext": this.meridiem, class: {
30439
30571
  [CSS$5.input]: true,
30440
30572
  [CSS$5.meridiem]: true
30441
- }, onFocus: this.focusHandler, onKeyDown: this.meridiemKeyDownHandler, ref: (el) => (this.meridiemEl = el), role: "spinbutton", tabIndex: 0 }, this.meridiem ? this.meridiem : "--"), hAsync("span", { "aria-label": this.intlMeridiemDown, class: {
30573
+ }, onFocus: this.focusHandler, onKeyDown: this.meridiemKeyDownHandler, ref: this.setMeridiemEl, role: "spinbutton", tabIndex: 0 }, this.localizedMeridiem || "--"), hAsync("span", { "aria-label": this.intlMeridiemDown, class: {
30442
30574
  [CSS$5.button]: true,
30443
30575
  [CSS$5.buttonMeridiemDown]: true,
30444
30576
  [CSS$5.buttonBottomRight]: true
30445
- }, onClick: this.decrementMeridiem, onKeyDown: this.meridiemDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale })))))));
30577
+ }, onClick: this.decrementMeridiem, onKeyDown: this.meridiemDownButtonKeyDownHandler, role: "button", tabIndex: -1 }, hAsync("calcite-icon", { icon: "chevron-down", scale: iconScale }))))));
30446
30578
  }
30447
30579
  get el() { return getElement(this); }
30448
30580
  static get watchers() { return {
30449
- "hour": ["hourChanged", "timeChangeHandler"],
30450
- "minute": ["timeChangeHandler"],
30451
- "second": ["timeChangeHandler"]
30581
+ "locale": ["localeWatcher"],
30582
+ "value": ["valueWatcher"],
30583
+ "hour": ["hourChanged"]
30452
30584
  }; }
30453
30585
  static get style() { return calciteTimePickerCss; }
30454
30586
  static get cmpMeta() { return {
30455
30587
  "$flags$": 9,
30456
30588
  "$tagName$": "calcite-time-picker",
30457
30589
  "$members$": {
30458
- "hour": [1025],
30459
- "hourDisplayFormat": [513, "hour-display-format"],
30460
30590
  "intlHour": [1, "intl-hour"],
30461
30591
  "intlHourDown": [1, "intl-hour-down"],
30462
30592
  "intlHourUp": [1, "intl-hour-up"],
@@ -30469,17 +30599,28 @@ class CalciteTimePicker {
30469
30599
  "intlSecond": [1, "intl-second"],
30470
30600
  "intlSecondDown": [1, "intl-second-down"],
30471
30601
  "intlSecondUp": [1, "intl-second-up"],
30472
- "minute": [1025],
30473
- "second": [1025],
30474
- "scale": [513],
30475
- "step": [514],
30602
+ "locale": [1025, "lang"],
30603
+ "scale": [1],
30604
+ "step": [2],
30605
+ "value": [1025],
30606
+ "hour": [32],
30607
+ "hourCycle": [32],
30608
+ "localizedHour": [32],
30609
+ "localizedHourSuffix": [32],
30610
+ "localizedMeridiem": [32],
30611
+ "localizedMinute": [32],
30612
+ "localizedMinuteSuffix": [32],
30613
+ "localizedSecond": [32],
30614
+ "localizedSecondSuffix": [32],
30476
30615
  "meridiem": [32],
30477
- "displayHour": [32],
30616
+ "minute": [32],
30617
+ "second": [32],
30618
+ "showSecond": [32],
30478
30619
  "setFocus": [64]
30479
30620
  },
30480
30621
  "$listeners$": [[0, "blur", "hostBlurHandler"], [0, "focus", "hostFocusHandler"], [0, "keydown", "keyDownHandler"]],
30481
30622
  "$lazyBundleId$": "-",
30482
- "$attrsToReflect$": [["hourDisplayFormat", "hour-display-format"], ["scale", "scale"], ["step", "step"]]
30623
+ "$attrsToReflect$": []
30483
30624
  }; }
30484
30625
  }
30485
30626