@daikin-oss/design-system-web-components 1.0.0 → 1.2.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 (512) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/LICENSE +1 -1
  3. package/dist/cjs/base/dds-element.cjs +1 -1
  4. package/dist/cjs/base/dds-form-element.cjs +139 -0
  5. package/dist/cjs/base/dds-form-element.d.cts +100 -0
  6. package/dist/cjs/components/accordion-item/daikin-accordion-item.cjs +6 -3
  7. package/dist/cjs/components/avatar/daikin-avatar.cjs +160 -0
  8. package/dist/cjs/components/avatar/daikin-avatar.d.cts +67 -0
  9. package/dist/cjs/components/avatar/index.cjs +7 -0
  10. package/dist/cjs/components/avatar/index.d.cts +1 -0
  11. package/dist/cjs/components/breadcrumb-item/daikin-breadcrumb-item.cjs +2 -0
  12. package/dist/cjs/components/button/daikin-button.cjs +35 -13
  13. package/dist/cjs/components/button/daikin-button.d.cts +20 -10
  14. package/dist/cjs/components/calendar/daikin-calendar.cjs +547 -0
  15. package/dist/cjs/components/calendar/daikin-calendar.d.cts +87 -0
  16. package/dist/cjs/components/calendar/index.cjs +7 -0
  17. package/dist/cjs/components/calendar/index.d.cts +1 -0
  18. package/dist/cjs/components/card/daikin-card.cjs +1 -1
  19. package/dist/cjs/components/checkbox/daikin-checkbox.cjs +13 -16
  20. package/dist/cjs/components/checkbox/daikin-checkbox.d.cts +13 -12
  21. package/dist/cjs/components/checkbox-group/daikin-checkbox-group.cjs +94 -0
  22. package/dist/cjs/components/checkbox-group/daikin-checkbox-group.d.cts +69 -0
  23. package/dist/cjs/components/checkbox-group/index.cjs +7 -0
  24. package/dist/cjs/components/checkbox-group/index.d.cts +1 -0
  25. package/dist/cjs/components/date-picker/daikin-date-picker.cjs +611 -0
  26. package/dist/cjs/components/date-picker/daikin-date-picker.d.cts +105 -0
  27. package/dist/cjs/components/date-picker/index.cjs +7 -0
  28. package/dist/cjs/components/date-picker/index.d.cts +1 -0
  29. package/dist/cjs/components/dropdown/daikin-dropdown.cjs +181 -86
  30. package/dist/cjs/components/dropdown/daikin-dropdown.d.cts +48 -18
  31. package/dist/cjs/components/dropdown-item/daikin-dropdown-item.cjs +97 -36
  32. package/dist/cjs/components/dropdown-item/daikin-dropdown-item.d.cts +6 -1
  33. package/dist/cjs/components/icon/icons.json.cjs +1 -1
  34. package/dist/cjs/components/icon/icons.json.d.cts +30 -14
  35. package/dist/cjs/components/icon-button/daikin-icon-button.cjs +18 -2
  36. package/dist/cjs/components/icon-button/daikin-icon-button.d.cts +12 -2
  37. package/dist/cjs/components/index.cjs +55 -0
  38. package/dist/cjs/components/index.d.cts +11 -0
  39. package/dist/cjs/components/inline-notification/daikin-inline-notification.cjs +13 -18
  40. package/dist/cjs/components/inline-notification/daikin-inline-notification.d.cts +3 -1
  41. package/dist/cjs/components/input-group/daikin-input-group.cjs +4 -4
  42. package/dist/cjs/components/input-group/daikin-input-group.d.cts +22 -0
  43. package/dist/cjs/components/list/daikin-list.cjs +75 -3
  44. package/dist/cjs/components/list/daikin-list.d.cts +16 -0
  45. package/dist/cjs/components/list-item/daikin-list-item.cjs +25 -5
  46. package/dist/cjs/components/list-item/daikin-list-item.d.cts +9 -3
  47. package/dist/cjs/components/loading/daikin-loading.cjs +91 -0
  48. package/dist/cjs/components/loading/daikin-loading.d.cts +33 -0
  49. package/dist/cjs/components/loading/index.cjs +7 -0
  50. package/dist/cjs/components/loading/index.d.cts +1 -0
  51. package/dist/cjs/components/logo/daikin-logo.cjs +105 -0
  52. package/dist/cjs/components/logo/daikin-logo.d.cts +54 -0
  53. package/dist/cjs/components/logo/index.cjs +7 -0
  54. package/dist/cjs/components/logo/index.d.cts +1 -0
  55. package/dist/cjs/components/menu/daikin-menu.cjs +205 -0
  56. package/dist/cjs/components/menu/daikin-menu.d.cts +89 -0
  57. package/dist/cjs/components/menu/index.cjs +7 -0
  58. package/dist/cjs/components/menu/index.d.cts +1 -0
  59. package/dist/cjs/components/modal/daikin-modal.cjs +115 -0
  60. package/dist/cjs/components/modal/daikin-modal.d.cts +61 -0
  61. package/dist/cjs/components/modal/index.cjs +7 -0
  62. package/dist/cjs/components/modal/index.d.cts +1 -0
  63. package/dist/cjs/components/modal-footer/daikin-modal-footer.cjs +40 -0
  64. package/dist/cjs/components/modal-footer/daikin-modal-footer.d.cts +33 -0
  65. package/dist/cjs/components/modal-footer/index.cjs +7 -0
  66. package/dist/cjs/components/modal-footer/index.d.cts +1 -0
  67. package/dist/cjs/components/modal-header/daikin-modal-header.cjs +96 -0
  68. package/dist/cjs/components/modal-header/daikin-modal-header.d.cts +43 -0
  69. package/dist/cjs/components/modal-header/index.cjs +7 -0
  70. package/dist/cjs/components/modal-header/index.d.cts +1 -0
  71. package/dist/cjs/components/progress-bar/daikin-progress-bar.cjs +2 -2
  72. package/dist/cjs/components/progress-indicator-item/daikin-progress-indicator-item.cjs +1 -1
  73. package/dist/cjs/components/radio/daikin-radio.cjs +4 -13
  74. package/dist/cjs/components/radio/daikin-radio.d.cts +2 -12
  75. package/dist/cjs/components/radio-group/daikin-radio-group.cjs +1 -1
  76. package/dist/cjs/components/radio-group/daikin-radio-group.d.cts +2 -1
  77. package/dist/cjs/components/slider/daikin-slider.cjs +263 -0
  78. package/dist/cjs/components/slider/daikin-slider.d.cts +67 -0
  79. package/dist/cjs/components/slider/index.cjs +7 -0
  80. package/dist/cjs/components/slider/index.d.cts +1 -0
  81. package/dist/cjs/components/slider/slider-utils.cjs +57 -0
  82. package/dist/cjs/components/slider/slider-utils.d.cts +37 -0
  83. package/dist/cjs/components/table/daikin-table.cjs +42 -4
  84. package/dist/cjs/components/table/daikin-table.d.cts +5 -0
  85. package/dist/cjs/components/table-cell/daikin-table-cell.cjs +2 -1
  86. package/dist/cjs/components/table-cell/daikin-table-cell.d.cts +1 -1
  87. package/dist/cjs/components/table-header-cell/daikin-table-header-cell.d.cts +1 -1
  88. package/dist/cjs/components/tabs/daikin-tabs.cjs +2 -2
  89. package/dist/cjs/components/text-area/daikin-text-area.cjs +4 -13
  90. package/dist/cjs/components/text-area/daikin-text-area.d.cts +2 -12
  91. package/dist/cjs/components/text-field/daikin-text-field.cjs +149 -52
  92. package/dist/cjs/components/text-field/daikin-text-field.d.cts +28 -18
  93. package/dist/cjs/components/toast-notification/daikin-toast-notification.cjs +10 -7
  94. package/dist/cjs/components/toast-notification/daikin-toast-notification.d.cts +2 -0
  95. package/dist/cjs/components/toast-notification-manager/daikin-toast-notification-manager.cjs +1 -1
  96. package/dist/cjs/components/toast-notification-manager/daikin-toast-notification-manager.d.cts +1 -1
  97. package/dist/cjs/components/toggle/daikin-toggle.cjs +4 -13
  98. package/dist/cjs/components/toggle/daikin-toggle.d.cts +2 -12
  99. package/dist/cjs/components/tooltip/daikin-tooltip.cjs +12 -6
  100. package/dist/cjs/components/tooltip/daikin-tooltip.d.cts +3 -2
  101. package/dist/cjs/components/tree-section/daikin-tree-section.d.cts +2 -0
  102. package/dist/cjs/controllers/click-outside.cjs +3 -1
  103. package/dist/cjs/controllers/focus-trap.cjs +42 -0
  104. package/dist/cjs/controllers/focus-trap.d.cts +10 -0
  105. package/dist/cjs/index.cjs +55 -0
  106. package/dist/cjs/tailwind.css.cjs +1 -1
  107. package/dist/cjs/utils/calendar-common.cjs +151 -0
  108. package/dist/cjs/utils/calendar-common.d.cts +64 -0
  109. package/dist/cjs/utils/is-similar-to-click.cjs +4 -0
  110. package/dist/cjs/utils/is-similar-to-click.d.cts +1 -0
  111. package/dist/cjs/utils/notification-common.cjs +19 -15
  112. package/dist/cjs/utils/notification-common.d.cts +1 -1
  113. package/dist/cjs/{components/tabs → utils}/scroller.cjs +20 -12
  114. package/dist/cjs/{components/tabs → utils}/scroller.d.cts +2 -2
  115. package/dist/cjs-dev/base/dds-element.cjs +1 -1
  116. package/dist/cjs-dev/base/dds-form-element.cjs +139 -0
  117. package/dist/cjs-dev/base/dds-form-element.d.cts +100 -0
  118. package/dist/cjs-dev/components/accordion-item/daikin-accordion-item.cjs +6 -3
  119. package/dist/cjs-dev/components/avatar/daikin-avatar.cjs +160 -0
  120. package/dist/cjs-dev/components/avatar/daikin-avatar.d.cts +67 -0
  121. package/dist/cjs-dev/components/avatar/index.cjs +7 -0
  122. package/dist/cjs-dev/components/avatar/index.d.cts +1 -0
  123. package/dist/cjs-dev/components/breadcrumb-item/daikin-breadcrumb-item.cjs +2 -0
  124. package/dist/cjs-dev/components/button/daikin-button.cjs +35 -13
  125. package/dist/cjs-dev/components/button/daikin-button.d.cts +20 -10
  126. package/dist/cjs-dev/components/calendar/daikin-calendar.cjs +558 -0
  127. package/dist/cjs-dev/components/calendar/daikin-calendar.d.cts +87 -0
  128. package/dist/cjs-dev/components/calendar/index.cjs +7 -0
  129. package/dist/cjs-dev/components/calendar/index.d.cts +1 -0
  130. package/dist/cjs-dev/components/card/daikin-card.cjs +1 -1
  131. package/dist/cjs-dev/components/checkbox/daikin-checkbox.cjs +13 -16
  132. package/dist/cjs-dev/components/checkbox/daikin-checkbox.d.cts +13 -12
  133. package/dist/cjs-dev/components/checkbox-group/daikin-checkbox-group.cjs +94 -0
  134. package/dist/cjs-dev/components/checkbox-group/daikin-checkbox-group.d.cts +69 -0
  135. package/dist/cjs-dev/components/checkbox-group/index.cjs +7 -0
  136. package/dist/cjs-dev/components/checkbox-group/index.d.cts +1 -0
  137. package/dist/cjs-dev/components/date-picker/daikin-date-picker.cjs +622 -0
  138. package/dist/cjs-dev/components/date-picker/daikin-date-picker.d.cts +105 -0
  139. package/dist/cjs-dev/components/date-picker/index.cjs +7 -0
  140. package/dist/cjs-dev/components/date-picker/index.d.cts +1 -0
  141. package/dist/cjs-dev/components/dropdown/daikin-dropdown.cjs +181 -86
  142. package/dist/cjs-dev/components/dropdown/daikin-dropdown.d.cts +48 -18
  143. package/dist/cjs-dev/components/dropdown-item/daikin-dropdown-item.cjs +97 -36
  144. package/dist/cjs-dev/components/dropdown-item/daikin-dropdown-item.d.cts +6 -1
  145. package/dist/cjs-dev/components/icon/icons.json.cjs +1 -1
  146. package/dist/cjs-dev/components/icon/icons.json.d.cts +30 -14
  147. package/dist/cjs-dev/components/icon-button/daikin-icon-button.cjs +18 -2
  148. package/dist/cjs-dev/components/icon-button/daikin-icon-button.d.cts +12 -2
  149. package/dist/cjs-dev/components/index.cjs +55 -0
  150. package/dist/cjs-dev/components/index.d.cts +11 -0
  151. package/dist/cjs-dev/components/inline-notification/daikin-inline-notification.cjs +13 -18
  152. package/dist/cjs-dev/components/inline-notification/daikin-inline-notification.d.cts +3 -1
  153. package/dist/cjs-dev/components/input-group/daikin-input-group.cjs +4 -4
  154. package/dist/cjs-dev/components/input-group/daikin-input-group.d.cts +22 -0
  155. package/dist/cjs-dev/components/list/daikin-list.cjs +75 -3
  156. package/dist/cjs-dev/components/list/daikin-list.d.cts +16 -0
  157. package/dist/cjs-dev/components/list-item/daikin-list-item.cjs +25 -5
  158. package/dist/cjs-dev/components/list-item/daikin-list-item.d.cts +9 -3
  159. package/dist/cjs-dev/components/loading/daikin-loading.cjs +91 -0
  160. package/dist/cjs-dev/components/loading/daikin-loading.d.cts +33 -0
  161. package/dist/cjs-dev/components/loading/index.cjs +7 -0
  162. package/dist/cjs-dev/components/loading/index.d.cts +1 -0
  163. package/dist/cjs-dev/components/logo/daikin-logo.cjs +105 -0
  164. package/dist/cjs-dev/components/logo/daikin-logo.d.cts +54 -0
  165. package/dist/cjs-dev/components/logo/index.cjs +7 -0
  166. package/dist/cjs-dev/components/logo/index.d.cts +1 -0
  167. package/dist/cjs-dev/components/menu/daikin-menu.cjs +205 -0
  168. package/dist/cjs-dev/components/menu/daikin-menu.d.cts +89 -0
  169. package/dist/cjs-dev/components/menu/index.cjs +7 -0
  170. package/dist/cjs-dev/components/menu/index.d.cts +1 -0
  171. package/dist/cjs-dev/components/modal/daikin-modal.cjs +115 -0
  172. package/dist/cjs-dev/components/modal/daikin-modal.d.cts +61 -0
  173. package/dist/cjs-dev/components/modal/index.cjs +7 -0
  174. package/dist/cjs-dev/components/modal/index.d.cts +1 -0
  175. package/dist/cjs-dev/components/modal-footer/daikin-modal-footer.cjs +40 -0
  176. package/dist/cjs-dev/components/modal-footer/daikin-modal-footer.d.cts +33 -0
  177. package/dist/cjs-dev/components/modal-footer/index.cjs +7 -0
  178. package/dist/cjs-dev/components/modal-footer/index.d.cts +1 -0
  179. package/dist/cjs-dev/components/modal-header/daikin-modal-header.cjs +96 -0
  180. package/dist/cjs-dev/components/modal-header/daikin-modal-header.d.cts +43 -0
  181. package/dist/cjs-dev/components/modal-header/index.cjs +7 -0
  182. package/dist/cjs-dev/components/modal-header/index.d.cts +1 -0
  183. package/dist/cjs-dev/components/progress-bar/daikin-progress-bar.cjs +2 -2
  184. package/dist/cjs-dev/components/progress-indicator-item/daikin-progress-indicator-item.cjs +1 -1
  185. package/dist/cjs-dev/components/radio/daikin-radio.cjs +4 -13
  186. package/dist/cjs-dev/components/radio/daikin-radio.d.cts +2 -12
  187. package/dist/cjs-dev/components/radio-group/daikin-radio-group.cjs +1 -1
  188. package/dist/cjs-dev/components/radio-group/daikin-radio-group.d.cts +2 -1
  189. package/dist/cjs-dev/components/slider/daikin-slider.cjs +263 -0
  190. package/dist/cjs-dev/components/slider/daikin-slider.d.cts +67 -0
  191. package/dist/cjs-dev/components/slider/index.cjs +7 -0
  192. package/dist/cjs-dev/components/slider/index.d.cts +1 -0
  193. package/dist/cjs-dev/components/slider/slider-utils.cjs +57 -0
  194. package/dist/cjs-dev/components/slider/slider-utils.d.cts +37 -0
  195. package/dist/cjs-dev/components/table/daikin-table.cjs +42 -4
  196. package/dist/cjs-dev/components/table/daikin-table.d.cts +5 -0
  197. package/dist/cjs-dev/components/table-cell/daikin-table-cell.cjs +2 -1
  198. package/dist/cjs-dev/components/table-cell/daikin-table-cell.d.cts +1 -1
  199. package/dist/cjs-dev/components/table-header-cell/daikin-table-header-cell.d.cts +1 -1
  200. package/dist/cjs-dev/components/tabs/daikin-tabs.cjs +2 -2
  201. package/dist/cjs-dev/components/text-area/daikin-text-area.cjs +4 -13
  202. package/dist/cjs-dev/components/text-area/daikin-text-area.d.cts +2 -12
  203. package/dist/cjs-dev/components/text-field/daikin-text-field.cjs +149 -52
  204. package/dist/cjs-dev/components/text-field/daikin-text-field.d.cts +28 -18
  205. package/dist/cjs-dev/components/toast-notification/daikin-toast-notification.cjs +10 -7
  206. package/dist/cjs-dev/components/toast-notification/daikin-toast-notification.d.cts +2 -0
  207. package/dist/cjs-dev/components/toast-notification-manager/daikin-toast-notification-manager.cjs +1 -1
  208. package/dist/cjs-dev/components/toast-notification-manager/daikin-toast-notification-manager.d.cts +1 -1
  209. package/dist/cjs-dev/components/toggle/daikin-toggle.cjs +4 -13
  210. package/dist/cjs-dev/components/toggle/daikin-toggle.d.cts +2 -12
  211. package/dist/cjs-dev/components/tooltip/daikin-tooltip.cjs +12 -6
  212. package/dist/cjs-dev/components/tooltip/daikin-tooltip.d.cts +3 -2
  213. package/dist/cjs-dev/components/tree-section/daikin-tree-section.d.cts +2 -0
  214. package/dist/cjs-dev/controllers/click-outside.cjs +3 -1
  215. package/dist/cjs-dev/controllers/focus-trap.cjs +42 -0
  216. package/dist/cjs-dev/controllers/focus-trap.d.cts +10 -0
  217. package/dist/cjs-dev/index.cjs +55 -0
  218. package/dist/cjs-dev/tailwind.css.cjs +1 -1
  219. package/dist/cjs-dev/utils/calendar-common.cjs +151 -0
  220. package/dist/cjs-dev/utils/calendar-common.d.cts +64 -0
  221. package/dist/cjs-dev/utils/is-similar-to-click.cjs +4 -0
  222. package/dist/cjs-dev/utils/is-similar-to-click.d.cts +1 -0
  223. package/dist/cjs-dev/utils/notification-common.cjs +19 -15
  224. package/dist/cjs-dev/utils/notification-common.d.cts +1 -1
  225. package/dist/cjs-dev/{components/tabs → utils}/scroller.cjs +20 -12
  226. package/dist/cjs-dev/{components/tabs → utils}/scroller.d.cts +2 -2
  227. package/dist/es/base/dds-element.js +1 -1
  228. package/dist/es/base/dds-form-element.d.ts +100 -0
  229. package/dist/es/base/dds-form-element.js +139 -0
  230. package/dist/es/components/accordion/daikin-accordion.js +1 -1
  231. package/dist/es/components/accordion-item/daikin-accordion-item.js +7 -4
  232. package/dist/es/components/avatar/daikin-avatar.d.ts +67 -0
  233. package/dist/es/components/avatar/daikin-avatar.js +161 -0
  234. package/dist/es/components/avatar/index.d.ts +1 -0
  235. package/dist/es/components/avatar/index.js +4 -0
  236. package/dist/es/components/breadcrumb/daikin-breadcrumb.js +1 -1
  237. package/dist/es/components/breadcrumb-item/daikin-breadcrumb-item.js +3 -1
  238. package/dist/es/components/button/daikin-button.d.ts +20 -10
  239. package/dist/es/components/button/daikin-button.js +36 -14
  240. package/dist/es/components/calendar/daikin-calendar.d.ts +87 -0
  241. package/dist/es/components/calendar/daikin-calendar.js +548 -0
  242. package/dist/es/components/calendar/index.d.ts +1 -0
  243. package/dist/es/components/calendar/index.js +4 -0
  244. package/dist/es/components/card/daikin-card.js +2 -2
  245. package/dist/es/components/card-footer/daikin-card-footer.js +1 -1
  246. package/dist/es/components/card-header/daikin-card-header.js +1 -1
  247. package/dist/es/components/carousel/daikin-carousel.js +1 -1
  248. package/dist/es/components/carousel-item/daikin-carousel-item.js +1 -1
  249. package/dist/es/components/checkbox/daikin-checkbox.d.ts +13 -12
  250. package/dist/es/components/checkbox/daikin-checkbox.js +14 -17
  251. package/dist/es/components/checkbox-group/daikin-checkbox-group.d.ts +69 -0
  252. package/dist/es/components/checkbox-group/daikin-checkbox-group.js +95 -0
  253. package/dist/es/components/checkbox-group/index.d.ts +1 -0
  254. package/dist/es/components/checkbox-group/index.js +4 -0
  255. package/dist/es/components/date-picker/daikin-date-picker.d.ts +105 -0
  256. package/dist/es/components/date-picker/daikin-date-picker.js +612 -0
  257. package/dist/es/components/date-picker/index.d.ts +1 -0
  258. package/dist/es/components/date-picker/index.js +4 -0
  259. package/dist/es/components/dropdown/daikin-dropdown.d.ts +48 -18
  260. package/dist/es/components/dropdown/daikin-dropdown.js +182 -87
  261. package/dist/es/components/dropdown-item/daikin-dropdown-item.d.ts +6 -1
  262. package/dist/es/components/dropdown-item/daikin-dropdown-item.js +98 -37
  263. package/dist/es/components/icon/daikin-icon.js +1 -1
  264. package/dist/es/components/icon/icons.json.d.ts +30 -14
  265. package/dist/es/components/icon/icons.json.js +1 -1
  266. package/dist/es/components/icon-button/daikin-icon-button.d.ts +12 -2
  267. package/dist/es/components/icon-button/daikin-icon-button.js +19 -3
  268. package/dist/es/components/index.d.ts +11 -0
  269. package/dist/es/components/index.js +22 -0
  270. package/dist/es/components/inline-notification/daikin-inline-notification.d.ts +3 -1
  271. package/dist/es/components/inline-notification/daikin-inline-notification.js +14 -19
  272. package/dist/es/components/input-group/daikin-input-group.d.ts +22 -0
  273. package/dist/es/components/input-group/daikin-input-group.js +5 -5
  274. package/dist/es/components/link/daikin-link.js +1 -1
  275. package/dist/es/components/list/daikin-list.d.ts +16 -0
  276. package/dist/es/components/list/daikin-list.js +76 -4
  277. package/dist/es/components/list-item/daikin-list-item.d.ts +9 -3
  278. package/dist/es/components/list-item/daikin-list-item.js +26 -6
  279. package/dist/es/components/loading/daikin-loading.d.ts +33 -0
  280. package/dist/es/components/loading/daikin-loading.js +92 -0
  281. package/dist/es/components/loading/index.d.ts +1 -0
  282. package/dist/es/components/loading/index.js +4 -0
  283. package/dist/es/components/logo/daikin-logo.d.ts +54 -0
  284. package/dist/es/components/logo/daikin-logo.js +106 -0
  285. package/dist/es/components/logo/index.d.ts +1 -0
  286. package/dist/es/components/logo/index.js +4 -0
  287. package/dist/es/components/menu/daikin-menu.d.ts +89 -0
  288. package/dist/es/components/menu/daikin-menu.js +206 -0
  289. package/dist/es/components/menu/index.d.ts +1 -0
  290. package/dist/es/components/menu/index.js +4 -0
  291. package/dist/es/components/modal/daikin-modal.d.ts +61 -0
  292. package/dist/es/components/modal/daikin-modal.js +116 -0
  293. package/dist/es/components/modal/index.d.ts +1 -0
  294. package/dist/es/components/modal/index.js +4 -0
  295. package/dist/es/components/modal-footer/daikin-modal-footer.d.ts +33 -0
  296. package/dist/es/components/modal-footer/daikin-modal-footer.js +41 -0
  297. package/dist/es/components/modal-footer/index.d.ts +1 -0
  298. package/dist/es/components/modal-footer/index.js +4 -0
  299. package/dist/es/components/modal-header/daikin-modal-header.d.ts +43 -0
  300. package/dist/es/components/modal-header/daikin-modal-header.js +97 -0
  301. package/dist/es/components/modal-header/index.d.ts +1 -0
  302. package/dist/es/components/modal-header/index.js +4 -0
  303. package/dist/es/components/pagination/daikin-pagination.js +1 -1
  304. package/dist/es/components/progress-bar/daikin-progress-bar.js +3 -3
  305. package/dist/es/components/progress-indicator/daikin-progress-indicator.js +1 -1
  306. package/dist/es/components/progress-indicator-item/daikin-progress-indicator-item.js +2 -2
  307. package/dist/es/components/radio/daikin-radio.d.ts +2 -12
  308. package/dist/es/components/radio/daikin-radio.js +5 -14
  309. package/dist/es/components/radio-group/daikin-radio-group.d.ts +2 -1
  310. package/dist/es/components/radio-group/daikin-radio-group.js +2 -2
  311. package/dist/es/components/select/daikin-select.js +1 -1
  312. package/dist/es/components/slider/daikin-slider.d.ts +67 -0
  313. package/dist/es/components/slider/daikin-slider.js +264 -0
  314. package/dist/es/components/slider/index.d.ts +1 -0
  315. package/dist/es/components/slider/index.js +4 -0
  316. package/dist/es/components/slider/slider-utils.d.ts +37 -0
  317. package/dist/es/components/slider/slider-utils.js +57 -0
  318. package/dist/es/components/tab/daikin-tab.js +1 -1
  319. package/dist/es/components/tab-panels/daikin-tab-panels.js +1 -1
  320. package/dist/es/components/table/daikin-table.d.ts +5 -0
  321. package/dist/es/components/table/daikin-table.js +43 -5
  322. package/dist/es/components/table-cell/daikin-table-cell.d.ts +1 -1
  323. package/dist/es/components/table-cell/daikin-table-cell.js +3 -2
  324. package/dist/es/components/table-header-cell/daikin-table-header-cell.d.ts +1 -1
  325. package/dist/es/components/table-header-cell/daikin-table-header-cell.js +1 -1
  326. package/dist/es/components/tabs/daikin-tabs.js +3 -3
  327. package/dist/es/components/text-area/daikin-text-area.d.ts +2 -12
  328. package/dist/es/components/text-area/daikin-text-area.js +5 -14
  329. package/dist/es/components/text-field/daikin-text-field.d.ts +28 -18
  330. package/dist/es/components/text-field/daikin-text-field.js +150 -53
  331. package/dist/es/components/toast-notification/daikin-toast-notification.d.ts +2 -0
  332. package/dist/es/components/toast-notification/daikin-toast-notification.js +11 -8
  333. package/dist/es/components/toast-notification-manager/daikin-toast-notification-manager.d.ts +1 -1
  334. package/dist/es/components/toast-notification-manager/daikin-toast-notification-manager.js +2 -2
  335. package/dist/es/components/toggle/daikin-toggle.d.ts +2 -12
  336. package/dist/es/components/toggle/daikin-toggle.js +5 -14
  337. package/dist/es/components/tooltip/daikin-tooltip.d.ts +3 -2
  338. package/dist/es/components/tooltip/daikin-tooltip.js +13 -7
  339. package/dist/es/components/tree/daikin-tree.js +1 -1
  340. package/dist/es/components/tree-item/daikin-tree-item.js +1 -1
  341. package/dist/es/components/tree-section/daikin-tree-section.d.ts +2 -0
  342. package/dist/es/components/tree-section/daikin-tree-section.js +1 -1
  343. package/dist/es/controllers/click-outside.js +3 -1
  344. package/dist/es/controllers/focus-trap.d.ts +10 -0
  345. package/dist/es/controllers/focus-trap.js +42 -0
  346. package/dist/es/index.js +22 -0
  347. package/dist/es/tailwind.css.js +1 -1
  348. package/dist/es/utils/calendar-common.d.ts +64 -0
  349. package/dist/es/utils/calendar-common.js +151 -0
  350. package/dist/es/utils/is-similar-to-click.d.ts +1 -0
  351. package/dist/es/utils/is-similar-to-click.js +4 -0
  352. package/dist/es/utils/notification-common.d.ts +1 -1
  353. package/dist/es/utils/notification-common.js +19 -15
  354. package/dist/es/{components/tabs → utils}/scroller.d.ts +2 -2
  355. package/dist/es/{components/tabs → utils}/scroller.js +20 -12
  356. package/dist/es-dev/base/dds-element.js +1 -1
  357. package/dist/es-dev/base/dds-form-element.d.ts +100 -0
  358. package/dist/es-dev/base/dds-form-element.js +139 -0
  359. package/dist/es-dev/components/accordion/daikin-accordion.js +1 -1
  360. package/dist/es-dev/components/accordion-item/daikin-accordion-item.js +7 -4
  361. package/dist/es-dev/components/avatar/daikin-avatar.d.ts +67 -0
  362. package/dist/es-dev/components/avatar/daikin-avatar.js +161 -0
  363. package/dist/es-dev/components/avatar/index.d.ts +1 -0
  364. package/dist/es-dev/components/avatar/index.js +4 -0
  365. package/dist/es-dev/components/breadcrumb/daikin-breadcrumb.js +1 -1
  366. package/dist/es-dev/components/breadcrumb-item/daikin-breadcrumb-item.js +3 -1
  367. package/dist/es-dev/components/button/daikin-button.d.ts +20 -10
  368. package/dist/es-dev/components/button/daikin-button.js +36 -14
  369. package/dist/es-dev/components/calendar/daikin-calendar.d.ts +87 -0
  370. package/dist/es-dev/components/calendar/daikin-calendar.js +559 -0
  371. package/dist/es-dev/components/calendar/index.d.ts +1 -0
  372. package/dist/es-dev/components/calendar/index.js +4 -0
  373. package/dist/es-dev/components/card/daikin-card.js +2 -2
  374. package/dist/es-dev/components/card-footer/daikin-card-footer.js +1 -1
  375. package/dist/es-dev/components/card-header/daikin-card-header.js +1 -1
  376. package/dist/es-dev/components/carousel/daikin-carousel.js +1 -1
  377. package/dist/es-dev/components/carousel-item/daikin-carousel-item.js +1 -1
  378. package/dist/es-dev/components/checkbox/daikin-checkbox.d.ts +13 -12
  379. package/dist/es-dev/components/checkbox/daikin-checkbox.js +14 -17
  380. package/dist/es-dev/components/checkbox-group/daikin-checkbox-group.d.ts +69 -0
  381. package/dist/es-dev/components/checkbox-group/daikin-checkbox-group.js +95 -0
  382. package/dist/es-dev/components/checkbox-group/index.d.ts +1 -0
  383. package/dist/es-dev/components/checkbox-group/index.js +4 -0
  384. package/dist/es-dev/components/date-picker/daikin-date-picker.d.ts +105 -0
  385. package/dist/es-dev/components/date-picker/daikin-date-picker.js +623 -0
  386. package/dist/es-dev/components/date-picker/index.d.ts +1 -0
  387. package/dist/es-dev/components/date-picker/index.js +4 -0
  388. package/dist/es-dev/components/dropdown/daikin-dropdown.d.ts +48 -18
  389. package/dist/es-dev/components/dropdown/daikin-dropdown.js +182 -87
  390. package/dist/es-dev/components/dropdown-item/daikin-dropdown-item.d.ts +6 -1
  391. package/dist/es-dev/components/dropdown-item/daikin-dropdown-item.js +98 -37
  392. package/dist/es-dev/components/icon/daikin-icon.js +1 -1
  393. package/dist/es-dev/components/icon/icons.json.d.ts +30 -14
  394. package/dist/es-dev/components/icon/icons.json.js +1 -1
  395. package/dist/es-dev/components/icon-button/daikin-icon-button.d.ts +12 -2
  396. package/dist/es-dev/components/icon-button/daikin-icon-button.js +19 -3
  397. package/dist/es-dev/components/index.d.ts +11 -0
  398. package/dist/es-dev/components/index.js +22 -0
  399. package/dist/es-dev/components/inline-notification/daikin-inline-notification.d.ts +3 -1
  400. package/dist/es-dev/components/inline-notification/daikin-inline-notification.js +14 -19
  401. package/dist/es-dev/components/input-group/daikin-input-group.d.ts +22 -0
  402. package/dist/es-dev/components/input-group/daikin-input-group.js +5 -5
  403. package/dist/es-dev/components/link/daikin-link.js +1 -1
  404. package/dist/es-dev/components/list/daikin-list.d.ts +16 -0
  405. package/dist/es-dev/components/list/daikin-list.js +76 -4
  406. package/dist/es-dev/components/list-item/daikin-list-item.d.ts +9 -3
  407. package/dist/es-dev/components/list-item/daikin-list-item.js +26 -6
  408. package/dist/es-dev/components/loading/daikin-loading.d.ts +33 -0
  409. package/dist/es-dev/components/loading/daikin-loading.js +92 -0
  410. package/dist/es-dev/components/loading/index.d.ts +1 -0
  411. package/dist/es-dev/components/loading/index.js +4 -0
  412. package/dist/es-dev/components/logo/daikin-logo.d.ts +54 -0
  413. package/dist/es-dev/components/logo/daikin-logo.js +106 -0
  414. package/dist/es-dev/components/logo/index.d.ts +1 -0
  415. package/dist/es-dev/components/logo/index.js +4 -0
  416. package/dist/es-dev/components/menu/daikin-menu.d.ts +89 -0
  417. package/dist/es-dev/components/menu/daikin-menu.js +206 -0
  418. package/dist/es-dev/components/menu/index.d.ts +1 -0
  419. package/dist/es-dev/components/menu/index.js +4 -0
  420. package/dist/es-dev/components/modal/daikin-modal.d.ts +61 -0
  421. package/dist/es-dev/components/modal/daikin-modal.js +116 -0
  422. package/dist/es-dev/components/modal/index.d.ts +1 -0
  423. package/dist/es-dev/components/modal/index.js +4 -0
  424. package/dist/es-dev/components/modal-footer/daikin-modal-footer.d.ts +33 -0
  425. package/dist/es-dev/components/modal-footer/daikin-modal-footer.js +41 -0
  426. package/dist/es-dev/components/modal-footer/index.d.ts +1 -0
  427. package/dist/es-dev/components/modal-footer/index.js +4 -0
  428. package/dist/es-dev/components/modal-header/daikin-modal-header.d.ts +43 -0
  429. package/dist/es-dev/components/modal-header/daikin-modal-header.js +97 -0
  430. package/dist/es-dev/components/modal-header/index.d.ts +1 -0
  431. package/dist/es-dev/components/modal-header/index.js +4 -0
  432. package/dist/es-dev/components/pagination/daikin-pagination.js +1 -1
  433. package/dist/es-dev/components/progress-bar/daikin-progress-bar.js +3 -3
  434. package/dist/es-dev/components/progress-indicator/daikin-progress-indicator.js +1 -1
  435. package/dist/es-dev/components/progress-indicator-item/daikin-progress-indicator-item.js +2 -2
  436. package/dist/es-dev/components/radio/daikin-radio.d.ts +2 -12
  437. package/dist/es-dev/components/radio/daikin-radio.js +5 -14
  438. package/dist/es-dev/components/radio-group/daikin-radio-group.d.ts +2 -1
  439. package/dist/es-dev/components/radio-group/daikin-radio-group.js +2 -2
  440. package/dist/es-dev/components/select/daikin-select.js +1 -1
  441. package/dist/es-dev/components/slider/daikin-slider.d.ts +67 -0
  442. package/dist/es-dev/components/slider/daikin-slider.js +264 -0
  443. package/dist/es-dev/components/slider/index.d.ts +1 -0
  444. package/dist/es-dev/components/slider/index.js +4 -0
  445. package/dist/es-dev/components/slider/slider-utils.d.ts +37 -0
  446. package/dist/es-dev/components/slider/slider-utils.js +57 -0
  447. package/dist/es-dev/components/tab/daikin-tab.js +1 -1
  448. package/dist/es-dev/components/tab-panels/daikin-tab-panels.js +1 -1
  449. package/dist/es-dev/components/table/daikin-table.d.ts +5 -0
  450. package/dist/es-dev/components/table/daikin-table.js +43 -5
  451. package/dist/es-dev/components/table-cell/daikin-table-cell.d.ts +1 -1
  452. package/dist/es-dev/components/table-cell/daikin-table-cell.js +3 -2
  453. package/dist/es-dev/components/table-header-cell/daikin-table-header-cell.d.ts +1 -1
  454. package/dist/es-dev/components/table-header-cell/daikin-table-header-cell.js +1 -1
  455. package/dist/es-dev/components/tabs/daikin-tabs.js +3 -3
  456. package/dist/es-dev/components/text-area/daikin-text-area.d.ts +2 -12
  457. package/dist/es-dev/components/text-area/daikin-text-area.js +5 -14
  458. package/dist/es-dev/components/text-field/daikin-text-field.d.ts +28 -18
  459. package/dist/es-dev/components/text-field/daikin-text-field.js +150 -53
  460. package/dist/es-dev/components/toast-notification/daikin-toast-notification.d.ts +2 -0
  461. package/dist/es-dev/components/toast-notification/daikin-toast-notification.js +11 -8
  462. package/dist/es-dev/components/toast-notification-manager/daikin-toast-notification-manager.d.ts +1 -1
  463. package/dist/es-dev/components/toast-notification-manager/daikin-toast-notification-manager.js +2 -2
  464. package/dist/es-dev/components/toggle/daikin-toggle.d.ts +2 -12
  465. package/dist/es-dev/components/toggle/daikin-toggle.js +5 -14
  466. package/dist/es-dev/components/tooltip/daikin-tooltip.d.ts +3 -2
  467. package/dist/es-dev/components/tooltip/daikin-tooltip.js +13 -7
  468. package/dist/es-dev/components/tree/daikin-tree.js +1 -1
  469. package/dist/es-dev/components/tree-item/daikin-tree-item.js +1 -1
  470. package/dist/es-dev/components/tree-section/daikin-tree-section.d.ts +2 -0
  471. package/dist/es-dev/components/tree-section/daikin-tree-section.js +1 -1
  472. package/dist/es-dev/controllers/click-outside.js +3 -1
  473. package/dist/es-dev/controllers/focus-trap.d.ts +10 -0
  474. package/dist/es-dev/controllers/focus-trap.js +42 -0
  475. package/dist/es-dev/index.js +22 -0
  476. package/dist/es-dev/tailwind.css.js +1 -1
  477. package/dist/es-dev/utils/calendar-common.d.ts +64 -0
  478. package/dist/es-dev/utils/calendar-common.js +151 -0
  479. package/dist/es-dev/utils/is-similar-to-click.d.ts +1 -0
  480. package/dist/es-dev/utils/is-similar-to-click.js +4 -0
  481. package/dist/es-dev/utils/notification-common.d.ts +1 -1
  482. package/dist/es-dev/utils/notification-common.js +19 -15
  483. package/dist/es-dev/{components/tabs → utils}/scroller.d.ts +2 -2
  484. package/dist/es-dev/{components/tabs → utils}/scroller.js +20 -12
  485. package/icons/alarm.svg +3 -0
  486. package/icons/calendar.svg +3 -0
  487. package/icons/chevron-down.svg +3 -3
  488. package/icons/chevron-left.svg +2 -2
  489. package/icons/chevron-right.svg +2 -2
  490. package/icons/chevron-up.svg +2 -2
  491. package/icons/close.svg +3 -0
  492. package/icons/dropdown-chevron-down.svg +3 -3
  493. package/icons/error.svg +3 -0
  494. package/icons/information.svg +3 -0
  495. package/icons/logo-negative.svg +10 -0
  496. package/icons/logo-positive.svg +10 -0
  497. package/icons/password-hidden.svg +3 -0
  498. package/icons/password-visible.svg +3 -0
  499. package/icons/profile.svg +4 -0
  500. package/icons/pulldown-down.svg +3 -0
  501. package/icons/search.svg +3 -0
  502. package/icons/success.svg +3 -0
  503. package/icons/warning.svg +3 -0
  504. package/package.json +7 -3
  505. package/icons/cross.svg +0 -3
  506. package/icons/notification-close.svg +0 -5
  507. package/icons/status-alarm.svg +0 -5
  508. package/icons/status-error.svg +0 -3
  509. package/icons/status-information.svg +0 -5
  510. package/icons/status-negative.svg +0 -5
  511. package/icons/status-positive.svg +0 -5
  512. package/icons/status-warning.svg +0 -3
