@daikin-oss/design-system-web-components 1.2.0 → 1.3.0-next.2

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 (249) hide show
  1. package/CHANGELOG.md +85 -49
  2. package/dist/cjs/base/dds-element.cjs +1 -1
  3. package/dist/cjs/components/accordion-item/daikin-accordion-item.cjs +1 -0
  4. package/dist/cjs/components/avatar/daikin-avatar.cjs +1 -0
  5. package/dist/cjs/components/calendar/daikin-calendar.cjs +2 -0
  6. package/dist/cjs/components/card-header/daikin-card-header.cjs +1 -1
  7. package/dist/cjs/components/carousel/daikin-carousel.cjs +7 -3
  8. package/dist/cjs/components/carousel-item/daikin-carousel-item.cjs +2 -2
  9. package/dist/cjs/components/chip/daikin-chip.cjs +106 -0
  10. package/dist/cjs/components/chip/daikin-chip.d.cts +36 -0
  11. package/dist/cjs/components/chip/index.cjs +7 -0
  12. package/dist/cjs/components/chip/index.d.cts +1 -0
  13. package/dist/cjs/components/combobox/daikin-combobox.cjs +604 -0
  14. package/dist/cjs/components/combobox/daikin-combobox.d.cts +134 -0
  15. package/dist/cjs/components/combobox/index.cjs +8 -0
  16. package/dist/cjs/components/combobox/index.d.cts +1 -0
  17. package/dist/cjs/components/date-picker/daikin-date-picker.cjs +31 -16
  18. package/dist/cjs/components/date-picker/daikin-date-picker.d.cts +2 -1
  19. package/dist/cjs/components/dropdown/daikin-dropdown.cjs +52 -37
  20. package/dist/cjs/components/dropdown/daikin-dropdown.d.cts +4 -3
  21. package/dist/cjs/components/icon/daikin-icon.cjs +117 -12
  22. package/dist/cjs/components/icon/daikin-icon.d.cts +129 -9
  23. package/dist/cjs/components/icon/icons.json.cjs +6 -2
  24. package/dist/cjs/components/icon/icons.json.d.cts +0 -12
  25. package/dist/cjs/components/icon-button/daikin-icon-button.cjs +12 -2
  26. package/dist/cjs/components/icon-button/daikin-icon-button.d.cts +8 -0
  27. package/dist/cjs/components/index.cjs +36 -0
  28. package/dist/cjs/components/index.d.cts +5 -0
  29. package/dist/cjs/components/input-group/daikin-input-group.cjs +1 -1
  30. package/dist/cjs/components/input-group/daikin-input-group.d.cts +40 -13
  31. package/dist/cjs/components/list-item/daikin-list-item.cjs +2 -2
  32. package/dist/cjs/components/modal-header/daikin-modal-header.cjs +1 -1
  33. package/dist/cjs/components/progress-bar/daikin-progress-bar.cjs +3 -3
  34. package/dist/cjs/components/select/daikin-select.cjs +6 -1
  35. package/dist/cjs/components/tab/daikin-tab.cjs +1 -0
  36. package/dist/cjs/components/table/daikin-table.cjs +33 -12
  37. package/dist/cjs/components/table/daikin-table.d.cts +67 -34
  38. package/dist/cjs/components/table-header-cell/daikin-table-header-cell.cjs +31 -6
  39. package/dist/cjs/components/table-header-cell/daikin-table-header-cell.d.cts +7 -0
  40. package/dist/cjs/components/text-field/daikin-text-field.cjs +191 -56
  41. package/dist/cjs/components/text-field/daikin-text-field.d.cts +32 -3
  42. package/dist/cjs/components/text-field/number-utils.cjs +61 -0
  43. package/dist/cjs/components/text-field/number-utils.d.cts +26 -0
  44. package/dist/cjs/components/text-masked-field/daikin-text-masked-field.cjs +312 -0
  45. package/dist/cjs/components/text-masked-field/daikin-text-masked-field.d.cts +136 -0
  46. package/dist/cjs/components/text-masked-field/index.cjs +7 -0
  47. package/dist/cjs/components/text-masked-field/index.d.cts +1 -0
  48. package/dist/cjs/components/time-picker/daikin-time-picker.cjs +577 -0
  49. package/dist/cjs/components/time-picker/daikin-time-picker.d.cts +165 -0
  50. package/dist/cjs/components/time-picker/index.cjs +17 -0
  51. package/dist/cjs/components/time-picker/index.d.cts +1 -0
  52. package/dist/cjs/components/toast-notification-manager/daikin-toast-notification-manager.d.cts +1 -1
  53. package/dist/cjs/components/tooltip/daikin-tooltip.cjs +12 -2
  54. package/dist/cjs/components/tooltip/daikin-tooltip.d.cts +8 -1
  55. package/dist/cjs/controllers/floating-ui-auto-update.cjs +22 -4
  56. package/dist/cjs/controllers/floating-ui-auto-update.d.cts +12 -0
  57. package/dist/cjs/icon-registry.cjs +170 -0
  58. package/dist/cjs/icon-registry.d.cts +120 -0
  59. package/dist/cjs/index.cjs +39 -0
  60. package/dist/cjs/index.d.cts +1 -0
  61. package/dist/cjs/tailwind.css.cjs +1 -1
  62. package/dist/cjs/utils/notification-common.d.cts +2 -2
  63. package/dist/cjs-dev/base/dds-element.cjs +1 -1
  64. package/dist/cjs-dev/components/accordion-item/daikin-accordion-item.cjs +1 -0
  65. package/dist/cjs-dev/components/avatar/daikin-avatar.cjs +1 -0
  66. package/dist/cjs-dev/components/calendar/daikin-calendar.cjs +2 -0
  67. package/dist/cjs-dev/components/card-header/daikin-card-header.cjs +1 -1
  68. package/dist/cjs-dev/components/carousel/daikin-carousel.cjs +7 -3
  69. package/dist/cjs-dev/components/carousel-item/daikin-carousel-item.cjs +2 -2
  70. package/dist/cjs-dev/components/chip/daikin-chip.cjs +106 -0
  71. package/dist/cjs-dev/components/chip/daikin-chip.d.cts +36 -0
  72. package/dist/cjs-dev/components/chip/index.cjs +7 -0
  73. package/dist/cjs-dev/components/chip/index.d.cts +1 -0
  74. package/dist/cjs-dev/components/combobox/daikin-combobox.cjs +604 -0
  75. package/dist/cjs-dev/components/combobox/daikin-combobox.d.cts +134 -0
  76. package/dist/cjs-dev/components/combobox/index.cjs +8 -0
  77. package/dist/cjs-dev/components/combobox/index.d.cts +1 -0
  78. package/dist/cjs-dev/components/date-picker/daikin-date-picker.cjs +31 -16
  79. package/dist/cjs-dev/components/date-picker/daikin-date-picker.d.cts +2 -1
  80. package/dist/cjs-dev/components/dropdown/daikin-dropdown.cjs +52 -37
  81. package/dist/cjs-dev/components/dropdown/daikin-dropdown.d.cts +4 -3
  82. package/dist/cjs-dev/components/icon/daikin-icon.cjs +141 -16
  83. package/dist/cjs-dev/components/icon/daikin-icon.d.cts +129 -9
  84. package/dist/cjs-dev/components/icon/icons.json.cjs +6 -2
  85. package/dist/cjs-dev/components/icon/icons.json.d.cts +0 -12
  86. package/dist/cjs-dev/components/icon-button/daikin-icon-button.cjs +12 -2
  87. package/dist/cjs-dev/components/icon-button/daikin-icon-button.d.cts +8 -0
  88. package/dist/cjs-dev/components/index.cjs +36 -0
  89. package/dist/cjs-dev/components/index.d.cts +5 -0
  90. package/dist/cjs-dev/components/input-group/daikin-input-group.cjs +1 -1
  91. package/dist/cjs-dev/components/input-group/daikin-input-group.d.cts +40 -13
  92. package/dist/cjs-dev/components/list-item/daikin-list-item.cjs +2 -2
  93. package/dist/cjs-dev/components/modal-header/daikin-modal-header.cjs +1 -1
  94. package/dist/cjs-dev/components/progress-bar/daikin-progress-bar.cjs +3 -3
  95. package/dist/cjs-dev/components/select/daikin-select.cjs +6 -1
  96. package/dist/cjs-dev/components/tab/daikin-tab.cjs +1 -0
  97. package/dist/cjs-dev/components/table/daikin-table.cjs +36 -15
  98. package/dist/cjs-dev/components/table/daikin-table.d.cts +67 -34
  99. package/dist/cjs-dev/components/table-header-cell/daikin-table-header-cell.cjs +31 -6
  100. package/dist/cjs-dev/components/table-header-cell/daikin-table-header-cell.d.cts +7 -0
  101. package/dist/cjs-dev/components/text-field/daikin-text-field.cjs +191 -56
  102. package/dist/cjs-dev/components/text-field/daikin-text-field.d.cts +32 -3
  103. package/dist/cjs-dev/components/text-field/number-utils.cjs +64 -0
  104. package/dist/cjs-dev/components/text-field/number-utils.d.cts +26 -0
  105. package/dist/cjs-dev/components/text-masked-field/daikin-text-masked-field.cjs +312 -0
  106. package/dist/cjs-dev/components/text-masked-field/daikin-text-masked-field.d.cts +136 -0
  107. package/dist/cjs-dev/components/text-masked-field/index.cjs +7 -0
  108. package/dist/cjs-dev/components/text-masked-field/index.d.cts +1 -0
  109. package/dist/cjs-dev/components/time-picker/daikin-time-picker.cjs +589 -0
  110. package/dist/cjs-dev/components/time-picker/daikin-time-picker.d.cts +165 -0
  111. package/dist/cjs-dev/components/time-picker/index.cjs +17 -0
  112. package/dist/cjs-dev/components/time-picker/index.d.cts +1 -0
  113. package/dist/cjs-dev/components/toast-notification-manager/daikin-toast-notification-manager.d.cts +1 -1
  114. package/dist/cjs-dev/components/tooltip/daikin-tooltip.cjs +12 -2
  115. package/dist/cjs-dev/components/tooltip/daikin-tooltip.d.cts +8 -1
  116. package/dist/cjs-dev/controllers/floating-ui-auto-update.cjs +22 -4
  117. package/dist/cjs-dev/controllers/floating-ui-auto-update.d.cts +12 -0
  118. package/dist/cjs-dev/icon-registry.cjs +170 -0
  119. package/dist/cjs-dev/icon-registry.d.cts +120 -0
  120. package/dist/cjs-dev/index.cjs +39 -0
  121. package/dist/cjs-dev/index.d.cts +1 -0
  122. package/dist/cjs-dev/tailwind.css.cjs +1 -1
  123. package/dist/cjs-dev/utils/notification-common.d.cts +2 -2
  124. package/dist/es/base/dds-element.js +1 -1
  125. package/dist/es/components/accordion-item/daikin-accordion-item.js +1 -0
  126. package/dist/es/components/avatar/daikin-avatar.js +1 -0
  127. package/dist/es/components/calendar/daikin-calendar.js +2 -0
  128. package/dist/es/components/card-header/daikin-card-header.js +1 -1
  129. package/dist/es/components/carousel/daikin-carousel.js +7 -3
  130. package/dist/es/components/carousel-item/daikin-carousel-item.js +2 -2
  131. package/dist/es/components/chip/daikin-chip.d.ts +36 -0
  132. package/dist/es/components/chip/daikin-chip.js +107 -0
  133. package/dist/es/components/chip/index.d.ts +1 -0
  134. package/dist/es/components/chip/index.js +4 -0
  135. package/dist/es/components/combobox/daikin-combobox.d.ts +134 -0
  136. package/dist/es/components/combobox/daikin-combobox.js +605 -0
  137. package/dist/es/components/combobox/index.d.ts +1 -0
  138. package/dist/es/components/combobox/index.js +5 -0
  139. package/dist/es/components/date-picker/daikin-date-picker.d.ts +2 -1
  140. package/dist/es/components/date-picker/daikin-date-picker.js +32 -17
  141. package/dist/es/components/dropdown/daikin-dropdown.d.ts +4 -3
  142. package/dist/es/components/dropdown/daikin-dropdown.js +52 -37
  143. package/dist/es/components/icon/daikin-icon.d.ts +129 -9
  144. package/dist/es/components/icon/daikin-icon.js +118 -13
  145. package/dist/es/components/icon/icons.json.d.ts +0 -12
  146. package/dist/es/components/icon/icons.json.js +5 -1
  147. package/dist/es/components/icon-button/daikin-icon-button.d.ts +8 -0
  148. package/dist/es/components/icon-button/daikin-icon-button.js +12 -2
  149. package/dist/es/components/index.d.ts +5 -0
  150. package/dist/es/components/index.js +22 -1
  151. package/dist/es/components/input-group/daikin-input-group.d.ts +40 -13
  152. package/dist/es/components/input-group/daikin-input-group.js +1 -1
  153. package/dist/es/components/list-item/daikin-list-item.js +2 -2
  154. package/dist/es/components/modal-header/daikin-modal-header.js +1 -1
  155. package/dist/es/components/progress-bar/daikin-progress-bar.js +3 -3
  156. package/dist/es/components/select/daikin-select.js +6 -1
  157. package/dist/es/components/tab/daikin-tab.js +1 -0
  158. package/dist/es/components/table/daikin-table.d.ts +67 -34
  159. package/dist/es/components/table/daikin-table.js +33 -12
  160. package/dist/es/components/table-header-cell/daikin-table-header-cell.d.ts +7 -0
  161. package/dist/es/components/table-header-cell/daikin-table-header-cell.js +31 -6
  162. package/dist/es/components/text-field/daikin-text-field.d.ts +32 -3
  163. package/dist/es/components/text-field/daikin-text-field.js +191 -56
  164. package/dist/es/components/text-field/number-utils.d.ts +26 -0
  165. package/dist/es/components/text-field/number-utils.js +61 -0
  166. package/dist/es/components/text-masked-field/daikin-text-masked-field.d.ts +136 -0
  167. package/dist/es/components/text-masked-field/daikin-text-masked-field.js +313 -0
  168. package/dist/es/components/text-masked-field/index.d.ts +1 -0
  169. package/dist/es/components/text-masked-field/index.js +4 -0
  170. package/dist/es/components/time-picker/daikin-time-picker.d.ts +165 -0
  171. package/dist/es/components/time-picker/daikin-time-picker.js +578 -0
  172. package/dist/es/components/time-picker/index.d.ts +1 -0
  173. package/dist/es/components/time-picker/index.js +14 -0
  174. package/dist/es/components/toast-notification-manager/daikin-toast-notification-manager.d.ts +1 -1
  175. package/dist/es/components/tooltip/daikin-tooltip.d.ts +8 -1
  176. package/dist/es/components/tooltip/daikin-tooltip.js +12 -2
  177. package/dist/es/controllers/floating-ui-auto-update.d.ts +12 -0
  178. package/dist/es/controllers/floating-ui-auto-update.js +22 -4
  179. package/dist/es/icon-registry.d.ts +120 -0
  180. package/dist/es/icon-registry.js +170 -0
  181. package/dist/es/index.d.ts +1 -0
  182. package/dist/es/index.js +25 -1
  183. package/dist/es/tailwind.css.js +1 -1
  184. package/dist/es/utils/notification-common.d.ts +2 -2
  185. package/dist/es-dev/base/dds-element.js +1 -1
  186. package/dist/es-dev/components/accordion-item/daikin-accordion-item.js +1 -0
  187. package/dist/es-dev/components/avatar/daikin-avatar.js +1 -0
  188. package/dist/es-dev/components/calendar/daikin-calendar.js +2 -0
  189. package/dist/es-dev/components/card-header/daikin-card-header.js +1 -1
  190. package/dist/es-dev/components/carousel/daikin-carousel.js +7 -3
  191. package/dist/es-dev/components/carousel-item/daikin-carousel-item.js +2 -2
  192. package/dist/es-dev/components/chip/daikin-chip.d.ts +36 -0
  193. package/dist/es-dev/components/chip/daikin-chip.js +107 -0
  194. package/dist/es-dev/components/chip/index.d.ts +1 -0
  195. package/dist/es-dev/components/chip/index.js +4 -0
  196. package/dist/es-dev/components/combobox/daikin-combobox.d.ts +134 -0
  197. package/dist/es-dev/components/combobox/daikin-combobox.js +605 -0
  198. package/dist/es-dev/components/combobox/index.d.ts +1 -0
  199. package/dist/es-dev/components/combobox/index.js +5 -0
  200. package/dist/es-dev/components/date-picker/daikin-date-picker.d.ts +2 -1
  201. package/dist/es-dev/components/date-picker/daikin-date-picker.js +32 -17
  202. package/dist/es-dev/components/dropdown/daikin-dropdown.d.ts +4 -3
  203. package/dist/es-dev/components/dropdown/daikin-dropdown.js +52 -37
  204. package/dist/es-dev/components/icon/daikin-icon.d.ts +129 -9
  205. package/dist/es-dev/components/icon/daikin-icon.js +142 -17
  206. package/dist/es-dev/components/icon/icons.json.d.ts +0 -12
  207. package/dist/es-dev/components/icon/icons.json.js +5 -1
  208. package/dist/es-dev/components/icon-button/daikin-icon-button.d.ts +8 -0
  209. package/dist/es-dev/components/icon-button/daikin-icon-button.js +12 -2
  210. package/dist/es-dev/components/index.d.ts +5 -0
  211. package/dist/es-dev/components/index.js +22 -1
  212. package/dist/es-dev/components/input-group/daikin-input-group.d.ts +40 -13
  213. package/dist/es-dev/components/input-group/daikin-input-group.js +1 -1
  214. package/dist/es-dev/components/list-item/daikin-list-item.js +2 -2
  215. package/dist/es-dev/components/modal-header/daikin-modal-header.js +1 -1
  216. package/dist/es-dev/components/progress-bar/daikin-progress-bar.js +3 -3
  217. package/dist/es-dev/components/select/daikin-select.js +6 -1
  218. package/dist/es-dev/components/tab/daikin-tab.js +1 -0
  219. package/dist/es-dev/components/table/daikin-table.d.ts +67 -34
  220. package/dist/es-dev/components/table/daikin-table.js +36 -15
  221. package/dist/es-dev/components/table-header-cell/daikin-table-header-cell.d.ts +7 -0
  222. package/dist/es-dev/components/table-header-cell/daikin-table-header-cell.js +31 -6
  223. package/dist/es-dev/components/text-field/daikin-text-field.d.ts +32 -3
  224. package/dist/es-dev/components/text-field/daikin-text-field.js +191 -56
  225. package/dist/es-dev/components/text-field/number-utils.d.ts +26 -0
  226. package/dist/es-dev/components/text-field/number-utils.js +64 -0
  227. package/dist/es-dev/components/text-masked-field/daikin-text-masked-field.d.ts +136 -0
  228. package/dist/es-dev/components/text-masked-field/daikin-text-masked-field.js +313 -0
  229. package/dist/es-dev/components/text-masked-field/index.d.ts +1 -0
  230. package/dist/es-dev/components/text-masked-field/index.js +4 -0
  231. package/dist/es-dev/components/time-picker/daikin-time-picker.d.ts +165 -0
  232. package/dist/es-dev/components/time-picker/daikin-time-picker.js +590 -0
  233. package/dist/es-dev/components/time-picker/index.d.ts +1 -0
  234. package/dist/es-dev/components/time-picker/index.js +14 -0
  235. package/dist/es-dev/components/toast-notification-manager/daikin-toast-notification-manager.d.ts +1 -1
  236. package/dist/es-dev/components/tooltip/daikin-tooltip.d.ts +8 -1
  237. package/dist/es-dev/components/tooltip/daikin-tooltip.js +12 -2
  238. package/dist/es-dev/controllers/floating-ui-auto-update.d.ts +12 -0
  239. package/dist/es-dev/controllers/floating-ui-auto-update.js +22 -4
  240. package/dist/es-dev/icon-registry.d.ts +120 -0
  241. package/dist/es-dev/icon-registry.js +170 -0
  242. package/dist/es-dev/index.d.ts +1 -0
  243. package/dist/es-dev/index.js +25 -1
  244. package/dist/es-dev/tailwind.css.js +1 -1
  245. package/dist/es-dev/utils/notification-common.d.ts +2 -2
  246. package/icons/number-minus.svg +5 -0
  247. package/icons/number-plus.svg +5 -0
  248. package/package.json +14 -4
  249. package/icons/dropdown-chevron-down.svg +0 -3
