@xplor-education/core-stencil-components 2.1.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/components/index.js +1 -1
  2. package/components/index.js.map +1 -1
  3. package/components/{p-B1W2qj2l.js → p-B3zR7peH.js} +4 -4
  4. package/components/p-B3zR7peH.js.map +1 -0
  5. package/components/{p-Ddr35stE.js → p-BRWe4TXp.js} +65 -5
  6. package/components/p-BRWe4TXp.js.map +1 -0
  7. package/components/{p-CBSi5kQB.js → p-Bs_ocvfe.js} +7 -3
  8. package/components/p-Bs_ocvfe.js.map +1 -0
  9. package/components/{p-CTD6SyTD.js → p-D4jVa8dE.js} +20 -4
  10. package/components/p-D4jVa8dE.js.map +1 -0
  11. package/components/{p-BaDLDCH5.js → p-DURNLP66.js} +71 -6
  12. package/components/p-DURNLP66.js.map +1 -0
  13. package/components/xplor-alert-dialog.js +60 -3
  14. package/components/xplor-alert-dialog.js.map +1 -1
  15. package/components/xplor-assistant.js +3 -3
  16. package/components/xplor-assistant.js.map +1 -1
  17. package/components/xplor-autocomplete.js +15 -9
  18. package/components/xplor-autocomplete.js.map +1 -1
  19. package/components/xplor-avatar-and-name.js +1 -1
  20. package/components/xplor-avatar.js +1 -1
  21. package/components/xplor-btn-back-to-parent.js +7 -2
  22. package/components/xplor-btn-back-to-parent.js.map +1 -1
  23. package/components/xplor-btn-icon.js +3 -2
  24. package/components/xplor-btn-icon.js.map +1 -1
  25. package/components/xplor-btn-menu.js +103 -6
  26. package/components/xplor-btn-menu.js.map +1 -1
  27. package/components/xplor-btn-tooltip.js +2 -2
  28. package/components/xplor-button.js +1 -1
  29. package/components/xplor-chat-widget.js +1 -1
  30. package/components/xplor-checkbox.js +3 -1
  31. package/components/xplor-checkbox.js.map +1 -1
  32. package/components/xplor-combobox.js +20 -10
  33. package/components/xplor-combobox.js.map +1 -1
  34. package/components/xplor-datatable.js +10 -4
  35. package/components/xplor-datatable.js.map +1 -1
  36. package/components/xplor-date-picker.js +9 -5
  37. package/components/xplor-date-picker.js.map +1 -1
  38. package/components/xplor-drag-and-drop-input.js +7 -4
  39. package/components/xplor-drag-and-drop-input.js.map +1 -1
  40. package/components/xplor-expansion-panel.js +3 -3
  41. package/components/xplor-expansion-panel.js.map +1 -1
  42. package/components/xplor-expansion-panels.js +1 -1
  43. package/components/xplor-expansion-panels.js.map +1 -1
  44. package/components/xplor-file-upload.js +2 -2
  45. package/components/xplor-file-upload.js.map +1 -1
  46. package/components/xplor-inline-date-picker.js +1 -1
  47. package/components/xplor-input-file.js +3 -1
  48. package/components/xplor-input-file.js.map +1 -1
  49. package/components/xplor-input-search.js +4 -2
  50. package/components/xplor-input-search.js.map +1 -1
  51. package/components/xplor-input-select.js +107 -7
  52. package/components/xplor-input-select.js.map +1 -1
  53. package/components/xplor-input-send.js +2 -2
  54. package/components/xplor-input-send.js.map +1 -1
  55. package/components/xplor-input-text-area.js +6 -2
  56. package/components/xplor-input-text-area.js.map +1 -1
  57. package/components/xplor-input-text-secondary.js +6 -2
  58. package/components/xplor-input-text-secondary.js.map +1 -1
  59. package/components/xplor-input-text.js +6 -2
  60. package/components/xplor-input-text.js.map +1 -1
  61. package/components/xplor-input-title.js +7 -2
  62. package/components/xplor-input-title.js.map +1 -1
  63. package/components/xplor-links.js +5 -2
  64. package/components/xplor-links.js.map +1 -1
  65. package/components/xplor-modal-persistent.js +1 -1
  66. package/components/xplor-modal.js +1 -1
  67. package/components/xplor-nav-tabs.js +41 -3
  68. package/components/xplor-nav-tabs.js.map +1 -1
  69. package/components/xplor-radio-btn.js +99 -4
  70. package/components/xplor-radio-btn.js.map +1 -1
  71. package/components/xplor-section-card.js +2 -2
  72. package/components/xplor-section-card.js.map +1 -1
  73. package/components/xplor-section-heading.js +9 -3
  74. package/components/xplor-section-heading.js.map +1 -1
  75. package/components/xplor-table.js +14 -9
  76. package/components/xplor-table.js.map +1 -1
  77. package/components/xplor-text-bubble.js +2 -2
  78. package/components/xplor-text-field.js +2 -2
  79. package/components/xplor-time-picker.js +6 -6
  80. package/components/xplor-tooltip.js +1 -1
  81. package/dist/cjs/{index-Bc5o_4vY.js → index-BjAapk2n.js} +3 -3
  82. package/dist/cjs/index-BjAapk2n.js.map +1 -0
  83. package/dist/cjs/loader.cjs.js +2 -2
  84. package/dist/cjs/xplor-alert-dialog_58.cjs.entry.js +673 -100
  85. package/dist/cjs/xplor-alert-dialog_58.cjs.entry.js.map +1 -1
  86. package/dist/cjs/xplor-component-library.cjs.js +2 -2
  87. package/dist/collection/components/xplor-alert-dialog/xplor-alert-dialog.js +85 -1
  88. package/dist/collection/components/xplor-alert-dialog/xplor-alert-dialog.js.map +1 -1
  89. package/dist/collection/components/xplor-assistant/internal/AssistantInput.js +1 -1
  90. package/dist/collection/components/xplor-assistant/internal/AssistantInput.js.map +1 -1
  91. package/dist/collection/components/xplor-assistant/xplor-assistant.js +1 -1
  92. package/dist/collection/components/xplor-assistant/xplor-assistant.js.map +1 -1
  93. package/dist/collection/components/xplor-autocomplete/xplor-autocomplete.js +33 -9
  94. package/dist/collection/components/xplor-autocomplete/xplor-autocomplete.js.map +1 -1
  95. package/dist/collection/components/xplor-avatar/xplor-avatar.js +2 -2
  96. package/dist/collection/components/xplor-avatar/xplor-avatar.js.map +1 -1
  97. package/dist/collection/components/xplor-btn-back-to-parent/xplor-btn-back-to-parent.js +25 -1
  98. package/dist/collection/components/xplor-btn-back-to-parent/xplor-btn-back-to-parent.js.map +1 -1
  99. package/dist/collection/components/xplor-btn-icon/xplor-btn-icon.js +20 -1
  100. package/dist/collection/components/xplor-btn-icon/xplor-btn-icon.js.map +1 -1
  101. package/dist/collection/components/xplor-btn-menu/xplor-btn-menu.js +129 -5
  102. package/dist/collection/components/xplor-btn-menu/xplor-btn-menu.js.map +1 -1
  103. package/dist/collection/components/xplor-button/xplor-button.js +42 -1
  104. package/dist/collection/components/xplor-button/xplor-button.js.map +1 -1
  105. package/dist/collection/components/xplor-checkbox/xplor-checkbox.js +3 -1
  106. package/dist/collection/components/xplor-checkbox/xplor-checkbox.js.map +1 -1
  107. package/dist/collection/components/xplor-combobox/xplor-combobox.js +38 -10
  108. package/dist/collection/components/xplor-combobox/xplor-combobox.js.map +1 -1
  109. package/dist/collection/components/xplor-datatable/xplor-datatable.js +10 -4
  110. package/dist/collection/components/xplor-datatable/xplor-datatable.js.map +1 -1
  111. package/dist/collection/components/xplor-date-picker/xplor-date-picker.js +8 -4
  112. package/dist/collection/components/xplor-date-picker/xplor-date-picker.js.map +1 -1
  113. package/dist/collection/components/xplor-drag-and-drop-input/xplor-drag-and-drop-input.js +24 -3
  114. package/dist/collection/components/xplor-drag-and-drop-input/xplor-drag-and-drop-input.js.map +1 -1
  115. package/dist/collection/components/xplor-expansion-panel/xplor-expansion-panel.js +3 -3
  116. package/dist/collection/components/xplor-expansion-panel/xplor-expansion-panel.js.map +1 -1
  117. package/dist/collection/components/xplor-expansion-panels/xplor-expansion-panels.js +1 -1
  118. package/dist/collection/components/xplor-expansion-panels/xplor-expansion-panels.js.map +1 -1
  119. package/dist/collection/components/xplor-file-upload/xplor-file-upload.js +2 -2
  120. package/dist/collection/components/xplor-file-upload/xplor-file-upload.js.map +1 -1
  121. package/dist/collection/components/xplor-inline-date-picker/xplor-inline-date-picker.js +77 -3
  122. package/dist/collection/components/xplor-inline-date-picker/xplor-inline-date-picker.js.map +1 -1
  123. package/dist/collection/components/xplor-input-file/xplor-input-file.js +3 -1
  124. package/dist/collection/components/xplor-input-file/xplor-input-file.js.map +1 -1
  125. package/dist/collection/components/xplor-input-search/xplor-input-search.js +4 -2
  126. package/dist/collection/components/xplor-input-search/xplor-input-search.js.map +1 -1
  127. package/dist/collection/components/xplor-input-select/xplor-input-select.js +133 -6
  128. package/dist/collection/components/xplor-input-select/xplor-input-select.js.map +1 -1
  129. package/dist/collection/components/xplor-input-send/xplor-input-send.js +1 -1
  130. package/dist/collection/components/xplor-input-send/xplor-input-send.js.map +1 -1
  131. package/dist/collection/components/xplor-input-text/xplor-input-text.js +6 -2
  132. package/dist/collection/components/xplor-input-text/xplor-input-text.js.map +1 -1
  133. package/dist/collection/components/xplor-input-text-area/xplor-input-text-area.js +6 -2
  134. package/dist/collection/components/xplor-input-text-area/xplor-input-text-area.js.map +1 -1
  135. package/dist/collection/components/xplor-input-text-secondary/xplor-input-text-secondary.js +6 -2
  136. package/dist/collection/components/xplor-input-text-secondary/xplor-input-text-secondary.js.map +1 -1
  137. package/dist/collection/components/xplor-input-title/xplor-input-title.js +25 -1
  138. package/dist/collection/components/xplor-input-title/xplor-input-title.js.map +1 -1
  139. package/dist/collection/components/xplor-links/xplor-links.js +25 -1
  140. package/dist/collection/components/xplor-links/xplor-links.js.map +1 -1
  141. package/dist/collection/components/xplor-modal/xplor-modal.js +88 -1
  142. package/dist/collection/components/xplor-modal/xplor-modal.js.map +1 -1
  143. package/dist/collection/components/xplor-nav-tabs/xplor-nav-tabs.js +49 -2
  144. package/dist/collection/components/xplor-nav-tabs/xplor-nav-tabs.js.map +1 -1
  145. package/dist/collection/components/xplor-radio-btn/xplor-radio-btn.css +116 -1
  146. package/dist/collection/components/xplor-radio-btn/xplor-radio-btn.js +258 -2
  147. package/dist/collection/components/xplor-radio-btn/xplor-radio-btn.js.map +1 -1
  148. package/dist/collection/components/xplor-section-card/xplor-section-card.js +2 -2
  149. package/dist/collection/components/xplor-section-card/xplor-section-card.js.map +1 -1
  150. package/dist/collection/components/xplor-section-heading/xplor-section-heading.js +27 -2
  151. package/dist/collection/components/xplor-section-heading/xplor-section-heading.js.map +1 -1
  152. package/dist/collection/components/xplor-table/xplor-table.js +14 -9
  153. package/dist/collection/components/xplor-table/xplor-table.js.map +1 -1
  154. package/dist/collection/components/xplor-text-bubble/xplor-text-bubble.js +2 -2
  155. package/dist/collection/components/xplor-text-field/xplor-text-field.js +2 -2
  156. package/dist/collection/components/xplor-time-picker/xplor-time-picker.js +6 -6
  157. package/dist/collection/components/xplor-tooltip/xplor-tooltip.js +18 -2
  158. package/dist/collection/components/xplor-tooltip/xplor-tooltip.js.map +1 -1
  159. package/dist/components/index.js +1 -1
  160. package/dist/components/index.js.map +1 -1
  161. package/dist/components/{p-BHdeGt6k.js → p--zhT6rvJ.js} +4 -4
  162. package/dist/components/p--zhT6rvJ.js.map +1 -0
  163. package/dist/components/{p-DKh6y3GY.js → p-04oMLTZR.js} +65 -5
  164. package/dist/components/p-04oMLTZR.js.map +1 -0
  165. package/dist/components/{p-DIv_A5Gj.js → p-B5rS_jjI.js} +7 -3
  166. package/dist/components/p-B5rS_jjI.js.map +1 -0
  167. package/dist/components/{p-4l9DAhAo.js → p-DbQ6ZNvh.js} +20 -4
  168. package/dist/components/p-DbQ6ZNvh.js.map +1 -0
  169. package/dist/components/{p-CXJd350E.js → p-Dh0wQJt6.js} +71 -6
  170. package/dist/components/p-Dh0wQJt6.js.map +1 -0
  171. package/dist/components/xplor-alert-dialog.js +60 -3
  172. package/dist/components/xplor-alert-dialog.js.map +1 -1
  173. package/dist/components/xplor-assistant.js +3 -3
  174. package/dist/components/xplor-assistant.js.map +1 -1
  175. package/dist/components/xplor-autocomplete.js +15 -9
  176. package/dist/components/xplor-autocomplete.js.map +1 -1
  177. package/dist/components/xplor-avatar-and-name.js +1 -1
  178. package/dist/components/xplor-avatar.js +1 -1
  179. package/dist/components/xplor-btn-back-to-parent.js +7 -2
  180. package/dist/components/xplor-btn-back-to-parent.js.map +1 -1
  181. package/dist/components/xplor-btn-icon.js +3 -2
  182. package/dist/components/xplor-btn-icon.js.map +1 -1
  183. package/dist/components/xplor-btn-menu.js +103 -6
  184. package/dist/components/xplor-btn-menu.js.map +1 -1
  185. package/dist/components/xplor-btn-tooltip.js +2 -2
  186. package/dist/components/xplor-button.js +1 -1
  187. package/dist/components/xplor-chat-widget.js +1 -1
  188. package/dist/components/xplor-checkbox.js +3 -1
  189. package/dist/components/xplor-checkbox.js.map +1 -1
  190. package/dist/components/xplor-combobox.js +20 -10
  191. package/dist/components/xplor-combobox.js.map +1 -1
  192. package/dist/components/xplor-datatable.js +10 -4
  193. package/dist/components/xplor-datatable.js.map +1 -1
  194. package/dist/components/xplor-date-picker.js +9 -5
  195. package/dist/components/xplor-date-picker.js.map +1 -1
  196. package/dist/components/xplor-drag-and-drop-input.js +7 -4
  197. package/dist/components/xplor-drag-and-drop-input.js.map +1 -1
  198. package/dist/components/xplor-expansion-panel.js +3 -3
  199. package/dist/components/xplor-expansion-panel.js.map +1 -1
  200. package/dist/components/xplor-expansion-panels.js +1 -1
  201. package/dist/components/xplor-expansion-panels.js.map +1 -1
  202. package/dist/components/xplor-file-upload.js +2 -2
  203. package/dist/components/xplor-file-upload.js.map +1 -1
  204. package/dist/components/xplor-inline-date-picker.js +1 -1
  205. package/dist/components/xplor-input-file.js +3 -1
  206. package/dist/components/xplor-input-file.js.map +1 -1
  207. package/dist/components/xplor-input-search.js +4 -2
  208. package/dist/components/xplor-input-search.js.map +1 -1
  209. package/dist/components/xplor-input-select.js +107 -7
  210. package/dist/components/xplor-input-select.js.map +1 -1
  211. package/dist/components/xplor-input-send.js +2 -2
  212. package/dist/components/xplor-input-send.js.map +1 -1
  213. package/dist/components/xplor-input-text-area.js +6 -2
  214. package/dist/components/xplor-input-text-area.js.map +1 -1
  215. package/dist/components/xplor-input-text-secondary.js +6 -2
  216. package/dist/components/xplor-input-text-secondary.js.map +1 -1
  217. package/dist/components/xplor-input-text.js +6 -2
  218. package/dist/components/xplor-input-text.js.map +1 -1
  219. package/dist/components/xplor-input-title.js +7 -2
  220. package/dist/components/xplor-input-title.js.map +1 -1
  221. package/dist/components/xplor-links.js +5 -2
  222. package/dist/components/xplor-links.js.map +1 -1
  223. package/dist/components/xplor-modal-persistent.js +1 -1
  224. package/dist/components/xplor-modal.js +1 -1
  225. package/dist/components/xplor-nav-tabs.js +41 -3
  226. package/dist/components/xplor-nav-tabs.js.map +1 -1
  227. package/dist/components/xplor-radio-btn.js +99 -4
  228. package/dist/components/xplor-radio-btn.js.map +1 -1
  229. package/dist/components/xplor-section-card.js +2 -2
  230. package/dist/components/xplor-section-card.js.map +1 -1
  231. package/dist/components/xplor-section-heading.js +9 -3
  232. package/dist/components/xplor-section-heading.js.map +1 -1
  233. package/dist/components/xplor-table.js +14 -9
  234. package/dist/components/xplor-table.js.map +1 -1
  235. package/dist/components/xplor-text-bubble.js +2 -2
  236. package/dist/components/xplor-text-field.js +2 -2
  237. package/dist/components/xplor-time-picker.js +6 -6
  238. package/dist/components/xplor-tooltip.js +1 -1
  239. package/dist/esm/{index-Zkk2NJif.js → index-KRfMjDC2.js} +3 -3
  240. package/dist/esm/index-KRfMjDC2.js.map +1 -0
  241. package/dist/esm/loader.js +3 -3
  242. package/dist/esm/xplor-alert-dialog_58.entry.js +673 -100
  243. package/dist/esm/xplor-alert-dialog_58.entry.js.map +1 -1
  244. package/dist/esm/xplor-component-library.js +3 -3
  245. package/dist/hydrate/index.js +718 -116
  246. package/dist/hydrate/index.mjs +718 -116
  247. package/dist/types/components/xplor-alert-dialog/xplor-alert-dialog.d.ts +11 -0
  248. package/dist/types/components/xplor-autocomplete/xplor-autocomplete.d.ts +4 -0
  249. package/dist/types/components/xplor-btn-back-to-parent/xplor-btn-back-to-parent.d.ts +4 -0
  250. package/dist/types/components/xplor-btn-icon/xplor-btn-icon.d.ts +4 -0
  251. package/dist/types/components/xplor-btn-menu/xplor-btn-menu.d.ts +19 -0
  252. package/dist/types/components/xplor-button/xplor-button.d.ts +4 -0
  253. package/dist/types/components/xplor-checkbox/xplor-checkbox.d.ts +1 -0
  254. package/dist/types/components/xplor-combobox/xplor-combobox.d.ts +4 -0
  255. package/dist/types/components/xplor-date-picker/xplor-date-picker.d.ts +3 -0
  256. package/dist/types/components/xplor-drag-and-drop-input/xplor-drag-and-drop-input.d.ts +4 -0
  257. package/dist/types/components/xplor-inline-date-picker/xplor-inline-date-picker.d.ts +3 -0
  258. package/dist/types/components/xplor-input-file/xplor-input-file.d.ts +1 -0
  259. package/dist/types/components/xplor-input-search/xplor-input-search.d.ts +1 -0
  260. package/dist/types/components/xplor-input-select/xplor-input-select.d.ts +8 -0
  261. package/dist/types/components/xplor-input-text/xplor-input-text.d.ts +3 -0
  262. package/dist/types/components/xplor-input-text-area/xplor-input-text-area.d.ts +3 -0
  263. package/dist/types/components/xplor-input-text-secondary/xplor-input-text-secondary.d.ts +3 -0
  264. package/dist/types/components/xplor-input-title/xplor-input-title.d.ts +4 -0
  265. package/dist/types/components/xplor-links/xplor-links.d.ts +2 -0
  266. package/dist/types/components/xplor-modal/xplor-modal.d.ts +11 -0
  267. package/dist/types/components/xplor-nav-tabs/xplor-nav-tabs.d.ts +2 -0
  268. package/dist/types/components/xplor-radio-btn/xplor-radio-btn.d.ts +32 -0
  269. package/dist/types/components/xplor-section-heading/xplor-section-heading.d.ts +4 -0
  270. package/dist/types/components/xplor-tooltip/xplor-tooltip.d.ts +3 -0
  271. package/dist/types/components.d.ts +205 -0
  272. package/dist/xplor-component-library/p-0df9ea5d.entry.js +2 -0
  273. package/dist/xplor-component-library/p-0df9ea5d.entry.js.map +1 -0
  274. package/dist/xplor-component-library/{p-Zkk2NJif.js → p-KRfMjDC2.js} +3 -3
  275. package/dist/xplor-component-library/p-KRfMjDC2.js.map +1 -0
  276. package/dist/xplor-component-library/xplor-component-library.css +1 -1
  277. package/dist/xplor-component-library/xplor-component-library.esm.js +1 -1
  278. package/package.json +1 -1
  279. package/components/p-B1W2qj2l.js.map +0 -1
  280. package/components/p-BaDLDCH5.js.map +0 -1
  281. package/components/p-CBSi5kQB.js.map +0 -1
  282. package/components/p-CTD6SyTD.js.map +0 -1
  283. package/components/p-Ddr35stE.js.map +0 -1
  284. package/dist/cjs/index-Bc5o_4vY.js.map +0 -1
  285. package/dist/components/p-4l9DAhAo.js.map +0 -1
  286. package/dist/components/p-BHdeGt6k.js.map +0 -1
  287. package/dist/components/p-CXJd350E.js.map +0 -1
  288. package/dist/components/p-DIv_A5Gj.js.map +0 -1
  289. package/dist/components/p-DKh6y3GY.js.map +0 -1
  290. package/dist/esm/index-Zkk2NJif.js.map +0 -1
  291. package/dist/xplor-component-library/p-07d83c17.entry.js +0 -2
  292. package/dist/xplor-component-library/p-07d83c17.entry.js.map +0 -1
  293. package/dist/xplor-component-library/p-Zkk2NJif.js.map +0 -1