@@ -1,5 +1,5 @@
1
1
  import { PropertyValues } from 'lit';
2
- import { DDSElement } from "../../base/index.js";
2
+ import { DDSFormElement } from "../../base/dds-form-element.js";
3
3
  import { DaikinInputGroup } from "../input-group/index.js";
4
4
  /**
5
5
  * A dropdown list component.
@@ -27,15 +27,8 @@ import { DaikinInputGroup } from "../input-group/index.js";
27
27
  * </daikin-dropdown>
28
28
  * ```
29
29
  */
30
- export declare class DaikinDropdown extends DDSElement {
30
+ export declare class DaikinDropdown extends DDSFormElement {
31
31
  static readonly styles: import('lit').CSSResult;
32
- static readonly formAssociated = true;
33
- private _internals;
34
- /**
35
- * Form value of the dropdown.
36
- * `null` if not selected.
37
- */
38
- value: string | null;
39
32
  /**
40
33
  * Placeholder text of the dropdown.
41
34
  */
@@ -56,6 +49,22 @@ export declare class DaikinDropdown extends DDSElement {
56
49
  * Whether the dropdown menu is opened.
57
50
  */
58
51
  open: boolean;
52
+ /**
53
+ * Whether the dropdown menu is supports multiple selections.
54
+ */
55
+ multiple: boolean;
56
+ /**
57
+ * An array of `value` s for the currently selected option.
58
+ *
59
+ * This can be used regardless of the value of `multiple`, but if `multiple` is `true`, always use this instead of `value`.
60
+ * If `multiple` is `false`, the second and subsequent items will be deleted.
61
+ */
62
+ selectedOptions: string[];
63
+ /**
64
+ * Specifies the maximum number of items to display without omission in the label when `multiple` is `true`.
65
+ * Specify `null` to display all selected items without omission.
66
+ */
67
+ maxLabels: number | null;
59
68
  private readonly _items;
60
69
  private _button;
61
70
  /**
@@ -63,8 +72,8 @@ export declare class DaikinDropdown extends DDSElement {
63
72
  * Set automatically by `reflectInputGroup` method.
64
73
  */
65
74
  private _label;
66
- private _hasSelectedItem;
67
- private _selectedItemLabel;
75
+ private get _selectionLabels();
76
+ private _initialUpdateCompleted;
68
77
  private _autoUpdateController;
69
78
  private _clickOutsideController;
70
79
  /**
@@ -72,18 +81,33 @@ export declare class DaikinDropdown extends DDSElement {
72
81
  * The next time the dropdown opens, the focus will be moved to this element.
73
82
  */
74
83
  private _lastFocusedItem;
75
- private _updateFormValue;
84
+ private _dropdownRef;
76
85
  private _onClickOutside;
77
- private _reflectItemsAndLabel;
78
- private _handleClick;
79
86
  private _searchItem;
80
- private _handleKeyDownEscape;
81
87
  private _moveFocus;
82
- private _handleKeyDown;
88
+ private _updateFormValue;
89
+ private _updateItemsSelectable;
90
+ private _updateValueBySelectedOptions;
91
+ private _updateSelectedOptionsByValue;
83
92
  /**
84
- * Handle `select` event from `daikin-dropdown-item`.
93
+ * Handling for when an option is selected.
94
+ * If multiple selection is enabled, the specified option is added to or removed from the array of selected options.
95
+ * If multiple selection is disabled, the current value is set to the specified option. The selection is not cleared.
96
+ *
97
+ * @param value The value of selected option.
85
98
  */
86
- private _handleSelect;
99
+ private _handleSelectOption;
100
+ private _handleFocusOut;
101
+ /**
102
+ * Removes the last selected option.
103
+ *
104
+ * If multiple selection is enabled, remove the last selected option and the array will eventually become empty.
105
+ * If multiple selection is disabled, directly empty the selected options.
106
+ */
107
+ private _removeLastSelection;
108
+ private _handleClick;
109
+ private _handleKeyDown;
110
+ private _handleKeyDownEscape;
87
111
  /**
88
112
  * Handle `focusin` event to remember last focused item.
89
113
  */
@@ -94,12 +118,18 @@ export declare class DaikinDropdown extends DDSElement {
94
118
  * Since the focus cannot be moved until the element is displayed on the screen, the focus is moved to the item after receiving the completion of the Floating UI position calculation here.
95
119
  */
96
120
  private _handleFloatingReady;
121
+ /**
122
+ * Handle `select` event from `daikin-dropdown-item`.
123
+ */
124
+ private _handleSelect;
125
+ private _handleSlotChange;
97
126
  render(): import('lit-html').TemplateResult<1>;
98
127
  /**
99
128
  * Focuses on the inner button.
100
129
  * @param options focus options
101
130
  */
102
131
  focus(options?: FocusOptions): void;
132
+ protected willUpdate(changedProperties: PropertyValues): void;
103
133
  protected updated(changedProperties: PropertyValues<this>): void;
104
134
  /**
105
135
  * This method is used by `daikin-input-group` to reflect it's attributes to this component.
@@ -1,14 +1,18 @@
1
1
  import { flip, offset, size } from "@floating-ui/dom";
2
2
  import { cva } from "class-variance-authority";
3
- import { css, unsafeCSS, html } from "lit";
3
+ import { unsafeCSS, css, html } from "lit";
4
4
  import { property, queryAssignedElements, query, state } from "lit/decorators.js";
5
5
  import { ifDefined } from "lit/directives/if-defined.js";
6
- import { DDSElement } from "../../base/dds-element.js";
6
+ import { createRef, ref } from "lit/directives/ref.js";
7
+ import "../../base/dds-element.js";
7
8
  import { ddsElement } from "../../base/decorators.js";
8
9
  import "../../base/define.js";
10
+ import { DDSFormElement } from "../../base/dds-form-element.js";
9
11
  import { ClickOutsideController } from "../../controllers/click-outside.js";
10
12
  import { FloatingUIAutoUpdateController } from "../../controllers/floating-ui-auto-update.js";
11
13
  import tailwindStyles from "../../tailwind.css.js";
14
+ import { isSimpleKeyEvent } from "../../utils/is-simple-key.js";
15
+ import "../dropdown-item/daikin-dropdown-item.js";
12
16
  var __defProp = Object.defineProperty;
13
17
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
14
18
  var __decorateClass = (decorators, target, key, kind) => {
@@ -22,36 +26,35 @@ var __decorateClass = (decorators, target, key, kind) => {
22
26
  const cvaButton = cva(
23
27
  [
24
28
  "flex",
29
+ "justify-between",
25
30
  "items-center",
26
31
  "gap-2",
27
32
  "w-full",
28
33
  "h-full",
29
34
  "min-h-12",
30
35
  "bg-ddt-color-common-background-default",
31
- "p-3",
32
- "border",
33
- "border-[--color-base]",
36
+ "py-3",
37
+ "pl-4",
38
+ "pr-3",
34
39
  "rounded",
35
40
  "overflow-hidden",
36
41
  "font-daikinSerif",
37
42
  "text-left",
38
- "leading-5",
43
+ "leading-[130%]",
39
44
  "relative",
40
45
  "outline",
41
- "outline-0",
42
- "-outline-offset-2",
46
+ "outline-1",
47
+ "-outline-offset-1",
48
+ "break-all",
43
49
  "focus-visible:outline-2",
44
- "focus-visible:outline-[--color-focus]",
50
+ "focus-visible:-outline-offset-2",
51
+ "enabled:outline-[--color-base]",
45
52
  "disabled:text-ddt-color-common-disabled",
46
- "disabled:border-ddt-color-common-disabled",
53
+ "disabled:outline-ddt-color-common-disabled",
47
54
  "after:i-daikin-dropdown-chevron-down",
48
- "after:w-6",
49
- "after:h-6",
50
- "after:absolute",
51
- "after:m-auto",
52
- "after:top-0",
53
- "after:bottom-0",
54
- "after:right-3",
55
+ "after:size-6",
56
+ "after:flex-none",
57
+ "after:ml-auto",
55
58
  "enabled:after:text-ddt-color-common-text-primary",
56
59
  "disabled:after:text-ddt-color-common-disabled"
57
60
  ],
@@ -62,17 +65,19 @@ const cvaButton = cva(
62
65
  "enabled:hover:bg-ddt-color-common-surface-hover",
63
66
  "enabled:active:bg-ddt-color-common-surface-press"
64
67
  ],
65
- true: ["enabled:bg-ddt-color-common-surface-press"]
68
+ true: [
69
+ "enabled:bg-ddt-color-common-surface-press",
70
+ "after:scale-y-[-1]"
71
+ ]
66
72
  },
67
73
  error: {
68
74
  false: [
69
75
  "var-color-ddt-color-common-neutral-default/color-base",
70
- "var-color-ddt-color-common-border-focus/color-focus"
76
+ "hover:var-color-ddt-color-common-neutral-hover/color-base",
77
+ "active:var-color-ddt-color-common-neutral-press/color-base",
78
+ "focus-visible:var-color-ddt-color-common-border-focus/color-base"
71
79
  ],
72
- true: [
73
- "var-color-ddt-color-common-danger-default/color-base",
74
- "var-color-ddt-color-common-danger-default/color-focus"
75
- ]
80
+ true: ["var-color-ddt-color-common-danger-default/color-base"]
76
81
  },
77
82
  placeholder: {
78
83
  false: ["text-ddt-color-common-text-primary"],
@@ -96,47 +101,39 @@ const floatingPositionOptions = {
96
101
  })
97
102
  ]
98
103
  };
99
- let DaikinDropdown = class extends DDSElement {
104
+ let DaikinDropdown = class extends DDSFormElement {
100
105
  constructor() {
101
106
  super(...arguments);
102
- this._internals = this.attachInternals();
103
- this.value = null;
104
107
  this.placeholder = "";
105
108
  this.disabled = false;
106
109
  this.required = false;
107
110
  this.error = false;
108
111
  this.open = false;
112
+ this.multiple = false;
113
+ this.selectedOptions = [];
114
+ this.maxLabels = null;
109
115
  this._label = null;
110
- this._hasSelectedItem = false;
111
- this._selectedItemLabel = "";
116
+ this._initialUpdateCompleted = false;
112
117
  this._autoUpdateController = new FloatingUIAutoUpdateController(this);
113
118
  this._clickOutsideController = new ClickOutsideController(
114
119
  this,
115
120
  this._onClickOutside
116
121
  );
117
122
  this._lastFocusedItem = null;
123
+ this._dropdownRef = createRef();
118
124
  }
119
- _updateFormValue() {
120
- this._internals.setFormValue(this.value);
125
+ get _selectionLabels() {
126
+ const items = this._items;
127
+ return this.selectedOptions.map(
128
+ (value) => {
129
+ var _a;
130
+ return ((_a = items.find((item) => item.value === value)) == null ? void 0 : _a.textContent) ?? "";
131
+ }
132
+ );
121
133
  }
122
134
  _onClickOutside() {
123
135
  this.open = false;
124
136
  }
125
- _reflectItemsAndLabel() {
126
- const items = this._items;
127
- const selectedItem = items.find((item) => item.value === this.value);
128
- for (const item of items) {
129
- item.selected = item === selectedItem;
130
- }
131
- this._hasSelectedItem = !!selectedItem;
132
- this._selectedItemLabel = (selectedItem == null ? void 0 : selectedItem.textContent) ?? "";
133
- }
134
- _handleClick() {
135
- if (this.disabled) {
136
- return;
137
- }
138
- this.open = !this.open;
139
- }
140
137
  _searchItem(prefix) {
141
138
  const items = this._items.filter(
142
139
  (item) => {
@@ -158,35 +155,88 @@ let DaikinDropdown = class extends DDSElement {
158
155
  this.open = true;
159
156
  }
160
157
  }
161
- _handleKeyDownEscape() {
162
- if (this.open) {
163
- this.open = false;
164
- } else {
165
- this.value = null;
166
- }
167
- }
168
158
  _moveFocus(moveOffset) {
169
159
  if (!this.open) {
170
160
  this.open = true;
171
161
  return;
172
162
  }
173
- const items = this._items;
163
+ const items = this._items.filter(({ disabled }) => !disabled);
174
164
  const activeElement = document.activeElement;
175
- const focusedItemIndex = activeElement ? items.findIndex((item) => item.contains(activeElement)) : -1;
165
+ const focusedItemIndex = activeElement ? items.findIndex((item2) => item2.contains(activeElement)) : -1;
176
166
  if (focusedItemIndex === -1) {
177
167
  moveOffset = 1;
178
168
  }
179
- for (let index = focusedItemIndex + moveOffset, i = 0; i < items.length; index += moveOffset, i++) {
180
- index = (index + items.length) % items.length;
181
- const item = items[index];
182
- if (item.disabled) {
183
- continue;
169
+ const item = items[Math.max(0, Math.min(focusedItemIndex + moveOffset, items.length - 1))];
170
+ item.focus();
171
+ }
172
+ _updateFormValue() {
173
+ this.setFormValue(this.value);
174
+ }
175
+ _updateItemsSelectable() {
176
+ for (const item of this._items) {
177
+ item.selectable = this.multiple;
178
+ }
179
+ }
180
+ _updateValueBySelectedOptions() {
181
+ this.value = this.selectedOptions.at(-1) ?? "";
182
+ }
183
+ _updateSelectedOptionsByValue() {
184
+ this.selectedOptions = this.value ? [this.value] : [];
185
+ }
186
+ /**
187
+ * Handling for when an option is selected.
188
+ * If multiple selection is enabled, the specified option is added to or removed from the array of selected options.
189
+ * If multiple selection is disabled, the current value is set to the specified option. The selection is not cleared.
190
+ *
191
+ * @param value The value of selected option.
192
+ */
193
+ _handleSelectOption(value) {
194
+ this.value = value;
195
+ this.selectedOptions = this.multiple ? this.selectedOptions.includes(value) ? this.selectedOptions.filter((option) => option != value) : [...this.selectedOptions, value] : [value];
196
+ }
197
+ _handleFocusOut(event) {
198
+ if (!event.relatedTarget) {
199
+ if (!this.multiple && this._lastFocusedItem) {
200
+ this._handleSelectOption(this._lastFocusedItem.value);
184
201
  }
185
- item.focus();
186
- break;
202
+ this.open = false;
187
203
  }
188
204
  }
205
+ /**
206
+ * Removes the last selected option.
207
+ *
208
+ * If multiple selection is enabled, remove the last selected option and the array will eventually become empty.
209
+ * If multiple selection is disabled, directly empty the selected options.
210
+ */
211
+ _removeLastSelection() {
212
+ if (this.multiple) {
213
+ this.selectedOptions = this.selectedOptions.slice(0, -1);
214
+ this.value = this.selectedOptions.at(-1) ?? "";
215
+ } else {
216
+ this.selectedOptions = [];
217
+ this.value = "";
218
+ }
219
+ }
220
+ _handleClick() {
221
+ if (this.disabled) {
222
+ return;
223
+ }
224
+ this.open = !this.open;
225
+ }
189
226
  _handleKeyDown(event) {
227
+ if (event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) {
228
+ if (event.key === "ArrowDown") {
229
+ event.preventDefault();
230
+ this.open = true;
231
+ } else if (event.key === "ArrowUp") {
232
+ event.preventDefault();
233
+ this.open = false;
234
+ }
235
+ return;
236
+ }
237
+ if (!isSimpleKeyEvent(event)) {
238
+ return;
239
+ }
190
240
  const printableCharacter = event.key.trim().length === 1 ? event.key : null;
191
241
  if (printableCharacter) {
192
242
  event.preventDefault();
@@ -196,6 +246,8 @@ let DaikinDropdown = class extends DDSElement {
196
246
  const operation = {
197
247
  ArrowDown: "down",
198
248
  ArrowUp: "up",
249
+ PageDown: "pageDown",
250
+ PageUp: "pageUp",
199
251
  Escape: "close"
200
252
  }[event.key];
201
253
  switch (operation) {
@@ -204,25 +256,23 @@ let DaikinDropdown = class extends DDSElement {
204
256
  event.preventDefault();
205
257
  this._moveFocus(operation === "up" ? -1 : 1);
206
258
  break;
259
+ case "pageDown":
260
+ case "pageUp":
261
+ event.preventDefault();
262
+ this._moveFocus(operation === "pageUp" ? -10 : 10);
263
+ break;
207
264
  case "close":
208
265
  event.preventDefault();
209
266
  this._handleKeyDownEscape();
210
267
  break;
211
268
  }
212
269
  }
213
- /**
214
- * Handle `select` event from `daikin-dropdown-item`.
215
- */
216
- _handleSelect(event) {
217
- const target = event.target;
218
- if (!target || !this._items.includes(target)) {
219
- return;
270
+ _handleKeyDownEscape() {
271
+ if (this.open) {
272
+ this.open = false;
273
+ } else {
274
+ this._removeLastSelection();
220
275
  }
221
- this._hasSelectedItem = true;
222
- this._selectedItemLabel = target.textContent ?? "";
223
- this.value = target.value;
224
- this.open = false;
225
- this.dispatchEvent(new Event("change"));
226
276
  }
227
277
  /**
228
278
  * Handle `focusin` event to remember last focused item.
@@ -244,14 +294,28 @@ let DaikinDropdown = class extends DDSElement {
244
294
  const item = items.find((item2) => item2 === this._lastFocusedItem) ?? items.find((item2) => item2.value === this.value) ?? items.at(0);
245
295
  item == null ? void 0 : item.focus();
246
296
  }
297
+ /**
298
+ * Handle `select` event from `daikin-dropdown-item`.
299
+ */
300
+ _handleSelect(event) {
301
+ this._handleSelectOption(event.target.value);
302
+ if (!this.multiple) {
303
+ this.open = false;
304
+ }
305
+ this.dispatchEvent(new Event("change"));
306
+ }
307
+ _handleSlotChange() {
308
+ this._updateItemsSelectable();
309
+ }
247
310
  render() {
248
311
  return html`<div class="w-full relative" @keydown=${this._handleKeyDown}>
249
312
  <button
313
+ ${ref(this._dropdownRef)}
250
314
  type="button"
251
315
  class=${cvaButton({
252
316
  open: this.open,
253
317
  error: this.error,
254
- placeholder: !this._hasSelectedItem
318
+ placeholder: !this.selectedOptions.length
255
319
  })}
256
320
  ?disabled=${this.disabled}
257
321
  role="combobox"
@@ -261,23 +325,28 @@ let DaikinDropdown = class extends DDSElement {
261
325
  aria-controls="dropdown-items"
262
326
  aria-autocomplete="list"
263
327
  aria-required=${this.required}
328
+ aria-haspopup="listbox"
264
329
  @click=${this._handleClick}
265
330
  ${this._autoUpdateController.refReference()}
266
331
  >
267
- ${this._hasSelectedItem ? this._selectedItemLabel : this.placeholder}
332
+ <span class="truncate">
333
+ ${this.selectedOptions.length ? this.multiple && this.selectedOptions.length > (this.maxLabels ?? 0) ? this.selectedOptions.length === 1 ? `one item selected` : `${this.selectedOptions.length} items selected` : this._selectionLabels.join(", ") : this.placeholder}
334
+ </span>
268
335
  </button>
269
336
  <div
270
337
  id="dropdown-items"
271
338
  popover
272
- class="floating-unready:hidden absolute left-[--floating-x,0] top-[--floating-y,0] min-w-[--floating-width] max-h-[12.5rem] overflow-y-auto opacity-1 transition-[opacity] rounded shadow-dropdown"
339
+ class="floating-unready:hidden absolute left-[--floating-x,0] top-[--floating-y,0] min-w-[--floating-width] max-h-[12.5rem] border border-ddt-color-divider overflow-y-auto opacity-1 transition-[opacity] rounded max-w-min break-all"
273
340
  aria-label=${ifDefined(this._label ?? void 0)}
274
341
  role="listbox"
275
342
  @floating-ready=${this._handleFloatingReady}
276
343
  ${this._autoUpdateController.refFloating()}
277
344
  >
278
345
  <slot
346
+ @slotchange=${this._handleSlotChange}
279
347
  @select=${this._handleSelect}
280
348
  @focusin=${this._handleFocusIn}
349
+ @focusout=${this._handleFocusOut}
281
350
  ></slot>
282
351
  </div>
283
352
  ${// Activate auto update only when the dropdown is open.
@@ -298,11 +367,29 @@ let DaikinDropdown = class extends DDSElement {
298
367
  var _a;
299
368
  (_a = this._button) == null ? void 0 : _a.focus(options);
300
369
  }
370
+ willUpdate(changedProperties) {
371
+ if (!this._initialUpdateCompleted) {
372
+ if (!!this.selectedOptions.length && (!this.value || !this.selectedOptions.includes(this.value))) {
373
+ this._updateValueBySelectedOptions();
374
+ } else if (!!this.value && !this.selectedOptions.length) {
375
+ this.selectedOptions = [this.value];
376
+ }
377
+ this._initialUpdateCompleted = true;
378
+ return;
379
+ }
380
+ const hasChangedValue = changedProperties.has("value");
381
+ const hasChangedSelectedOptions = changedProperties.has("selectedOptions");
382
+ if (hasChangedValue && !hasChangedSelectedOptions) {
383
+ this._updateSelectedOptionsByValue();
384
+ }
385
+ if (!hasChangedValue && hasChangedSelectedOptions) {
386
+ this._updateValueBySelectedOptions();
387
+ }
388
+ }
301
389
  updated(changedProperties) {
302
390
  var _a;
303
391
  if (changedProperties.has("value")) {
304
392
  this._updateFormValue();
305
- this._reflectItemsAndLabel();
306
393
  }
307
394
  if (changedProperties.has("open") || changedProperties.has("disabled")) {
308
395
  (_a = this._autoUpdateController.floatingElement) == null ? void 0 : _a.togglePopover(
@@ -312,6 +399,15 @@ let DaikinDropdown = class extends DDSElement {
312
399
  this.focus();
313
400
  }
314
401
  }
402
+ if (changedProperties.has("selectedOptions")) {
403
+ const items = this._items;
404
+ for (const item of items) {
405
+ item.selected = this.selectedOptions.includes(item.value);
406
+ }
407
+ }
408
+ if (changedProperties.has("multiple")) {
409
+ this._updateItemsSelectable();
410
+ }
315
411
  }
316
412
  /**
317
413
  * This method is used by `daikin-input-group` to reflect it's attributes to this component.
@@ -337,10 +433,6 @@ DaikinDropdown.styles = css`
337
433
  width: 100%;
338
434
  }
339
435
  `;
340
- DaikinDropdown.formAssociated = true;
341
- __decorateClass([
342
- property({ type: String, reflect: true })
343
- ], DaikinDropdown.prototype, "value", 2);
344
436
  __decorateClass([
345
437
  property({ type: String, reflect: true })
346
438
  ], DaikinDropdown.prototype, "placeholder", 2);
@@ -356,6 +448,15 @@ __decorateClass([
356
448
  __decorateClass([
357
449
  property({ type: Boolean, reflect: true })
358
450
  ], DaikinDropdown.prototype, "open", 2);
451
+ __decorateClass([
452
+ property({ type: Boolean, reflect: true })
453
+ ], DaikinDropdown.prototype, "multiple", 2);
454
+ __decorateClass([
455
+ property({ type: Array, attribute: false })
456
+ ], DaikinDropdown.prototype, "selectedOptions", 2);
457
+ __decorateClass([
458
+ property({ type: Number, reflect: true, attribute: "max-labels" })
459
+ ], DaikinDropdown.prototype, "maxLabels", 2);
359
460
  __decorateClass([
360
461
  queryAssignedElements({ selector: "daikin-dropdown-item" })
361
462
  ], DaikinDropdown.prototype, "_items", 2);
@@ -365,12 +466,6 @@ __decorateClass([
365
466
  __decorateClass([
366
467
  state()
367
468
  ], DaikinDropdown.prototype, "_label", 2);
368
- __decorateClass([
369
- state()
370
- ], DaikinDropdown.prototype, "_hasSelectedItem", 2);
371
- __decorateClass([
372
- state()
373
- ], DaikinDropdown.prototype, "_selectedItemLabel", 2);
374
469
  DaikinDropdown = __decorateClass([
375
470
  ddsElement("daikin-dropdown")
376
471
  ], DaikinDropdown);
@@ -34,8 +34,13 @@ export declare class DaikinDropdownItem extends DDSElement {
34
34
  * Set automatically by `daikin-dropdown` component.
35
35
  */
36
36
  selected: boolean;
37
- private _button;
37
+ selectable: boolean;
38
+ private _focusableElement;
38
39
  private _handleClick;
40
+ private _handleChange;
41
+ private _handleKeydown;
42
+ private _handleMousedown;
43
+ private _emitSelect;
39
44
  render(): import('lit-html').TemplateResult<1>;
40
45
  /**
41
46
  * Focuses on the inner button.