@diwacopilot/components 1.0.0 → 1.1.1

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 (467) hide show
  1. package/dist/cjs/diwa-checkbox.cjs.entry.js +1 -3
  2. package/dist/cjs/diwa-checkbox.cjs.entry.js.map +1 -1
  3. package/dist/cjs/diwa-components.cjs.js +1 -1
  4. package/dist/cjs/diwa-heading.cjs.entry.js +126 -0
  5. package/dist/cjs/diwa-heading.cjs.entry.js.map +1 -0
  6. package/dist/cjs/diwa-icon.cjs.entry.js +1 -1
  7. package/dist/cjs/diwa-inline-notification.cjs.entry.js +1 -1
  8. package/dist/cjs/diwa-input-date.cjs.entry.js +1 -1
  9. package/dist/cjs/diwa-input-email.cjs.entry.js +1 -1
  10. package/dist/cjs/diwa-input-month.cjs.entry.js +1 -1
  11. package/dist/cjs/diwa-input-number.cjs.entry.js +1 -1
  12. package/dist/cjs/diwa-input-password.cjs.entry.js +1 -1
  13. package/dist/cjs/diwa-input-search.cjs.entry.js +1 -1
  14. package/dist/cjs/diwa-input-tel.cjs.entry.js +1 -1
  15. package/dist/cjs/diwa-input-text.cjs.entry.js +1 -1
  16. package/dist/cjs/diwa-input-time.cjs.entry.js +1 -1
  17. package/dist/cjs/diwa-input-url.cjs.entry.js +1 -1
  18. package/dist/cjs/diwa-input-week.cjs.entry.js +1 -1
  19. package/dist/cjs/diwa-input.cjs.entry.js +1 -1
  20. package/dist/cjs/diwa-link-pure.cjs.entry.js +1 -1
  21. package/dist/cjs/diwa-link.cjs.entry.js +1 -1
  22. package/dist/cjs/diwa-modal.cjs.entry.js +1 -1
  23. package/dist/cjs/diwa-multi-select-option.cjs.entry.js +1 -1
  24. package/dist/cjs/diwa-multi-select.cjs.entry.js +2 -2
  25. package/dist/cjs/diwa-pagination.cjs.entry.js +1 -1
  26. package/dist/cjs/diwa-pin-code.cjs.entry.js +2 -2
  27. package/dist/cjs/diwa-popover.cjs.entry.js +1 -1
  28. package/dist/cjs/diwa-radio-group-item.cjs.entry.js +2 -3
  29. package/dist/cjs/diwa-radio-group-item.cjs.entry.js.map +1 -1
  30. package/dist/cjs/diwa-radio-group.cjs.entry.js +1 -1
  31. package/dist/cjs/diwa-scroller.cjs.entry.js +23 -13
  32. package/dist/cjs/diwa-scroller.cjs.entry.js.map +1 -1
  33. package/dist/cjs/diwa-segmented-control-item.cjs.entry.js +1 -1
  34. package/dist/cjs/diwa-segmented-control.cjs.entry.js +1 -1
  35. package/dist/cjs/diwa-select-option.cjs.entry.js +24 -10
  36. package/dist/cjs/diwa-select-option.cjs.entry.js.map +1 -1
  37. package/dist/cjs/diwa-select.cjs.entry.js +15 -1
  38. package/dist/cjs/diwa-select.cjs.entry.js.map +1 -1
  39. package/dist/cjs/diwa-spinner.cjs.entry.js +1 -1
  40. package/dist/cjs/diwa-stepper-horizontal-item.cjs.entry.js +1 -1
  41. package/dist/cjs/diwa-stepper-horizontal.cjs.entry.js +1 -1
  42. package/dist/cjs/diwa-switch.cjs.entry.js +1 -1
  43. package/dist/cjs/diwa-table-body.cjs.entry.js +1 -1
  44. package/dist/cjs/diwa-table-cell.cjs.entry.js +15 -15
  45. package/dist/cjs/diwa-table-cell.cjs.entry.js.map +1 -1
  46. package/dist/cjs/diwa-table-head-cell.cjs.entry.js +64 -53
  47. package/dist/cjs/diwa-table-head-cell.cjs.entry.js.map +1 -1
  48. package/dist/cjs/diwa-table-head.cjs.entry.js +16 -11
  49. package/dist/cjs/diwa-table-head.cjs.entry.js.map +1 -1
  50. package/dist/cjs/diwa-table-row.cjs.entry.js +11 -10
  51. package/dist/cjs/diwa-table-row.cjs.entry.js.map +1 -1
  52. package/dist/cjs/diwa-table.cjs.entry.js +83 -43
  53. package/dist/cjs/diwa-table.cjs.entry.js.map +1 -1
  54. package/dist/cjs/diwa-tabs-bar.cjs.entry.js +1 -1
  55. package/dist/cjs/diwa-tabs-item.cjs.entry.js +1 -1
  56. package/dist/cjs/diwa-tabs.cjs.entry.js +12 -12
  57. package/dist/cjs/diwa-tabs.cjs.entry.js.map +1 -1
  58. package/dist/cjs/diwa-tag-dismissible.cjs.entry.js +6 -8
  59. package/dist/cjs/diwa-tag-dismissible.cjs.entry.js.map +1 -1
  60. package/dist/cjs/diwa-tag.cjs.entry.js +2 -2
  61. package/dist/cjs/diwa-tag.cjs.entry.js.map +1 -1
  62. package/dist/cjs/diwa-text-list-item.cjs.entry.js +1 -1
  63. package/dist/cjs/diwa-text-list.cjs.entry.js +1 -1
  64. package/dist/cjs/diwa-text.cjs.entry.js +1 -1
  65. package/dist/cjs/diwa-textarea.cjs.entry.js +1 -1
  66. package/dist/cjs/diwa-toast-item.cjs.entry.js +1 -1
  67. package/dist/cjs/diwa-toast.cjs.entry.js +111 -17
  68. package/dist/cjs/diwa-toast.cjs.entry.js.map +1 -1
  69. package/dist/cjs/loader.cjs.js +1 -1
  70. package/dist/collection/collection-manifest.json +1 -0
  71. package/dist/collection/components/diwa-checkbox/diwa-checkbox-styles.js +1 -3
  72. package/dist/collection/components/diwa-checkbox/diwa-checkbox-styles.js.map +1 -1
  73. package/dist/collection/components/diwa-heading/diwa-heading-styles.js +53 -0
  74. package/dist/collection/components/diwa-heading/diwa-heading-styles.js.map +1 -0
  75. package/dist/collection/components/diwa-heading/diwa-heading-utils.js +26 -0
  76. package/dist/collection/components/diwa-heading/diwa-heading-utils.js.map +1 -0
  77. package/dist/collection/components/diwa-heading/diwa-heading.js +235 -0
  78. package/dist/collection/components/diwa-heading/diwa-heading.js.map +1 -0
  79. package/dist/collection/components/diwa-heading/types.js +2 -0
  80. package/dist/collection/components/diwa-heading/types.js.map +1 -0
  81. package/dist/collection/components/diwa-icon/diwa-icon.js +1 -1
  82. package/dist/collection/components/diwa-inline-notification/diwa-inline-notification.js +1 -1
  83. package/dist/collection/components/diwa-input/diwa-input.js +1 -1
  84. package/dist/collection/components/diwa-input-date/diwa-input-date.js +1 -1
  85. package/dist/collection/components/diwa-input-email/diwa-input-email.js +1 -1
  86. package/dist/collection/components/diwa-input-month/diwa-input-month.js +1 -1
  87. package/dist/collection/components/diwa-input-number/diwa-input-number.js +1 -1
  88. package/dist/collection/components/diwa-input-password/diwa-input-password.js +1 -1
  89. package/dist/collection/components/diwa-input-search/diwa-input-search.js +1 -1
  90. package/dist/collection/components/diwa-input-tel/diwa-input-tel.js +1 -1
  91. package/dist/collection/components/diwa-input-text/diwa-input-text.js +1 -1
  92. package/dist/collection/components/diwa-input-time/diwa-input-time.js +1 -1
  93. package/dist/collection/components/diwa-input-url/diwa-input-url.js +1 -1
  94. package/dist/collection/components/diwa-input-week/diwa-input-week.js +1 -1
  95. package/dist/collection/components/diwa-link/diwa-link.js +1 -1
  96. package/dist/collection/components/diwa-link-pure/diwa-link-pure.js +1 -1
  97. package/dist/collection/components/diwa-modal/diwa-modal.js +1 -1
  98. package/dist/collection/components/diwa-multi-select/diwa-multi-select.js +2 -2
  99. package/dist/collection/components/diwa-multi-select-option/diwa-multi-select-option.js +1 -1
  100. package/dist/collection/components/diwa-pagination/diwa-pagination.js +1 -1
  101. package/dist/collection/components/diwa-pin-code/diwa-pin-code.js +2 -2
  102. package/dist/collection/components/diwa-popover/diwa-popover.js +1 -1
  103. package/dist/collection/components/diwa-radio-group/diwa-radio-group.js +1 -1
  104. package/dist/collection/components/diwa-radio-group-item/diwa-radio-group-item-styles.js +1 -2
  105. package/dist/collection/components/diwa-radio-group-item/diwa-radio-group-item-styles.js.map +1 -1
  106. package/dist/collection/components/diwa-radio-group-item/diwa-radio-group-item.js +1 -1
  107. package/dist/collection/components/diwa-scroller/diwa-scroller-styles.js +14 -9
  108. package/dist/collection/components/diwa-scroller/diwa-scroller-styles.js.map +1 -1
  109. package/dist/collection/components/diwa-scroller/diwa-scroller.js +9 -13
  110. package/dist/collection/components/diwa-scroller/diwa-scroller.js.map +1 -1
  111. package/dist/collection/components/diwa-segmented-control/diwa-segmented-control.js +1 -1
  112. package/dist/collection/components/diwa-segmented-control-item/diwa-segmented-control-item.js +1 -1
  113. package/dist/collection/components/diwa-select/diwa-select.js +17 -1
  114. package/dist/collection/components/diwa-select/diwa-select.js.map +1 -1
  115. package/dist/collection/components/diwa-select-option/diwa-select-option-styles.js +21 -9
  116. package/dist/collection/components/diwa-select-option/diwa-select-option-styles.js.map +1 -1
  117. package/dist/collection/components/diwa-select-option/diwa-select-option.js +23 -1
  118. package/dist/collection/components/diwa-select-option/diwa-select-option.js.map +1 -1
  119. package/dist/collection/components/diwa-spinner/diwa-spinner.js +1 -1
  120. package/dist/collection/components/diwa-stepper-horizontal/diwa-stepper-horizontal.js +1 -1
  121. package/dist/collection/components/diwa-stepper-horizontal-item/diwa-stepper-horizontal-item.js +1 -1
  122. package/dist/collection/components/diwa-switch/diwa-switch.js +1 -1
  123. package/dist/collection/components/diwa-table/diwa-table-styles.js +81 -42
  124. package/dist/collection/components/diwa-table/diwa-table-styles.js.map +1 -1
  125. package/dist/collection/components/diwa-table/diwa-table.js +3 -2
  126. package/dist/collection/components/diwa-table/diwa-table.js.map +1 -1
  127. package/dist/collection/components/diwa-table-body/diwa-table-body.js +1 -1
  128. package/dist/collection/components/diwa-table-cell/diwa-table-cell-styles.js +14 -14
  129. package/dist/collection/components/diwa-table-cell/diwa-table-cell-styles.js.map +1 -1
  130. package/dist/collection/components/diwa-table-cell/diwa-table-cell.js +1 -1
  131. package/dist/collection/components/diwa-table-cell/diwa-table-cell.js.map +1 -1
  132. package/dist/collection/components/diwa-table-head/diwa-table-head-styles.js +15 -10
  133. package/dist/collection/components/diwa-table-head/diwa-table-head-styles.js.map +1 -1
  134. package/dist/collection/components/diwa-table-head/diwa-table-head.js +1 -1
  135. package/dist/collection/components/diwa-table-head-cell/diwa-table-head-cell-styles.js +60 -49
  136. package/dist/collection/components/diwa-table-head-cell/diwa-table-head-cell-styles.js.map +1 -1
  137. package/dist/collection/components/diwa-table-head-cell/diwa-table-head-cell.js +4 -4
  138. package/dist/collection/components/diwa-table-head-cell/diwa-table-head-cell.js.map +1 -1
  139. package/dist/collection/components/diwa-table-row/diwa-table-row-styles.js +10 -9
  140. package/dist/collection/components/diwa-table-row/diwa-table-row-styles.js.map +1 -1
  141. package/dist/collection/components/diwa-table-row/diwa-table-row.js +1 -1
  142. package/dist/collection/components/diwa-tabs/diwa-tabs-styles.js +11 -11
  143. package/dist/collection/components/diwa-tabs/diwa-tabs-styles.js.map +1 -1
  144. package/dist/collection/components/diwa-tabs/diwa-tabs.js +1 -1
  145. package/dist/collection/components/diwa-tabs-bar/diwa-tabs-bar.js +1 -1
  146. package/dist/collection/components/diwa-tabs-item/diwa-tabs-item.js +1 -1
  147. package/dist/collection/components/diwa-tag/diwa-tag-styles.js +1 -1
  148. package/dist/collection/components/diwa-tag/diwa-tag-styles.js.map +1 -1
  149. package/dist/collection/components/diwa-tag/diwa-tag.js +1 -1
  150. package/dist/collection/components/diwa-tag-dismissible/diwa-tag-dismissible-styles.js +5 -6
  151. package/dist/collection/components/diwa-tag-dismissible/diwa-tag-dismissible-styles.js.map +1 -1
  152. package/dist/collection/components/diwa-tag-dismissible/diwa-tag-dismissible.js +1 -2
  153. package/dist/collection/components/diwa-tag-dismissible/diwa-tag-dismissible.js.map +1 -1
  154. package/dist/collection/components/diwa-text/diwa-text.js +1 -1
  155. package/dist/collection/components/diwa-text-list/diwa-text-list.js +1 -1
  156. package/dist/collection/components/diwa-text-list-item/diwa-text-list-item.js +1 -1
  157. package/dist/collection/components/diwa-textarea/diwa-textarea.js +1 -1
  158. package/dist/collection/components/diwa-toast/diwa-toast-manager.js +96 -0
  159. package/dist/collection/components/diwa-toast/diwa-toast-manager.js.map +1 -0
  160. package/dist/collection/components/diwa-toast/diwa-toast.js +24 -25
  161. package/dist/collection/components/diwa-toast/diwa-toast.js.map +1 -1
  162. package/dist/collection/components/diwa-toast-item/diwa-toast-item.js +1 -1
  163. package/dist/diwa-components/diwa-components.css +2 -2
  164. package/dist/diwa-components/diwa-components.esm.js +1 -1
  165. package/dist/diwa-components/diwa-components.esm.js.map +1 -1
  166. package/dist/diwa-components/{p-2b54c761.entry.js → p-09f2e643.entry.js} +2 -2
  167. package/dist/diwa-components/{p-4ac5a26e.entry.js → p-117dc41d.entry.js} +2 -2
  168. package/dist/diwa-components/p-117dc41d.entry.js.map +1 -0
  169. package/dist/diwa-components/{p-1022a474.entry.js → p-1250d0c7.entry.js} +2 -2
  170. package/dist/diwa-components/{p-1a1bd7ed.entry.js → p-13e71247.entry.js} +2 -2
  171. package/dist/diwa-components/p-1830772d.entry.js +2 -0
  172. package/dist/diwa-components/{p-f4a589b5.entry.js → p-1d708e1e.entry.js} +2 -2
  173. package/dist/diwa-components/{p-bb04cdd6.entry.js → p-238da82a.entry.js} +2 -2
  174. package/dist/diwa-components/p-29419c9a.entry.js +2 -0
  175. package/dist/diwa-components/p-29419c9a.entry.js.map +1 -0
  176. package/dist/diwa-components/{p-c896dfa5.entry.js → p-3269a4b7.entry.js} +2 -2
  177. package/dist/diwa-components/p-35b69160.entry.js +2 -0
  178. package/dist/diwa-components/p-35b69160.entry.js.map +1 -0
  179. package/dist/diwa-components/{p-fbe73240.entry.js → p-3660b09a.entry.js} +2 -2
  180. package/dist/diwa-components/{p-c37374ab.entry.js → p-36b004e9.entry.js} +2 -2
  181. package/dist/diwa-components/p-37e1bea3.entry.js +2 -0
  182. package/dist/diwa-components/p-37e1bea3.entry.js.map +1 -0
  183. package/dist/diwa-components/{p-851cbfb8.entry.js → p-3b38fa01.entry.js} +2 -2
  184. package/dist/diwa-components/p-3fb5cc30.entry.js +2 -0
  185. package/dist/diwa-components/p-429c596d.entry.js +2 -0
  186. package/dist/diwa-components/p-429c596d.entry.js.map +1 -0
  187. package/dist/diwa-components/p-50866c5a.entry.js +2 -0
  188. package/dist/diwa-components/p-50866c5a.entry.js.map +1 -0
  189. package/dist/diwa-components/p-5a597e27.entry.js +2 -0
  190. package/dist/diwa-components/p-5f9139bc.entry.js +2 -0
  191. package/dist/diwa-components/p-5f9139bc.entry.js.map +1 -0
  192. package/dist/diwa-components/p-66c15f66.entry.js +2 -0
  193. package/dist/diwa-components/p-66c53adc.entry.js +2 -0
  194. package/dist/diwa-components/p-66c53adc.entry.js.map +1 -0
  195. package/dist/diwa-components/{p-6253fff6.entry.js → p-71c45961.entry.js} +2 -2
  196. package/dist/diwa-components/{p-358e1177.entry.js → p-78b16866.entry.js} +2 -2
  197. package/dist/diwa-components/p-7a99a2aa.entry.js +2 -0
  198. package/dist/diwa-components/p-7a99a2aa.entry.js.map +1 -0
  199. package/dist/diwa-components/p-7dc7291f.entry.js +2 -0
  200. package/dist/diwa-components/{p-09a9e0a0.entry.js → p-8369c48e.entry.js} +2 -2
  201. package/dist/diwa-components/{p-c0614fb1.entry.js → p-8506ea0c.entry.js} +2 -2
  202. package/dist/diwa-components/p-863c88a4.entry.js +2 -0
  203. package/dist/diwa-components/{p-339f6ba7.entry.js.map → p-863c88a4.entry.js.map} +1 -1
  204. package/dist/diwa-components/{p-ba1ffa71.entry.js → p-87932af2.entry.js} +2 -2
  205. package/dist/diwa-components/{p-48009a79.entry.js → p-926e283b.entry.js} +2 -2
  206. package/dist/diwa-components/p-952af214.entry.js +2 -0
  207. package/dist/diwa-components/p-952af214.entry.js.map +1 -0
  208. package/dist/diwa-components/{p-4ff58224.entry.js → p-95b0fdea.entry.js} +2 -2
  209. package/dist/diwa-components/p-9910d570.entry.js +2 -0
  210. package/dist/diwa-components/p-9910d570.entry.js.map +1 -0
  211. package/dist/diwa-components/{p-20fd1505.entry.js → p-998dd88e.entry.js} +2 -2
  212. package/dist/diwa-components/p-9ade0403.entry.js +2 -0
  213. package/dist/diwa-components/{p-57db0c31.entry.js → p-9c89e586.entry.js} +2 -2
  214. package/dist/diwa-components/p-b072ff72.entry.js +2 -0
  215. package/dist/diwa-components/p-b072ff72.entry.js.map +1 -0
  216. package/dist/diwa-components/{p-565f623e.entry.js → p-bd501daa.entry.js} +2 -2
  217. package/dist/diwa-components/{p-c1c85f9e.entry.js → p-c6ca8d8b.entry.js} +2 -2
  218. package/dist/diwa-components/{p-53e21a74.entry.js → p-c78591ce.entry.js} +2 -2
  219. package/dist/diwa-components/{p-996f7110.entry.js → p-cc0e1662.entry.js} +2 -2
  220. package/dist/diwa-components/{p-711e295e.entry.js → p-d25377eb.entry.js} +2 -2
  221. package/dist/diwa-components/{p-7f0ce623.entry.js → p-d917625e.entry.js} +2 -2
  222. package/dist/diwa-components/{p-d0762292.entry.js → p-db70e030.entry.js} +2 -2
  223. package/dist/diwa-components/p-db70e030.entry.js.map +1 -0
  224. package/dist/diwa-components/p-def36bc4.entry.js +2 -0
  225. package/dist/diwa-components/p-def36bc4.entry.js.map +1 -0
  226. package/dist/diwa-components/p-e137afc9.entry.js +2 -0
  227. package/dist/diwa-components/{p-666844e0.entry.js → p-e1935375.entry.js} +2 -2
  228. package/dist/diwa-components/{p-87ea8001.entry.js → p-e602c199.entry.js} +2 -2
  229. package/dist/diwa-components/{p-9f140e14.entry.js → p-e9673253.entry.js} +2 -2
  230. package/dist/diwa-components/p-f44d4091.entry.js +2 -0
  231. package/dist/diwa-components/p-f44d4091.entry.js.map +1 -0
  232. package/dist/diwa-components/p-f60f1d81.entry.js +2 -0
  233. package/dist/diwa-components/p-fae653f7.entry.js +2 -0
  234. package/dist/esm/diwa-checkbox.entry.js +1 -3
  235. package/dist/esm/diwa-checkbox.entry.js.map +1 -1
  236. package/dist/esm/diwa-components.js +1 -1
  237. package/dist/esm/diwa-heading.entry.js +122 -0
  238. package/dist/esm/diwa-heading.entry.js.map +1 -0
  239. package/dist/esm/diwa-icon.entry.js +1 -1
  240. package/dist/esm/diwa-inline-notification.entry.js +1 -1
  241. package/dist/esm/diwa-input-date.entry.js +1 -1
  242. package/dist/esm/diwa-input-email.entry.js +1 -1
  243. package/dist/esm/diwa-input-month.entry.js +1 -1
  244. package/dist/esm/diwa-input-number.entry.js +1 -1
  245. package/dist/esm/diwa-input-password.entry.js +1 -1
  246. package/dist/esm/diwa-input-search.entry.js +1 -1
  247. package/dist/esm/diwa-input-tel.entry.js +1 -1
  248. package/dist/esm/diwa-input-text.entry.js +1 -1
  249. package/dist/esm/diwa-input-time.entry.js +1 -1
  250. package/dist/esm/diwa-input-url.entry.js +1 -1
  251. package/dist/esm/diwa-input-week.entry.js +1 -1
  252. package/dist/esm/diwa-input.entry.js +1 -1
  253. package/dist/esm/diwa-link-pure.entry.js +1 -1
  254. package/dist/esm/diwa-link.entry.js +1 -1
  255. package/dist/esm/diwa-modal.entry.js +1 -1
  256. package/dist/esm/diwa-multi-select-option.entry.js +1 -1
  257. package/dist/esm/diwa-multi-select.entry.js +2 -2
  258. package/dist/esm/diwa-pagination.entry.js +1 -1
  259. package/dist/esm/diwa-pin-code.entry.js +2 -2
  260. package/dist/esm/diwa-popover.entry.js +1 -1
  261. package/dist/esm/diwa-radio-group-item.entry.js +2 -3
  262. package/dist/esm/diwa-radio-group-item.entry.js.map +1 -1
  263. package/dist/esm/diwa-radio-group.entry.js +1 -1
  264. package/dist/esm/diwa-scroller.entry.js +23 -13
  265. package/dist/esm/diwa-scroller.entry.js.map +1 -1
  266. package/dist/esm/diwa-segmented-control-item.entry.js +1 -1
  267. package/dist/esm/diwa-segmented-control.entry.js +1 -1
  268. package/dist/esm/diwa-select-option.entry.js +24 -10
  269. package/dist/esm/diwa-select-option.entry.js.map +1 -1
  270. package/dist/esm/diwa-select.entry.js +15 -1
  271. package/dist/esm/diwa-select.entry.js.map +1 -1
  272. package/dist/esm/diwa-spinner.entry.js +1 -1
  273. package/dist/esm/diwa-stepper-horizontal-item.entry.js +1 -1
  274. package/dist/esm/diwa-stepper-horizontal.entry.js +1 -1
  275. package/dist/esm/diwa-switch.entry.js +1 -1
  276. package/dist/esm/diwa-table-body.entry.js +1 -1
  277. package/dist/esm/diwa-table-cell.entry.js +15 -15
  278. package/dist/esm/diwa-table-cell.entry.js.map +1 -1
  279. package/dist/esm/diwa-table-head-cell.entry.js +64 -53
  280. package/dist/esm/diwa-table-head-cell.entry.js.map +1 -1
  281. package/dist/esm/diwa-table-head.entry.js +16 -11
  282. package/dist/esm/diwa-table-head.entry.js.map +1 -1
  283. package/dist/esm/diwa-table-row.entry.js +11 -10
  284. package/dist/esm/diwa-table-row.entry.js.map +1 -1
  285. package/dist/esm/diwa-table.entry.js +83 -43
  286. package/dist/esm/diwa-table.entry.js.map +1 -1
  287. package/dist/esm/diwa-tabs-bar.entry.js +1 -1
  288. package/dist/esm/diwa-tabs-item.entry.js +1 -1
  289. package/dist/esm/diwa-tabs.entry.js +12 -12
  290. package/dist/esm/diwa-tabs.entry.js.map +1 -1
  291. package/dist/esm/diwa-tag-dismissible.entry.js +6 -8
  292. package/dist/esm/diwa-tag-dismissible.entry.js.map +1 -1
  293. package/dist/esm/diwa-tag.entry.js +2 -2
  294. package/dist/esm/diwa-tag.entry.js.map +1 -1
  295. package/dist/esm/diwa-text-list-item.entry.js +1 -1
  296. package/dist/esm/diwa-text-list.entry.js +1 -1
  297. package/dist/esm/diwa-text.entry.js +1 -1
  298. package/dist/esm/diwa-textarea.entry.js +1 -1
  299. package/dist/esm/diwa-toast-item.entry.js +1 -1
  300. package/dist/esm/diwa-toast.entry.js +111 -17
  301. package/dist/esm/diwa-toast.entry.js.map +1 -1
  302. package/dist/esm/loader.js +1 -1
  303. package/dist/types/components/diwa-heading/diwa-heading-styles.d.ts +3 -0
  304. package/dist/types/components/diwa-heading/diwa-heading-utils.d.ts +10 -0
  305. package/dist/types/components/diwa-heading/diwa-heading.d.ts +49 -0
  306. package/dist/types/components/diwa-heading/types.d.ts +17 -0
  307. package/dist/types/components/diwa-scroller/diwa-scroller-styles.d.ts +1 -1
  308. package/dist/types/components/diwa-scroller/diwa-scroller.d.ts +2 -1
  309. package/dist/types/components/diwa-select/diwa-select.d.ts +2 -0
  310. package/dist/types/components/diwa-select-option/diwa-select-option.d.ts +2 -0
  311. package/dist/types/components/diwa-table/diwa-table.d.ts +1 -1
  312. package/dist/types/components/diwa-toast/diwa-toast-manager.d.ts +34 -0
  313. package/dist/types/components/diwa-toast/diwa-toast.d.ts +12 -12
  314. package/dist/types/components.d.ts +144 -25
  315. package/dist-custom-elements/diwa-accordion.js +1 -1
  316. package/dist-custom-elements/diwa-button-pure.js +1 -1
  317. package/dist-custom-elements/diwa-button.js +1 -1
  318. package/dist-custom-elements/diwa-checkbox.js +1 -3
  319. package/dist-custom-elements/diwa-checkbox.js.map +1 -1
  320. package/dist-custom-elements/diwa-flyout.js +2 -2
  321. package/dist-custom-elements/diwa-heading.d.ts +11 -0
  322. package/dist-custom-elements/diwa-heading.js +149 -0
  323. package/dist-custom-elements/diwa-heading.js.map +1 -0
  324. package/dist-custom-elements/diwa-icon.js +1 -1
  325. package/dist-custom-elements/diwa-inline-notification.js +3 -3
  326. package/dist-custom-elements/diwa-input-date.js +1 -1
  327. package/dist-custom-elements/diwa-input-email.js +1 -1
  328. package/dist-custom-elements/diwa-input-month.js +1 -1
  329. package/dist-custom-elements/diwa-input-number.js +1 -1
  330. package/dist-custom-elements/diwa-input-password.js +2 -2
  331. package/dist-custom-elements/diwa-input-search.js +2 -2
  332. package/dist-custom-elements/diwa-input-tel.js +1 -1
  333. package/dist-custom-elements/diwa-input-text.js +1 -1
  334. package/dist-custom-elements/diwa-input-time.js +1 -1
  335. package/dist-custom-elements/diwa-input-url.js +1 -1
  336. package/dist-custom-elements/diwa-input-week.js +1 -1
  337. package/dist-custom-elements/diwa-input.js +1 -1
  338. package/dist-custom-elements/diwa-link-pure.js +2 -2
  339. package/dist-custom-elements/diwa-link.js +2 -2
  340. package/dist-custom-elements/diwa-modal.js +1 -1
  341. package/dist-custom-elements/diwa-multi-select-option.js +1 -1
  342. package/dist-custom-elements/diwa-multi-select.js +2 -2
  343. package/dist-custom-elements/diwa-pagination.js +1 -1
  344. package/dist-custom-elements/diwa-pin-code.js +2 -2
  345. package/dist-custom-elements/diwa-popover.js +1 -1
  346. package/dist-custom-elements/diwa-radio-group-item.js +2 -3
  347. package/dist-custom-elements/diwa-radio-group-item.js.map +1 -1
  348. package/dist-custom-elements/diwa-radio-group.js +1 -1
  349. package/dist-custom-elements/diwa-scroller.js +24 -14
  350. package/dist-custom-elements/diwa-scroller.js.map +1 -1
  351. package/dist-custom-elements/diwa-segmented-control-item.js +1 -1
  352. package/dist-custom-elements/diwa-segmented-control.js +1 -1
  353. package/dist-custom-elements/diwa-select-option.js +25 -10
  354. package/dist-custom-elements/diwa-select-option.js.map +1 -1
  355. package/dist-custom-elements/diwa-select.js +16 -1
  356. package/dist-custom-elements/diwa-select.js.map +1 -1
  357. package/dist-custom-elements/diwa-spinner.js +1 -1
  358. package/dist-custom-elements/diwa-stepper-horizontal-item.js +1 -1
  359. package/dist-custom-elements/diwa-stepper-horizontal.js +1 -1
  360. package/dist-custom-elements/diwa-switch.js +2 -2
  361. package/dist-custom-elements/diwa-table-body.js +1 -1
  362. package/dist-custom-elements/diwa-table-cell.js +15 -15
  363. package/dist-custom-elements/diwa-table-cell.js.map +1 -1
  364. package/dist-custom-elements/diwa-table-head-cell.js +64 -53
  365. package/dist-custom-elements/diwa-table-head-cell.js.map +1 -1
  366. package/dist-custom-elements/diwa-table-head.js +16 -11
  367. package/dist-custom-elements/diwa-table-head.js.map +1 -1
  368. package/dist-custom-elements/diwa-table-row.js +11 -10
  369. package/dist-custom-elements/diwa-table-row.js.map +1 -1
  370. package/dist-custom-elements/diwa-table.js +83 -43
  371. package/dist-custom-elements/diwa-table.js.map +1 -1
  372. package/dist-custom-elements/diwa-tabs-bar.js +1 -1
  373. package/dist-custom-elements/diwa-tabs-item.js +1 -1
  374. package/dist-custom-elements/diwa-tabs.js +12 -12
  375. package/dist-custom-elements/diwa-tabs.js.map +1 -1
  376. package/dist-custom-elements/diwa-tag-dismissible.js +6 -8
  377. package/dist-custom-elements/diwa-tag-dismissible.js.map +1 -1
  378. package/dist-custom-elements/diwa-tag.js +3 -3
  379. package/dist-custom-elements/diwa-tag.js.map +1 -1
  380. package/dist-custom-elements/diwa-text-list-item.js +1 -1
  381. package/dist-custom-elements/diwa-text-list.js +1 -1
  382. package/dist-custom-elements/diwa-text.js +1 -1
  383. package/dist-custom-elements/diwa-textarea.js +1 -1
  384. package/dist-custom-elements/diwa-toast-item.js +1 -1
  385. package/dist-custom-elements/diwa-toast.js +113 -19
  386. package/dist-custom-elements/diwa-toast.js.map +1 -1
  387. package/dist-custom-elements/{p-54e5b3fb.js → p-105f3f97.js} +2 -2
  388. package/dist-custom-elements/{p-54e5b3fb.js.map → p-105f3f97.js.map} +1 -1
  389. package/dist-custom-elements/{p-f480bce8.js → p-7c951f7f.js} +2 -2
  390. package/dist-custom-elements/{p-f480bce8.js.map → p-7c951f7f.js.map} +1 -1
  391. package/dist-custom-elements/{p-302af10d.js → p-8972ae69.js} +2 -2
  392. package/dist-custom-elements/{p-302af10d.js.map → p-8972ae69.js.map} +1 -1
  393. package/dist-custom-elements/{p-ed901570.js → p-b7255dc4.js} +2 -2
  394. package/dist-custom-elements/{p-ed901570.js.map → p-b7255dc4.js.map} +1 -1
  395. package/package.json +11 -9
  396. package/dist/diwa-components/p-043e3e19.entry.js +0 -2
  397. package/dist/diwa-components/p-05988905.entry.js +0 -2
  398. package/dist/diwa-components/p-08c584fb.entry.js +0 -2
  399. package/dist/diwa-components/p-08c584fb.entry.js.map +0 -1
  400. package/dist/diwa-components/p-0cbe8ed4.entry.js +0 -2
  401. package/dist/diwa-components/p-0cbe8ed4.entry.js.map +0 -1
  402. package/dist/diwa-components/p-139f619d.entry.js +0 -2
  403. package/dist/diwa-components/p-139f619d.entry.js.map +0 -1
  404. package/dist/diwa-components/p-178d18c2.entry.js +0 -2
  405. package/dist/diwa-components/p-178d18c2.entry.js.map +0 -1
  406. package/dist/diwa-components/p-2b72a324.entry.js +0 -2
  407. package/dist/diwa-components/p-339f6ba7.entry.js +0 -2
  408. package/dist/diwa-components/p-3b7a1431.entry.js +0 -2
  409. package/dist/diwa-components/p-3b7a1431.entry.js.map +0 -1
  410. package/dist/diwa-components/p-4a84fee8.entry.js +0 -2
  411. package/dist/diwa-components/p-4ac5a26e.entry.js.map +0 -1
  412. package/dist/diwa-components/p-51673c06.entry.js +0 -2
  413. package/dist/diwa-components/p-51673c06.entry.js.map +0 -1
  414. package/dist/diwa-components/p-5c2325aa.entry.js +0 -2
  415. package/dist/diwa-components/p-5cd79382.entry.js +0 -2
  416. package/dist/diwa-components/p-67950f59.entry.js +0 -2
  417. package/dist/diwa-components/p-67950f59.entry.js.map +0 -1
  418. package/dist/diwa-components/p-8012c384.entry.js +0 -2
  419. package/dist/diwa-components/p-8012c384.entry.js.map +0 -1
  420. package/dist/diwa-components/p-9088f057.entry.js +0 -2
  421. package/dist/diwa-components/p-94f603c2.entry.js +0 -2
  422. package/dist/diwa-components/p-94f603c2.entry.js.map +0 -1
  423. package/dist/diwa-components/p-b7132ea7.entry.js +0 -2
  424. package/dist/diwa-components/p-b7132ea7.entry.js.map +0 -1
  425. package/dist/diwa-components/p-b988c5b3.entry.js +0 -2
  426. package/dist/diwa-components/p-b988c5b3.entry.js.map +0 -1
  427. package/dist/diwa-components/p-bc2eecd2.entry.js +0 -2
  428. package/dist/diwa-components/p-cf960cf6.entry.js +0 -2
  429. package/dist/diwa-components/p-d0762292.entry.js.map +0 -1
  430. package/dist/diwa-components/p-f22b6145.entry.js +0 -2
  431. package/dist/diwa-components/p-f22b6145.entry.js.map +0 -1
  432. /package/dist/diwa-components/{p-2b54c761.entry.js.map → p-09f2e643.entry.js.map} +0 -0
  433. /package/dist/diwa-components/{p-1022a474.entry.js.map → p-1250d0c7.entry.js.map} +0 -0
  434. /package/dist/diwa-components/{p-1a1bd7ed.entry.js.map → p-13e71247.entry.js.map} +0 -0
  435. /package/dist/diwa-components/{p-711e295e.entry.js.map → p-1830772d.entry.js.map} +0 -0
  436. /package/dist/diwa-components/{p-f4a589b5.entry.js.map → p-1d708e1e.entry.js.map} +0 -0
  437. /package/dist/diwa-components/{p-bb04cdd6.entry.js.map → p-238da82a.entry.js.map} +0 -0
  438. /package/dist/diwa-components/{p-c896dfa5.entry.js.map → p-3269a4b7.entry.js.map} +0 -0
  439. /package/dist/diwa-components/{p-fbe73240.entry.js.map → p-3660b09a.entry.js.map} +0 -0
  440. /package/dist/diwa-components/{p-c37374ab.entry.js.map → p-36b004e9.entry.js.map} +0 -0
  441. /package/dist/diwa-components/{p-851cbfb8.entry.js.map → p-3b38fa01.entry.js.map} +0 -0
  442. /package/dist/diwa-components/{p-4a84fee8.entry.js.map → p-3fb5cc30.entry.js.map} +0 -0
  443. /package/dist/diwa-components/{p-5cd79382.entry.js.map → p-5a597e27.entry.js.map} +0 -0
  444. /package/dist/diwa-components/{p-043e3e19.entry.js.map → p-66c15f66.entry.js.map} +0 -0
  445. /package/dist/diwa-components/{p-6253fff6.entry.js.map → p-71c45961.entry.js.map} +0 -0
  446. /package/dist/diwa-components/{p-358e1177.entry.js.map → p-78b16866.entry.js.map} +0 -0
  447. /package/dist/diwa-components/{p-05988905.entry.js.map → p-7dc7291f.entry.js.map} +0 -0
  448. /package/dist/diwa-components/{p-09a9e0a0.entry.js.map → p-8369c48e.entry.js.map} +0 -0
  449. /package/dist/diwa-components/{p-bc2eecd2.entry.js.map → p-8506ea0c.entry.js.map} +0 -0
  450. /package/dist/diwa-components/{p-ba1ffa71.entry.js.map → p-87932af2.entry.js.map} +0 -0
  451. /package/dist/diwa-components/{p-48009a79.entry.js.map → p-926e283b.entry.js.map} +0 -0
  452. /package/dist/diwa-components/{p-4ff58224.entry.js.map → p-95b0fdea.entry.js.map} +0 -0
  453. /package/dist/diwa-components/{p-20fd1505.entry.js.map → p-998dd88e.entry.js.map} +0 -0
  454. /package/dist/diwa-components/{p-5c2325aa.entry.js.map → p-9ade0403.entry.js.map} +0 -0
  455. /package/dist/diwa-components/{p-57db0c31.entry.js.map → p-9c89e586.entry.js.map} +0 -0
  456. /package/dist/diwa-components/{p-565f623e.entry.js.map → p-bd501daa.entry.js.map} +0 -0
  457. /package/dist/diwa-components/{p-c1c85f9e.entry.js.map → p-c6ca8d8b.entry.js.map} +0 -0
  458. /package/dist/diwa-components/{p-53e21a74.entry.js.map → p-c78591ce.entry.js.map} +0 -0
  459. /package/dist/diwa-components/{p-996f7110.entry.js.map → p-cc0e1662.entry.js.map} +0 -0
  460. /package/dist/diwa-components/{p-9088f057.entry.js.map → p-d25377eb.entry.js.map} +0 -0
  461. /package/dist/diwa-components/{p-7f0ce623.entry.js.map → p-d917625e.entry.js.map} +0 -0
  462. /package/dist/diwa-components/{p-2b72a324.entry.js.map → p-e137afc9.entry.js.map} +0 -0
  463. /package/dist/diwa-components/{p-666844e0.entry.js.map → p-e1935375.entry.js.map} +0 -0
  464. /package/dist/diwa-components/{p-87ea8001.entry.js.map → p-e602c199.entry.js.map} +0 -0
  465. /package/dist/diwa-components/{p-9f140e14.entry.js.map → p-e9673253.entry.js.map} +0 -0
  466. /package/dist/diwa-components/{p-cf960cf6.entry.js.map → p-f60f1d81.entry.js.map} +0 -0
  467. /package/dist/diwa-components/{p-c0614fb1.entry.js.map → p-fae653f7.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"diwa-select.js","sourceRoot":"","sources":["../../../src/components/diwa-select/diwa-select.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Component,\r\n Element,\r\n Event,\r\n type EventEmitter,\r\n Host,\r\n Listen,\r\n Method,\r\n Prop,\r\n State,\r\n Watch,\r\n forceUpdate,\r\n h,\r\n} from '@stencil/core';\r\nimport type {\r\n SelectChangeEventDetail,\r\n SelectDropdownDirection,\r\n SelectState,\r\n SelectTheme,\r\n SelectToggleEventDetail,\r\n} from './types';\r\nimport { getComponentCss } from './diwa-select-styles';\r\n\r\n/** Module-level counter for unique IDs. */\r\nlet selectIdCounter = 0;\r\n\r\n/**\r\n * @component diwa-select\r\n *\r\n * A fully accessible single-select dropdown with built-in text filter,\r\n * keyboard navigation, and form integration.\r\n *\r\n * Based on the Diwa select API contract.\n *\r\n * Usage:\r\n * <diwa-select name=\"fruit\" label=\"Favourite fruit\">\r\n * <diwa-select-option>Please select…</diwa-select-option>\r\n * <diwa-select-option value=\"apple\">Apple</diwa-select-option>\r\n * <diwa-select-option value=\"banana\">Banana</diwa-select-option>\r\n * </diwa-select>\r\n *\r\n * @slot default — diwa-select-option elements\r\n * @slot label — Custom label content (overrides the label prop)\r\n * @slot description — Custom description content\r\n * @slot message — Custom message content\r\n */\r\n@Component({\r\n tag: 'diwa-select',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaSelect {\r\n @Element() host!: HTMLElement;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Props\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /** Theme — cascades down to child options. */\r\n @Prop({ reflect: true }) theme: SelectTheme = 'dark';\r\n\r\n /** Visible label text. */\r\n @Prop() label?: string;\r\n\r\n /** Optional description shown below the label. */\r\n @Prop() description?: string;\r\n\r\n /** HTML name attribute — identifies the field in form submissions. */\r\n @Prop() name: string = '';\r\n\r\n /** Currently selected value. Mutable — updated on user interaction. */\r\n @Prop({ mutable: true }) value?: string;\r\n\r\n /** Validation state. */\r\n @Prop({ reflect: true }) state: SelectState = 'none';\r\n\r\n /** Helper / validation message shown below the trigger. */\r\n @Prop() message?: string;\r\n\r\n /** Hides the label visually while keeping it accessible. */\r\n @Prop({ reflect: true, attribute: 'hide-label' }) hideLabel: boolean = false;\r\n\r\n /** Disables interaction. */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /** Marks the field as required. */\r\n @Prop() required: boolean = false;\r\n\r\n /** Compact variant — reduces the trigger height. */\r\n @Prop({ reflect: true }) compact: boolean = false;\r\n\r\n /**\r\n * Preferred direction for the dropdown panel.\r\n * `'auto'` detects viewport space and flips upward if needed.\r\n */\r\n @Prop() dropdownDirection: SelectDropdownDirection = 'auto';\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Events\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /** Emitted when the selection changes. */\r\n @Event({ bubbles: true })\r\n change!: EventEmitter<SelectChangeEventDetail>;\r\n\r\n /** Emitted when the dropdown opens or closes. */\r\n @Event({ bubbles: false })\r\n toggle!: EventEmitter<SelectToggleEventDetail>;\r\n\r\n /** Emitted when the component loses focus (dropdown closes via click-outside). */\r\n @Event({ bubbles: false })\r\n blur!: EventEmitter<void>;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Internal state\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n @State() private isOpen: boolean = false;\r\n @State() private hasFilterResults: boolean = true;\r\n @State() private dropdownClass: string = 'dropdown';\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Private refs / tracking\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n private internalId: string = `diwa-s-${++selectIdCounter}`;\r\n private triggerEl!: HTMLDivElement;\r\n private filterInputEl?: HTMLInputElement;\r\n private options: HTMLDiwaSelectOptionElement[] = [];\r\n private highlightedIndex: number = -1;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Watchers\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n @Watch('theme')\r\n onThemeChange(): void {\r\n this.syncChildThemes();\r\n }\r\n\r\n @Watch('value')\r\n onValueChange(): void {\r\n this.syncSelectionFromValue();\r\n }\r\n\r\n @Watch('isOpen')\r\n onIsOpenChange(open: boolean): void {\r\n this.toggle.emit({ open });\r\n if (open) {\r\n this.updateDropdownDirection();\r\n this.highlightedIndex = this.getFirstHighlightIndex();\r\n this.applyHighlight();\r\n requestAnimationFrame(() => {\r\n this.filterInputEl?.focus();\r\n });\r\n } else {\r\n this.clearHighlight();\r\n this.highlightedIndex = -1;\r\n this.resetFilter();\r\n }\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Lifecycle\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n connectedCallback(): void {\r\n document.addEventListener('mousedown', this.onClickOutside, true);\r\n }\r\n\r\n disconnectedCallback(): void {\r\n document.removeEventListener('mousedown', this.onClickOutside, true);\r\n }\r\n\r\n componentDidLoad(): void {\r\n this.collectOptions();\r\n this.syncSelectionFromValue();\r\n this.syncChildThemes();\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Public methods\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /** Programmatically opens the dropdown. */\r\n @Method()\r\n async open(): Promise<void> {\r\n this.isOpen = true;\r\n }\r\n\r\n /** Programmatically closes the dropdown. */\r\n @Method()\r\n async close(): Promise<void> {\r\n this.isOpen = false;\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Event listeners\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n @Listen('diwaSelectOptionUpdate')\r\n onOptionUpdate(e: CustomEvent<{ value: string | undefined }>): void {\r\n e.stopPropagation();\r\n this.value = e.detail.value;\r\n this.syncSelectionFromValue();\r\n this.change.emit({ name: this.name, value: this.value ?? '' });\r\n this.isOpen = false;\r\n forceUpdate(this.host);\r\n requestAnimationFrame(() => {\r\n this.triggerEl.focus();\r\n });\r\n }\r\n\r\n @Listen('slotchange')\r\n onSlotChange(): void {\r\n this.collectOptions();\r\n this.syncSelectionFromValue();\r\n this.syncChildThemes();\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Private helpers\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n private collectOptions(): void {\r\n this.options = Array.from(\r\n this.host.querySelectorAll<HTMLDiwaSelectOptionElement>('diwa-select-option'),\r\n );\r\n }\r\n\r\n private syncSelectionFromValue(): void {\r\n for (const opt of this.options) {\r\n const shouldBeSelected = opt.value !== undefined && opt.value === this.value;\r\n if (opt.selected !== shouldBeSelected) {\r\n opt.selected = shouldBeSelected;\r\n forceUpdate(opt);\r\n }\r\n }\r\n }\r\n\r\n private syncChildThemes(): void {\r\n for (const opt of this.options) {\r\n if (opt.theme !== this.theme) {\r\n opt.theme = this.theme;\r\n forceUpdate(opt);\r\n }\r\n }\r\n }\r\n\r\n private getVisibleOptions(): HTMLDiwaSelectOptionElement[] {\r\n return this.options.filter((o) => !o.disabled && o.style.display !== 'none');\r\n }\r\n\r\n private getFirstHighlightIndex(): number {\r\n const visible = this.getVisibleOptions();\r\n const firstSelected = visible.findIndex((o) => o.selected);\r\n return firstSelected >= 0 ? firstSelected : 0;\r\n }\r\n\r\n private applyHighlight(): void {\r\n const visible = this.getVisibleOptions();\r\n visible.forEach((opt, i) => {\r\n opt.highlighted = i === this.highlightedIndex;\r\n });\r\n }\r\n\r\n private clearHighlight(): void {\r\n for (const opt of this.options) {\r\n if (opt.highlighted) opt.highlighted = false;\r\n }\r\n this.highlightedIndex = -1;\r\n }\r\n\r\n private updateDropdownDirection(): void {\r\n if (this.dropdownDirection !== 'auto') {\r\n this.dropdownClass = this.dropdownDirection === 'up' ? 'dropdown dropdown--up' : 'dropdown';\r\n return;\r\n }\r\n const rect = this.triggerEl.getBoundingClientRect();\r\n const spaceBelow = window.innerHeight - rect.bottom;\r\n this.dropdownClass = spaceBelow < 260 ? 'dropdown dropdown--up' : 'dropdown';\r\n }\r\n\r\n private resetFilter(): void {\r\n if (this.filterInputEl) this.filterInputEl.value = '';\r\n this.hasFilterResults = true;\r\n for (const opt of this.options) {\r\n opt.style.display = '';\r\n }\r\n }\r\n\r\n private onClickOutside = (e: MouseEvent): void => {\r\n if (!this.isOpen) return;\r\n const path = e.composedPath();\r\n if (!path.includes(this.host)) {\r\n this.isOpen = false;\r\n this.blur.emit();\r\n }\r\n };\r\n\r\n private onTriggerClick = (): void => {\r\n if (this.disabled) return;\r\n this.isOpen = !this.isOpen;\r\n };\r\n\r\n private onTriggerKeyDown = (e: KeyboardEvent): void => {\r\n if (this.disabled) return;\r\n\r\n if (!this.isOpen) {\r\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp' || e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n this.isOpen = true;\r\n }\r\n return;\r\n }\r\n\r\n switch (e.key) {\r\n case 'Escape':\r\n case 'Tab': {\r\n e.preventDefault();\r\n this.isOpen = false;\r\n this.triggerEl.focus();\r\n break;\r\n }\r\n case 'ArrowDown': {\r\n e.preventDefault();\r\n const visible = this.getVisibleOptions();\r\n this.highlightedIndex = Math.min(this.highlightedIndex + 1, visible.length - 1);\r\n this.applyHighlight();\r\n break;\r\n }\r\n case 'ArrowUp': {\r\n e.preventDefault();\r\n this.highlightedIndex = Math.max(this.highlightedIndex - 1, 0);\r\n this.applyHighlight();\r\n break;\r\n }\r\n case 'Home': {\r\n e.preventDefault();\r\n this.highlightedIndex = 0;\r\n this.applyHighlight();\r\n break;\r\n }\r\n case 'End': {\r\n e.preventDefault();\r\n const vis = this.getVisibleOptions();\r\n this.highlightedIndex = vis.length - 1;\r\n this.applyHighlight();\r\n break;\r\n }\r\n case 'Enter':\r\n case ' ': {\r\n e.preventDefault();\r\n const current = this.getVisibleOptions()[this.highlightedIndex];\r\n if (current && !current.disabled) {\r\n current.dispatchEvent(new MouseEvent('click', { bubbles: true, composed: true }));\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n\r\n private onFilterInput = (e: Event): void => {\r\n const term = (e.target as HTMLInputElement).value.toLowerCase();\r\n\r\n let anyVisible = false;\r\n for (const opt of this.options) {\r\n const text = (opt.textContent ?? '').toLowerCase();\r\n const match = text.includes(term);\r\n opt.style.display = match ? '' : 'none';\r\n if (match) anyVisible = true;\r\n }\r\n this.hasFilterResults = anyVisible;\r\n this.highlightedIndex = 0;\r\n this.applyHighlight();\r\n };\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Computed display values\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n private get selectedLabel(): string {\r\n const selected = this.options.find((o) => o.value !== undefined && o.value === this.value);\r\n return (selected?.textContent ?? '').trim();\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Render\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n render() {\r\n const labelId = `${this.internalId}-label`;\r\n const listboxId = `${this.internalId}-listbox`;\r\n const hintId = `${this.internalId}-hint`;\r\n const hasMessage = !!this.message && this.state !== 'none';\r\n const hasValue = this.value !== undefined && this.value !== '';\r\n const displayLabel = hasValue ? this.selectedLabel : undefined;\r\n\r\n return (\r\n <Host data-theme={this.theme}>\r\n <style innerHTML={getComponentCss(this.isOpen, this.disabled, this.state, this.compact, this.dropdownClass.includes('--up'))} />\r\n\r\n {/* Label */}\r\n {(this.label || this.host.querySelector('[slot=\"label\"]')) && (\r\n <span class=\"label\" id={labelId} part=\"label\">\r\n <slot name=\"label\">{this.label}</slot>\r\n {this.required && <span class=\"label__required\" aria-hidden=\"true\">*</span>}\r\n </span>\r\n )}\r\n\r\n {/* Description */}\r\n {(this.description || this.host.querySelector('[slot=\"description\"]')) && (\r\n <span class=\"description\" part=\"description\">\r\n <slot name=\"description\">{this.description}</slot>\r\n </span>\r\n )}\r\n\r\n {/* Trigger */}\r\n <div\r\n class=\"trigger\"\r\n role=\"combobox\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={this.isOpen ? 'true' : 'false'}\r\n aria-controls={listboxId}\r\n aria-labelledby={this.label ? labelId : undefined}\r\n aria-required={this.required ? 'true' : undefined}\r\n aria-invalid={this.state === 'error' ? 'true' : undefined}\r\n aria-describedby={hasMessage ? hintId : undefined}\r\n tabIndex={this.disabled ? -1 : 0}\r\n onClick={this.onTriggerClick}\r\n onKeyDown={this.onTriggerKeyDown}\r\n ref={(el) => (this.triggerEl = el as HTMLDivElement)}\r\n part=\"trigger\"\r\n >\r\n <span class={`trigger__value${!displayLabel ? ' trigger__placeholder' : ''}`} part=\"value\">\r\n {displayLabel ?? (this.label || 'Select an option')}\r\n </span>\r\n\r\n {/* Chevron */}\r\n <span class=\"trigger__chevron\" aria-hidden=\"true\" part=\"chevron\">\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"6 9 12 15 18 9\" />\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n {/* Dropdown */}\r\n <div\r\n class={this.dropdownClass}\r\n role=\"listbox\"\r\n id={listboxId}\r\n aria-multiselectable=\"false\"\r\n aria-labelledby={this.label ? labelId : undefined}\r\n part=\"dropdown\"\r\n >\r\n {/* Filter */}\r\n <div class=\"filter\" part=\"filter\">\r\n <input\r\n class=\"filter__input\"\r\n type=\"text\"\r\n placeholder=\"Filter options…\"\r\n aria-label=\"Filter options\"\r\n onInput={this.onFilterInput}\r\n ref={(el) => (this.filterInputEl = el as HTMLInputElement)}\r\n part=\"filter-input\"\r\n />\r\n </div>\r\n\r\n {/* Options */}\r\n <div class=\"options\" part=\"options\">\r\n {!this.hasFilterResults && (\r\n <div class=\"no-results\" aria-live=\"polite\">No options found</div>\r\n )}\r\n <slot />\r\n </div>\r\n </div>\r\n\r\n {/* Message */}\r\n {hasMessage && (\r\n <span class=\"message\" id={hintId} role=\"status\" part=\"message\">\r\n <slot name=\"message\">{this.message}</slot>\r\n </span>\r\n )}\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"diwa-select.js","sourceRoot":"","sources":["../../../src/components/diwa-select/diwa-select.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Component,\r\n Element,\r\n Event,\r\n type EventEmitter,\r\n Host,\r\n Listen,\r\n Method,\r\n Prop,\r\n State,\r\n Watch,\r\n forceUpdate,\r\n h,\r\n} from '@stencil/core';\r\nimport type {\r\n SelectChangeEventDetail,\r\n SelectDropdownDirection,\r\n SelectState,\r\n SelectTheme,\r\n SelectToggleEventDetail,\r\n} from './types';\r\nimport { getComponentCss } from './diwa-select-styles';\r\n\r\n/** Module-level counter for unique IDs. */\r\nlet selectIdCounter = 0;\r\n\r\n/**\r\n * @component diwa-select\r\n *\r\n * A fully accessible single-select dropdown with built-in text filter,\r\n * keyboard navigation, and form integration.\r\n *\r\n * Based on the Diwa select API contract.\r\n *\r\n * Usage:\r\n * <diwa-select name=\"fruit\" label=\"Favourite fruit\">\r\n * <diwa-select-option>Please select…</diwa-select-option>\r\n * <diwa-select-option value=\"apple\">Apple</diwa-select-option>\r\n * <diwa-select-option value=\"banana\">Banana</diwa-select-option>\r\n * </diwa-select>\r\n *\r\n * @slot default — diwa-select-option elements\r\n * @slot label — Custom label content (overrides the label prop)\r\n * @slot description — Custom description content\r\n * @slot message — Custom message content\r\n */\r\n@Component({\r\n tag: 'diwa-select',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaSelect {\r\n @Element() host!: HTMLElement;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Props\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /** Theme — cascades down to child options. */\r\n @Prop({ reflect: true }) theme: SelectTheme = 'dark';\r\n\r\n /** Visible label text. */\r\n @Prop() label?: string;\r\n\r\n /** Optional description shown below the label. */\r\n @Prop() description?: string;\r\n\r\n /** HTML name attribute — identifies the field in form submissions. */\r\n @Prop() name: string = '';\r\n\r\n /** Currently selected value. Mutable — updated on user interaction. */\r\n @Prop({ mutable: true }) value?: string;\r\n\r\n /** Validation state. */\r\n @Prop({ reflect: true }) state: SelectState = 'none';\r\n\r\n /** Helper / validation message shown below the trigger. */\r\n @Prop() message?: string;\r\n\r\n /** Hides the label visually while keeping it accessible. */\r\n @Prop({ reflect: true, attribute: 'hide-label' }) hideLabel: boolean = false;\r\n\r\n /** Disables interaction. */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /** Marks the field as required. */\r\n @Prop() required: boolean = false;\r\n\r\n /** Compact variant — reduces the trigger height. */\r\n @Prop({ reflect: true }) compact: boolean = false;\r\n\r\n /**\r\n * Preferred direction for the dropdown panel.\r\n * `'auto'` detects viewport space and flips upward if needed.\r\n */\r\n @Prop() dropdownDirection: SelectDropdownDirection = 'auto';\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Events\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /** Emitted when the selection changes. */\r\n @Event({ bubbles: true })\r\n change!: EventEmitter<SelectChangeEventDetail>;\r\n\r\n /** Emitted when the dropdown opens or closes. */\r\n @Event({ bubbles: false })\r\n toggle!: EventEmitter<SelectToggleEventDetail>;\r\n\r\n /** Emitted when the component loses focus (dropdown closes via click-outside). */\r\n @Event({ bubbles: false })\r\n blur!: EventEmitter<void>;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Internal state\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n @State() private isOpen: boolean = false;\r\n @State() private hasFilterResults: boolean = true;\r\n @State() private dropdownClass: string = 'dropdown';\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Private refs / tracking\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n private internalId: string = `diwa-s-${++selectIdCounter}`;\r\n private triggerEl!: HTMLDivElement;\r\n private filterInputEl?: HTMLInputElement;\r\n private options: HTMLDiwaSelectOptionElement[] = [];\r\n private highlightedIndex: number = -1;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Watchers\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n @Watch('theme')\r\n onThemeChange(): void {\r\n this.syncChildThemes();\r\n }\r\n\r\n @Watch('compact')\r\n onCompactChange(): void {\r\n this.syncChildCompact();\r\n }\r\n\r\n @Watch('value')\r\n onValueChange(): void {\r\n this.syncSelectionFromValue();\r\n }\r\n\r\n @Watch('isOpen')\r\n onIsOpenChange(open: boolean): void {\r\n this.toggle.emit({ open });\r\n if (open) {\r\n this.updateDropdownDirection();\r\n this.highlightedIndex = this.getFirstHighlightIndex();\r\n this.applyHighlight();\r\n requestAnimationFrame(() => {\r\n this.filterInputEl?.focus();\r\n });\r\n } else {\r\n this.clearHighlight();\r\n this.highlightedIndex = -1;\r\n this.resetFilter();\r\n }\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Lifecycle\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n connectedCallback(): void {\r\n document.addEventListener('mousedown', this.onClickOutside, true);\r\n }\r\n\r\n disconnectedCallback(): void {\r\n document.removeEventListener('mousedown', this.onClickOutside, true);\r\n }\r\n\r\n componentDidLoad(): void {\r\n this.collectOptions();\r\n this.syncSelectionFromValue();\r\n this.syncChildThemes();\r\n this.syncChildCompact();\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Public methods\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /** Programmatically opens the dropdown. */\r\n @Method()\r\n async open(): Promise<void> {\r\n this.isOpen = true;\r\n }\r\n\r\n /** Programmatically closes the dropdown. */\r\n @Method()\r\n async close(): Promise<void> {\r\n this.isOpen = false;\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Event listeners\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n @Listen('diwaSelectOptionUpdate')\r\n onOptionUpdate(e: CustomEvent<{ value: string | undefined }>): void {\r\n e.stopPropagation();\r\n this.value = e.detail.value;\r\n this.syncSelectionFromValue();\r\n this.change.emit({ name: this.name, value: this.value ?? '' });\r\n this.isOpen = false;\r\n forceUpdate(this.host);\r\n requestAnimationFrame(() => {\r\n this.triggerEl.focus();\r\n });\r\n }\r\n\r\n @Listen('slotchange')\r\n onSlotChange(): void {\r\n this.collectOptions();\r\n this.syncSelectionFromValue();\r\n this.syncChildThemes();\r\n this.syncChildCompact();\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Private helpers\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n private collectOptions(): void {\r\n this.options = Array.from(\r\n this.host.querySelectorAll<HTMLDiwaSelectOptionElement>('diwa-select-option'),\r\n );\r\n }\r\n\r\n private syncSelectionFromValue(): void {\r\n for (const opt of this.options) {\r\n const shouldBeSelected = opt.value !== undefined && opt.value === this.value;\r\n if (opt.selected !== shouldBeSelected) {\r\n opt.selected = shouldBeSelected;\r\n forceUpdate(opt);\r\n }\r\n }\r\n }\r\n\r\n private syncChildThemes(): void {\r\n for (const opt of this.options) {\r\n if (opt.theme !== this.theme) {\r\n opt.theme = this.theme;\r\n forceUpdate(opt);\r\n }\r\n }\r\n }\r\n\r\n private syncChildCompact(): void {\r\n for (const opt of this.options) {\r\n if (opt.compact !== this.compact) {\r\n opt.compact = this.compact;\r\n forceUpdate(opt);\r\n }\r\n }\r\n }\r\n\r\n private getVisibleOptions(): HTMLDiwaSelectOptionElement[] {\r\n return this.options.filter((o) => !o.disabled && o.style.display !== 'none');\r\n }\r\n\r\n private getFirstHighlightIndex(): number {\r\n const visible = this.getVisibleOptions();\r\n const firstSelected = visible.findIndex((o) => o.selected);\r\n return firstSelected >= 0 ? firstSelected : 0;\r\n }\r\n\r\n private applyHighlight(): void {\r\n const visible = this.getVisibleOptions();\r\n visible.forEach((opt, i) => {\r\n opt.highlighted = i === this.highlightedIndex;\r\n });\r\n }\r\n\r\n private clearHighlight(): void {\r\n for (const opt of this.options) {\r\n if (opt.highlighted) opt.highlighted = false;\r\n }\r\n this.highlightedIndex = -1;\r\n }\r\n\r\n private updateDropdownDirection(): void {\r\n if (this.dropdownDirection !== 'auto') {\r\n this.dropdownClass = this.dropdownDirection === 'up' ? 'dropdown dropdown--up' : 'dropdown';\r\n return;\r\n }\r\n const rect = this.triggerEl.getBoundingClientRect();\r\n const spaceBelow = window.innerHeight - rect.bottom;\r\n this.dropdownClass = spaceBelow < 260 ? 'dropdown dropdown--up' : 'dropdown';\r\n }\r\n\r\n private resetFilter(): void {\r\n if (this.filterInputEl) this.filterInputEl.value = '';\r\n this.hasFilterResults = true;\r\n for (const opt of this.options) {\r\n opt.style.display = '';\r\n }\r\n }\r\n\r\n private onClickOutside = (e: MouseEvent): void => {\r\n if (!this.isOpen) return;\r\n const path = e.composedPath();\r\n if (!path.includes(this.host)) {\r\n this.isOpen = false;\r\n this.blur.emit();\r\n }\r\n };\r\n\r\n private onTriggerClick = (): void => {\r\n if (this.disabled) return;\r\n this.isOpen = !this.isOpen;\r\n };\r\n\r\n private onTriggerKeyDown = (e: KeyboardEvent): void => {\r\n if (this.disabled) return;\r\n\r\n if (!this.isOpen) {\r\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp' || e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n this.isOpen = true;\r\n }\r\n return;\r\n }\r\n\r\n switch (e.key) {\r\n case 'Escape':\r\n case 'Tab': {\r\n e.preventDefault();\r\n this.isOpen = false;\r\n this.triggerEl.focus();\r\n break;\r\n }\r\n case 'ArrowDown': {\r\n e.preventDefault();\r\n const visible = this.getVisibleOptions();\r\n this.highlightedIndex = Math.min(this.highlightedIndex + 1, visible.length - 1);\r\n this.applyHighlight();\r\n break;\r\n }\r\n case 'ArrowUp': {\r\n e.preventDefault();\r\n this.highlightedIndex = Math.max(this.highlightedIndex - 1, 0);\r\n this.applyHighlight();\r\n break;\r\n }\r\n case 'Home': {\r\n e.preventDefault();\r\n this.highlightedIndex = 0;\r\n this.applyHighlight();\r\n break;\r\n }\r\n case 'End': {\r\n e.preventDefault();\r\n const vis = this.getVisibleOptions();\r\n this.highlightedIndex = vis.length - 1;\r\n this.applyHighlight();\r\n break;\r\n }\r\n case 'Enter':\r\n case ' ': {\r\n e.preventDefault();\r\n const current = this.getVisibleOptions()[this.highlightedIndex];\r\n if (current && !current.disabled) {\r\n current.dispatchEvent(new MouseEvent('click', { bubbles: true, composed: true }));\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n\r\n private onFilterInput = (e: Event): void => {\r\n const term = (e.target as HTMLInputElement).value.toLowerCase();\r\n\r\n let anyVisible = false;\r\n for (const opt of this.options) {\r\n const text = (opt.textContent ?? '').toLowerCase();\r\n const match = text.includes(term);\r\n opt.style.display = match ? '' : 'none';\r\n if (match) anyVisible = true;\r\n }\r\n this.hasFilterResults = anyVisible;\r\n this.highlightedIndex = 0;\r\n this.applyHighlight();\r\n };\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Computed display values\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n private get selectedLabel(): string {\r\n const selected = this.options.find((o) => o.value !== undefined && o.value === this.value);\r\n return (selected?.textContent ?? '').trim();\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Render\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n render() {\r\n const labelId = `${this.internalId}-label`;\r\n const listboxId = `${this.internalId}-listbox`;\r\n const hintId = `${this.internalId}-hint`;\r\n const hasMessage = !!this.message && this.state !== 'none';\r\n const hasValue = this.value !== undefined && this.value !== '';\r\n const displayLabel = hasValue ? this.selectedLabel : undefined;\r\n\r\n return (\r\n <Host data-theme={this.theme}>\r\n <style innerHTML={getComponentCss(this.isOpen, this.disabled, this.state, this.compact, this.dropdownClass.includes('--up'))} />\r\n\r\n {/* Label */}\r\n {(this.label || this.host.querySelector('[slot=\"label\"]')) && (\r\n <span class=\"label\" id={labelId} part=\"label\">\r\n <slot name=\"label\">{this.label}</slot>\r\n {this.required && <span class=\"label__required\" aria-hidden=\"true\">*</span>}\r\n </span>\r\n )}\r\n\r\n {/* Description */}\r\n {(this.description || this.host.querySelector('[slot=\"description\"]')) && (\r\n <span class=\"description\" part=\"description\">\r\n <slot name=\"description\">{this.description}</slot>\r\n </span>\r\n )}\r\n\r\n {/* Trigger */}\r\n <div\r\n class=\"trigger\"\r\n role=\"combobox\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={this.isOpen ? 'true' : 'false'}\r\n aria-controls={listboxId}\r\n aria-labelledby={this.label ? labelId : undefined}\r\n aria-required={this.required ? 'true' : undefined}\r\n aria-invalid={this.state === 'error' ? 'true' : undefined}\r\n aria-describedby={hasMessage ? hintId : undefined}\r\n tabIndex={this.disabled ? -1 : 0}\r\n onClick={this.onTriggerClick}\r\n onKeyDown={this.onTriggerKeyDown}\r\n ref={(el) => (this.triggerEl = el as HTMLDivElement)}\r\n part=\"trigger\"\r\n >\r\n <span class={`trigger__value${!displayLabel ? ' trigger__placeholder' : ''}`} part=\"value\">\r\n {displayLabel ?? (this.label || 'Select an option')}\r\n </span>\r\n\r\n {/* Chevron */}\r\n <span class=\"trigger__chevron\" aria-hidden=\"true\" part=\"chevron\">\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"6 9 12 15 18 9\" />\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n {/* Dropdown */}\r\n <div\r\n class={this.dropdownClass}\r\n role=\"listbox\"\r\n id={listboxId}\r\n aria-multiselectable=\"false\"\r\n aria-labelledby={this.label ? labelId : undefined}\r\n part=\"dropdown\"\r\n >\r\n {/* Filter */}\r\n <div class=\"filter\" part=\"filter\">\r\n <input\r\n class=\"filter__input\"\r\n type=\"text\"\r\n placeholder=\"Filter options…\"\r\n aria-label=\"Filter options\"\r\n onInput={this.onFilterInput}\r\n ref={(el) => (this.filterInputEl = el as HTMLInputElement)}\r\n part=\"filter-input\"\r\n />\r\n </div>\r\n\r\n {/* Options */}\r\n <div class=\"options\" part=\"options\">\r\n {!this.hasFilterResults && (\r\n <div class=\"no-results\" aria-live=\"polite\">No options found</div>\r\n )}\r\n <slot />\r\n </div>\r\n </div>\r\n\r\n {/* Message */}\r\n {hasMessage && (\r\n <span class=\"message\" id={hintId} role=\"status\" part=\"message\">\r\n <slot name=\"message\">{this.message}</slot>\r\n </span>\r\n )}\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
@@ -57,15 +57,15 @@ export const getComponentCss = () => `
57
57
 
58
58
  /* ── Highlighted (keyboard / hover) ─────────────────────────────────── */
59
59
 
60
- :host([highlighted]) .option {
61
- background-color: var(--diwa-bg-hover);
62
- }
63
-
64
- @media (hover: hover) and (pointer: fine) {
65
- .option:hover {
66
- background-color: var(--diwa-bg-hover);
67
- }
68
- }
60
+ :host([highlighted]) .option {
61
+ background-color: var(--diwa-bg-hover);
62
+ }
63
+
64
+ @media (hover: hover) and (pointer: fine) {
65
+ .option:hover {
66
+ background-color: var(--diwa-bg-hover);
67
+ }
68
+ }
69
69
 
70
70
  /* ── Label text ─────────────────────────────────────────────────────── */
71
71
 
@@ -77,6 +77,18 @@ export const getComponentCss = () => `
77
77
  white-space: nowrap;
78
78
  }
79
79
 
80
+ /* ── Compact ────────────────────────────────────────────────────────── */
81
+
82
+ :host([compact]) .option {
83
+ padding: var(--diwa-space-1) var(--diwa-space-2);
84
+ font-size: var(--diwa-font-size-md);
85
+ min-height: 0;
86
+ }
87
+
88
+ :host([compact]) .check {
89
+ font-size: var(--diwa-font-size-md);
90
+ }
91
+
80
92
  /* ── Disabled ───────────────────────────────────────────────────────── */
81
93
 
82
94
  :host([disabled]) {
@@ -1 +1 @@
1
- {"version":3,"file":"diwa-select-option-styles.js","sourceRoot":"","sources":["../../../src/components/diwa-select-option/diwa-select-option-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,CAAC,MAAM,eAAe,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiCzC,aAAa,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0DxB,qBAAqB,CAAC,SAAS,CAAC;CACnC,CAAC","sourcesContent":["import { getFocusStyle, getReducedMotionStyle } from '../../utils/styles';\r\n\r\nexport const getComponentCss = (): string => `\r\n /* ── Host ──────────────────────────────────────────────────────────── */\r\n\r\n :host {\r\n display: block;\r\n font-family: var(--diwa-font-family-base);\r\n outline: none;\r\n }\r\n\r\n :host([hidden]) {\r\n display: none;\r\n }\r\n\r\n /* ── Option row ─────────────────────────────────────────────────────── */\r\n\r\n .option {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--diwa-space-3);\r\n padding: var(--diwa-space-2) var(--diwa-space-3);\r\n min-height: var(--diwa-select-option-min-height);\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n user-select: none;\r\n -webkit-font-smoothing: antialiased;\r\n color: var(--diwa-text-primary);\r\n font-size: var(--diwa-font-size-base);\r\n font-weight: var(--diwa-font-weight-normal);\r\n line-height: 1.4;\r\n border-radius: var(--diwa-radius-sm);\r\n transition: background-color var(--diwa-transition-fast);\r\n }\r\n\r\n ${getFocusStyle('.option')}\r\n\r\n /* ── Check mark ─────────────────────────────────────────────────────── */\r\n\r\n .check {\r\n flex-shrink: 0;\r\n width: var(--diwa-icon-size-md);\r\n height: var(--diwa-icon-size-md);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: var(--diwa-accent);\r\n font-size: var(--diwa-font-size-base);\r\n line-height: 1;\r\n visibility: hidden;\r\n }\r\n\r\n /* ── Selected state ─────────────────────────────────────────────────── */\r\n\r\n :host([selected]) .check {\r\n visibility: visible;\r\n }\r\n\r\n /* ── Highlighted (keyboard / hover) ─────────────────────────────────── */\r\n\r\n :host([highlighted]) .option {\n background-color: var(--diwa-bg-hover);\n }\n\n @media (hover: hover) and (pointer: fine) {\n .option:hover {\n background-color: var(--diwa-bg-hover);\n }\n }\n\r\n /* ── Label text ─────────────────────────────────────────────────────── */\r\n\r\n .label {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\r\n\r\n /* ── Disabled ───────────────────────────────────────────────────────── */\r\n\r\n :host([disabled]) {\r\n pointer-events: none;\r\n }\r\n\r\n :host([disabled]) .option {\r\n opacity: var(--diwa-opacity-disabled);\r\n cursor: not-allowed;\r\n }\r\n\r\n /* ── Reduced motion ─────────────────────────────────────────────────── */\r\n\r\n ${getReducedMotionStyle('.option')}\r\n`;\r\n"]}
1
+ {"version":3,"file":"diwa-select-option-styles.js","sourceRoot":"","sources":["../../../src/components/diwa-select-option/diwa-select-option-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,CAAC,MAAM,eAAe,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiCzC,aAAa,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsExB,qBAAqB,CAAC,SAAS,CAAC;CACnC,CAAC","sourcesContent":["import { getFocusStyle, getReducedMotionStyle } from '../../utils/styles';\r\n\r\nexport const getComponentCss = (): string => `\r\n /* ── Host ──────────────────────────────────────────────────────────── */\r\n\r\n :host {\r\n display: block;\r\n font-family: var(--diwa-font-family-base);\r\n outline: none;\r\n }\r\n\r\n :host([hidden]) {\r\n display: none;\r\n }\r\n\r\n /* ── Option row ─────────────────────────────────────────────────────── */\r\n\r\n .option {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--diwa-space-3);\r\n padding: var(--diwa-space-2) var(--diwa-space-3);\r\n min-height: var(--diwa-select-option-min-height);\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n user-select: none;\r\n -webkit-font-smoothing: antialiased;\r\n color: var(--diwa-text-primary);\r\n font-size: var(--diwa-font-size-base);\r\n font-weight: var(--diwa-font-weight-normal);\r\n line-height: 1.4;\r\n border-radius: var(--diwa-radius-sm);\r\n transition: background-color var(--diwa-transition-fast);\r\n }\r\n\r\n ${getFocusStyle('.option')}\r\n\r\n /* ── Check mark ─────────────────────────────────────────────────────── */\r\n\r\n .check {\r\n flex-shrink: 0;\r\n width: var(--diwa-icon-size-md);\r\n height: var(--diwa-icon-size-md);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: var(--diwa-accent);\r\n font-size: var(--diwa-font-size-base);\r\n line-height: 1;\r\n visibility: hidden;\r\n }\r\n\r\n /* ── Selected state ─────────────────────────────────────────────────── */\r\n\r\n :host([selected]) .check {\r\n visibility: visible;\r\n }\r\n\r\n /* ── Highlighted (keyboard / hover) ─────────────────────────────────── */\r\n\r\n :host([highlighted]) .option {\r\n background-color: var(--diwa-bg-hover);\r\n }\r\n\r\n @media (hover: hover) and (pointer: fine) {\r\n .option:hover {\r\n background-color: var(--diwa-bg-hover);\r\n }\r\n }\r\n\r\n /* ── Label text ─────────────────────────────────────────────────────── */\r\n\r\n .label {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\r\n\r\n /* ── Compact ────────────────────────────────────────────────────────── */\r\n\r\n :host([compact]) .option {\r\n padding: var(--diwa-space-1) var(--diwa-space-2);\r\n font-size: var(--diwa-font-size-md);\r\n min-height: 0;\r\n }\r\n\r\n :host([compact]) .check {\r\n font-size: var(--diwa-font-size-md);\r\n }\r\n\r\n /* ── Disabled ───────────────────────────────────────────────────────── */\r\n\r\n :host([disabled]) {\r\n pointer-events: none;\r\n }\r\n\r\n :host([disabled]) .option {\r\n opacity: var(--diwa-opacity-disabled);\r\n cursor: not-allowed;\r\n }\r\n\r\n /* ── Reduced motion ─────────────────────────────────────────────────── */\r\n\r\n ${getReducedMotionStyle('.option')}\r\n`;\r\n"]}
@@ -29,6 +29,8 @@ export class DiwaSelectOption {
29
29
  this.highlighted = false;
30
30
  /** Theme — inherited from the parent diwa-select. */
31
31
  this.theme = 'dark';
32
+ /** Compact mode — inherited from the parent diwa-select. */
33
+ this.compact = false;
32
34
  this.handleClick = () => {
33
35
  if (this.disabled)
34
36
  return;
@@ -49,7 +51,7 @@ export class DiwaSelectOption {
49
51
  (_a = this.optionEl) === null || _a === void 0 ? void 0 : _a.focus();
50
52
  }
51
53
  render() {
52
- return (h(Host, { key: 'a247949923bad9061915c5e2c85713e396ee6503', "data-theme": this.theme }, h("style", { key: '5e979d5a31b9d1bd3f745de3613282114be80402', innerHTML: getComponentCss() }), h("div", { key: 'a72bd683daec24c92c3e327c1d83f49f383dafde', class: "option", role: "option", "aria-selected": this.selected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : undefined, tabIndex: this.disabled ? -1 : 0, onClick: this.handleClick, onKeyDown: this.handleKeyDown, ref: (el) => (this.optionEl = el), part: "option" }, h("span", { key: '38bb5d53e00fc6bac010da4f1096469405d9e782', class: "check", "aria-hidden": "true", part: "check" }, "\u2713"), h("span", { key: '7d15f4d7e6db5c56dcbcb5a6c1feff7128550209', class: "label", part: "label" }, h("slot", { key: 'a09a35aa00ed8c417e1ad6a514c9ba548685887b' })))));
54
+ return (h(Host, { key: '86c5dd52dbfc96056c5031be22e751c4c741527f', "data-theme": this.theme }, h("style", { key: '903154a75ff36b77647ee2c769717e5f1df574e6', innerHTML: getComponentCss() }), h("div", { key: 'c95e357baac1fd10642383cb4259d29dd356825e', class: "option", role: "option", "aria-selected": this.selected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : undefined, tabIndex: this.disabled ? -1 : 0, onClick: this.handleClick, onKeyDown: this.handleKeyDown, ref: (el) => (this.optionEl = el), part: "option" }, h("span", { key: '902e2a17f8bbff2e450349f5e2ef1df3d5b54df7', class: "check", "aria-hidden": "true", part: "check" }, "\u2713"), h("span", { key: '535f939bb208a6dad985b803ef18ebb240cd2c30', class: "label", part: "label" }, h("slot", { key: '055c66f037f5783f2aad7256a15dbfae034b5796' })))));
53
55
  }
54
56
  static get is() { return "diwa-select-option"; }
55
57
  static get encapsulation() { return "shadow"; }
@@ -160,6 +162,26 @@ export class DiwaSelectOption {
160
162
  "attribute": "theme",
161
163
  "reflect": false,
162
164
  "defaultValue": "'dark'"
165
+ },
166
+ "compact": {
167
+ "type": "boolean",
168
+ "mutable": true,
169
+ "complexType": {
170
+ "original": "boolean",
171
+ "resolved": "boolean",
172
+ "references": {}
173
+ },
174
+ "required": false,
175
+ "optional": false,
176
+ "docs": {
177
+ "tags": [],
178
+ "text": "Compact mode \u2014 inherited from the parent diwa-select."
179
+ },
180
+ "getter": false,
181
+ "setter": false,
182
+ "attribute": "compact",
183
+ "reflect": true,
184
+ "defaultValue": "false"
163
185
  }
164
186
  };
165
187
  }
@@ -1 +1 @@
1
- {"version":3,"file":"diwa-select-option.js","sourceRoot":"","sources":["../../../src/components/diwa-select-option/diwa-select-option.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAqB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAEpG,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D;;;;;;;;;;;;GAYG;AAKH,MAAM,OAAO,gBAAgB;IAJ7B;QAUE,mDAAmD;QAC1B,aAAQ,GAAY,KAAK,CAAC;QAEnD;;;WAGG;QACqC,aAAQ,GAAY,KAAK,CAAC;QAElE;;;WAGG;QACqC,gBAAW,GAAY,KAAK,CAAC;QAErE,qDAAqD;QAC5B,UAAK,GAAU,MAAM,CAAC;QAiBvC,gBAAW,GAAG,GAAS,EAAE;YAC/B,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC;QAEM,kBAAa,GAAG,CAAC,CAAgB,EAAQ,EAAE;YACjD,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACvC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC;KAyBH;IA5CC,wCAAwC;IAExC,KAAK,CAAC,QAAQ;;QACZ,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAiBD,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,mEAAa,IAAI,CAAC,KAAK;YAC1B,8DAAO,SAAS,EAAE,eAAe,EAAE,GAAI;YACvC,4DACE,KAAK,EAAC,QAAQ,EACd,IAAI,EAAC,QAAQ,mBACE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,mBAChC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAChC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAoB,CAAC,EACnD,IAAI,EAAC,QAAQ;gBAEb,6DAAM,KAAK,EAAC,OAAO,iBAAa,MAAM,EAAC,IAAI,EAAC,OAAO,aAAS;gBAC5D,6DAAM,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO;oBAC9B,8DAAQ,CACH,CACH,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Event, type EventEmitter, Host, Method, Prop, h } from '@stencil/core';\r\nimport type { Theme } from '../../utils/styles';\r\nimport { getComponentCss } from './diwa-select-option-styles';\r\n\r\n/**\r\n * @component diwa-select-option\r\n *\r\n * Individual option element for use inside <diwa-select>.\r\n * Renders a row with a checkmark indicator and label text.\r\n *\r\n * Not intended for standalone use — must be slotted into <diwa-select>.\r\n *\r\n * Provide an option without a value to allow deselection / show a placeholder:\r\n * <diwa-select-option>Please select…</diwa-select-option>\r\n *\r\n * @slot default — Option label text (plain text or inline phrasing content)\r\n */\r\n@Component({\r\n tag: 'diwa-select-option',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaSelectOption {\r\n @Element() host!: HTMLDiwaSelectOptionElement;\r\n\r\n /** The value submitted/emitted when this option is selected. */\r\n @Prop({ reflect: true }) value?: string;\r\n\r\n /** Disables the option — it cannot be selected. */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /**\r\n * Whether the option is currently selected.\r\n * Maintained by the parent <diwa-select>.\r\n */\r\n @Prop({ mutable: true, reflect: true }) selected: boolean = false;\r\n\r\n /**\r\n * Whether the option is currently keyboard-highlighted.\r\n * Set exclusively by the parent component.\r\n */\r\n @Prop({ mutable: true, reflect: true }) highlighted: boolean = false;\r\n\r\n /** Theme — inherited from the parent diwa-select. */\r\n @Prop({ mutable: true }) theme: Theme = 'dark';\r\n\r\n /**\r\n * Emitted when the user clicks or presses Enter on the option.\r\n * Bubbles and crosses Shadow DOM so the parent can catch it via @Listen.\r\n */\r\n @Event({ bubbles: true, composed: true })\r\n diwaSelectOptionUpdate!: EventEmitter<{ value: string | undefined }>;\r\n\r\n /** Focuses the inner option element. */\r\n @Method()\r\n async setFocus(): Promise<void> {\r\n this.optionEl?.focus();\r\n }\r\n\r\n private optionEl?: HTMLDivElement;\r\n\r\n private handleClick = (): void => {\r\n if (this.disabled) return;\r\n this.diwaSelectOptionUpdate.emit({ value: this.value });\r\n };\r\n\r\n private handleKeyDown = (e: KeyboardEvent): void => {\r\n if (this.disabled) return;\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n this.diwaSelectOptionUpdate.emit({ value: this.value });\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Host data-theme={this.theme}>\r\n <style innerHTML={getComponentCss()} />\r\n <div\r\n class=\"option\"\r\n role=\"option\"\r\n aria-selected={this.selected ? 'true' : 'false'}\r\n aria-disabled={this.disabled ? 'true' : undefined}\r\n tabIndex={this.disabled ? -1 : 0}\r\n onClick={this.handleClick}\r\n onKeyDown={this.handleKeyDown}\r\n ref={(el) => (this.optionEl = el as HTMLDivElement)}\r\n part=\"option\"\r\n >\r\n <span class=\"check\" aria-hidden=\"true\" part=\"check\">✓</span>\r\n <span class=\"label\" part=\"label\">\r\n <slot />\r\n </span>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"diwa-select-option.js","sourceRoot":"","sources":["../../../src/components/diwa-select-option/diwa-select-option.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAqB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAEpG,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D;;;;;;;;;;;;GAYG;AAKH,MAAM,OAAO,gBAAgB;IAJ7B;QAUE,mDAAmD;QAC1B,aAAQ,GAAY,KAAK,CAAC;QAEnD;;;WAGG;QACqC,aAAQ,GAAY,KAAK,CAAC;QAElE;;;WAGG;QACqC,gBAAW,GAAY,KAAK,CAAC;QAErE,qDAAqD;QAC5B,UAAK,GAAU,MAAM,CAAC;QAE/C,4DAA4D;QACpB,YAAO,GAAY,KAAK,CAAC;QAiBzD,gBAAW,GAAG,GAAS,EAAE;YAC/B,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC;QAEM,kBAAa,GAAG,CAAC,CAAgB,EAAQ,EAAE;YACjD,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACvC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC;KAyBH;IA5CC,wCAAwC;IAExC,KAAK,CAAC,QAAQ;;QACZ,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAiBD,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,mEAAa,IAAI,CAAC,KAAK;YAC1B,8DAAO,SAAS,EAAE,eAAe,EAAE,GAAI;YACvC,4DACE,KAAK,EAAC,QAAQ,EACd,IAAI,EAAC,QAAQ,mBACE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,mBAChC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAChC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAoB,CAAC,EACnD,IAAI,EAAC,QAAQ;gBAEb,6DAAM,KAAK,EAAC,OAAO,iBAAa,MAAM,EAAC,IAAI,EAAC,OAAO,aAAS;gBAC5D,6DAAM,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO;oBAC9B,8DAAQ,CACH,CACH,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Event, type EventEmitter, Host, Method, Prop, h } from '@stencil/core';\r\nimport type { Theme } from '../../utils/styles';\r\nimport { getComponentCss } from './diwa-select-option-styles';\r\n\r\n/**\r\n * @component diwa-select-option\r\n *\r\n * Individual option element for use inside <diwa-select>.\r\n * Renders a row with a checkmark indicator and label text.\r\n *\r\n * Not intended for standalone use — must be slotted into <diwa-select>.\r\n *\r\n * Provide an option without a value to allow deselection / show a placeholder:\r\n * <diwa-select-option>Please select…</diwa-select-option>\r\n *\r\n * @slot default — Option label text (plain text or inline phrasing content)\r\n */\r\n@Component({\r\n tag: 'diwa-select-option',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaSelectOption {\r\n @Element() host!: HTMLDiwaSelectOptionElement;\r\n\r\n /** The value submitted/emitted when this option is selected. */\r\n @Prop({ reflect: true }) value?: string;\r\n\r\n /** Disables the option — it cannot be selected. */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /**\r\n * Whether the option is currently selected.\r\n * Maintained by the parent <diwa-select>.\r\n */\r\n @Prop({ mutable: true, reflect: true }) selected: boolean = false;\r\n\r\n /**\r\n * Whether the option is currently keyboard-highlighted.\r\n * Set exclusively by the parent component.\r\n */\r\n @Prop({ mutable: true, reflect: true }) highlighted: boolean = false;\r\n\r\n /** Theme — inherited from the parent diwa-select. */\r\n @Prop({ mutable: true }) theme: Theme = 'dark';\r\n\r\n /** Compact mode — inherited from the parent diwa-select. */\r\n @Prop({ mutable: true, reflect: true }) compact: boolean = false;\r\n\r\n /**\r\n * Emitted when the user clicks or presses Enter on the option.\r\n * Bubbles and crosses Shadow DOM so the parent can catch it via @Listen.\r\n */\r\n @Event({ bubbles: true, composed: true })\r\n diwaSelectOptionUpdate!: EventEmitter<{ value: string | undefined }>;\r\n\r\n /** Focuses the inner option element. */\r\n @Method()\r\n async setFocus(): Promise<void> {\r\n this.optionEl?.focus();\r\n }\r\n\r\n private optionEl?: HTMLDivElement;\r\n\r\n private handleClick = (): void => {\r\n if (this.disabled) return;\r\n this.diwaSelectOptionUpdate.emit({ value: this.value });\r\n };\r\n\r\n private handleKeyDown = (e: KeyboardEvent): void => {\r\n if (this.disabled) return;\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n this.diwaSelectOptionUpdate.emit({ value: this.value });\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Host data-theme={this.theme}>\r\n <style innerHTML={getComponentCss()} />\r\n <div\r\n class=\"option\"\r\n role=\"option\"\r\n aria-selected={this.selected ? 'true' : 'false'}\r\n aria-disabled={this.disabled ? 'true' : undefined}\r\n tabIndex={this.disabled ? -1 : 0}\r\n onClick={this.handleClick}\r\n onKeyDown={this.handleKeyDown}\r\n ref={(el) => (this.optionEl = el as HTMLDivElement)}\r\n part=\"option\"\r\n >\r\n <span class=\"check\" aria-hidden=\"true\" part=\"check\">✓</span>\r\n <span class=\"label\" part=\"label\">\r\n <slot />\r\n </span>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
@@ -63,7 +63,7 @@ export class DiwaSpinner {
63
63
  * when the spinner appears without stealing focus (live region,
64
64
  * polite by default). aria-label provides the announcement text.
65
65
  */
66
- h(Host, { key: 'a819142d7dc507445298f867d27e62969aa8baf1', role: "status", "aria-label": this.label, "data-theme": this.theme }, h("style", { key: 'a107427b94c4a64fd01d41633c26faba8fa93d18', innerHTML: getComponentCss() }), h("svg", { key: 'a49ebf8de19eac90de9adcaa290a3a5bb1910ba1', ref: (el) => (this.svgEl = el), class: "glyph", "aria-hidden": "true", part: "ring", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })));
66
+ h(Host, { key: 'a706f0d4b8ca5581f7375e4f0d36f46166974fbe', role: "status", "aria-label": this.label, "data-theme": this.theme }, h("style", { key: 'b01e2dc30f9b3c4c5422fc9f58055b4e29e660c0', innerHTML: getComponentCss() }), h("svg", { key: 'dae9e1f32d62abf2e5918c8841bb25a590b0e385', ref: (el) => (this.svgEl = el), class: "glyph", "aria-hidden": "true", part: "ring", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })));
67
67
  }
68
68
  static get is() { return "diwa-spinner"; }
69
69
  static get encapsulation() { return "shadow"; }
@@ -51,7 +51,7 @@ export class DiwaStepperHorizontal {
51
51
  });
52
52
  }
53
53
  render() {
54
- return (h(Host, { key: '1757e9375f388f949957317c856cc8607f941b04', "data-theme": this.theme }, h("style", { key: 'e5aa89e60aa678cd2d607aee67c4c8bc81058a0c', innerHTML: getComponentCss() }), h("div", { key: 'e5ca0a96129a84534d286781b80036ce9c3033db', class: "stepper", role: "list", "aria-label": "Progress" }, h("slot", { key: '157ae71fb67eeab4979cf7c0eb441e83e0c35cc6' }))));
54
+ return (h(Host, { key: '52f3578b5ad1f46b649ff00de8fd081451c9df70', "data-theme": this.theme }, h("style", { key: '493175498aa8d24ba2744853e951a26569e3372f', innerHTML: getComponentCss() }), h("div", { key: 'f143d785d7934b688102764de95c4c5a77aa9a87', class: "stepper", role: "list", "aria-label": "Progress" }, h("slot", { key: 'ff914a761531cadf1f56cbdfde003e9a230ed4f7' }))));
55
55
  }
56
56
  static get is() { return "diwa-stepper-horizontal"; }
57
57
  static get encapsulation() { return "shadow"; }
@@ -33,7 +33,7 @@ export class DiwaStepperHorizontalItem {
33
33
  return h("span", { class: "circle-inner" }, this.stepNumber);
34
34
  }
35
35
  render() {
36
- return (h(Host, { key: 'f607bb4a3025642270b9fa62f32053f1f66cd7d5', role: "listitem", "aria-current": this.state === 'current' ? 'step' : undefined }, h("style", { key: 'eb24b7bb547f8b388e58203797047c9496d91c44', innerHTML: getComponentCss(this.state, this.isLast) }), h("div", { key: 'b40a388ae0a301cdd79d110a102318f9c053afec', class: "item" }, h("div", { key: '39470f2d8d52af9c7bd51bc4b628a2be85afeff1', class: "circle" }, this.renderIcon()), h("div", { key: '18f6fe713a9957b51131d34bb9feba346691efcf', class: "connector", "aria-hidden": "true" }), this.label && h("span", { key: '18cf0195b215688c238c9ca69fdeea790ea927fd', class: "label" }, this.label), this.sublabel && h("span", { key: '8841a928b2bf64c5055ad9ec9aad04bbe5251b8a', class: "sublabel" }, this.sublabel))));
36
+ return (h(Host, { key: '1bd4bdda83dd199b36592765be08ae2e25707589', role: "listitem", "aria-current": this.state === 'current' ? 'step' : undefined }, h("style", { key: 'd40d2b5fe94ba5c056cab3d01b1c43d4c9a55c5e', innerHTML: getComponentCss(this.state, this.isLast) }), h("div", { key: 'b5fddb4aef4467af7a902bc4d41431f744b10dbc', class: "item" }, h("div", { key: '6382f98df1fb9eca76507b0741c39959ba8ea63c', class: "circle" }, this.renderIcon()), h("div", { key: 'f950e7b8b8463312c72ccee15394914b0d24dbf4', class: "connector", "aria-hidden": "true" }), this.label && h("span", { key: '9d38f213ba5cf9b4c390b674247ac42b5ebef455', class: "label" }, this.label), this.sublabel && h("span", { key: '14a4c997f533e697cc58ee8d9b1a997e306e9bec', class: "sublabel" }, this.sublabel))));
37
37
  }
38
38
  static get is() { return "diwa-stepper-horizontal-item"; }
39
39
  static get encapsulation() { return "shadow"; }
@@ -32,7 +32,7 @@ export class DiwaSwitch {
32
32
  };
33
33
  }
34
34
  render() {
35
- return (h(Host, { key: 'd91f87b0a1cd45f78de0dec583a052d9f93b2aac', "data-theme": this.theme }, h("style", { key: '5aa877ca115f4d29fccaac75187d7c7f2faa66d0', innerHTML: getComponentCss(this.checked, this.disabled, this.loading, this.alignLabel, this.compact) }), h("span", { key: '7d4a5a790a354f725d116fa97e995c9de9892164', class: "wrapper", onClick: this.handleClick }, h("span", { key: 'be6c39efaf203cd93c2490e12a77f4f42f3b41a0', class: "track", role: "switch", "aria-checked": String(this.checked), "aria-disabled": this.disabled || this.loading ? 'true' : undefined, tabIndex: this.disabled || this.loading ? -1 : 0, onKeyDown: this.handleKeyDown }, !this.loading && h("span", { key: '93864d7af34c4ff03563b02d869c0e8cc3fd3d27', class: "thumb" }), this.loading && (h("span", { key: '97e033c8c8eb3ba7d31256fb4adea4a145b8f3ff', class: "loading-indicator", "aria-hidden": "true" }, h("diwa-spinner", { key: '90ee1fdaf77186f249bc4d5afc54e49dbbfc491f', size: "sm" })))), h("span", { key: '17b3ded00758d0a11649d811f2ab78c90302326d', class: "label" }, h("slot", { key: 'a7793c1eafea2282b0ca212ee05a072723b5f9e6' })))));
35
+ return (h(Host, { key: '0e96affd5a3e280b06eb48e7feb2a0df542a19c9', "data-theme": this.theme }, h("style", { key: '3aa55f784774591f5f85a3655af25e2f664b634e', innerHTML: getComponentCss(this.checked, this.disabled, this.loading, this.alignLabel, this.compact) }), h("span", { key: '427803e1b7d578ed2a7be907ce2220ea19a4f497', class: "wrapper", onClick: this.handleClick }, h("span", { key: '34eafe8af538941ac7957f44360ccfec84c452a8', class: "track", role: "switch", "aria-checked": String(this.checked), "aria-disabled": this.disabled || this.loading ? 'true' : undefined, tabIndex: this.disabled || this.loading ? -1 : 0, onKeyDown: this.handleKeyDown }, !this.loading && h("span", { key: 'e03e1e78d4002ab82a87d80ba68f173b0d576df9', class: "thumb" }), this.loading && (h("span", { key: '467b9b651be875cf9b4be6c06dc491071e50f455', class: "loading-indicator", "aria-hidden": "true" }, h("diwa-spinner", { key: '6f2510961e02ada5f837a8251ce2219d3e71ad3b', size: "sm" })))), h("span", { key: 'e9fabaed9eb4fe909d073967a46216c249eb59e3', class: "label" }, h("slot", { key: '681bbbf5c64154f5c846869286544959ca4aa7e7' })))));
36
36
  }
37
37
  static get is() { return "diwa-switch"; }
38
38
  static get encapsulation() { return "shadow"; }
@@ -1,44 +1,83 @@
1
- export const getComponentCss = (compact, layout, bordered, striped) => `
2
- :host {
3
- display: block;
4
- font-family: var(--diwa-font-family-base);
5
- width: 100%;
6
- overflow-x: auto;
7
- background: var(--diwa-bg-surface);
8
- border-radius: var(--diwa-radius-lg);
9
- --diwa-table-padding: ${compact ? 'var(--diwa-space-fluid-xs)' : 'var(--diwa-space-fluid-md)'};
10
- --diwa-table-hover-color: var(--diwa-bg-hover);
11
- --diwa-table-border-color: var(--diwa-border);
12
- --diwa-table-column-border: ${bordered ? 'var(--diwa-border-width-thin) solid var(--diwa-border)' : 'none'};
13
- --diwa-table-stripe-color: ${striped ? 'var(--diwa-bg-elevated)' : 'transparent'};
14
- --diwa-table-header-bg: var(--diwa-bg-elevated);
15
- ${bordered ? `
16
- border: var(--diwa-border-width-thin) solid var(--diwa-border);
17
- overflow: hidden;
18
- ` : ''}
19
- }
20
-
21
- :host([hidden]) { display: none; }
22
-
23
- .table {
24
- width: 100%;
25
- border-collapse: collapse;
26
- background: var(--diwa-bg-surface);
27
- font-size: var(--diwa-font-size-base);
28
- color: var(--diwa-text-primary);
29
- ${layout === 'fixed' ? 'table-layout: fixed;' : ''}
30
- }
31
-
32
- .sr-only {
33
- position: absolute;
34
- width: 1px;
35
- height: 1px;
36
- padding: 0;
37
- margin: -1px;
38
- overflow: hidden;
39
- clip: rect(0, 0, 0, 0);
40
- white-space: nowrap;
41
- border: 0;
42
- }
1
+ export const getComponentCss = (compact, layout, bordered, striped) => `
2
+ ${compact
3
+ ? `
4
+ :host {
5
+ --diwa-table-padding-y: 6px;
6
+ --diwa-table-padding-y: var(--diwa-space-2, 6px);
7
+ --diwa-table-padding-x: 12px;
8
+ --diwa-table-padding-x: var(--diwa-space-5, 12px);
9
+ }
10
+ `
11
+ : `
12
+ :host {
13
+ --diwa-table-padding-y: 12px;
14
+ --diwa-table-padding-y: var(--diwa-space-5, 12px);
15
+ --diwa-table-padding-x: 16px;
16
+ --diwa-table-padding-x: var(--diwa-space-7, 16px);
17
+ }
18
+ `}
19
+
20
+ :host {
21
+ display: block;
22
+ font-family: var(--diwa-font-family-base);
23
+ width: 100%;
24
+ overflow-x: auto;
25
+ background: var(--diwa-bg-surface);
26
+ border-radius: var(--diwa-radius-lg);
27
+ color: var(--diwa-text-primary);
28
+ text-align: start;
29
+ --diwa-table-hover-color: var(--diwa-bg-hover, transparent);
30
+ --diwa-table-border-color: var(--diwa-border, currentColor);
31
+ --diwa-table-row-border-width: var(--diwa-border-width-thin, 1px);
32
+ --diwa-table-column-border: ${bordered ? 'var(--diwa-border-width-thin, 1px) solid var(--diwa-border, currentColor)' : 'none'};
33
+ --diwa-table-stripe-color: ${striped ? 'var(--diwa-bg-elevated, transparent)' : 'transparent'};
34
+ --diwa-table-header-bg: transparent;
35
+ ${bordered ? `
36
+ border: var(--diwa-border-width-thin, 1px) solid var(--diwa-border, currentColor) !important;
37
+ overflow: hidden;
38
+ ` : ''}
39
+ }
40
+
41
+ :host([hidden]) { display: none; }
42
+
43
+ ::slotted(*) {
44
+ --diwa-table-padding-y: ${compact ? '6px' : '12px'} !important;
45
+ --diwa-table-padding-y: ${compact ? 'var(--diwa-space-2, 6px)' : 'var(--diwa-space-5, 12px)'} !important;
46
+ --diwa-table-padding-x: ${compact ? '12px' : '16px'} !important;
47
+ --diwa-table-padding-x: ${compact ? 'var(--diwa-space-5, 12px)' : 'var(--diwa-space-7, 16px)'} !important;
48
+ --diwa-table-hover-color: var(--diwa-bg-hover, transparent);
49
+ --diwa-table-border-color: var(--diwa-border, currentColor);
50
+ --diwa-table-row-border-width: var(--diwa-border-width-thin, 1px);
51
+ --diwa-table-column-border: ${bordered ? 'var(--diwa-border-width-thin, 1px) solid var(--diwa-border, currentColor)' : 'none'};
52
+ --diwa-table-stripe-color: ${striped ? 'var(--diwa-bg-elevated, transparent)' : 'transparent'};
53
+ --diwa-table-header-bg: transparent;
54
+ }
55
+
56
+ .table {
57
+ display: table;
58
+ border-collapse: collapse;
59
+ background: var(--diwa-bg-surface);
60
+ font-size: var(--diwa-font-size-base);
61
+ color: var(--diwa-text-primary);
62
+ white-space: nowrap;
63
+ ${layout === 'fixed'
64
+ ? `
65
+ table-layout: fixed;
66
+ min-width: 100%;
67
+ `
68
+ : 'width: 100%;'}
69
+ }
70
+
71
+ .sr-only {
72
+ position: absolute;
73
+ width: 1px;
74
+ height: 1px;
75
+ padding: 0;
76
+ margin: -1px;
77
+ overflow: hidden;
78
+ clip: rect(0, 0, 0, 0);
79
+ white-space: nowrap;
80
+ border: 0;
81
+ }
43
82
  `;
44
83
  //# sourceMappingURL=diwa-table-styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diwa-table-styles.js","sourceRoot":"","sources":["../../../src/components/diwa-table/diwa-table-styles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,MAAwB,EACxB,QAAiB,EACjB,OAAgB,EACR,EAAE,CAAC;;;;;;;;4BAQe,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,4BAA4B;;;kCAG/D,QAAQ,CAAC,CAAC,CAAC,wDAAwD,CAAC,CAAC,CAAC,MAAM;iCAC7E,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,aAAa;;MAE9E,QAAQ,CAAC,CAAC,CAAC;;;KAGZ,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;MAWJ,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;CAcrD,CAAC","sourcesContent":["export const getComponentCss = (\r\n compact: boolean,\r\n layout: 'auto' | 'fixed',\r\n bordered: boolean,\r\n striped: boolean,\r\n): string => `\r\n :host {\r\n display: block;\r\n font-family: var(--diwa-font-family-base);\r\n width: 100%;\r\n overflow-x: auto;\r\n background: var(--diwa-bg-surface);\r\n border-radius: var(--diwa-radius-lg);\r\n --diwa-table-padding: ${compact ? 'var(--diwa-space-fluid-xs)' : 'var(--diwa-space-fluid-md)'};\r\n --diwa-table-hover-color: var(--diwa-bg-hover);\r\n --diwa-table-border-color: var(--diwa-border);\r\n --diwa-table-column-border: ${bordered ? 'var(--diwa-border-width-thin) solid var(--diwa-border)' : 'none'};\r\n --diwa-table-stripe-color: ${striped ? 'var(--diwa-bg-elevated)' : 'transparent'};\r\n --diwa-table-header-bg: var(--diwa-bg-elevated);\r\n ${bordered ? `\r\n border: var(--diwa-border-width-thin) solid var(--diwa-border);\r\n overflow: hidden;\r\n ` : ''}\r\n }\r\n\r\n :host([hidden]) { display: none; }\r\n\r\n .table {\r\n width: 100%;\r\n border-collapse: collapse;\r\n background: var(--diwa-bg-surface);\r\n font-size: var(--diwa-font-size-base);\r\n color: var(--diwa-text-primary);\r\n ${layout === 'fixed' ? 'table-layout: fixed;' : ''}\r\n }\r\n\r\n .sr-only {\r\n position: absolute;\r\n width: 1px;\r\n height: 1px;\r\n padding: 0;\r\n margin: -1px;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n white-space: nowrap;\r\n border: 0;\r\n }\r\n`;\r\n"]}
1
+ {"version":3,"file":"diwa-table-styles.js","sourceRoot":"","sources":["../../../src/components/diwa-table/diwa-table-styles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,MAAwB,EACxB,QAAiB,EACjB,OAAgB,EACR,EAAE,CAAC;IACT,OAAO;IACP,CAAC,CAAC;;;;;;;GAOH;IACC,CAAC,CAAC;;;;;;;GAOH;;;;;;;;;;;;;;kCAc+B,QAAQ,CAAC,CAAC,CAAC,2EAA2E,CAAC,CAAC,CAAC,MAAM;iCAChG,OAAO,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,aAAa;;MAE3F,QAAQ,CAAC,CAAC,CAAC;;;KAGZ,CAAC,CAAC,CAAC,EAAE;;;;;;8BAMoB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;8BACxB,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,2BAA2B;8BAClE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;8BACzB,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,2BAA2B;;;;kCAI/D,QAAQ,CAAC,CAAC,CAAC,2EAA2E,CAAC,CAAC,CAAC,MAAM;iCAChG,OAAO,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,aAAa;;;;;;;;;;;MAW3F,MAAM,KAAK,OAAO;IAClB,CAAC,CAAC;;;KAGH;IACC,CAAC,CAAC,cAAc;;;;;;;;;;;;;;CAcrB,CAAC","sourcesContent":["export const getComponentCss = (\n compact: boolean,\n layout: 'auto' | 'fixed',\n bordered: boolean,\n striped: boolean,\n): string => `\n ${compact\n ? `\n :host {\n --diwa-table-padding-y: 6px;\n --diwa-table-padding-y: var(--diwa-space-2, 6px);\n --diwa-table-padding-x: 12px;\n --diwa-table-padding-x: var(--diwa-space-5, 12px);\n }\n `\n : `\n :host {\n --diwa-table-padding-y: 12px;\n --diwa-table-padding-y: var(--diwa-space-5, 12px);\n --diwa-table-padding-x: 16px;\n --diwa-table-padding-x: var(--diwa-space-7, 16px);\n }\n `}\n\n :host {\n display: block;\n font-family: var(--diwa-font-family-base);\n width: 100%;\n overflow-x: auto;\n background: var(--diwa-bg-surface);\n border-radius: var(--diwa-radius-lg);\n color: var(--diwa-text-primary);\n text-align: start;\n --diwa-table-hover-color: var(--diwa-bg-hover, transparent);\n --diwa-table-border-color: var(--diwa-border, currentColor);\n --diwa-table-row-border-width: var(--diwa-border-width-thin, 1px);\n --diwa-table-column-border: ${bordered ? 'var(--diwa-border-width-thin, 1px) solid var(--diwa-border, currentColor)' : 'none'};\n --diwa-table-stripe-color: ${striped ? 'var(--diwa-bg-elevated, transparent)' : 'transparent'};\n --diwa-table-header-bg: transparent;\n ${bordered ? `\n border: var(--diwa-border-width-thin, 1px) solid var(--diwa-border, currentColor) !important;\n overflow: hidden;\n ` : ''}\n }\n\n :host([hidden]) { display: none; }\n\n ::slotted(*) {\n --diwa-table-padding-y: ${compact ? '6px' : '12px'} !important;\n --diwa-table-padding-y: ${compact ? 'var(--diwa-space-2, 6px)' : 'var(--diwa-space-5, 12px)'} !important;\n --diwa-table-padding-x: ${compact ? '12px' : '16px'} !important;\n --diwa-table-padding-x: ${compact ? 'var(--diwa-space-5, 12px)' : 'var(--diwa-space-7, 16px)'} !important;\n --diwa-table-hover-color: var(--diwa-bg-hover, transparent);\n --diwa-table-border-color: var(--diwa-border, currentColor);\n --diwa-table-row-border-width: var(--diwa-border-width-thin, 1px);\n --diwa-table-column-border: ${bordered ? 'var(--diwa-border-width-thin, 1px) solid var(--diwa-border, currentColor)' : 'none'};\n --diwa-table-stripe-color: ${striped ? 'var(--diwa-bg-elevated, transparent)' : 'transparent'};\n --diwa-table-header-bg: transparent;\n }\n\n .table {\n display: table;\n border-collapse: collapse;\n background: var(--diwa-bg-surface);\n font-size: var(--diwa-font-size-base);\n color: var(--diwa-text-primary);\n white-space: nowrap;\n ${layout === 'fixed'\n ? `\n table-layout: fixed;\n min-width: 100%;\n `\n : 'width: 100%;'}\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n`;\n"]}
@@ -2,7 +2,7 @@ import { Host, h } from "@stencil/core";
2
2
  import { getComponentCss } from "./diwa-table-styles";
3
3
  /**
4
4
  * @component diwa-table
5
- * Wrapper for a data table. Uses native HTML table layout via display CSS.
5
+ * Wrapper for a data table. Uses CSS table layout with ARIA roles.
6
6
  * Structure: diwa-table > diwa-table-head > diwa-table-row > diwa-table-head-cell
7
7
  * > diwa-table-body > diwa-table-row > diwa-table-cell
8
8
  */
@@ -20,7 +20,8 @@ export class DiwaTable {
20
20
  this.update.emit(e.detail);
21
21
  }
22
22
  render() {
23
- return (h(Host, { key: 'f44c979bd3fe3e5dac8c82d74519f433ae6617f3', "data-theme": this.theme }, h("style", { key: '864a46be2b5682fc4876bb392b6e85484fed3a92', innerHTML: getComponentCss(this.compact, this.layout, this.bordered, this.striped) }), h("table", { key: 'f79f51a9cccc9df05c92b16b013a5e7400d30012', class: "table" }, this.caption && h("caption", { key: 'd7bc36ebb05f3e452c953fc772dfb3988705c04a', class: "sr-only" }, this.caption), h("slot", { key: '4586f22dd7b51da6ec44ca11773297db6a75e1e6' }))));
23
+ const tableLabel = this.caption || undefined;
24
+ return (h(Host, { key: 'dcecc9c66f8edbe62c2f7d705ffda0a1f2d76f97', "data-theme": this.theme }, h("style", { key: '183ada7a6f59ba400c6c6132dfb7685718ee2a40', innerHTML: getComponentCss(this.compact, this.layout, this.bordered, this.striped) }), h("div", { key: '707f325328eba674677122a67f737bb47843d6ed', class: "table", role: "table", "aria-label": tableLabel }, h("slot", { key: '00a709c094a8a06a85dff9ad388cfdf8c5a8a7cf' }))));
24
25
  }
25
26
  static get is() { return "diwa-table"; }
26
27
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"diwa-table.js","sourceRoot":"","sources":["../../../src/components/diwa-table/diwa-table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAqB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAG3F,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;GAKG;AAEH,MAAM,OAAO,SAAS;IADtB;QAE2B,UAAK,GAAU,MAAM,CAAC;QACvC,YAAO,GAAW,EAAE,CAAC;QACrB,YAAO,GAAY,KAAK,CAAC;QACzB,WAAM,GAAqB,MAAM,CAAC;QAClC,aAAQ,GAAY,KAAK,CAAC;QAC1B,YAAO,GAAY,KAAK,CAAC;KAsBlC;IAhBW,iBAAiB,CAAC,CAAsC;QAChE,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,mEAAa,IAAI,CAAC,KAAK;YAC1B,8DAAO,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAI;YAC7F,8DAAO,KAAK,EAAC,OAAO;gBACjB,IAAI,CAAC,OAAO,IAAI,gEAAS,KAAK,EAAC,SAAS,IAAE,IAAI,CAAC,OAAO,CAAW;gBAClE,8DAAQ,CACF,CACH,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Event, type EventEmitter, Host, Listen, Prop, h } from '@stencil/core';\r\nimport type { Theme } from '../../utils/styles';\r\nimport type { TableUpdateEventDetail } from '../diwa-table-head-cell/types';\r\nimport { getComponentCss } from './diwa-table-styles';\r\n\r\n/**\r\n * @component diwa-table\r\n * Wrapper for a data table. Uses native HTML table layout via display CSS.\r\n * Structure: diwa-table > diwa-table-head > diwa-table-row > diwa-table-head-cell\r\n * > diwa-table-body > diwa-table-row > diwa-table-cell\r\n */\r\n@Component({ tag: 'diwa-table', shadow: true })\r\nexport class DiwaTable {\r\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n @Prop() caption: string = '';\r\n @Prop() compact: boolean = false;\r\n @Prop() layout: 'auto' | 'fixed' = 'auto';\r\n @Prop() bordered: boolean = false;\r\n @Prop() striped: boolean = false;\r\n\r\n @Event({ bubbles: false, composed: false })\r\n update!: EventEmitter<TableUpdateEventDetail>;\r\n\r\n @Listen('diwaTableUpdate')\r\n protected handleTableUpdate(e: CustomEvent<TableUpdateEventDetail>): void {\r\n e.stopPropagation();\r\n this.update.emit(e.detail);\r\n }\r\n\r\n render() {\r\n return (\r\n <Host data-theme={this.theme}>\r\n <style innerHTML={getComponentCss(this.compact, this.layout, this.bordered, this.striped)} />\r\n <table class=\"table\">\r\n {this.caption && <caption class=\"sr-only\">{this.caption}</caption>}\r\n <slot />\r\n </table>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"diwa-table.js","sourceRoot":"","sources":["../../../src/components/diwa-table/diwa-table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAqB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAG3F,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;GAKG;AAEH,MAAM,OAAO,SAAS;IADtB;QAE2B,UAAK,GAAU,MAAM,CAAC;QACvC,YAAO,GAAW,EAAE,CAAC;QACrB,YAAO,GAAY,KAAK,CAAC;QACzB,WAAM,GAAqB,MAAM,CAAC;QAClC,aAAQ,GAAY,KAAK,CAAC;QAC1B,YAAO,GAAY,KAAK,CAAC;KAuBlC;IAjBW,iBAAiB,CAAC,CAAsC;QAChE,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC;QAE7C,OAAO,CACL,EAAC,IAAI,mEAAa,IAAI,CAAC,KAAK;YAC1B,8DAAO,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAI;YAC7F,4DAAK,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,gBAAa,UAAU;gBACpD,8DAAQ,CACJ,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Event, type EventEmitter, Host, Listen, Prop, h } from '@stencil/core';\r\nimport type { Theme } from '../../utils/styles';\r\nimport type { TableUpdateEventDetail } from '../diwa-table-head-cell/types';\r\nimport { getComponentCss } from './diwa-table-styles';\r\n\r\n/**\n * @component diwa-table\n * Wrapper for a data table. Uses CSS table layout with ARIA roles.\n * Structure: diwa-table > diwa-table-head > diwa-table-row > diwa-table-head-cell\n * > diwa-table-body > diwa-table-row > diwa-table-cell\n */\n@Component({ tag: 'diwa-table', shadow: true })\nexport class DiwaTable {\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n @Prop() caption: string = '';\r\n @Prop() compact: boolean = false;\r\n @Prop() layout: 'auto' | 'fixed' = 'auto';\r\n @Prop() bordered: boolean = false;\r\n @Prop() striped: boolean = false;\r\n\r\n @Event({ bubbles: false, composed: false })\r\n update!: EventEmitter<TableUpdateEventDetail>;\r\n\r\n @Listen('diwaTableUpdate')\r\n protected handleTableUpdate(e: CustomEvent<TableUpdateEventDetail>): void {\r\n e.stopPropagation();\r\n this.update.emit(e.detail);\r\n }\r\n\r\n render() {\n const tableLabel = this.caption || undefined;\n\n return (\n <Host data-theme={this.theme}>\n <style innerHTML={getComponentCss(this.compact, this.layout, this.bordered, this.striped)} />\n <div class=\"table\" role=\"table\" aria-label={tableLabel}>\n <slot />\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -6,7 +6,7 @@ export class DiwaTableBody {
6
6
  this.theme = 'dark';
7
7
  }
8
8
  render() {
9
- return (h(Host, { key: 'a024d6ad7c17f14455ab25b23b700c2f63098d14', role: "rowgroup", "data-theme": this.theme }, h("style", { key: '33868e52817f6d9e238d86074e27876a619f8e6f', innerHTML: getComponentCss() }), h("slot", { key: 'd5306abf932c93ef0d8c760d4f546a4175f8472c' })));
9
+ return (h(Host, { key: '4a79b101f25908a4c8d952a6cabeba242d361d45', role: "rowgroup", "data-theme": this.theme }, h("style", { key: '2fe92018084cd53e3eecfa6fa7cfcd314609d383', innerHTML: getComponentCss() }), h("slot", { key: 'f9d45fc32ddc9eb5532dd8e85fadac06df35cfb3' })));
10
10
  }
11
11
  static get is() { return "diwa-table-body"; }
12
12
  static get encapsulation() { return "shadow"; }
@@ -1,16 +1,16 @@
1
- export const getComponentCss = (multiline) => `
2
- :host {
3
- display: table-cell;
4
- padding: var(--diwa-table-padding, var(--diwa-space-fluid-md));
5
- font-size: var(--diwa-font-size-sm);
6
- color: var(--diwa-text-primary);
7
- border-bottom: var(--diwa-border-width-thin) solid var(--diwa-table-border-color, var(--diwa-border));
8
- border-right: var(--diwa-table-column-border, none);
9
- vertical-align: middle;
10
- line-height: var(--diwa-line-height-normal);
11
- white-space: ${multiline ? 'normal' : 'nowrap'};
12
- }
13
- :host(:last-child) { border-right: none; }
14
- :host([hidden]) { display: none; }
1
+ export const getComponentCss = (multiline) => `
2
+ :host {
3
+ display: table-cell;
4
+ margin: 0 !important;
5
+ padding: var(--diwa-table-padding-y, 12px) var(--diwa-table-padding-x, 16px) !important;
6
+ font-size: var(--diwa-font-size-sm);
7
+ color: var(--diwa-text-primary);
8
+ border-right: var(--diwa-table-column-border, none) !important;
9
+ vertical-align: middle;
10
+ line-height: var(--diwa-line-height-normal);
11
+ white-space: ${multiline ? 'normal' : 'nowrap'} !important;
12
+ }
13
+ :host(:last-child) { border-right: none; }
14
+ :host([hidden]) { display: none; }
15
15
  `;
16
16
  //# sourceMappingURL=diwa-table-cell-styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diwa-table-cell-styles.js","sourceRoot":"","sources":["../../../src/components/diwa-table-cell/diwa-table-cell-styles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAkB,EAAU,EAAE,CAAC;;;;;;;;;;mBAU5C,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;;;;CAIjD,CAAC","sourcesContent":["export const getComponentCss = (multiline: boolean): string => `\r\n :host {\r\n display: table-cell;\r\n padding: var(--diwa-table-padding, var(--diwa-space-fluid-md));\r\n font-size: var(--diwa-font-size-sm);\r\n color: var(--diwa-text-primary);\r\n border-bottom: var(--diwa-border-width-thin) solid var(--diwa-table-border-color, var(--diwa-border));\r\n border-right: var(--diwa-table-column-border, none);\r\n vertical-align: middle;\r\n line-height: var(--diwa-line-height-normal);\r\n white-space: ${multiline ? 'normal' : 'nowrap'};\r\n }\r\n :host(:last-child) { border-right: none; }\r\n :host([hidden]) { display: none; }\r\n`;\r\n"]}
1
+ {"version":3,"file":"diwa-table-cell-styles.js","sourceRoot":"","sources":["../../../src/components/diwa-table-cell/diwa-table-cell-styles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAkB,EAAU,EAAE,CAAC;;;;;;;;;;mBAU5C,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;;;;CAIjD,CAAC","sourcesContent":["export const getComponentCss = (multiline: boolean): string => `\n :host {\n display: table-cell;\n margin: 0 !important;\n padding: var(--diwa-table-padding-y, 12px) var(--diwa-table-padding-x, 16px) !important;\n font-size: var(--diwa-font-size-sm);\n color: var(--diwa-text-primary);\n border-right: var(--diwa-table-column-border, none) !important;\n vertical-align: middle;\n line-height: var(--diwa-line-height-normal);\n white-space: ${multiline ? 'normal' : 'nowrap'} !important;\n }\n :host(:last-child) { border-right: none; }\n :host([hidden]) { display: none; }\n`;\n"]}
@@ -7,7 +7,7 @@ export class DiwaTableCell {
7
7
  this.multiline = false;
8
8
  }
9
9
  render() {
10
- return (h(Host, { key: '6940c2ca96ade3969829050cd472541073e14e10', role: "cell" }, h("style", { key: '9268605b392a8e0d63c036a94aaf06b1f8921d19', innerHTML: getComponentCss(this.multiline) }), h("slot", { key: 'ce6ec575f27242e9bb5892a9b4417bbcf31a7dd1' })));
10
+ return (h(Host, { key: '06e9e7b9644a399b4bf3392cafd2ce1906034c56', role: "cell" }, h("style", { key: '2aec2e9dda9ee32ec47628dd7eb7aa9d378e91be', innerHTML: getComponentCss(this.multiline) }), h("slot", { key: '9391683948fd415551ae1ae08dc53b1801380a69' })));
11
11
  }
12
12
  static get is() { return "diwa-table-cell"; }
13
13
  static get encapsulation() { return "shadow"; }