@@ -267,5 +267,120 @@ ul.mdc-list li.mdc-list-item {
267
267
  }
268
268
 
269
269
  :host {
270
- display: block;
270
+ display: inline-block;
271
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
272
+ }
273
+
274
+ .radio-wrapper {
275
+ display: inline-flex;
276
+ align-items: center;
277
+ gap: 8px;
278
+ cursor: pointer;
279
+ }
280
+ .radio-wrapper--disabled {
281
+ cursor: not-allowed;
282
+ }
283
+
284
+ .radio {
285
+ width: 20px;
286
+ height: 20px;
287
+ border-radius: 50%;
288
+ border: 2px solid #9ca3af;
289
+ background: white;
290
+ display: flex;
291
+ align-items: center;
292
+ justify-content: center;
293
+ cursor: pointer;
294
+ transition: all 0.15s ease;
295
+ outline: none;
296
+ position: relative;
297
+ flex-shrink: 0;
298
+ }
299
+ .radio.hover {
300
+ border-color: #059669;
301
+ background: #d1fae5;
302
+ }
303
+ .radio.focus {
304
+ border-color: #059669;
305
+ background: #a7f3d0;
306
+ box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.2);
307
+ }
308
+ .radio.pressed {
309
+ border-color: #059669;
310
+ background: #6ee7b7;
311
+ }
312
+ .radio.checked {
313
+ border-color: #059669;
314
+ }
315
+ .radio.checked.hover {
316
+ background: #d1fae5;
317
+ }
318
+ .radio.checked.hover .radio-inner {
319
+ background: #059669;
320
+ }
321
+ .radio.checked.focus {
322
+ background: #a7f3d0;
323
+ box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.2);
324
+ }
325
+ .radio.checked.focus .radio-inner {
326
+ background: #059669;
327
+ }
328
+ .radio.checked.pressed {
329
+ background: #6ee7b7;
330
+ }
331
+ .radio.checked.pressed .radio-inner {
332
+ background: #059669;
333
+ }
334
+ .radio.error {
335
+ border-color: #ef4444;
336
+ }
337
+ .radio.error.hover {
338
+ background: #fee2e2;
339
+ border-color: #ef4444;
340
+ }
341
+ .radio.error.focus {
342
+ background: #fecaca;
343
+ border-color: #ef4444;
344
+ box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2);
345
+ }
346
+ .radio.error.pressed {
347
+ background: #fca5a5;
348
+ border-color: #ef4444;
349
+ }
350
+ .radio.error.checked .radio-inner {
351
+ background: #ef4444;
352
+ }
353
+ .radio.disabled {
354
+ opacity: 0.4;
355
+ cursor: not-allowed;
356
+ border-color: #d1d5db;
357
+ background: white;
358
+ }
359
+ .radio.disabled.checked {
360
+ border-color: #9ca3af;
361
+ }
362
+ .radio.disabled.checked .radio-inner {
363
+ background: #9ca3af;
364
+ }
365
+
366
+ .radio-inner {
367
+ width: 10px;
368
+ height: 10px;
369
+ border-radius: 50%;
370
+ background: #059669;
371
+ transform: scale(0);
372
+ transition: transform 0.15s ease;
373
+ }
374
+ .radio-inner--visible {
375
+ transform: scale(1);
376
+ }
377
+
378
+ .label {
379
+ font-size: 14px;
380
+ color: #374151;
381
+ user-select: none;
382
+ }
383
+
384
+ .radio-wrapper--disabled .label {
385
+ opacity: 0.4;
271
386
  }