@@ -0,0 +1,577 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const classVarianceAuthority = require("class-variance-authority");
4
+ const lit = require("lit");
5
+ const decorators_js = require("lit/decorators.js");
6
+ const ifDefined_js = require("lit/directives/if-defined.js");
7
+ const ref_js = require("lit/directives/ref.js");
8
+ const ddsFormElement = require("../../base/dds-form-element.cjs");
9
+ const tailwind = require("../../tailwind.css.cjs");
10
+ require("../dropdown-item/daikin-dropdown-item.cjs");
11
+ require("../dropdown/daikin-dropdown.cjs");
12
+ var __defProp = Object.defineProperty;
13
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
14
+ var __decorateClass = (decorators, target, key, kind) => {
15
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
16
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
17
+ if (decorator = decorators[i])
18
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
19
+ if (kind && result) __defProp(target, key, result);
20
+ return result;
21
+ };
22
+ const VALUE_TIME_REGEX = /^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/;
23
+ const DEFAULT_MIN_TIME = "00:00";
24
+ const DEFAULT_MAX_TIME = "23:59";
25
+ function to24HourFormat(time, meridiem) {
26
+ const [hourInit, minute] = time.split(":").map(Number);
27
+ let hour = hourInit;
28
+ if (meridiem === "AM") {
29
+ if (hour === 12) hour = 0;
30
+ } else {
31
+ if (hour !== 12) hour += 12;
32
+ }
33
+ return `${hour.toString().padStart(2, "0")}:${minute.toString().padStart(2, "0")}`;
34
+ }
35
+ function from24HourFormat(time) {
36
+ const [hour, minute] = time.split(":").map(Number);
37
+ const meridiem = hour >= 12 ? "PM" : "AM";
38
+ let hour12 = hour % 12;
39
+ if (hour12 === 0) hour12 = 12;
40
+ return {
41
+ time: `${hour12.toString().padStart(2, "0")}:${minute.toString().padStart(2, "0")}`,
42
+ meridiem
43
+ };
44
+ }
45
+ function isValidValueTime(str) {
46
+ return VALUE_TIME_REGEX.test(str);
47
+ }
48
+ function isTimeOutOfRange(time, min, max) {
49
+ const toMinutes = (s) => {
50
+ const [h, m] = s.split(":").map(Number);
51
+ return h * 60 + m;
52
+ };
53
+ const v = toMinutes(time);
54
+ const vMin = toMinutes(min);
55
+ const vMax = toMinutes(max);
56
+ return v < vMin || v > vMax;
57
+ }
58
+ const TIME_ITEMS = [
59
+ {
60
+ type: "hour",
61
+ range: [0, 2]
62
+ // 0-2 exclusive, selects "hh"
63
+ },
64
+ {
65
+ type: "minute",
66
+ range: [3, 5]
67
+ // 3-5 exclusive, selects "mm"
68
+ }
69
+ ];
70
+ const PLACEHOLDER_HOUR = "hh";
71
+ const PLACEHOLDER_MINUTE = "mm";
72
+ const PLACEHOLDER_ALL = formatPartsForUI({
73
+ hour: PLACEHOLDER_HOUR,
74
+ minute: PLACEHOLDER_MINUTE
75
+ });
76
+ function formatPartsForUI({
77
+ hour,
78
+ minute
79
+ }) {
80
+ return `${hour}:${minute}`;
81
+ }
82
+ function parsePartsFromUIValue(value) {
83
+ const [hour, minute] = value.split(":");
84
+ return { hour: hour || "hh", minute: minute || "mm" };
85
+ }
86
+ function tryParseTimeFromUIValue(value) {
87
+ const { hour, minute } = parsePartsFromUIValue(value);
88
+ if (!/^(0\d|1\d|2[0-3])$/.test(hour) || !/^[0-5]\d$/.test(minute)) {
89
+ return null;
90
+ }
91
+ const formattedHour = hour !== "hh" ? hour.padStart(2, "0") : "hh";
92
+ const formattedMinute = minute !== "mm" ? minute.padStart(2, "0") : "mm";
93
+ const timeString = `${formattedHour}:${formattedMinute}`;
94
+ return timeString;
95
+ }
96
+ function formatTimeForUI(timeString) {
97
+ const [hour, minute] = timeString.split(":");
98
+ return formatPartsForUI({
99
+ hour: hour.padStart(2, "0"),
100
+ minute: minute.padStart(2, "0")
101
+ });
102
+ }
103
+ function getTimeItemInSelection(selectionStart, selectionEnd) {
104
+ for (const { type, range } of TIME_ITEMS) {
105
+ if (selectionStart >= range[0] && selectionStart <= range[1] && selectionEnd >= range[0] && selectionEnd <= range[1]) {
106
+ return type;
107
+ }
108
+ }
109
+ return null;
110
+ }
111
+ function calcDigitInput(parts, item, digit, hourDigitIndex) {
112
+ if (!/^\d$/.test(digit)) {
113
+ return null;
114
+ }
115
+ switch (item) {
116
+ case "hour": {
117
+ if (parts.hour === "01" && ["0", "1", "2"].includes(digit)) {
118
+ return {
119
+ parts: { ...parts, hour: `1${digit}` },
120
+ done: true
121
+ };
122
+ }
123
+ if (parts.hour === "00") {
124
+ return {
125
+ parts: { ...parts, hour: `0${digit}` },
126
+ done: hourDigitIndex === 1
127
+ };
128
+ }
129
+ return {
130
+ parts: { ...parts, hour: `0${digit}` },
131
+ done: digit > "1"
132
+ };
133
+ }
134
+ case "minute": {
135
+ if (["01", "02", "03", "04", "05"].includes(parts.minute)) {
136
+ return {
137
+ parts: { ...parts, minute: `${parts.minute[1]}${digit}` },
138
+ done: true
139
+ };
140
+ }
141
+ return {
142
+ parts: { ...parts, minute: `0${digit}` },
143
+ done: digit > "5"
144
+ };
145
+ }
146
+ }
147
+ }
148
+ const cvaField = classVarianceAuthority.cva(
149
+ [
150
+ "flex",
151
+ "items-center",
152
+ "size-full",
153
+ "w-[94px]",
154
+ "bg-ddt-color-common-background-default",
155
+ "p-3",
156
+ "rounded",
157
+ "overflow-hidden",
158
+ "outline",
159
+ "outline-[--color-border]",
160
+ "outline-0",
161
+ "-outline-offset-2",
162
+ "placeholder:text-ddt-color-common-text-secondary",
163
+ "define-[--color-state-focus,--color-base]/color-border",
164
+ "border",
165
+ "border-[--color-border]",
166
+ "enabled:text-ddt-color-common-text-primary",
167
+ "enabled:hover:bg-ddt-color-common-surface-hover",
168
+ "enabled:active:bg-ddt-color-common-surface-press",
169
+ "focus-visible:outline-2",
170
+ "disabled:var-color-ddt-color-common-disabled/color-base",
171
+ "disabled:text-ddt-color-common-disabled",
172
+ "disabled:bg-ddt-color-common-background-default",
173
+ "disabled:placeholder:text-ddt-color-common-disabled"
174
+ ],
175
+ {
176
+ variants: {
177
+ error: {
178
+ false: [
179
+ "enabled:var-color-ddt-color-common-neutral-default/color-base",
180
+ "focus-visible:var-color-ddt-color-common-border-focus/color-state-focus"
181
+ ],
182
+ true: ["enabled:var-color-ddt-color-common-danger-default/color-base"]
183
+ }
184
+ }
185
+ }
186
+ );
187
+ exports.DaikinTimePicker = class DaikinTimePicker extends ddsFormElement.DDSFormElement {
188
+ constructor() {
189
+ super(...arguments);
190
+ this.placeholder = "hh:mm";
191
+ this.min = DEFAULT_MIN_TIME;
192
+ this.max = DEFAULT_MAX_TIME;
193
+ this.disabled = false;
194
+ this.required = false;
195
+ this.error = false;
196
+ this.minutesStep = "1";
197
+ this._label = null;
198
+ this._inputValue = "";
199
+ this._currentSelection = "hour";
200
+ this._meridiem = "";
201
+ this._timeInputElement = ref_js.createRef();
202
+ this._hourDigitIndex = 0;
203
+ }
204
+ /**
205
+ * Returns the value to display in the input field (from _inputValue state).
206
+ */
207
+ get _timeValue() {
208
+ return this._inputValue;
209
+ }
210
+ /**
211
+ * Syncs the AM/PM value with the current value (24-hour) if value changes externally.
212
+ */
213
+ _syncMeridiemWithValue() {
214
+ if (this.value) {
215
+ const { meridiem } = from24HourFormat(this.value);
216
+ this._meridiem = meridiem;
217
+ }
218
+ }
219
+ get _min() {
220
+ return this.min || DEFAULT_MIN_TIME;
221
+ }
222
+ get _max() {
223
+ return this.max || DEFAULT_MAX_TIME;
224
+ }
225
+ _convertZeroHourToTwelve() {
226
+ const minutes = this._inputValue.split(":")[1];
227
+ this._inputValue = `12:${minutes}`;
228
+ if (this._timeInputElement.value) {
229
+ this._timeInputElement.value.value = this._inputValue;
230
+ }
231
+ }
232
+ _handleFocusIn(event) {
233
+ const target = event.target;
234
+ this._updateInputSelection(target);
235
+ if (!this._inputValue) {
236
+ this._inputValue = PLACEHOLDER_ALL;
237
+ }
238
+ }
239
+ _handleFocusOut(event) {
240
+ const target = event.target;
241
+ if (target.value === PLACEHOLDER_ALL) {
242
+ this._inputValue = "";
243
+ target.value = "";
244
+ }
245
+ if (target.value.startsWith("00")) {
246
+ this._convertZeroHourToTwelve();
247
+ }
248
+ this._hourDigitIndex = 0;
249
+ }
250
+ _handleChange(event) {
251
+ const target = event.target;
252
+ this._inputValue = target.value;
253
+ this._updateValue(event);
254
+ }
255
+ _handleMouseUp(event) {
256
+ var _a, _b;
257
+ event.preventDefault();
258
+ const selectionStart = ((_a = this._timeInputElement.value) == null ? void 0 : _a.selectionStart) ?? 0;
259
+ const selectionEnd = ((_b = this._timeInputElement.value) == null ? void 0 : _b.selectionEnd) ?? 0;
260
+ const timeItemInSelection = getTimeItemInSelection(
261
+ selectionStart,
262
+ selectionEnd
263
+ );
264
+ if (event.target.value === PLACEHOLDER_ALL && !timeItemInSelection) {
265
+ this._updateSelection("hour");
266
+ return;
267
+ }
268
+ if (timeItemInSelection) {
269
+ this._updateSelection(timeItemInSelection);
270
+ }
271
+ }
272
+ _handleDigitInput(parts, item, digit, hourDigitIndex) {
273
+ if (this._currentSelection === "hour") {
274
+ if (hourDigitIndex === 1) {
275
+ this._hourDigitIndex = 0;
276
+ } else {
277
+ this._hourDigitIndex = 1;
278
+ }
279
+ }
280
+ return calcDigitInput(parts, item, digit, hourDigitIndex);
281
+ }
282
+ _handleKeyDown(event) {
283
+ const target = event.target;
284
+ const key = event.key;
285
+ const parts = parsePartsFromUIValue(target.value);
286
+ if (key === "Backspace") {
287
+ event.preventDefault();
288
+ const itemToRemove = this._currentSelection;
289
+ const placeholder = {
290
+ hour: PLACEHOLDER_HOUR,
291
+ minute: PLACEHOLDER_MINUTE
292
+ }[itemToRemove];
293
+ if (parts[itemToRemove] !== placeholder) {
294
+ const newVal = formatPartsForUI({
295
+ ...parts,
296
+ [itemToRemove]: placeholder
297
+ });
298
+ this._inputValue = newVal;
299
+ target.value = newVal;
300
+ this._updateSelection(itemToRemove);
301
+ }
302
+ this._updateValue(event);
303
+ return;
304
+ }
305
+ if (/^\d$/.test(key)) {
306
+ event.preventDefault();
307
+ const newState = this._handleDigitInput(
308
+ parts,
309
+ this._currentSelection,
310
+ key,
311
+ this._hourDigitIndex
312
+ );
313
+ if (newState) {
314
+ const newVal = formatPartsForUI(newState.parts);
315
+ this._inputValue = newVal;
316
+ target.value = newVal;
317
+ const currentIndex = TIME_ITEMS.findIndex(
318
+ ({ type }) => type === this._currentSelection
319
+ );
320
+ const nextIndex = currentIndex >= 0 ? Math.min(currentIndex + 1, TIME_ITEMS.length - 1) : -1;
321
+ this._updateSelection(
322
+ newState.done && nextIndex >= 0 ? TIME_ITEMS[nextIndex].type : this._currentSelection
323
+ );
324
+ }
325
+ this._updateValue(event);
326
+ return;
327
+ }
328
+ const moveOffset = {
329
+ ArrowLeft: -1,
330
+ ArrowRight: 1
331
+ }[key];
332
+ if (moveOffset) {
333
+ event.preventDefault();
334
+ const currentIndex = TIME_ITEMS.findIndex(
335
+ ({ type }) => type === this._currentSelection
336
+ );
337
+ const newIndex = currentIndex >= 0 ? Math.min(
338
+ Math.max(currentIndex + moveOffset, 0),
339
+ TIME_ITEMS.length - 1
340
+ ) : 0;
341
+ this._updateSelection(TIME_ITEMS[newIndex].type);
342
+ return;
343
+ }
344
+ const countOffset = {
345
+ ArrowUp: 1,
346
+ ArrowDown: -1
347
+ }[key];
348
+ if (countOffset) {
349
+ event.preventDefault();
350
+ this._updateSelection(this._currentSelection);
351
+ this._updateTimeByOffset(countOffset);
352
+ return;
353
+ }
354
+ if (key.length <= 1) {
355
+ event.preventDefault();
356
+ return;
357
+ }
358
+ }
359
+ _updateTimeByOffset(offset) {
360
+ const target = this._timeInputElement.value;
361
+ if (!target) return;
362
+ const currentTime = target.value;
363
+ if (!currentTime) return;
364
+ const [hourStr, minuteStr] = currentTime.split(":");
365
+ let hour = parseInt(hourStr, 10);
366
+ let minute = parseInt(minuteStr, 10);
367
+ if (this._currentSelection === "hour") {
368
+ if (isNaN(hour)) hour = 0;
369
+ hour = (hour + offset + 11) % 12 + 1;
370
+ } else {
371
+ if (isNaN(minute)) minute = 0;
372
+ minute = (minute + offset * Number(this.minutesStep) + 60) % 60;
373
+ }
374
+ const newTime = `${isNaN(hour) ? "hh" : String(hour).padStart(2, "0")}:${isNaN(minute) ? "mm" : String(minute).padStart(2, "0")}`;
375
+ this._inputValue = formatTimeForUI(newTime);
376
+ target.value = this._inputValue;
377
+ this._updateSelection(this._currentSelection);
378
+ this._updateValue();
379
+ }
380
+ _handleBeforeInput(event) {
381
+ event.preventDefault();
382
+ this._updateInputSelection(event.target);
383
+ }
384
+ /**
385
+ * Updates the value in 24-hour format if the input is valid, keeps UI in 12-hour format.
386
+ */
387
+ _updateValue(event) {
388
+ const target = (event == null ? void 0 : event.target) || this._timeInputElement.value;
389
+ if (!target) return;
390
+ this._inputValue = target.value;
391
+ if (target.value === PLACEHOLDER_ALL) {
392
+ this.error = false;
393
+ return;
394
+ }
395
+ if (this._meridiem === "") {
396
+ this.error = true;
397
+ return;
398
+ }
399
+ const newTime = tryParseTimeFromUIValue(target.value);
400
+ const newValue = newTime != null ? to24HourFormat(newTime, this._meridiem) : "";
401
+ this.error = !newValue || isTimeOutOfRange(newValue, this._min, this._max);
402
+ const changed = newValue !== this.value;
403
+ this.value = newValue;
404
+ if (changed) {
405
+ if (newValue) {
406
+ this.dispatchEvent(
407
+ new Event("input", {
408
+ bubbles: true,
409
+ composed: true
410
+ })
411
+ );
412
+ }
413
+ this.dispatchEvent(
414
+ new Event("change", {
415
+ bubbles: true,
416
+ composed: true
417
+ })
418
+ );
419
+ }
420
+ }
421
+ _updateInputSelection(target) {
422
+ var _a;
423
+ if (target.value === "") {
424
+ target.value = PLACEHOLDER_ALL;
425
+ }
426
+ const itemInfo = TIME_ITEMS[0];
427
+ (_a = this._timeInputElement.value) == null ? void 0 : _a.setSelectionRange(
428
+ itemInfo.range[0],
429
+ itemInfo.range[1]
430
+ );
431
+ this._currentSelection = itemInfo.type;
432
+ }
433
+ _updateSelection(timeItem) {
434
+ var _a;
435
+ const selection = window.getSelection();
436
+ if (!selection) {
437
+ return;
438
+ }
439
+ const itemInfo = TIME_ITEMS.find(({ type }) => type === timeItem);
440
+ if (itemInfo) {
441
+ if (itemInfo.type === "minute") {
442
+ if (this._inputValue.startsWith("00")) {
443
+ this._convertZeroHourToTwelve();
444
+ }
445
+ this._hourDigitIndex = 0;
446
+ }
447
+ (_a = this._timeInputElement.value) == null ? void 0 : _a.setSelectionRange(
448
+ itemInfo.range[0],
449
+ itemInfo.range[1]
450
+ );
451
+ this._currentSelection = itemInfo.type;
452
+ }
453
+ }
454
+ _handleDropdownChange(event) {
455
+ const target = event.target;
456
+ this._meridiem = target.value;
457
+ const input = this._timeInputElement.value;
458
+ if (input && input.value && tryParseTimeFromUIValue(input.value)) {
459
+ this._updateValue();
460
+ }
461
+ }
462
+ render() {
463
+ return lit.html`<div
464
+ role="group"
465
+ aria-label=${ifDefined_js.ifDefined(this._label ?? void 0)}
466
+ class="flex flex-row h-full gap-2 font-daikinSerif"
467
+ >
468
+ <input
469
+ ${ref_js.ref(this._timeInputElement)}
470
+ class=${cvaField({ error: this.error })}
471
+ type="text"
472
+ placeholder=${ifDefined_js.ifDefined(this.placeholder ?? void 0)}
473
+ name=${this.name}
474
+ .value=${this._timeValue}
475
+ ?disabled=${this.disabled}
476
+ ?required=${this.required}
477
+ @change=${this._handleChange}
478
+ @focusin=${this._handleFocusIn}
479
+ @focusout=${this._handleFocusOut}
480
+ @keydown=${this._handleKeyDown}
481
+ @beforeinput=${this._handleBeforeInput}
482
+ @mouseup=${this._handleMouseUp}
483
+ />
484
+ <daikin-dropdown
485
+ class="w-[88px]"
486
+ placeholder="--"
487
+ .error=${this.error}
488
+ .value=${this._meridiem}
489
+ ?disabled=${this.disabled}
490
+ @change=${this._handleDropdownChange}
491
+ >
492
+ <daikin-dropdown-item value="AM">AM</daikin-dropdown-item>
493
+ <daikin-dropdown-item value="PM">PM</daikin-dropdown-item>
494
+ </daikin-dropdown>
495
+ </div>`;
496
+ }
497
+ willUpdate(changedProperties) {
498
+ if (changedProperties.has("value")) {
499
+ this._syncMeridiemWithValue();
500
+ if (this.value) {
501
+ const { time } = from24HourFormat(this.value);
502
+ this._inputValue = time;
503
+ }
504
+ }
505
+ }
506
+ updated(changedProperties) {
507
+ if (changedProperties.has("value")) {
508
+ this.setFormValue(this.value);
509
+ }
510
+ }
511
+ /**
512
+ * This method is used by `daikin-input-group` to reflect it's attributes to this component.
513
+ * @private
514
+ */
515
+ reflectInputGroup(inputGroup) {
516
+ const isError = !inputGroup.disabled && !!inputGroup.error;
517
+ this.disabled = !!inputGroup.disabled;
518
+ this.required = !!inputGroup.required;
519
+ this.error = isError;
520
+ this._label = inputGroup.label ?? null;
521
+ }
522
+ };
523
+ exports.DaikinTimePicker.styles = lit.css`
524
+ ${lit.unsafeCSS(tailwind.default)}
525
+
526
+ :host {
527
+ display: flex;
528
+ align-items: center;
529
+ height: 3rem;
530
+ }
531
+ `;
532
+ __decorateClass([
533
+ decorators_js.property({ type: String, reflect: true })
534
+ ], exports.DaikinTimePicker.prototype, "placeholder", 2);
535
+ __decorateClass([
536
+ decorators_js.property({ type: String, reflect: true })
537
+ ], exports.DaikinTimePicker.prototype, "min", 2);
538
+ __decorateClass([
539
+ decorators_js.property({ type: String, reflect: true })
540
+ ], exports.DaikinTimePicker.prototype, "max", 2);
541
+ __decorateClass([
542
+ decorators_js.property({ type: Boolean, reflect: true })
543
+ ], exports.DaikinTimePicker.prototype, "disabled", 2);
544
+ __decorateClass([
545
+ decorators_js.property({ type: Boolean, reflect: true })
546
+ ], exports.DaikinTimePicker.prototype, "required", 2);
547
+ __decorateClass([
548
+ decorators_js.property({ type: Boolean, reflect: true })
549
+ ], exports.DaikinTimePicker.prototype, "error", 2);
550
+ __decorateClass([
551
+ decorators_js.property({ type: String, reflect: true, attribute: "minutes-step" })
552
+ ], exports.DaikinTimePicker.prototype, "minutesStep", 2);
553
+ __decorateClass([
554
+ decorators_js.state()
555
+ ], exports.DaikinTimePicker.prototype, "_label", 2);
556
+ __decorateClass([
557
+ decorators_js.state()
558
+ ], exports.DaikinTimePicker.prototype, "_inputValue", 2);
559
+ __decorateClass([
560
+ decorators_js.state()
561
+ ], exports.DaikinTimePicker.prototype, "_currentSelection", 2);
562
+ __decorateClass([
563
+ decorators_js.state()
564
+ ], exports.DaikinTimePicker.prototype, "_meridiem", 2);
565
+ exports.DaikinTimePicker = __decorateClass([
566
+ decorators_js.customElement("daikin-time-picker")
567
+ ], exports.DaikinTimePicker);
568
+ exports.calcDigitInput = calcDigitInput;
569
+ exports.formatPartsForUI = formatPartsForUI;
570
+ exports.formatTimeForUI = formatTimeForUI;
571
+ exports.from24HourFormat = from24HourFormat;
572
+ exports.getTimeItemInSelection = getTimeItemInSelection;
573
+ exports.isTimeOutOfRange = isTimeOutOfRange;
574
+ exports.isValidValueTime = isValidValueTime;
575
+ exports.parsePartsFromUIValue = parsePartsFromUIValue;
576
+ exports.to24HourFormat = to24HourFormat;
577
+ exports.tryParseTimeFromUIValue = tryParseTimeFromUIValue;