@daikin-oss/design-system-web-components 1.6.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/CHANGELOG.md +184 -0
  2. package/custom-elements.json +2639 -1328
  3. package/dist/cjs/base/dds-element.cjs +1 -1
  4. package/dist/cjs/components/accordion-item/daikin-accordion-item.cjs +25 -8
  5. package/dist/cjs/components/accordion-item/daikin-accordion-item.d.cts +1 -0
  6. package/dist/cjs/components/breadcrumb/daikin-breadcrumb.d.cts +1 -1
  7. package/dist/cjs/components/breadcrumb-item/daikin-breadcrumb-item.cjs +9 -6
  8. package/dist/cjs/components/breadcrumb-item/daikin-breadcrumb-item.d.cts +1 -0
  9. package/dist/cjs/components/calendar/daikin-calendar.cjs +73 -26
  10. package/dist/cjs/components/calendar/daikin-calendar.d.cts +13 -0
  11. package/dist/cjs/components/checkbox/daikin-checkbox.cjs +190 -52
  12. package/dist/cjs/components/checkbox/daikin-checkbox.d.cts +18 -0
  13. package/dist/cjs/components/checkbox-group/daikin-checkbox-group.cjs +7 -1
  14. package/dist/cjs/components/checkbox-group/daikin-checkbox-group.d.cts +5 -0
  15. package/dist/cjs/components/chip/daikin-chip.cjs +195 -93
  16. package/dist/cjs/components/chip/daikin-chip.d.cts +20 -0
  17. package/dist/cjs/components/combobox/daikin-combobox.cjs +111 -33
  18. package/dist/cjs/components/combobox/daikin-combobox.d.cts +10 -0
  19. package/dist/cjs/components/date-picker/daikin-date-picker.cjs +243 -65
  20. package/dist/cjs/components/date-picker/daikin-date-picker.d.cts +37 -2
  21. package/dist/cjs/components/drawer/daikin-drawer.cjs +1 -1
  22. package/dist/cjs/components/dropdown/daikin-dropdown.cjs +164 -32
  23. package/dist/cjs/components/dropdown/daikin-dropdown.d.cts +13 -0
  24. package/dist/cjs/components/dropdown-item/daikin-dropdown-item.cjs +13 -6
  25. package/dist/cjs/components/icon-button/daikin-icon-button.cjs +2 -0
  26. package/dist/cjs/components/icon-button/daikin-icon-button.d.cts +2 -0
  27. package/dist/cjs/components/index.cjs +2 -2
  28. package/dist/cjs/components/input-group/daikin-input-group.cjs +88 -30
  29. package/dist/cjs/components/input-group/daikin-input-group.d.cts +10 -0
  30. package/dist/cjs/components/list-item/daikin-list-item.cjs +21 -10
  31. package/dist/cjs/components/list-item/daikin-list-item.d.cts +9 -0
  32. package/dist/cjs/components/logo/daikin-logo.cjs +1 -1
  33. package/dist/cjs/components/logo/daikin-logo.d.cts +2 -2
  34. package/dist/cjs/components/menu/daikin-menu.cjs +2 -2
  35. package/dist/cjs/components/modal-header/daikin-modal-header.cjs +10 -4
  36. package/dist/cjs/components/modal-header/daikin-modal-header.d.cts +1 -0
  37. package/dist/cjs/components/navigation/daikin-navigation.cjs +21 -0
  38. package/dist/cjs/components/navigation/daikin-navigation.d.cts +9 -0
  39. package/dist/cjs/components/navigation-item/daikin-navigation-item.cjs +18 -14
  40. package/dist/cjs/components/pagination/daikin-pagination.cjs +60 -19
  41. package/dist/cjs/components/pagination/daikin-pagination.d.cts +11 -0
  42. package/dist/cjs/components/progress-bar/daikin-progress-bar.cjs +27 -19
  43. package/dist/cjs/components/progress-bar/daikin-progress-bar.d.cts +1 -0
  44. package/dist/cjs/components/radio/daikin-radio.cjs +160 -35
  45. package/dist/cjs/components/radio/daikin-radio.d.cts +26 -0
  46. package/dist/cjs/components/radio-group/daikin-radio-group.cjs +10 -1
  47. package/dist/cjs/components/radio-group/daikin-radio-group.d.cts +4 -0
  48. package/dist/cjs/components/select/daikin-select.cjs +128 -21
  49. package/dist/cjs/components/select/daikin-select.d.cts +11 -0
  50. package/dist/cjs/components/slider/daikin-slider.cjs +61 -16
  51. package/dist/cjs/components/slider/daikin-slider.d.cts +4 -0
  52. package/dist/cjs/components/status-message/daikin-status-message.cjs +1 -0
  53. package/dist/cjs/components/status-message/daikin-status-message.d.cts +2 -0
  54. package/dist/cjs/components/table/daikin-table.cjs +108 -16
  55. package/dist/cjs/components/table/daikin-table.d.cts +58 -1
  56. package/dist/cjs/components/table-cell/daikin-table-cell.cjs +3 -4
  57. package/dist/cjs/components/table-header-cell/daikin-table-header-cell.cjs +21 -15
  58. package/dist/cjs/components/tag/daikin-tag.cjs +99 -20
  59. package/dist/cjs/components/tag/daikin-tag.d.cts +14 -0
  60. package/dist/cjs/components/text-area/daikin-text-area.cjs +22 -2
  61. package/dist/cjs/components/text-field/daikin-text-field.cjs +96 -50
  62. package/dist/cjs/components/text-field/daikin-text-field.d.cts +9 -0
  63. package/dist/cjs/components/text-field/number-utils.cjs +51 -19
  64. package/dist/cjs/components/text-field/number-utils.d.cts +7 -0
  65. package/dist/cjs/components/text-masked-field/daikin-text-masked-field.cjs +31 -7
  66. package/dist/cjs/components/time-picker/daikin-time-picker.cjs +325 -108
  67. package/dist/cjs/components/time-picker/daikin-time-picker.d.cts +57 -14
  68. package/dist/cjs/components/time-picker/index.cjs +2 -2
  69. package/dist/cjs/components/toast-notification-manager/daikin-toast-notification-manager.cjs +1 -1
  70. package/dist/cjs/components/toggle/daikin-toggle.cjs +110 -35
  71. package/dist/cjs/components/toggle/daikin-toggle.d.cts +5 -0
  72. package/dist/cjs/components/tooltip/daikin-tooltip.cjs +1 -1
  73. package/dist/cjs/components/tree-item/daikin-tree-item.cjs +24 -8
  74. package/dist/cjs/components/tree-item/daikin-tree-item.d.cts +1 -0
  75. package/dist/cjs/components/tree-section/daikin-tree-section.cjs +7 -1
  76. package/dist/cjs/components/tree-section/daikin-tree-section.d.cts +1 -0
  77. package/dist/cjs/components/vertical-navigation/daikin-vertical-navigation.cjs +1 -1
  78. package/dist/cjs/components/vertical-navigation-item/daikin-vertical-navigation-item.cjs +248 -38
  79. package/dist/cjs/components/vertical-navigation-item/daikin-vertical-navigation-item.d.cts +17 -7
  80. package/dist/cjs/components/vertical-navigation-menu-item/daikin-vertical-navigation-menu-item.cjs +103 -33
  81. package/dist/cjs/components/vertical-navigation-menu-item/daikin-vertical-navigation-menu-item.d.cts +6 -1
  82. package/dist/cjs/controllers/custom-readonly.cjs +59 -0
  83. package/dist/cjs/controllers/custom-readonly.d.cts +28 -0
  84. package/dist/cjs/index.cjs +2 -2
  85. package/dist/cjs/tailwind.css.cjs +1 -1
  86. package/dist/cjs/utils/calendar-common.cjs +6 -2
  87. package/dist/cjs/utils/calendar-common.d.cts +1 -1
  88. package/dist/cjs/utils/extract-half-width-digits.cjs +11 -0
  89. package/dist/cjs/utils/extract-half-width-digits.d.cts +15 -0
  90. package/dist/cjs-dev/base/dds-element.cjs +1 -1
  91. package/dist/cjs-dev/components/accordion-item/daikin-accordion-item.cjs +25 -8
  92. package/dist/cjs-dev/components/accordion-item/daikin-accordion-item.d.cts +1 -0
  93. package/dist/cjs-dev/components/breadcrumb/daikin-breadcrumb.d.cts +1 -1
  94. package/dist/cjs-dev/components/breadcrumb-item/daikin-breadcrumb-item.cjs +9 -6
  95. package/dist/cjs-dev/components/breadcrumb-item/daikin-breadcrumb-item.d.cts +1 -0
  96. package/dist/cjs-dev/components/calendar/daikin-calendar.cjs +73 -26
  97. package/dist/cjs-dev/components/calendar/daikin-calendar.d.cts +13 -0
  98. package/dist/cjs-dev/components/checkbox/daikin-checkbox.cjs +190 -52
  99. package/dist/cjs-dev/components/checkbox/daikin-checkbox.d.cts +18 -0
  100. package/dist/cjs-dev/components/checkbox-group/daikin-checkbox-group.cjs +7 -1
  101. package/dist/cjs-dev/components/checkbox-group/daikin-checkbox-group.d.cts +5 -0
  102. package/dist/cjs-dev/components/chip/daikin-chip.cjs +195 -93
  103. package/dist/cjs-dev/components/chip/daikin-chip.d.cts +20 -0
  104. package/dist/cjs-dev/components/combobox/daikin-combobox.cjs +111 -33
  105. package/dist/cjs-dev/components/combobox/daikin-combobox.d.cts +10 -0
  106. package/dist/cjs-dev/components/date-picker/daikin-date-picker.cjs +243 -65
  107. package/dist/cjs-dev/components/date-picker/daikin-date-picker.d.cts +37 -2
  108. package/dist/cjs-dev/components/drawer/daikin-drawer.cjs +1 -1
  109. package/dist/cjs-dev/components/dropdown/daikin-dropdown.cjs +164 -32
  110. package/dist/cjs-dev/components/dropdown/daikin-dropdown.d.cts +13 -0
  111. package/dist/cjs-dev/components/dropdown-item/daikin-dropdown-item.cjs +13 -6
  112. package/dist/cjs-dev/components/icon-button/daikin-icon-button.cjs +2 -0
  113. package/dist/cjs-dev/components/icon-button/daikin-icon-button.d.cts +2 -0
  114. package/dist/cjs-dev/components/index.cjs +2 -2
  115. package/dist/cjs-dev/components/input-group/daikin-input-group.cjs +88 -30
  116. package/dist/cjs-dev/components/input-group/daikin-input-group.d.cts +10 -0
  117. package/dist/cjs-dev/components/list-item/daikin-list-item.cjs +21 -10
  118. package/dist/cjs-dev/components/list-item/daikin-list-item.d.cts +9 -0
  119. package/dist/cjs-dev/components/logo/daikin-logo.cjs +1 -1
  120. package/dist/cjs-dev/components/logo/daikin-logo.d.cts +2 -2
  121. package/dist/cjs-dev/components/menu/daikin-menu.cjs +2 -2
  122. package/dist/cjs-dev/components/modal-header/daikin-modal-header.cjs +10 -4
  123. package/dist/cjs-dev/components/modal-header/daikin-modal-header.d.cts +1 -0
  124. package/dist/cjs-dev/components/navigation/daikin-navigation.cjs +21 -0
  125. package/dist/cjs-dev/components/navigation/daikin-navigation.d.cts +9 -0
  126. package/dist/cjs-dev/components/navigation-item/daikin-navigation-item.cjs +18 -14
  127. package/dist/cjs-dev/components/pagination/daikin-pagination.cjs +60 -19
  128. package/dist/cjs-dev/components/pagination/daikin-pagination.d.cts +11 -0
  129. package/dist/cjs-dev/components/progress-bar/daikin-progress-bar.cjs +27 -19
  130. package/dist/cjs-dev/components/progress-bar/daikin-progress-bar.d.cts +1 -0
  131. package/dist/cjs-dev/components/radio/daikin-radio.cjs +160 -35
  132. package/dist/cjs-dev/components/radio/daikin-radio.d.cts +26 -0
  133. package/dist/cjs-dev/components/radio-group/daikin-radio-group.cjs +10 -1
  134. package/dist/cjs-dev/components/radio-group/daikin-radio-group.d.cts +4 -0
  135. package/dist/cjs-dev/components/select/daikin-select.cjs +128 -21
  136. package/dist/cjs-dev/components/select/daikin-select.d.cts +11 -0
  137. package/dist/cjs-dev/components/slider/daikin-slider.cjs +61 -16
  138. package/dist/cjs-dev/components/slider/daikin-slider.d.cts +4 -0
  139. package/dist/cjs-dev/components/status-message/daikin-status-message.cjs +1 -0
  140. package/dist/cjs-dev/components/status-message/daikin-status-message.d.cts +2 -0
  141. package/dist/cjs-dev/components/table/daikin-table.cjs +108 -16
  142. package/dist/cjs-dev/components/table/daikin-table.d.cts +58 -1
  143. package/dist/cjs-dev/components/table-cell/daikin-table-cell.cjs +3 -4
  144. package/dist/cjs-dev/components/table-header-cell/daikin-table-header-cell.cjs +21 -15
  145. package/dist/cjs-dev/components/tag/daikin-tag.cjs +99 -20
  146. package/dist/cjs-dev/components/tag/daikin-tag.d.cts +14 -0
  147. package/dist/cjs-dev/components/text-area/daikin-text-area.cjs +22 -2
  148. package/dist/cjs-dev/components/text-field/daikin-text-field.cjs +96 -50
  149. package/dist/cjs-dev/components/text-field/daikin-text-field.d.cts +9 -0
  150. package/dist/cjs-dev/components/text-field/number-utils.cjs +51 -19
  151. package/dist/cjs-dev/components/text-field/number-utils.d.cts +7 -0
  152. package/dist/cjs-dev/components/text-masked-field/daikin-text-masked-field.cjs +31 -7
  153. package/dist/cjs-dev/components/time-picker/daikin-time-picker.cjs +325 -108
  154. package/dist/cjs-dev/components/time-picker/daikin-time-picker.d.cts +57 -14
  155. package/dist/cjs-dev/components/time-picker/index.cjs +2 -2
  156. package/dist/cjs-dev/components/toast-notification-manager/daikin-toast-notification-manager.cjs +1 -1
  157. package/dist/cjs-dev/components/toggle/daikin-toggle.cjs +110 -35
  158. package/dist/cjs-dev/components/toggle/daikin-toggle.d.cts +5 -0
  159. package/dist/cjs-dev/components/tooltip/daikin-tooltip.cjs +1 -1
  160. package/dist/cjs-dev/components/tree-item/daikin-tree-item.cjs +24 -8
  161. package/dist/cjs-dev/components/tree-item/daikin-tree-item.d.cts +1 -0
  162. package/dist/cjs-dev/components/tree-section/daikin-tree-section.cjs +7 -1
  163. package/dist/cjs-dev/components/tree-section/daikin-tree-section.d.cts +1 -0
  164. package/dist/cjs-dev/components/vertical-navigation/daikin-vertical-navigation.cjs +1 -1
  165. package/dist/cjs-dev/components/vertical-navigation-item/daikin-vertical-navigation-item.cjs +248 -38
  166. package/dist/cjs-dev/components/vertical-navigation-item/daikin-vertical-navigation-item.d.cts +17 -7
  167. package/dist/cjs-dev/components/vertical-navigation-menu-item/daikin-vertical-navigation-menu-item.cjs +103 -33
  168. package/dist/cjs-dev/components/vertical-navigation-menu-item/daikin-vertical-navigation-menu-item.d.cts +6 -1
  169. package/dist/cjs-dev/controllers/custom-readonly.cjs +59 -0
  170. package/dist/cjs-dev/controllers/custom-readonly.d.cts +28 -0
  171. package/dist/cjs-dev/index.cjs +2 -2
  172. package/dist/cjs-dev/tailwind.css.cjs +1 -1
  173. package/dist/cjs-dev/utils/calendar-common.cjs +6 -2
  174. package/dist/cjs-dev/utils/calendar-common.d.cts +1 -1
  175. package/dist/cjs-dev/utils/extract-half-width-digits.cjs +11 -0
  176. package/dist/cjs-dev/utils/extract-half-width-digits.d.cts +15 -0
  177. package/dist/es/base/dds-element.js +1 -1
  178. package/dist/es/components/accordion-item/daikin-accordion-item.d.ts +1 -0
  179. package/dist/es/components/accordion-item/daikin-accordion-item.js +25 -8
  180. package/dist/es/components/breadcrumb/daikin-breadcrumb.d.ts +1 -1
  181. package/dist/es/components/breadcrumb-item/daikin-breadcrumb-item.d.ts +1 -0
  182. package/dist/es/components/breadcrumb-item/daikin-breadcrumb-item.js +9 -6
  183. package/dist/es/components/calendar/daikin-calendar.d.ts +13 -0
  184. package/dist/es/components/calendar/daikin-calendar.js +73 -26
  185. package/dist/es/components/checkbox/daikin-checkbox.d.ts +18 -0
  186. package/dist/es/components/checkbox/daikin-checkbox.js +190 -52
  187. package/dist/es/components/checkbox-group/daikin-checkbox-group.d.ts +5 -0
  188. package/dist/es/components/checkbox-group/daikin-checkbox-group.js +7 -1
  189. package/dist/es/components/chip/daikin-chip.d.ts +20 -0
  190. package/dist/es/components/chip/daikin-chip.js +195 -93
  191. package/dist/es/components/combobox/daikin-combobox.d.ts +10 -0
  192. package/dist/es/components/combobox/daikin-combobox.js +111 -33
  193. package/dist/es/components/date-picker/daikin-date-picker.d.ts +37 -2
  194. package/dist/es/components/date-picker/daikin-date-picker.js +243 -65
  195. package/dist/es/components/drawer/daikin-drawer.js +1 -1
  196. package/dist/es/components/dropdown/daikin-dropdown.d.ts +13 -0
  197. package/dist/es/components/dropdown/daikin-dropdown.js +164 -32
  198. package/dist/es/components/dropdown-item/daikin-dropdown-item.js +13 -6
  199. package/dist/es/components/icon-button/daikin-icon-button.d.ts +2 -0
  200. package/dist/es/components/icon-button/daikin-icon-button.js +2 -0
  201. package/dist/es/components/index.js +4 -4
  202. package/dist/es/components/input-group/daikin-input-group.d.ts +10 -0
  203. package/dist/es/components/input-group/daikin-input-group.js +89 -31
  204. package/dist/es/components/list-item/daikin-list-item.d.ts +9 -0
  205. package/dist/es/components/list-item/daikin-list-item.js +21 -10
  206. package/dist/es/components/logo/daikin-logo.d.ts +2 -2
  207. package/dist/es/components/logo/daikin-logo.js +1 -1
  208. package/dist/es/components/menu/daikin-menu.js +2 -2
  209. package/dist/es/components/modal-header/daikin-modal-header.d.ts +1 -0
  210. package/dist/es/components/modal-header/daikin-modal-header.js +10 -4
  211. package/dist/es/components/navigation/daikin-navigation.d.ts +9 -0
  212. package/dist/es/components/navigation/daikin-navigation.js +22 -1
  213. package/dist/es/components/navigation-item/daikin-navigation-item.js +18 -14
  214. package/dist/es/components/pagination/daikin-pagination.d.ts +11 -0
  215. package/dist/es/components/pagination/daikin-pagination.js +61 -20
  216. package/dist/es/components/progress-bar/daikin-progress-bar.d.ts +1 -0
  217. package/dist/es/components/progress-bar/daikin-progress-bar.js +27 -19
  218. package/dist/es/components/radio/daikin-radio.d.ts +26 -0
  219. package/dist/es/components/radio/daikin-radio.js +160 -35
  220. package/dist/es/components/radio-group/daikin-radio-group.d.ts +4 -0
  221. package/dist/es/components/radio-group/daikin-radio-group.js +10 -1
  222. package/dist/es/components/select/daikin-select.d.ts +11 -0
  223. package/dist/es/components/select/daikin-select.js +128 -21
  224. package/dist/es/components/slider/daikin-slider.d.ts +4 -0
  225. package/dist/es/components/slider/daikin-slider.js +61 -16
  226. package/dist/es/components/status-message/daikin-status-message.d.ts +2 -0
  227. package/dist/es/components/status-message/daikin-status-message.js +1 -0
  228. package/dist/es/components/table/daikin-table.d.ts +58 -1
  229. package/dist/es/components/table/daikin-table.js +109 -17
  230. package/dist/es/components/table-cell/daikin-table-cell.js +3 -4
  231. package/dist/es/components/table-header-cell/daikin-table-header-cell.js +21 -15
  232. package/dist/es/components/tag/daikin-tag.d.ts +14 -0
  233. package/dist/es/components/tag/daikin-tag.js +100 -21
  234. package/dist/es/components/text-area/daikin-text-area.js +22 -2
  235. package/dist/es/components/text-field/daikin-text-field.d.ts +9 -0
  236. package/dist/es/components/text-field/daikin-text-field.js +97 -51
  237. package/dist/es/components/text-field/number-utils.d.ts +7 -0
  238. package/dist/es/components/text-field/number-utils.js +51 -19
  239. package/dist/es/components/text-masked-field/daikin-text-masked-field.js +31 -7
  240. package/dist/es/components/time-picker/daikin-time-picker.d.ts +57 -14
  241. package/dist/es/components/time-picker/daikin-time-picker.js +327 -110
  242. package/dist/es/components/time-picker/index.js +4 -4
  243. package/dist/es/components/toast-notification-manager/daikin-toast-notification-manager.js +1 -1
  244. package/dist/es/components/toggle/daikin-toggle.d.ts +5 -0
  245. package/dist/es/components/toggle/daikin-toggle.js +110 -35
  246. package/dist/es/components/tooltip/daikin-tooltip.js +1 -1
  247. package/dist/es/components/tree-item/daikin-tree-item.d.ts +1 -0
  248. package/dist/es/components/tree-item/daikin-tree-item.js +24 -8
  249. package/dist/es/components/tree-section/daikin-tree-section.d.ts +1 -0
  250. package/dist/es/components/tree-section/daikin-tree-section.js +7 -1
  251. package/dist/es/components/vertical-navigation/daikin-vertical-navigation.js +1 -1
  252. package/dist/es/components/vertical-navigation-item/daikin-vertical-navigation-item.d.ts +17 -7
  253. package/dist/es/components/vertical-navigation-item/daikin-vertical-navigation-item.js +248 -38
  254. package/dist/es/components/vertical-navigation-menu-item/daikin-vertical-navigation-menu-item.d.ts +6 -1
  255. package/dist/es/components/vertical-navigation-menu-item/daikin-vertical-navigation-menu-item.js +104 -34
  256. package/dist/es/controllers/custom-readonly.d.ts +28 -0
  257. package/dist/es/controllers/custom-readonly.js +59 -0
  258. package/dist/es/index.js +4 -4
  259. package/dist/es/tailwind.css.js +1 -1
  260. package/dist/es/utils/calendar-common.d.ts +1 -1
  261. package/dist/es/utils/calendar-common.js +6 -2
  262. package/dist/es/utils/extract-half-width-digits.d.ts +15 -0
  263. package/dist/es/utils/extract-half-width-digits.js +11 -0
  264. package/dist/es-dev/base/dds-element.js +1 -1
  265. package/dist/es-dev/components/accordion-item/daikin-accordion-item.d.ts +1 -0
  266. package/dist/es-dev/components/accordion-item/daikin-accordion-item.js +25 -8
  267. package/dist/es-dev/components/breadcrumb/daikin-breadcrumb.d.ts +1 -1
  268. package/dist/es-dev/components/breadcrumb-item/daikin-breadcrumb-item.d.ts +1 -0
  269. package/dist/es-dev/components/breadcrumb-item/daikin-breadcrumb-item.js +9 -6
  270. package/dist/es-dev/components/calendar/daikin-calendar.d.ts +13 -0
  271. package/dist/es-dev/components/calendar/daikin-calendar.js +73 -26
  272. package/dist/es-dev/components/checkbox/daikin-checkbox.d.ts +18 -0
  273. package/dist/es-dev/components/checkbox/daikin-checkbox.js +190 -52
  274. package/dist/es-dev/components/checkbox-group/daikin-checkbox-group.d.ts +5 -0
  275. package/dist/es-dev/components/checkbox-group/daikin-checkbox-group.js +7 -1
  276. package/dist/es-dev/components/chip/daikin-chip.d.ts +20 -0
  277. package/dist/es-dev/components/chip/daikin-chip.js +195 -93
  278. package/dist/es-dev/components/combobox/daikin-combobox.d.ts +10 -0
  279. package/dist/es-dev/components/combobox/daikin-combobox.js +111 -33
  280. package/dist/es-dev/components/date-picker/daikin-date-picker.d.ts +37 -2
  281. package/dist/es-dev/components/date-picker/daikin-date-picker.js +243 -65
  282. package/dist/es-dev/components/drawer/daikin-drawer.js +1 -1
  283. package/dist/es-dev/components/dropdown/daikin-dropdown.d.ts +13 -0
  284. package/dist/es-dev/components/dropdown/daikin-dropdown.js +164 -32
  285. package/dist/es-dev/components/dropdown-item/daikin-dropdown-item.js +13 -6
  286. package/dist/es-dev/components/icon-button/daikin-icon-button.d.ts +2 -0
  287. package/dist/es-dev/components/icon-button/daikin-icon-button.js +2 -0
  288. package/dist/es-dev/components/index.js +4 -4
  289. package/dist/es-dev/components/input-group/daikin-input-group.d.ts +10 -0
  290. package/dist/es-dev/components/input-group/daikin-input-group.js +89 -31
  291. package/dist/es-dev/components/list-item/daikin-list-item.d.ts +9 -0
  292. package/dist/es-dev/components/list-item/daikin-list-item.js +21 -10
  293. package/dist/es-dev/components/logo/daikin-logo.d.ts +2 -2
  294. package/dist/es-dev/components/logo/daikin-logo.js +1 -1
  295. package/dist/es-dev/components/menu/daikin-menu.js +2 -2
  296. package/dist/es-dev/components/modal-header/daikin-modal-header.d.ts +1 -0
  297. package/dist/es-dev/components/modal-header/daikin-modal-header.js +10 -4
  298. package/dist/es-dev/components/navigation/daikin-navigation.d.ts +9 -0
  299. package/dist/es-dev/components/navigation/daikin-navigation.js +22 -1
  300. package/dist/es-dev/components/navigation-item/daikin-navigation-item.js +18 -14
  301. package/dist/es-dev/components/pagination/daikin-pagination.d.ts +11 -0
  302. package/dist/es-dev/components/pagination/daikin-pagination.js +61 -20
  303. package/dist/es-dev/components/progress-bar/daikin-progress-bar.d.ts +1 -0
  304. package/dist/es-dev/components/progress-bar/daikin-progress-bar.js +27 -19
  305. package/dist/es-dev/components/radio/daikin-radio.d.ts +26 -0
  306. package/dist/es-dev/components/radio/daikin-radio.js +160 -35
  307. package/dist/es-dev/components/radio-group/daikin-radio-group.d.ts +4 -0
  308. package/dist/es-dev/components/radio-group/daikin-radio-group.js +10 -1
  309. package/dist/es-dev/components/select/daikin-select.d.ts +11 -0
  310. package/dist/es-dev/components/select/daikin-select.js +128 -21
  311. package/dist/es-dev/components/slider/daikin-slider.d.ts +4 -0
  312. package/dist/es-dev/components/slider/daikin-slider.js +61 -16
  313. package/dist/es-dev/components/status-message/daikin-status-message.d.ts +2 -0
  314. package/dist/es-dev/components/status-message/daikin-status-message.js +1 -0
  315. package/dist/es-dev/components/table/daikin-table.d.ts +58 -1
  316. package/dist/es-dev/components/table/daikin-table.js +109 -17
  317. package/dist/es-dev/components/table-cell/daikin-table-cell.js +3 -4
  318. package/dist/es-dev/components/table-header-cell/daikin-table-header-cell.js +21 -15
  319. package/dist/es-dev/components/tag/daikin-tag.d.ts +14 -0
  320. package/dist/es-dev/components/tag/daikin-tag.js +100 -21
  321. package/dist/es-dev/components/text-area/daikin-text-area.js +22 -2
  322. package/dist/es-dev/components/text-field/daikin-text-field.d.ts +9 -0
  323. package/dist/es-dev/components/text-field/daikin-text-field.js +97 -51
  324. package/dist/es-dev/components/text-field/number-utils.d.ts +7 -0
  325. package/dist/es-dev/components/text-field/number-utils.js +51 -19
  326. package/dist/es-dev/components/text-masked-field/daikin-text-masked-field.js +31 -7
  327. package/dist/es-dev/components/time-picker/daikin-time-picker.d.ts +57 -14
  328. package/dist/es-dev/components/time-picker/daikin-time-picker.js +327 -110
  329. package/dist/es-dev/components/time-picker/index.js +4 -4
  330. package/dist/es-dev/components/toast-notification-manager/daikin-toast-notification-manager.js +1 -1
  331. package/dist/es-dev/components/toggle/daikin-toggle.d.ts +5 -0
  332. package/dist/es-dev/components/toggle/daikin-toggle.js +110 -35
  333. package/dist/es-dev/components/tooltip/daikin-tooltip.js +1 -1
  334. package/dist/es-dev/components/tree-item/daikin-tree-item.d.ts +1 -0
  335. package/dist/es-dev/components/tree-item/daikin-tree-item.js +24 -8
  336. package/dist/es-dev/components/tree-section/daikin-tree-section.d.ts +1 -0
  337. package/dist/es-dev/components/tree-section/daikin-tree-section.js +7 -1
  338. package/dist/es-dev/components/vertical-navigation/daikin-vertical-navigation.js +1 -1
  339. package/dist/es-dev/components/vertical-navigation-item/daikin-vertical-navigation-item.d.ts +17 -7
  340. package/dist/es-dev/components/vertical-navigation-item/daikin-vertical-navigation-item.js +248 -38
  341. package/dist/es-dev/components/vertical-navigation-menu-item/daikin-vertical-navigation-menu-item.d.ts +6 -1
  342. package/dist/es-dev/components/vertical-navigation-menu-item/daikin-vertical-navigation-menu-item.js +104 -34
  343. package/dist/es-dev/controllers/custom-readonly.d.ts +28 -0
  344. package/dist/es-dev/controllers/custom-readonly.js +59 -0
  345. package/dist/es-dev/index.js +4 -4
  346. package/dist/es-dev/tailwind.css.js +1 -1
  347. package/dist/es-dev/utils/calendar-common.d.ts +1 -1
  348. package/dist/es-dev/utils/calendar-common.js +6 -2
  349. package/dist/es-dev/utils/extract-half-width-digits.d.ts +15 -0
  350. package/dist/es-dev/utils/extract-half-width-digits.js +11 -0
  351. package/icons/logo-negative.svg +16 -9
  352. package/icons/logo-positive.svg +16 -9
  353. package/package.json +6 -5
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const classVarianceAuthority = require("class-variance-authority");
4
3
  const lit = require("lit");