@@ -1,7 +1,85 @@
1
- import { Host, h } from "@stencil/core";
1
+ import { h } from "@stencil/core";
2
2
  export class XplorRadioBtn {
3
+ constructor() {
4
+ /** The label text displayed next to the radio button */
5
+ this.label = '';
6
+ /** The value associated with this radio button */
7
+ this.value = '';
8
+ /** The name attribute to group radio buttons together */
9
+ this.name = '';
10
+ /** Whether this radio button is initially selected */
11
+ this.initialChecked = false;
12
+ /** Whether this radio button is disabled */
13
+ this.disabled = false;
14
+ /** Whether this radio button is in an error state */
15
+ this.error = false;
16
+ this.checked = false;
17
+ this.isHovered = false;
18
+ this.isFocused = false;
19
+ this.isPressed = false;
20
+ this.handleClick = () => {
21
+ if (this.disabled || this.checked)
22
+ return;
23
+ // Deselect all siblings in the same name group
24
+ this.getSiblingRadios().forEach(radio => radio.deselect());
25
+ this.checked = true;
26
+ this.radioChange.emit({ value: this.value, checked: this.checked });
27
+ };
28
+ this.handleKeyDown = (e) => {
29
+ if (this.disabled)
30
+ return;
31
+ if (e.key === ' ' || e.key === 'Enter') {
32
+ e.preventDefault();
33
+ this.isPressed = true;
34
+ this.handleClick();
35
+ }
36
+ };
37
+ this.handleKeyUp = (e) => {
38
+ if (e.key === ' ' || e.key === 'Enter') {
39
+ this.isPressed = false;
40
+ }
41
+ };
42
+ this.getRadioClass = () => {
43
+ const classes = ['radio'];
44
+ if (this.checked)
45
+ classes.push('checked');
46
+ if (this.disabled)
47
+ classes.push('disabled');
48
+ if (this.error)
49
+ classes.push('error');
50
+ if (this.isHovered && !this.disabled)
51
+ classes.push('hover');
52
+ if (this.isFocused && !this.disabled)
53
+ classes.push('focus');
54
+ if (this.isPressed && !this.disabled)
55
+ classes.push('pressed');
56
+ return classes.join(' ');
57
+ };
58
+ }
59
+ watchCheckedProp(newValue) {
60
+ this.checked = newValue;
61
+ }
62
+ componentWillLoad() {
63
+ this.checked = this.initialChecked;
64
+ }
65
+ /** Programmatically deselect this radio button */
66
+ async deselect() {
67
+ this.checked = false;
68
+ }
69
+ getSiblingRadios() {
70
+ if (!this.name)
71
+ return [];
72
+ const parent = this.el.parentElement;
73
+ if (!parent)
74
+ return [];
75
+ const all = Array.from(parent.querySelectorAll(`xplor-radio-btn[name="${this.name}"]`));
76
+ return all.filter(radio => radio !== this.el);
77
+ }
3
78
  render() {
4
- return (h(Host, { key: '350aae21c138b87e3dfce7ebdb2d74747d5abc93' }, h("h1", { key: 'f7546bbab5c85aa0ed4d180116200790444f8c5f' }, "I'm a button"), h("slot", { key: '79492d83d93da17775f56c21e2a600cafdea2c44' })));
79
+ return (h("label", { key: 'dee9c14f54e292d18b3267ca5e2000aca36b0456', class: {
80
+ 'radio-wrapper': true,
81
+ 'radio-wrapper--disabled': this.disabled,
82
+ } }, h("div", { key: '30bd9ba24abb9b37e6baa55d6ba767a2058cd1d0', class: this.getRadioClass(), onClick: this.handleClick, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), onMouseDown: () => (this.isPressed = true), onMouseUp: () => (this.isPressed = false), onFocus: () => (this.isFocused = true), onBlur: () => (this.isFocused = false), onKeyDown: this.handleKeyDown, onKeyUp: this.handleKeyUp, tabIndex: this.disabled ? -1 : 0, role: "radio", "aria-checked": this.checked.toString(), "aria-disabled": this.disabled.toString(), "aria-label": this.label }, h("div", { key: 'd09a47486e2041f12cbdeadd29fd537cab41db3b', class: { 'radio-inner': true, 'radio-inner--visible': this.checked } })), this.label && (h("span", { key: 'd8b820cd1b843f33a99a64c236f3f53a1c68be70', class: "label" }, this.label))));
5
83
  }
6
84
  static get is() { return "xplor-radio-btn"; }
7
85
  static get encapsulation() { return "shadow"; }
@@ -15,5 +93,183 @@ export class XplorRadioBtn {
15
93
  "$": ["xplor-radio-btn.css"]
16
94
  };
17
95
  }
96
+ static get properties() {
97
+ return {
98
+ "label": {
99
+ "type": "string",
100
+ "attribute": "label",
101
+ "mutable": false,
102
+ "complexType": {
103
+ "original": "string",
104
+ "resolved": "string",
105
+ "references": {}
106
+ },
107
+ "required": false,
108
+ "optional": false,
109
+ "docs": {
110
+ "tags": [],
111
+ "text": "The label text displayed next to the radio button"
112
+ },
113
+ "getter": false,
114
+ "setter": false,
115
+ "reflect": false,
116
+ "defaultValue": "''"
117
+ },
118
+ "value": {
119
+ "type": "string",
120
+ "attribute": "value",
121
+ "mutable": false,
122
+ "complexType": {
123
+ "original": "string",
124
+ "resolved": "string",
125
+ "references": {}
126
+ },
127
+ "required": false,
128
+ "optional": false,
129
+ "docs": {
130
+ "tags": [],
131
+ "text": "The value associated with this radio button"
132
+ },
133
+ "getter": false,
134
+ "setter": false,
135
+ "reflect": false,
136
+ "defaultValue": "''"
137
+ },
138
+ "name": {
139
+ "type": "string",
140
+ "attribute": "name",
141
+ "mutable": false,
142
+ "complexType": {
143
+ "original": "string",
144
+ "resolved": "string",
145
+ "references": {}
146
+ },
147
+ "required": false,
148
+ "optional": false,
149
+ "docs": {
150
+ "tags": [],
151
+ "text": "The name attribute to group radio buttons together"
152
+ },
153
+ "getter": false,
154
+ "setter": false,
155
+ "reflect": false,
156
+ "defaultValue": "''"
157
+ },
158
+ "initialChecked": {
159
+ "type": "boolean",
160
+ "attribute": "initial-checked",
161
+ "mutable": false,
162
+ "complexType": {
163
+ "original": "boolean",
164
+ "resolved": "boolean",
165
+ "references": {}
166
+ },
167
+ "required": false,
168
+ "optional": false,
169
+ "docs": {
170
+ "tags": [],
171
+ "text": "Whether this radio button is initially selected"
172
+ },
173
+ "getter": false,
174
+ "setter": false,
175
+ "reflect": false,
176
+ "defaultValue": "false"
177
+ },
178
+ "disabled": {
179
+ "type": "boolean",
180
+ "attribute": "disabled",
181
+ "mutable": false,
182
+ "complexType": {
183
+ "original": "boolean",
184
+ "resolved": "boolean",
185
+ "references": {}
186
+ },
187
+ "required": false,
188
+ "optional": false,
189
+ "docs": {
190
+ "tags": [],
191
+ "text": "Whether this radio button is disabled"
192
+ },
193
+ "getter": false,
194
+ "setter": false,
195
+ "reflect": false,
196
+ "defaultValue": "false"
197
+ },
198
+ "error": {
199
+ "type": "boolean",
200
+ "attribute": "error",
201
+ "mutable": false,
202
+ "complexType": {
203
+ "original": "boolean",
204
+ "resolved": "boolean",
205
+ "references": {}
206
+ },
207
+ "required": false,
208
+ "optional": false,
209
+ "docs": {
210
+ "tags": [],
211
+ "text": "Whether this radio button is in an error state"
212
+ },
213
+ "getter": false,
214
+ "setter": false,
215
+ "reflect": false,
216
+ "defaultValue": "false"
217
+ }
218
+ };
219
+ }
220
+ static get states() {
221
+ return {
222
+ "checked": {},
223
+ "isHovered": {},
224
+ "isFocused": {},
225
+ "isPressed": {}
226
+ };
227
+ }
228
+ static get events() {
229
+ return [{
230
+ "method": "radioChange",
231
+ "name": "radioChange",
232
+ "bubbles": true,
233
+ "cancelable": true,
234
+ "composed": true,
235
+ "docs": {
236
+ "tags": [],
237
+ "text": "Emitted when the radio button selection changes"
238
+ },
239
+ "complexType": {
240
+ "original": "{ value: string; checked: boolean }",
241
+ "resolved": "{ value: string; checked: boolean; }",
242
+ "references": {}
243
+ }
244
+ }];
245
+ }
246
+ static get methods() {
247
+ return {
248
+ "deselect": {
249
+ "complexType": {
250
+ "signature": "() => Promise<void>",
251
+ "parameters": [],
252
+ "references": {
253
+ "Promise": {
254
+ "location": "global",
255
+ "id": "global::Promise"
256
+ }
257
+ },
258
+ "return": "Promise<void>"
259
+ },
260
+ "docs": {
261
+ "text": "Programmatically deselect this radio button",
262
+ "tags": []
263
+ }
264
+ }
265
+ };
266
+ }
267
+ static get elementRef() { return "el"; }
268
+ static get watchers() {
269
+ return [{
270
+ "propName": "initialChecked",
271
+ "methodName": "watchCheckedProp"
272
+ }];
273
+ }
18
274
  }