5
4
  const decorators_js = require("lit/decorators.js");
6
5
  const ifDefined_js = require("lit/directives/if-defined.js");
@@ -11,6 +10,7 @@ const ddsProperty = require("../../base/dds-property.cjs");
11
10
  const decorators = require("../../base/decorators.cjs");
12
11
  require("../../base/define.cjs");
13
12
  const tailwind = require("../../tailwind.css.cjs");
13
+ const extractHalfWidthDigits = require("../../utils/extract-half-width-digits.cjs");
14
14
  require("../dropdown-item/daikin-dropdown-item.cjs");
15
15
  require("../dropdown/daikin-dropdown.cjs");
16
16
  var __defProp = Object.defineProperty;
@@ -26,23 +26,31 @@ var __decorateClass = (decorators2, target, key, kind) => {
26
26
  const VALUE_TIME_REGEX = /^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/;
27
27
  const DEFAULT_MIN_TIME = "00:00";
28
28
  const DEFAULT_MAX_TIME = "23:59";
29
- function to24HourFormat(time, meridiem) {
30
- const [hourInit, minute] = time.split(":").map(Number);
31
- let hour = hourInit;
32
- if (meridiem === "AM") {
33
- if (hour === 12) hour = 0;
34
- } else {
35
- if (hour !== 12) hour += 12;
29
+ function uiToTimeValue(object) {
30
+ if (object.hourCycle === "h23") {
31
+ return formatTimeForUI(formatPartsForUI(object));
36
32
  }
33
+ const [hour12, minute] = formatPartsForUI(object).split(":").map(Number);
34
+ const hour = hour12 % 12 + (object.meridiem === "PM" ? 12 : 0);
37
35
  return `${hour.toString().padStart(2, "0")}:${minute.toString().padStart(2, "0")}`;
38
36
  }
39
- function from24HourFormat(time) {
40
- const [hour, minute] = time.split(":").map(Number);
41
- const meridiem = hour >= 12 ? "PM" : "AM";
42
- let hour12 = hour % 12;
37
+ function timeValueToUI(time, hourCycle) {
38
+ const [hour24, minute] = time.split(":").map(Number);
39
+ if (hourCycle === "h23") {
40
+ return {
41
+ hourCycle: "h23",
42
+ hour: hour24.toString().padStart(2, "0"),
43
+ minute: minute.toString().padStart(2, "0"),
44
+ meridiem: null
45
+ };
46
+ }
47
+ const meridiem = hour24 >= 12 ? "PM" : "AM";
48
+ let hour12 = hour24 % 12;
43
49
  if (hour12 === 0) hour12 = 12;
44
50
  return {
45
- time: `${hour12.toString().padStart(2, "0")}:${minute.toString().padStart(2, "0")}`,
51
+ hourCycle: "h12",
52
+ hour: hour12.toString().padStart(2, "0"),
53
+ minute: minute.toString().padStart(2, "0"),
46
54
  meridiem
47
55
  };
48
56
  }
@@ -112,12 +120,39 @@ function getTimeItemInSelection(selectionStart, selectionEnd) {
112
120
  }
113
121
  return null;
114
122
  }
115
- function calcDigitInput(parts, item, digit, hourDigitIndex) {
123
+ function calcDigitInput(parts, item, digit, hourDigitIndex, hourCycle) {
116
124
  if (!/^\d$/.test(digit)) {
117
125
  return null;
118
126
  }
119
127
  switch (item) {
120
128
  case "hour": {
129
+ if (hourCycle === "h23") {
130
+ if (hourDigitIndex === 1) {
131
+ const firstDigit = parts.hour[1];
132
+ if (firstDigit === "2") {
133
+ if (["0", "1", "2", "3"].includes(digit)) {
134
+ return {
135
+ parts: { ...parts, hour: `2${digit}` },
136
+ done: true
137
+ };
138
+ }
139
+ return {
140
+ parts: { ...parts, hour: `0${digit}` },
141
+ done: true
142
+ };
143
+ }
144
+ if (firstDigit === "0" || firstDigit === "1") {
145
+ return {
146
+ parts: { ...parts, hour: `${firstDigit}${digit}` },
147
+ done: true
148
+ };
149
+ }
150
+ }
151
+ return {
152
+ parts: { ...parts, hour: `0${digit}` },
153
+ done: digit > "2"
154
+ };
155
+ }
121
156
  if (parts.hour === "01" && ["0", "1", "2"].includes(digit)) {
122
157
  return {
123
158
  parts: { ...parts, hour: `1${digit}` },
@@ -149,70 +184,74 @@ function calcDigitInput(parts, item, digit, hourDigitIndex) {
149
184
  }
150
185
  }
151
186
  }
152
- const cvaField = classVarianceAuthority.cva(
153
- [
154
- "flex",
155
- "items-center",
156
- "size-full",
157
- "w-23.5",
158
- "bg-ddt-color-common-background-default",
159
- "p-3",
160
- "rounded-sm",
161
- "truncate",
162
- "outline-solid",
163
- "outline-(--color-border)",
164
- "outline-0",
165
- "-outline-offset-2",
166
- "placeholder:text-ddt-color-common-text-secondary",
167
- "[--color-border:var(--color-state-focus,var(--color-base))]",
168
- "border",
169
- "border-(--color-border)",
170
- "enabled:text-ddt-color-common-text-primary",
171
- "enabled:hover:bg-ddt-color-common-surface-hover",
172
- "enabled:active:bg-ddt-color-common-surface-press",
173
- "focus-visible:outline-2",
174
- "disabled:[--color-border:var(--dds-color-common-disabled)]",
175
- "disabled:text-ddt-color-common-disabled",
176
- "disabled:bg-ddt-color-common-background-default",
177
- "disabled:placeholder:text-ddt-color-common-disabled"
178
- ],
179
- {
180
- variants: {
181
- error: {
182
- false: [
183
- "enabled:[--color-base:var(--dds-color-common-neutral-default)]",
184
- "focus-visible:[--color-state-focus:var(--dds-color-common-border-focus)]"
185
- ],
186
- true: ["enabled:[--color-base:var(--dds-color-common-danger-default)]"]
187
- }
188
- }
189
- }
190
- );
187
+ const fieldBaseClass = [
188
+ "flex",
189
+ "items-center",
190
+ "size-full",
191
+ "w-[calc(var(--dds-space-1600)+var(--dds-space-600)+var(--dds-space-100)+var(--dds-space-050))]",
192
+ "bg-ddt-color-common-background-default",
193
+ "px-[calc(var(--dds-padding-30)+0.25rem)]",
194
+ "rounded-sm",
195
+ "truncate",
196
+ "outline-solid",
197
+ "outline-(--color-border)",
198
+ "outline-0",
199
+ "-outline-offset-2",
200
+ "placeholder:text-ddt-color-common-text-secondary",
201
+ "[--color-border:var(--color-state-focus,var(--color-base))]",
202
+ "border",
203
+ "border-(--color-border)",
204
+ "enabled:text-ddt-color-common-text-primary",
205
+ "enabled:hover:bg-ddt-color-common-surface-hover",
206
+ "enabled:active:bg-ddt-color-common-surface-press",
207
+ "focus-visible:outline-2",
208
+ "disabled:[--color-border:var(--dds-color-common-disabled)]",
209
+ "disabled:text-ddt-color-common-disabled",
210
+ "disabled:bg-ddt-color-common-background-default",
211
+ "disabled:placeholder:text-ddt-color-common-disabled"
212
+ ].join(" ");
213
+ function getFieldClass(error) {
214
+ return [
215
+ fieldBaseClass,
216
+ error ? "enabled:[--color-base:var(--dds-color-common-danger-default)]" : "enabled:[--color-base:var(--dds-color-common-neutral-default)] focus-visible:[--color-state-focus:var(--dds-color-common-border-focus)]"
217
+ ].join(" ");
218
+ }
191
219
  exports.DaikinTimePicker = class DaikinTimePicker extends ddsFormElement.DDSFormElement {
192
220
  constructor() {
193
221
  super(...arguments);
194
222
  this.disabled = false;
223
+ this.readonly = false;
195
224
  this.required = false;
196
225
  this.error = false;
226
+ this.hourCycle = "h12";
227
+ this.meridiemSingleOpen = true;
197
228
  this._label = null;
198
229
  this._inputValue = "";
199
230
  this._currentSelection = "hour";
200
231
  this._meridiem = "";
201
232
  this._timeInputElement = ref_js.createRef();
233
+ this._meridiemDropdown = ref_js.createRef();
202
234
  this._hourDigitIndex = 0;
235
+ this._preCompositionValue = "";
236
+ this._minuteDigitIndex = 0;
203
237
  }
204
238
  /**
205
239
  * Returns the value to be displayed in the input field.
206
- * - If the main value is a valid 24-hour time, returns the 12-hour formatted string for UI display.
240
+ * - If the main value is a valid 24-hour time, returns a display string based on the selected hour cycle.
207
241
  * - If the current input value is not valid or meridiem is empty, returns the raw input value.
208
242
  * - Otherwise, returns null.
209
243
  */
210
244
  get _value() {
211
245
  if (isValidValueTime(this.value)) {
212
- const { time } = from24HourFormat(this.value);
213
- return time;
246
+ const ui = timeValueToUI(this.value, this.hourCycle);
247
+ return formatPartsForUI({ hour: ui.hour, minute: ui.minute });
214
248
  }
215
- if (this._timeValue && !isValidValueTime(this._timeValue) || this._meridiem === "") {
249
+ const needsMeridiem = this.hourCycle === "h12";
250
+ if (this._timeValue && // Show the raw input value when it is not a valid 24h time OR when the
251
+ // UI hour is "00" (intermediate 12h entry state). Without the "00" check,
252
+ // "00:xx" would be treated as valid 24h and the getter would return null,
253
+ // causing Lit to clear the input field.
254
+ (!isValidValueTime(this._timeValue) || parsePartsFromUIValue(this._timeValue).hour === "00") || needsMeridiem && this._meridiem === "") {
216
255
  return this._timeValue;
217
256
  }
218
257
  return null;
@@ -228,8 +267,8 @@ exports.DaikinTimePicker = class DaikinTimePicker extends ddsFormElement.DDSForm
228
267
  */
229
268
  _syncMeridiemWithValue() {
230
269
  if (this.value) {
231
- const { meridiem } = from24HourFormat(this.value);
232
- this._meridiem = meridiem;
270
+ const ui = timeValueToUI(this.value, this.hourCycle);
271
+ this._meridiem = ui.meridiem ? ui.meridiem : "";
233
272
  }
234
273
  }
235
274
  get _min() {
@@ -258,10 +297,13 @@ exports.DaikinTimePicker = class DaikinTimePicker extends ddsFormElement.DDSForm
258
297
  this._inputValue = "";
259
298
  target.value = "";
260
299
  }
261
- if (target.value.startsWith("00")) {
300
+ const allowZeroHour = this.hourCycle === "h23";
301
+ if (!allowZeroHour && target.value.startsWith("00")) {
262
302
  this._convertZeroHourToTwelve();
303
+ this._updateValue();
263
304
  }
264
305
  this._hourDigitIndex = 0;
306
+ this._minuteDigitIndex = 0;
265
307
  }
266
308
  _handleChange(event) {
267
309
  const target = event.target;
@@ -285,21 +327,103 @@ exports.DaikinTimePicker = class DaikinTimePicker extends ddsFormElement.DDSForm
285
327
  this._updateSelection(timeItemInSelection);
286
328
  }
287
329
  }
288
- _handleDigitInput(parts, item, digit, hourDigitIndex) {
289
- if (this._currentSelection === "hour") {
330
+ _handleDigitInput(parts, item, digit, hourDigitIndex, hourCycle) {
331
+ if (item === "hour") {
290
332
  if (hourDigitIndex === 1) {
291
333
  this._hourDigitIndex = 0;
292
334
  } else {
293
335
  this._hourDigitIndex = 1;
294
336
  }
337
+ if (hourDigitIndex === 0) {
338
+ return {
339
+ parts: { ...parts, hour: `0${digit}` },
340
+ done: hourCycle === "h12" ? digit > "1" : digit > "2"
341
+ };
342
+ }
295
343
  }
296
- return calcDigitInput(parts, item, digit, hourDigitIndex);
344
+ if (item === "minute") {
345
+ const minuteDigitIndex = this._minuteDigitIndex;
346
+ if (minuteDigitIndex === 1) {
347
+ this._minuteDigitIndex = 0;
348
+ } else {
349
+ this._minuteDigitIndex = 1;
350
+ }
351
+ if (minuteDigitIndex === 0) {
352
+ return {
353
+ parts: { ...parts, minute: `0${digit}` },
354
+ done: digit > "5"
355
+ };
356
+ }
357
+ }
358
+ return calcDigitInput(parts, item, digit, hourDigitIndex, this.hourCycle);
359
+ }
360
+ // Saves the input's display value when IME composition starts so that
361
+ // _handleCompositionEnd can restore it if the browser inserted raw IME text.
362
+ _handleCompositionStart(event) {
363
+ this._preCompositionValue = event.target.value;
364
+ }
365
+ // Handles compositionend to support full-width and half-width digit input via IME.
366
+ // Full-width digits are converted to half-width, then each digit is applied as if
367
+ // the user had typed them one by one using the existing calcDigitInput logic.
368
+ _handleCompositionEnd(event) {
369
+ if (this.readonly) {
370
+ return;
371
+ }
372
+ const target = event.target;
373
+ const composedText = event.data;
374
+ target.value = this._preCompositionValue || PLACEHOLDER_ALL;
375
+ this._inputValue = target.value;
376
+ const digits = extractHalfWidthDigits.extractHalfWidthDigits(composedText);
377
+ if (digits.length === 0) {
378
+ this._updateInputSelection(target);
379
+ this._updateValue();
380
+ return;
381
+ }
382
+ this._applyDigits(target, digits);
383
+ }
384
+ // Applies a sequence of digit characters to the input starting from the currently
385
+ // selected time item, then commits the result to this.value.
386
+ // Shared by _handleKeyDown (single digit) and _handleCompositionEnd (multiple digits).
387
+ _applyDigits(target, digits) {
388
+ let parts = parsePartsFromUIValue(target.value);
389
+ let currentItem = this._currentSelection;
390
+ for (const digit of digits) {
391
+ const currentIndex = TIME_ITEMS.findIndex(
392
+ ({ type }) => type === currentItem
393
+ );
394
+ if (currentIndex < 0) break;
395
+ const newState = this._handleDigitInput(
396
+ parts,
397
+ currentItem,
398
+ digit,
399
+ this._hourDigitIndex,
400
+ this.hourCycle
401
+ );
402
+ if (newState) {
403
+ parts = newState.parts;
404
+ if (newState.done) {
405
+ const nextIndex = Math.min(currentIndex + 1, TIME_ITEMS.length - 1);
406
+ currentItem = TIME_ITEMS[nextIndex].type;
407
+ }
408
+ }
409
+ }
410
+ const newVal = formatPartsForUI(parts);
411
+ this._inputValue = newVal;
412
+ target.value = newVal;
413
+ this._updateSelection(currentItem);
414
+ this._updateValue();
297
415
  }
298
416
  _handleKeyDown(event) {
417
+ if (this.readonly) {
418
+ return;
419
+ }
420
+ if (event.isComposing || event.key === "Process" || event.keyCode === 229) {
421
+ return;
422
+ }
299
423
  const target = event.target;
300
424
  const key = event.key;
301
425
  const parts = parsePartsFromUIValue(target.value);
302
- if (key === "Backspace") {
426
+ if (key === "Backspace" || key === "Delete") {
303
427
  event.preventDefault();
304
428
  const itemToRemove = this._currentSelection;
305
429
  const placeholder = {
@@ -315,30 +439,12 @@ exports.DaikinTimePicker = class DaikinTimePicker extends ddsFormElement.DDSForm
315
439
  target.value = newVal;
316
440
  this._updateSelection(itemToRemove);
317
441
  }
318
- this._updateValue(event);
442
+ this._updateValue();
319
443
  return;
320
444
  }
321
445
  if (/^\d$/.test(key)) {
322
446
  event.preventDefault();
323
- const newState = this._handleDigitInput(
324
- parts,
325
- this._currentSelection,
326
- key,
327
- this._hourDigitIndex
328
- );
329
- if (newState) {
330
- const newVal = formatPartsForUI(newState.parts);
331
- this._inputValue = newVal;
332
- target.value = newVal;
333
- const currentIndex = TIME_ITEMS.findIndex(
334
- ({ type }) => type === this._currentSelection
335
- );
336
- const nextIndex = currentIndex >= 0 ? Math.min(currentIndex + 1, TIME_ITEMS.length - 1) : -1;
337
- this._updateSelection(
338
- newState.done && nextIndex >= 0 ? TIME_ITEMS[nextIndex].type : this._currentSelection
339
- );
340
- }
341
- this._updateValue(event);
447
+ this._applyDigits(target, [key]);
342
448
  return;
343
449
  }
344
450
  const moveOffset = {
@@ -382,7 +488,11 @@ exports.DaikinTimePicker = class DaikinTimePicker extends ddsFormElement.DDSForm
382
488
  let minute = parseInt(minuteStr, 10);
383
489
  if (this._currentSelection === "hour") {
384
490
  if (isNaN(hour)) hour = 0;
385
- hour = (hour + offset + 11) % 12 + 1;
491
+ if (this.hourCycle === "h23") {
492
+ hour = (hour + offset + 24) % 24;
493
+ } else {
494
+ hour = (hour + offset + 11) % 12 + 1;
495
+ }
386
496
  } else {
387
497
  if (isNaN(minute)) minute = 0;
388
498
  minute = (minute + offset * Number(this.minutesStep) + 60) % 60;
@@ -395,25 +505,47 @@ exports.DaikinTimePicker = class DaikinTimePicker extends ddsFormElement.DDSForm
395
505
  }
396
506
  _handleBeforeInput(event) {
397
507
  event.preventDefault();
398
- this._updateInputSelection(event.target);
508
+ if (!event.isComposing) {
509
+ this._updateSelection(this._currentSelection);
510
+ }
399
511
  }
400
512
  /**
401
- * Updates the value in 24-hour format if the input is valid, keeps UI in 12-hour format.
513
+ * Updates the value in 24-hour format if the input is valid, while preserving the selected UI hour cycle.
402
514
  */
403
515
  _updateValue(event) {
404
516
  const target = (event == null ? void 0 : event.target) || this._timeInputElement.value;
405
517
  if (!target) return;
518
+ const allowZeroHour = this.hourCycle === "h23";
519
+ const needsMeridiem = this.hourCycle === "h12";
406
520
  this._inputValue = target.value;
407
521
  if (target.value === PLACEHOLDER_ALL) {
408
522
  this.error = false;
523
+ this.value = "";
409
524
  return;
410
525
  }
411
- if (this._meridiem === "") {
526
+ if (needsMeridiem && this._meridiem === "") {
412
527
  this.error = true;
528
+ this.value = "";
413
529
  return;
414
530
  }
415
531
  const newTime = tryParseTimeFromUIValue(target.value);
416
- const newValue = newTime != null ? to24HourFormat(newTime, this._meridiem) : "";
532
+ const { hour: uiHour } = parsePartsFromUIValue(target.value);
533
+ if (!allowZeroHour && uiHour === "00") {
534
+ this.error = true;
535
+ this.value = "";
536
+ return;
537
+ }
538
+ const newValue = newTime != null ? uiToTimeValue(
539
+ this.hourCycle === "h23" ? {
540
+ hourCycle: "h23",
541
+ ...parsePartsFromUIValue(newTime),
542
+ meridiem: null
543
+ } : {
544
+ hourCycle: "h12",
545
+ ...parsePartsFromUIValue(newTime),
546
+ meridiem: this._meridiem
547
+ }
548
+ ) : "";
417
549
  this.error = !newValue || isTimeOutOfRange(newValue, this._min, this._max);
418
550
  const changed = newValue !== this.value;
419
551
  this.value = newValue;
@@ -452,13 +584,17 @@ exports.DaikinTimePicker = class DaikinTimePicker extends ddsFormElement.DDSForm
452
584
  if (!selection) {
453
585
  return;
454
586
  }
587
+ const allowZeroHour = this.hourCycle === "h23";
455
588
  const itemInfo = TIME_ITEMS.find(({ type }) => type === timeItem);
456
589
  if (itemInfo) {
457
590
  if (itemInfo.type === "minute") {
458
- if (this._inputValue.startsWith("00")) {
591
+ if (!allowZeroHour && this._inputValue.startsWith("00")) {
459
592
  this._convertZeroHourToTwelve();
460
593
  }
461
594
  this._hourDigitIndex = 0;
595
+ if (this._currentSelection !== "minute") {
596
+ this._minuteDigitIndex = 0;
597
+ }
462
598
  }
463
599
  (_a = this._timeInputElement.value) == null ? void 0 : _a.setSelectionRange(
464
600
  itemInfo.range[0],
@@ -468,6 +604,9 @@ exports.DaikinTimePicker = class DaikinTimePicker extends ddsFormElement.DDSForm
468
604
  }
469
605
  }
470
606
  _handleDropdownChange(event) {
607
+ if (this.readonly) {
608
+ return;
609
+ }
471
610
  const target = event.target;
472
611
  this._meridiem = target.value;
473
612
  const input = this._timeInputElement.value;
@@ -475,6 +614,33 @@ exports.DaikinTimePicker = class DaikinTimePicker extends ddsFormElement.DDSForm
475
614
  this._updateValue();
476
615
  }
477
616
  }
617
+ _closeMeridiemDropdown() {
618
+ const dropdown = this._meridiemDropdown.value;
619
+ if (!dropdown || !dropdown.open) {
620
+ return;
621
+ }
622
+ dropdown.open = false;
623
+ }
624
+ _handleMeridiemDropdownToggle(event) {
625
+ if (!this.meridiemSingleOpen) {
626
+ return;
627
+ }
628
+ const toggleEvent = event;
629
+ if (toggleEvent.newState !== "open") {
630
+ return;
631
+ }
632
+ const root = this.getRootNode();
633
+ if (!(root instanceof Document || root instanceof ShadowRoot)) {
634
+ return;
635
+ }
636
+ const peerTimePickers = root.querySelectorAll("daikin-time-picker");
637
+ for (const peerElement of peerTimePickers) {
638
+ if (peerElement === this) {
639
+ continue;
640
+ }
641
+ peerElement._closeMeridiemDropdown();
642
+ }
643
+ }
478
644
  /**
479
645
  * Focuses on the inner time input.
480
646
  * @param options focus options
@@ -484,38 +650,45 @@ exports.DaikinTimePicker = class DaikinTimePicker extends ddsFormElement.DDSForm
484
650
  (_a = this._timeInputElement.value) == null ? void 0 : _a.focus(options);
485
651
  }
486
652
  render() {
653
+ const needsMeridiem = this.hourCycle === "h12";
487
654
  return lit.html`<div
488
655
  role="group"
489
656
  aria-label=${ifDefined_js.ifDefined(this._label ?? void 0)}
490
- class="flex flex-row h-full gap-2"
657
+ class="flex flex-row h-full gap-2 w-fit"
491
658
  >
492
659
  <input
493
660
  ${ref_js.ref(this._timeInputElement)}
494
- class=${cvaField({ error: this.error })}
661
+ class=${getFieldClass(this.error)}
495
662
  type="text"
496
663
  name=${ifDefined_js.ifDefined(this.getBackingProperty("name"))}
497
664
  placeholder=${this.placeholder}
498
665
  .value=${this._value ?? ""}
499
666
  ?disabled=${this.disabled}
667
+ ?readonly=${this.readonly}
500
668
  ?required=${this.required}
501
669
  @change=${this._handleChange}
670
+ @compositionstart=${this._handleCompositionStart}
671
+ @compositionend=${this._handleCompositionEnd}
502
672
  @focusin=${this._handleFocusIn}
503
673
  @focusout=${this._handleFocusOut}
504
674
  @keydown=${this._handleKeyDown}
505
675
  @beforeinput=${this._handleBeforeInput}
506
676
  @mouseup=${this._handleMouseUp}
507
677
  />
508
- <daikin-dropdown
509
- class="w-22"
510
- placeholder="--"
511
- .error=${this.error}
512
- .value=${this._meridiem}
513
- ?disabled=${this.disabled}
514
- @change=${this._handleDropdownChange}
515
- >
516
- <daikin-dropdown-item value="AM">AM</daikin-dropdown-item>
517
- <daikin-dropdown-item value="PM">PM</daikin-dropdown-item>
518
- </daikin-dropdown>
678
+ ${needsMeridiem ? lit.html`<daikin-dropdown
679
+ ${ref_js.ref(this._meridiemDropdown)}
680
+ class="w-[calc(var(--dds-space-1600)+var(--dds-space-600))]"
681
+ placeholder="--"
682
+ .error=${this.error}
683
+ .value=${this._meridiem}
684
+ ?disabled=${this.disabled}
685
+ ?readonly=${this.readonly}
686
+ @change=${this._handleDropdownChange}
687
+ @toggle=${this._handleMeridiemDropdownToggle}
688
+ >
689
+ <daikin-dropdown-item value="AM">AM</daikin-dropdown-item>
690
+ <daikin-dropdown-item value="PM">PM</daikin-dropdown-item>
691
+ </daikin-dropdown>` : null}
519
692
  </div>`;
520
693
  }
521
694
  willUpdate(changedProperties) {
@@ -531,9 +704,19 @@ exports.DaikinTimePicker = class DaikinTimePicker extends ddsFormElement.DDSForm
531
704
  }
532
705
  }
533
706
  }
534
- if (changedProperties.has("value")) {
707
+ if (changedProperties.has("hourCycle")) {
535
708
  if (isValidValueTime(this.value)) {
536
709
  this._syncMeridiemWithValue();
710
+ }
711
+ if (isValidValueTime(this.value)) {
712
+ this.error = isTimeOutOfRange(this.value, this.min, this.max);
713
+ }
714
+ }
715
+ if (changedProperties.has("value")) {
716
+ if (isValidValueTime(this.value)) {
717
+ if (this.hourCycle !== "h23") {
718
+ this._syncMeridiemWithValue();
719
+ }
537
720
  if (isTimeOutOfRange(this.value, this.min, this.max)) {
538
721
  this.error = true;
539
722
  } else {
@@ -554,6 +737,7 @@ exports.DaikinTimePicker = class DaikinTimePicker extends ddsFormElement.DDSForm
554
737
  reflectInputGroup(inputGroup) {
555
738
  const isError = !inputGroup.disabled && !!inputGroup.error;
556
739
  this.disabled = !!inputGroup.disabled;
740
+ this.readonly = !!inputGroup.readonly;
557
741
  this.required = !!inputGroup.required;
558
742
  this.error = isError;
559
743
  this._label = inputGroup.label ?? null;
@@ -563,9 +747,27 @@ exports.DaikinTimePicker.styles = lit.css`
563
747
  ${lit.unsafeCSS(tailwind.default)}
564
748
 
565
749
  :host {
566
- display: flex;
750
+ display: inline-flex;
567
751
  align-items: center;
568
- height: 3rem;
752
+ height: var(--dds-input-height, 3rem);
753
+ width: fit-content;
754
+ }
755
+
756
+ :host([readonly]:not([disabled])) input {
757
+ --color-base: var(--dds-color-common-surface-secondary);
758
+ background-color: var(--dds-color-common-surface-secondary);
759
+ }
760
+
761
+ :host([readonly]:not([disabled])) input:hover,
762
+ :host([readonly]:not([disabled])) input:active {
763
+ --color-base: var(--dds-color-common-surface-secondary);
764
+ background-color: var(--dds-color-common-surface-secondary);
765
+ }
766
+
767
+ :host([readonly][error]:not([disabled])) input,
768
+ :host([readonly][error]:not([disabled])) input:hover,
769
+ :host([readonly][error]:not([disabled])) input:active {
770
+ --color-base: var(--dds-color-common-danger-default);
569
771
  }
570
772
  `;
571
773
  __decorateClass([
@@ -580,12 +782,24 @@ __decorateClass([
580
782
  __decorateClass([
581
783
  ddsProperty.property({ type: Boolean, reflect: true })
582
784
  ], exports.DaikinTimePicker.prototype, "disabled", 2);
785
+ __decorateClass([
786
+ ddsProperty.property({ type: Boolean, reflect: true })
787
+ ], exports.DaikinTimePicker.prototype, "readonly", 2);
583
788
  __decorateClass([
584
789
  ddsProperty.property({ type: Boolean, reflect: true })
585
790
  ], exports.DaikinTimePicker.prototype, "required", 2);
586
791
  __decorateClass([
587
792
  ddsProperty.property({ type: Boolean, reflect: true })
588
793
  ], exports.DaikinTimePicker.prototype, "error", 2);
794
+ __decorateClass([
795
+ ddsProperty.property({
796
+ type: String,
797
+ reflect: true,
798
+ attribute: "hour-cycle",
799
+ fallbackValue: "h12",
800
+ isAllowedValue: ddsProperty.oneOf(["h12", "h23"])
801
+ })
802
+ ], exports.DaikinTimePicker.prototype, "hourCycle", 2);
589
803
  __decorateClass([
590
804
  ddsProperty.property({
591
805
  type: String,
@@ -594,6 +808,9 @@ __decorateClass([
594
808
  fallbackValue: "1"
595
809
  })
596
810
  ], exports.DaikinTimePicker.prototype, "minutesStep", 2);
811
+ __decorateClass([
812
+ ddsProperty.property({ type: Boolean, reflect: true, attribute: "meridiem-single-open" })
813
+ ], exports.DaikinTimePicker.prototype, "meridiemSingleOpen", 2);
597
814
  __decorateClass([
598
815
  decorators_js.state()
599
816
  ], exports.DaikinTimePicker.prototype, "_label", 2);
@@ -612,10 +829,10 @@ exports.DaikinTimePicker = __decorateClass([
612
829
  exports.calcDigitInput = calcDigitInput;
613
830
  exports.formatPartsForUI = formatPartsForUI;
614
831
  exports.formatTimeForUI = formatTimeForUI;
615
- exports.from24HourFormat = from24HourFormat;
616
832
  exports.getTimeItemInSelection = getTimeItemInSelection;
617
833
  exports.isTimeOutOfRange = isTimeOutOfRange;
618
834
  exports.isValidValueTime = isValidValueTime;
619
835
  exports.parsePartsFromUIValue = parsePartsFromUIValue;
620
- exports.to24HourFormat = to24HourFormat;
836
+ exports.timeValueToUI = timeValueToUI;
621
837
  exports.tryParseTimeFromUIValue = tryParseTimeFromUIValue;
838
+ exports.uiToTimeValue = uiToTimeValue;