19
275
  //# sourceMappingURL=xplor-radio-btn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"xplor-radio-btn.js","sourceRoot":"","sources":["../../../src/components/xplor-radio-btn/xplor-radio-btn.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAOnD,MAAM,OAAO,aAAa;IACxB,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4EAAqB;YACrB,8DAAa,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'xplor-radio-btn',\n styleUrl: 'xplor-radio-btn.scss',\n shadow: true,\n})\nexport class XplorRadioBtn {\n render() {\n return (\n <Host>\n <h1>I'm a button</h1>\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"xplor-radio-btn.js","sourceRoot":"","sources":["../../../src/components/xplor-radio-btn/xplor-radio-btn.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, State, Event, EventEmitter, h, Watch, Element, Method } from '@stencil/core';\n\n@Component({\n tag: 'xplor-radio-btn',\n styleUrl: 'xplor-radio-btn.scss',\n shadow: true,\n})\nexport class XplorRadioBtn {\n @Element() el: HTMLElement;\n\n /** The label text displayed next to the radio button */\n @Prop() label: string = '';\n\n /** The value associated with this radio button */\n @Prop() value: string = '';\n\n /** The name attribute to group radio buttons together */\n @Prop() name: string = '';\n\n /** Whether this radio button is initially selected */\n @Prop() initialChecked: boolean = false;\n\n /** Whether this radio button is disabled */\n @Prop() disabled: boolean = false;\n\n /** Whether this radio button is in an error state */\n @Prop() error: boolean = false;\n\n @State() checked: boolean = false;\n @State() isHovered: boolean = false;\n @State() isFocused: boolean = false;\n @State() isPressed: boolean = false;\n\n /** Emitted when the radio button selection changes */\n @Event() radioChange: EventEmitter<{ value: string; checked: boolean }>;\n\n @Watch('initialChecked')\n watchCheckedProp(newValue: boolean) {\n this.checked = newValue;\n }\n\n componentWillLoad() {\n this.checked = this.initialChecked;\n }\n\n /** Programmatically deselect this radio button */\n @Method()\n async deselect() {\n this.checked = false;\n }\n\n private getSiblingRadios(): HTMLXplorRadioBtnElement[] {\n if (!this.name) return [];\n const parent = this.el.parentElement;\n if (!parent) return [];\n const all = Array.from(parent.querySelectorAll<HTMLXplorRadioBtnElement>(`xplor-radio-btn[name=\"${this.name}\"]`));\n return all.filter(radio => radio !== this.el);\n }\n\n private handleClick = () => {\n if (this.disabled || this.checked) return;\n\n // Deselect all siblings in the same name group\n this.getSiblingRadios().forEach(radio => radio.deselect());\n\n this.checked = true;\n this.radioChange.emit({ value: this.value, checked: this.checked });\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.disabled) return;\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n this.isPressed = true;\n this.handleClick();\n }\n };\n\n private handleKeyUp = (e: KeyboardEvent) => {\n if (e.key === ' ' || e.key === 'Enter') {\n this.isPressed = false;\n }\n };\n\n private getRadioClass = () => {\n const classes = ['radio'];\n\n if (this.checked) classes.push('checked');\n if (this.disabled) classes.push('disabled');\n if (this.error) classes.push('error');\n if (this.isHovered && !this.disabled) classes.push('hover');\n if (this.isFocused && !this.disabled) classes.push('focus');\n if (this.isPressed && !this.disabled) classes.push('pressed');\n\n return classes.join(' ');\n };\n\n render() {\n return (\n <label\n class={{\n 'radio-wrapper': true,\n 'radio-wrapper--disabled': this.disabled,\n }}\n >\n <div\n class={this.getRadioClass()}\n onClick={this.handleClick}\n onMouseEnter={() => (this.isHovered = true)}\n onMouseLeave={() => (this.isHovered = false)}\n onMouseDown={() => (this.isPressed = true)}\n onMouseUp={() => (this.isPressed = false)}\n onFocus={() => (this.isFocused = true)}\n onBlur={() => (this.isFocused = false)}\n onKeyDown={this.handleKeyDown}\n onKeyUp={this.handleKeyUp}\n tabIndex={this.disabled ? -1 : 0}\n role=\"radio\"\n aria-checked={this.checked.toString()}\n aria-disabled={this.disabled.toString()}\n aria-label={this.label}\n >\n <div class={{ 'radio-inner': true, 'radio-inner--visible': this.checked }} />\n </div>\n {this.label && (\n <span class=\"label\">{this.label}</span>\n )}\n </label>\n );\n }\n}\n"]}
@@ -6,11 +6,11 @@ export class XplorSectionCard {
6
6
  this.padding = '1.5rem';
7
7
  }
8
8
  render() {
9
- return (h(Host, { key: 'f0bb8af2883a5441f3e325c4267ad3cec5716c9a' }, h("div", { key: 'a7611e3f28ca8d84782146adb2b906c789f4a338', class: {
9
+ return (h(Host, { key: '14876af087f131508ff26d4fefbba1792fb1f092' }, h("div", { key: '38bf7ff900f46b701416e2a3483c66728939cf8c', class: {
10
10
  'section-card': true,
11
11
  'section-card--outlined': this.outlined,
12
12
  'section-card--rounded': this.rounded,
13
- }, style: { padding: this.padding } }, h("slot", { key: 'e1a7153c70bf52f1d539dfc4f0b95d571aaa97da', name: "title" }), h("slot", { key: '90d1df5bf54fc04271e0f762a6f6df09f9a5cc32', name: "subtitle" }), h("div", { key: '81c011fa1950cee54769b7940b92722d3dcdd4d5', class: "section-card__body" }, h("slot", { key: '5c8bba79d0900c8db7feb677ff1a6dc379bcad65', name: "body" })), h("div", { key: 'd71137c24f428c4001c06c3038565368423e71cd', class: "section-card__actions" }, h("slot", { key: '06b994a9fb3626a0054b6192b5bb666b89710f54', name: "actions" })))));
13
+ }, style: { padding: this.padding } }, h("slot", { key: '2189b986d9b08b1ef6168af7a5fe24da4a599301', name: "title" }), h("slot", { key: 'c3efe60808ac203e0c9a63c7c636dee242856bf0', name: "subtitle" }), h("div", { key: 'cf9d94651682ca4d1da25ccadbbfe2168295a326', class: "section-card__body" }, h("slot", { key: '732633bbbe5ad06f1c10222e81929a33ba06a12c', name: "body" }), h("slot", { key: 'e403abfc1b71759aab693c700b5ed8be1215f30e' })), h("div", { key: '89ffdd8215a88483635d1542a56a6f446abf61c4', class: "section-card__actions" }, h("slot", { key: 'e21b2e8b8cd048c4a0dfd369684186b547cc7611', name: "actions" })))));
14
14
  }
15
15
  static get is() { return "xplor-section-card"; }
16
16
  static get encapsulation() { return "scoped"; }
@@ -1 +1 @@
1
- {"version":3,"file":"xplor-section-card.js","sourceRoot":"","sources":["../../../src/components/xplor-section-card/xplor-section-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAOzD,MAAM,OAAO,gBAAgB;IAL7B;QAMU,aAAQ,GAAY,IAAI,CAAC;QACzB,YAAO,GAAY,IAAI,CAAC;QACxB,YAAO,GAAW,QAAQ,CAAC;KAyBpC;IAvBC,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DACE,KAAK,EAAE;oBACL,cAAc,EAAE,IAAI;oBACpB,wBAAwB,EAAE,IAAI,CAAC,QAAQ;oBACvC,uBAAuB,EAAE,IAAI,CAAC,OAAO;iBACtC,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBAEhC,6DAAM,IAAI,EAAC,OAAO,GAAG;gBACrB,6DAAM,IAAI,EAAC,UAAU,GAAG;gBACxB,4DAAK,KAAK,EAAC,oBAAoB;oBAC7B,6DAAM,IAAI,EAAC,MAAM,GAAG,CAChB;gBACN,4DAAK,KAAK,EAAC,uBAAuB;oBAChC,6DAAM,IAAI,EAAC,SAAS,GAAG,CACnB,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xplor-section-card',\n styleUrl: 'xplor-section-card.scss',\n scoped: true,\n})\nexport class XplorSectionCard {\n @Prop() outlined: boolean = true;\n @Prop() rounded: boolean = true;\n @Prop() padding: string = '1.5rem';\n\n render() {\n return (\n <Host>\n <div\n class={{\n 'section-card': true,\n 'section-card--outlined': this.outlined,\n 'section-card--rounded': this.rounded,\n }}\n style={{ padding: this.padding }}\n >\n <slot name=\"title\" />\n <slot name=\"subtitle\" />\n <div class=\"section-card__body\">\n <slot name=\"body\" />\n </div>\n <div class=\"section-card__actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"xplor-section-card.js","sourceRoot":"","sources":["../../../src/components/xplor-section-card/xplor-section-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAOzD,MAAM,OAAO,gBAAgB;IAL7B;QAMU,aAAQ,GAAY,IAAI,CAAC;QACzB,YAAO,GAAY,IAAI,CAAC;QACxB,YAAO,GAAW,QAAQ,CAAC;KA0BpC;IAxBC,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DACE,KAAK,EAAE;oBACL,cAAc,EAAE,IAAI;oBACpB,wBAAwB,EAAE,IAAI,CAAC,QAAQ;oBACvC,uBAAuB,EAAE,IAAI,CAAC,OAAO;iBACtC,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBAEhC,6DAAM,IAAI,EAAC,OAAO,GAAG;gBACrB,6DAAM,IAAI,EAAC,UAAU,GAAG;gBACxB,4DAAK,KAAK,EAAC,oBAAoB;oBAC7B,6DAAM,IAAI,EAAC,MAAM,GAAG;oBACpB,8DAAQ,CACJ;gBACN,4DAAK,KAAK,EAAC,uBAAuB;oBAChC,6DAAM,IAAI,EAAC,SAAS,GAAG,CACnB,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xplor-section-card',\n styleUrl: 'xplor-section-card.scss',\n scoped: true,\n})\nexport class XplorSectionCard {\n @Prop() outlined: boolean = true;\n @Prop() rounded: boolean = true;\n @Prop() padding: string = '1.5rem';\n\n render() {\n return (\n <Host>\n <div\n class={{\n 'section-card': true,\n 'section-card--outlined': this.outlined,\n 'section-card--rounded': this.rounded,\n }}\n style={{ padding: this.padding }}\n >\n <slot name=\"title\" />\n <slot name=\"subtitle\" />\n <div class=\"section-card__body\">\n <slot name=\"body\" />\n <slot />\n </div>\n <div class=\"section-card__actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -2,13 +2,18 @@ import { Host, h } from "@stencil/core";
2
2
  export class XplorSectionHeading {
3
3
  constructor() {
4
4
  this.size = 'medium';
5
+ /**
6
+ * Heading level (1-6), renders as h1-h6. Defaults to 2.
7
+ */
8
+ this.level = 2;
5
9
  }
6
10
  render() {
7
- return (h(Host, { key: '6ee4041528bf178feb4b641c6f6f937c28ed2e8e' }, h("span", { key: 'e9758f23fe78a18f5ebf77092225c4d3b2a29965', class: {
11
+ const HeadingTag = `h${this.level}`;
12
+ return (h(Host, { key: 'dbd9dc5f552dd6a20d6a5e39efd636ced45df7cb' }, h(HeadingTag, { key: '90ceffcb3383b8d167e11e42cb6a2e915ddeec1b', class: {
8
13
  'section-heading': true,
9
14
  'section-heading--small': this.size === 'small',
10
15
  'section-heading--large': this.size === 'large',
11
- } }, h("slot", { key: 'e0191f9f23da9858ffbb204554fec2c1012d1cd3' }, this.text))));
16
+ } }, h("slot", { key: 'dd861c58c3e59e0bb4b0e7195ecaaa55ffab4912' }, this.text))));
12
17
  }
13
18
  static get is() { return "xplor-section-heading"; }
14
19
  static get encapsulation() { return "scoped"; }
@@ -62,6 +67,26 @@ export class XplorSectionHeading {
62
67
  "getter": false,
63
68
  "setter": false,
64
69
  "reflect": false
70
+ },
71
+ "level": {
72
+ "type": "number",
73
+ "attribute": "level",
74
+ "mutable": false,
75
+ "complexType": {
76
+ "original": "1 | 2 | 3 | 4 | 5 | 6",
77
+ "resolved": "1 | 2 | 3 | 4 | 5 | 6",
78
+ "references": {}
79
+ },
80
+ "required": false,
81
+ "optional": false,
82
+ "docs": {
83
+ "tags": [],
84
+ "text": "Heading level (1-6), renders as h1-h6. Defaults to 2."
85
+ },
86
+ "getter": false,
87
+ "setter": false,
88
+ "reflect": false,
89
+ "defaultValue": "2"
65
90
  }
66
91
  };
67
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xplor-section-heading.js","sourceRoot":"","sources":["../../../src/components/xplor-section-heading/xplor-section-heading.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAOzD,MAAM,OAAO,mBAAmB;IALhC;QAMU,SAAI,GAAiC,QAAQ,CAAC;KAkBvD;IAfC,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,6DACE,KAAK,EAAE;oBACL,iBAAiB,EAAE,IAAI;oBACvB,wBAAwB,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO;oBAC/C,wBAAwB,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO;iBAChD;gBAED,+DAAO,IAAI,CAAC,IAAI,CAAQ,CACnB,CACF,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xplor-section-heading',\n styleUrl: 'xplor-section-heading.scss',\n scoped: true,\n})\nexport class XplorSectionHeading {\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n @Prop() text: string;\n\n render() {\n return (\n <Host>\n <span\n class={{\n 'section-heading': true,\n 'section-heading--small': this.size === 'small',\n 'section-heading--large': this.size === 'large',\n }}\n >\n <slot>{this.text}</slot>\n </span>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"xplor-section-heading.js","sourceRoot":"","sources":["../../../src/components/xplor-section-heading/xplor-section-heading.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAOzD,MAAM,OAAO,mBAAmB;IALhC;QAMU,SAAI,GAAiC,QAAQ,CAAC;QAGtD;;WAEG;QACK,UAAK,GAA0B,CAAC,CAAC;KAmB1C;IAjBC,MAAM;QACJ,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,KAAK,EAAS,CAAC;QAE3C,OAAO,CACL,EAAC,IAAI;YACH,EAAC,UAAU,qDACT,KAAK,EAAE;oBACL,iBAAiB,EAAE,IAAI;oBACvB,wBAAwB,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO;oBAC/C,wBAAwB,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO;iBAChD;gBAED,+DAAO,IAAI,CAAC,IAAI,CAAQ,CACb,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xplor-section-heading',\n styleUrl: 'xplor-section-heading.scss',\n scoped: true,\n})\nexport class XplorSectionHeading {\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n @Prop() text: string;\n\n /**\n * Heading level (1-6), renders as h1-h6. Defaults to 2.\n */\n @Prop() level: 1 | 2 | 3 | 4 | 5 | 6 = 2;\n\n render() {\n const HeadingTag = `h${this.level}` as any;\n\n return (\n <Host>\n <HeadingTag\n class={{\n 'section-heading': true,\n 'section-heading--small': this.size === 'small',\n 'section-heading--large': this.size === 'large',\n }}\n >\n <slot>{this.text}</slot>\n </HeadingTag>\n </Host>\n );\n }\n}\n"]}
@@ -180,18 +180,23 @@ export class XplorTable {
180
180
  if (this.hasScrolled)
181
181
  className += ' xpl-table--has-scrolled';
182
182
  const paginatedData = this.getPaginatedData();
183
- return (h(Host, { key: '3f20eb245a5a7cb281d4d62c4decd5479a4a172f', class: "xplor-table" }, h("div", { key: '1a28e8efbe4743b4dc77cfe62eeb21f317a9cbea', class: "bg-white rounded-lg shadow-sm border border-gray-200 p-6 max-w-6xl mx-auto" }, h("div", { key: 'a20608a0f5d4cde341974fb887f6bf0fcd1bce2d', class: "xpl-table-container", onScroll: this.onScroll, ref: (el) => {
183
+ return (h(Host, { key: 'da8ded4b349560e2272fd0ffa1395ffc04d92769', class: "xplor-table" }, h("div", { key: '5cddb71e28a6eb512bbe0a209816fb8ba8050e22', class: "bg-white rounded-lg shadow-sm border border-gray-200 p-6 max-w-6xl mx-auto" }, h("div", { key: '24abe132c8b2889e656f39b197dcb2348cf7c49b', class: "xpl-table-container", onScroll: this.onScroll, ref: (el) => {
184
184
  this.container = el;
185
- } }, h("div", { key: '179d76f9152adf12775024ab4b8a272539ae1931', class: "mb-6" }, h("h1", { key: '636955cf3e3b34e0dfd96d61b1dc055a8bd25421', class: "text-xl font-semibold text-gray-900 mb-4" }, "Head Counts Report"), h("div", { key: 'dbb17a39f87faf48f840cb0a0912e766d26fd3c6', class: "flex flex-wrap items-center gap-4 mb-6" }, h("div", { key: '093859d4da39cdbda7c9d2bdde59dbe18e6379bc', class: "flex items-center gap-2" }, h("label", { key: '01a133d35d6b97bb2c4e231ae6ebe8f4082f2955', class: "text-sm text-gray-600 font-medium" }, "Date Range"), h("select", { key: 'df99b873a684c2ae59f4d8ee5f2df68de8d0424d', class: "border border-gray-300 rounded px-3 py-1.5 text-sm bg-white focus:outline-none focus:ring-2 focus:ring-teal-500 focus:border-teal-500",
185
+ } }, h("div", { key: 'afd56f434c013d1175c198790562f60cbed5d6ce', class: "mb-6" }, h("h1", { key: 'ba650cfc24623c63910f9dfb7547272dc2adbe68', class: "text-xl font-semibold text-gray-900 mb-4" }, "Head Counts Report"), h("div", { key: '4150efe6295d6697a787322e6bc8550d82296b69', class: "flex flex-wrap items-center gap-4 mb-6" }, h("div", { key: '1bef7dc05a99081de7b2cf0588c58fb4cd0cb429', class: "flex items-center gap-2" }, h("label", { key: 'ce45f248fd5151412bd64f75038996e3febf09a1', class: "text-sm text-gray-600 font-medium" }, "Date Range"), h("select", { key: 'cc7b10bb86619c119bb3d4f5ab5267f733ad7805', class: "border border-gray-300 rounded px-3 py-1.5 text-sm bg-white focus:outline-none focus:ring-2 focus:ring-teal-500 focus:border-teal-500",
186
186
  // value={this.selectedDateRange}
187
- onInput: this.handleDateRangeChange }, h("option", { key: '7886a61f2329e9ed9cc8ee7a2cf6addea173cca1', value: "All" }, "All"), h("option", { key: '582f916607bb0cf80e0bae5bc0d6a2a555629139', value: "Today" }, "Today"), h("option", { key: 'e6b1b8b081ee25a4ed86a41e2de2e18a904b0696', value: "This Week" }, "This Week"), h("option", { key: '9db97f27a005fe23d2e5c60f8920b867a8f6c6e5', value: "This Month" }, "This Month"), h("option", { key: '3328f1c88fe0da23ede3010441f0fe4e2063b2ec', value: "Custom" }, "Custom Range")), h("button", { key: '31041e09d90e476f7c795b29eb6f11b014ff7bfd', class: "p-1.5 border border-gray-300 rounded hover:bg-gray-50" }, h("svg", { key: '1bafb7b5f685358f03d9c4aab68ae30eb49118dd', class: "w-4 h-4 text-gray-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, h("path", { key: 'e59bce624afdfb75f2c0118fc6ff83daab003246', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })))), h("button", { key: '67ff7cd34e44e071f73d5d4e4f46df5ae386aa00', onClick: this.handleFilterReports, class: "bg-teal-600 hover:bg-teal-700 text-white px-4 py-1.5 rounded text-sm font-medium transition-colors" }, "Filter Reports"), h("button", { key: '5b23efc3355a5e4907b06696e29ca1f5b9d5c4f2', onClick: this.handleDownloadAll, class: "flex items-center gap-2 text-gray-600 hover:text-gray-800 text-sm" }, h("svg", { key: 'f787cf0f0759c4536786bc3e1ce2db99324ba085', class: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, h("path", { key: '1a21159e06c0371d4d43abc98a1e5d2c4919fa2f', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" })), "Download All"))), h("table", { key: '7ba170b68b794cd1dc031e801405d0f09c8d0e8f', class: `w-full ${className}` }, this.columns && (h("thead", { key: 'e79458ad7b197620a6ba37084fd009a3685340cc' }, this.columns.map((column, i) => {
187
+ onInput: this.handleDateRangeChange }, h("option", { key: '62474a4b5ad2fd7ba9f0806bf7bb26b487df04ff', value: "All" }, "All"), h("option", { key: 'aba4fb209168ae645d87475f0467ba38ee258f7e', value: "Today" }, "Today"), h("option", { key: '8203884e17bdcd012f90245dde1b9aec9abf16ed', value: "This Week" }, "This Week"), h("option", { key: '7a721035e8d8e31d61869f7513b586e06d06b1e9', value: "This Month" }, "This Month"), h("option", { key: '9a1d085c513236cb746cc9a6ebac1c48c8e35214', value: "Custom" }, "Custom Range")), h("button", { key: '7119eae652a26a19f774fe2a3e2564a993937caa', class: "p-1.5 border border-gray-300 rounded hover:bg-gray-50" }, h("svg", { key: 'c430ab8a591ebd2e9c7cf14dd0f0758419be1178', class: "w-4 h-4 text-gray-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, h("path", { key: '8330e74a528e0890375f9277d8dc7481bb88e8f9', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })))), h("button", { key: '85dc3c28587d7ce09cdb8dfe50e2b44f0f04b7c9', onClick: this.handleFilterReports, class: "bg-teal-600 hover:bg-teal-700 text-white px-4 py-1.5 rounded text-sm font-medium transition-colors" }, "Filter Reports"), h("button", { key: '36d9d5fc49d73a0944c7abf1f5b96932d9789f0b', onClick: this.handleDownloadAll, class: "flex items-center gap-2 text-gray-600 hover:text-gray-800 text-sm" }, h("svg", { key: '81cbf1b31e01c1d4fbba64b53b21bc26146d6f84', class: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, h("path", { key: 'd3c68b2337d4a4ab9a8d218d9aa722814d548e1b', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" })), "Download All"))), h("table", { key: '782e125327cea0381296ab5a3f2e3ddec6f42f24', class: `w-full ${className}` }, this.columns && (h("thead", { key: 'ad3958e4d04f974dd47136da227afb662ff6cc7f' }, this.columns.map((column, i) => {
188
188
  const iconType = getIconType(this.sortTypeArray[i]);
189
189
  const isColumnSortable = !!(this.isSortable &&
190
190
  this.sortableColumns[i]);
191
- return (h("th", { class: "text-left py-3 px-4 text-sm font-medium text-gray-600" }, this.multiselect && i === 0 ? (h("label", { onClick: (e) => {
191
+ return (h("th", { class: "text-left py-3 px-4 text-sm font-medium text-gray-600", "aria-sort": isColumnSortable && this.sortTypeArray[i]
192
+ ? this.sortTypeArray[i] === 'asc'
193
+ ? 'ascending'
194
+ : 'descending'
195
+ : isColumnSortable
196
+ ? 'none'
197
+ : undefined }, this.multiselect && i === 0 ? (h("label", { onClick: (e) => {
192
198
  e.preventDefault();
193
199
  e.stopPropagation();
194
- debugger;
195
200
  if (isColumnSortable) {
196
201
  this.sortBy(i);
197
202
  }
@@ -205,11 +210,11 @@ export class XplorTable {
205
210
  this.selected.some((a) => a), onClick: (e) => {
206
211
  e.stopPropagation();
207
212
  this.selectAll(e);
208
- }, type: "checkbox", value: `select-all-${this.selectAllValue}` }), column, isColumnSortable &&
213
+ }, type: "checkbox", value: `select-all-${this.selectAllValue}`, "aria-label": "Select all rows" }), column, isColumnSortable &&
209
214
  !!this.sortTypeArray[i] && (h("xpl-icon", { icon: iconType, size: 16 })))) : (h("label", { onClick: () => isColumnSortable &&
210
215
  this.sortBy(i), class: isColumnSortable
211
216
  ? 'cursor-pointer'
212
- : '' }, column, isColumnSortable &&
217
+ : '', "aria-label": isColumnSortable ? `Sort by ${column}` : undefined }, column, isColumnSortable &&
213
218
  !!this.sortTypeArray[i] && (h("svg", { width: "11", height: "6", viewBox: "0 0 11 6", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M10.5 5.5L5.5 0.5L0.5 5.5L10.5 5.5Z", fill: "currentColor" }))
214
219
  // <xpl-icon
215
220
  // icon={iconType}
@@ -217,11 +222,11 @@ export class XplorTable {
217
222
  // id="__xpl-icon-sort"
218
223
  // ></xpl-icon>
219
224
  )))));
220
- }))), h("tbody", { key: '138ffddb19a8573fc00894a5e9b981cecbe3ac40' }, paginatedData.map((row, rowNum) => (h("tr", { class: `border-b border-gray-100 hover:bg-gray-50` }, row.map((cell, i) => (h("td", { class: "py-3 px-4 text-sm text-gray-900" }, this.multiselect && i === 0 ? (h("label", { class: "flex items-center gap-2", htmlFor: `__xpl-table-row-${rowNum}` }, h("input", { id: `__xpl-table-row-${rowNum}`, checked: !!this.selected[rowNum], type: "checkbox", onChange: (e) => this.selectOne(e, rowNum), value: this.selectedValues
225
+ }))), h("tbody", { key: '1168d8fb9e1f324b37abdc1e8a899bb14dedf786' }, paginatedData.map((row, rowNum) => (h("tr", { class: `border-b border-gray-100 hover:bg-gray-50` }, row.map((cell, i) => (h("td", { class: "py-3 px-4 text-sm text-gray-900" }, this.multiselect && i === 0 ? (h("label", { class: "flex items-center gap-2", htmlFor: `__xpl-table-row-${rowNum}` }, h("input", { id: `__xpl-table-row-${rowNum}`, checked: !!this.selected[rowNum], type: "checkbox", onChange: (e) => this.selectOne(e, rowNum), value: this.selectedValues
221
226
  .length > 0
222
227
  ? this
223
228
  .selectedValues[rowNum]
224
- : `xpl-table-checkbox-${rowNum}` }), h("div", { innerHTML: cell }))) : (h("div", { innerHTML: cell })))))))))), h("div", { key: 'e82751ff914c2279cecdfbaa176e97f6e935732a', id: "pagination", class: "w-full flex items-center justify-between mt-6 text-sm" }, h("div", { key: '4ed42566de46b43af24a36884832017947f117ef', class: "flex items-center gap-2" }, h("button", { key: 'a0c61305cbcace0eda2964da23085f58a8fc31a7', onClick: () => this.handlePagination('first'), class: "p-1.5 text-gray-400 hover:text-gray-600 disabled:opacity-50", disabled: this.currentPage === 1 }, h("svg", { key: '322225c61fc14d0c6d8a201a3ff07cce094822c7', class: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, h("path", { key: 'ae66792c0cf51383d2657ff5302383e4067761ce', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M11 19l-7-7 7-7m8 14l-7-7 7-7" }))), h("button", { key: 'bc660dbbcf14d7ddf25820c337d212c11804b988', onClick: () => this.handlePagination('prev'), class: "p-1.5 text-gray-400 hover:text-gray-600 disabled:opacity-50", disabled: this.currentPage === 1 }, h("svg", { key: '365d59f74128819af1f163f125e393994a2e69ad', class: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, h("path", { key: '0b7c6305962e722c161d30e3b3ffe804c5d4c73e', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M15 19l-7-7 7-7" })))), h("span", { key: '2e0245cf9e2d23a944492432cd5c33bb915ecd2b', class: "text-gray-600" }, "Page ", this.currentPage, " of ", this.totalPages), h("div", { key: '5692bf81ffa24c2e10c8edb7d7a5ff6655816f7a', class: "flex items-center gap-2" }, h("button", { key: 'f60c4847070a3eb4e19e59c7c25141ce68ddbe81', onClick: () => this.handlePagination('next'), class: "p-1.5 text-gray-400 hover:text-gray-600 disabled:opacity-50", disabled: this.currentPage === this.totalPages }, h("svg", { key: '5f45f52d2dd1718691f582e765dd7cc3aa476dce', class: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, h("path", { key: 'ad63a63e8956c6648781d7160761f8e310c5becc', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M9 5l7 7-7 7" }))), h("button", { key: '2ee1f6498fb0ccb4e2ea9a4e4d7651053b97851c', onClick: () => this.handlePagination('last'), class: "p-1.5 text-gray-400 hover:text-gray-600 disabled:opacity-50", disabled: this.currentPage === this.totalPages }, h("svg", { key: 'e247cc56f3cfc8d870a7891fd0c457645473e3e1', class: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, h("path", { key: '791f2af81bce193fbfcb41985feccec5338cee80', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M13 5l7 7-7 7M5 5l7 7-7 7" })))))))));
229
+ : `xpl-table-checkbox-${rowNum}` }), h("div", { innerHTML: cell }))) : (h("div", { innerHTML: cell })))))))))), h("div", { key: 'dddc5e97acb0270689af29fdfbb0a96018074f48', id: "pagination", class: "w-full flex items-center justify-between mt-6 text-sm" }, h("div", { key: 'e7a37384aacfcd801b904082b028dd7b646b7938', class: "flex items-center gap-2" }, h("button", { key: '0d099c93f970f255015df19a10736c76317f3d58', onClick: () => this.handlePagination('first'), class: "p-1.5 text-gray-400 hover:text-gray-600 disabled:opacity-50", disabled: this.currentPage === 1 }, h("svg", { key: '3ef73d6177480ef3c6bb2e0ba3c11faf93fad40a', class: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, h("path", { key: '61447e4f959176a412b9702dfd5f0c126dfd1dcf', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M11 19l-7-7 7-7m8 14l-7-7 7-7" }))), h("button", { key: '5d996706416e30beeb36b3ccf5f49a0f728c9d46', onClick: () => this.handlePagination('prev'), class: "p-1.5 text-gray-400 hover:text-gray-600 disabled:opacity-50", disabled: this.currentPage === 1 }, h("svg", { key: 'a4e874b1db8cb252698f36497aebbfd8dfef9f7d', class: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, h("path", { key: '9ea64241e49ebfdc43f26317c1403a0dec074a2e', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M15 19l-7-7 7-7" })))), h("span", { key: '25c2b77e2d374c782bef6907bbaa5f7d1c2b9a51', class: "text-gray-600" }, "Page ", this.currentPage, " of ", this.totalPages), h("div", { key: '6586812fde391e75b56da67db64eeece80629dbc', class: "flex items-center gap-2" }, h("button", { key: 'f63385fd3ccae39ecb97b10fc92f204fb3e2fd62', onClick: () => this.handlePagination('next'), class: "p-1.5 text-gray-400 hover:text-gray-600 disabled:opacity-50", disabled: this.currentPage === this.totalPages }, h("svg", { key: '2024b6fa282b30ffcd8870dab2f50c0f1af0f4ef', class: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, h("path", { key: '397312376d85ef4262c42f0f4382371aeb0c5eef', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M9 5l7 7-7 7" }))), h("button", { key: 'bb42b666d217a21b3f2b91b28eaa39a96ad403ba', onClick: () => this.handlePagination('last'), class: "p-1.5 text-gray-400 hover:text-gray-600 disabled:opacity-50", disabled: this.currentPage === this.totalPages }, h("svg", { key: '2e8f28f57ef6fd799559ae70c3c9bc9d7d74cdc3', class: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, h("path", { key: '02270640aefaf430f27acf75465bfc5b30d2a881', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M13 5l7 7-7 7M5 5l7 7-7 7" })))))))));
225
230
  }
226
231
  static get is() { return "xplor-table"; }
227
232
  static get encapsulation() { return "shadow"; }