@skdx/web-components 0.29.0 → 0.31.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 (335) hide show
  1. package/custom-elements.json +46307 -39726
  2. package/dist/alert/AlertAnatomy.cjs +1 -1
  3. package/dist/alert/AlertAnatomy.js +1 -1
  4. package/dist/autocomplete/AutocompleteAnatomy.cjs +1 -1
  5. package/dist/autocomplete/AutocompleteAnatomy.js +1 -1
  6. package/dist/autocomplete/AutocompleteContent.cjs +2 -2
  7. package/dist/autocomplete/AutocompleteContent.d.cts +3 -0
  8. package/dist/autocomplete/AutocompleteContent.d.ts +3 -0
  9. package/dist/autocomplete/AutocompleteContent.js +2 -2
  10. package/dist/avatar/AvatarImage.cjs +12 -6
  11. package/dist/avatar/AvatarImage.js +9 -3
  12. package/dist/backdrop/Backdrop.cjs +1 -0
  13. package/dist/backdrop/Backdrop.d.cts +12 -0
  14. package/dist/backdrop/Backdrop.d.ts +12 -0
  15. package/dist/backdrop/Backdrop.js +1 -0
  16. package/dist/backdrop/index.cjs +1 -0
  17. package/dist/backdrop/index.d.cts +1 -0
  18. package/dist/backdrop/index.d.ts +1 -0
  19. package/dist/backdrop/index.js +1 -0
  20. package/dist/badge/BadgeDelete.cjs +1 -1
  21. package/dist/badge/BadgeDelete.js +1 -1
  22. package/dist/badge/BadgeLabel.cjs +1 -1
  23. package/dist/badge/BadgeLabel.js +2 -2
  24. package/dist/badge/BadgeLeading.cjs +1 -1
  25. package/dist/badge/BadgeLeading.js +2 -2
  26. package/dist/breadcrumb/BreadcrumbLink.cjs +5 -1
  27. package/dist/breadcrumb/BreadcrumbLink.js +8 -4
  28. package/dist/checkbox-card/CheckboxCardAnatomy.cjs +9 -9
  29. package/dist/checkbox-card/CheckboxCardAnatomy.js +9 -9
  30. package/dist/checkbox-group/CheckboxGroupItem.cjs +1 -1
  31. package/dist/checkbox-group/CheckboxGroupItem.d.cts +2 -1
  32. package/dist/checkbox-group/CheckboxGroupItem.d.ts +2 -1
  33. package/dist/checkbox-group/CheckboxGroupItem.js +2 -2
  34. package/dist/checkbox-group/CheckboxGroupSelectAll.cjs +2 -2
  35. package/dist/checkbox-group/CheckboxGroupSelectAll.d.cts +2 -0
  36. package/dist/checkbox-group/CheckboxGroupSelectAll.d.ts +2 -0
  37. package/dist/checkbox-group/CheckboxGroupSelectAll.js +1 -1
  38. package/dist/checkbox-group/indicator.cjs +1 -1
  39. package/dist/checkbox-group/indicator.d.cts +7 -0
  40. package/dist/checkbox-group/indicator.d.ts +7 -0
  41. package/dist/checkbox-group/indicator.js +1 -1
  42. package/dist/chip/Chip.cjs +1 -0
  43. package/dist/chip/Chip.d.cts +11 -0
  44. package/dist/chip/Chip.d.ts +11 -0
  45. package/dist/chip/Chip.js +1 -0
  46. package/dist/chip/index.cjs +1 -0
  47. package/dist/chip/index.d.cts +1 -0
  48. package/dist/chip/index.d.ts +1 -0
  49. package/dist/chip/index.js +1 -0
  50. package/dist/clipboard/ClipboardTrigger.cjs +5 -5
  51. package/dist/clipboard/ClipboardTrigger.d.cts +3 -2
  52. package/dist/clipboard/ClipboardTrigger.d.ts +3 -2
  53. package/dist/clipboard/ClipboardTrigger.js +6 -6
  54. package/dist/combobox/Combobox.cjs +2 -2
  55. package/dist/combobox/Combobox.d.cts +4 -0
  56. package/dist/combobox/Combobox.d.ts +4 -0
  57. package/dist/combobox/Combobox.js +2 -2
  58. package/dist/combobox/ComboboxContent.cjs +1 -1
  59. package/dist/combobox/ComboboxContent.js +2 -2
  60. package/dist/combobox/index.cjs +1 -1
  61. package/dist/combobox/index.d.cts +2 -1
  62. package/dist/combobox/index.d.ts +2 -1
  63. package/dist/combobox/index.js +1 -1
  64. package/dist/date-picker/DatePickerCalendar.cjs +1 -1
  65. package/dist/date-picker/DatePickerCalendar.d.cts +1 -0
  66. package/dist/date-picker/DatePickerCalendar.d.ts +1 -0
  67. package/dist/date-picker/DatePickerCalendar.js +1 -1
  68. package/dist/date-picker/DatePickerContent.cjs +1 -1
  69. package/dist/date-picker/DatePickerContent.js +2 -2
  70. package/dist/date-picker/DatePickerTrigger.cjs +19 -6
  71. package/dist/date-picker/DatePickerTrigger.d.cts +8 -0
  72. package/dist/date-picker/DatePickerTrigger.d.ts +8 -0
  73. package/dist/date-picker/DatePickerTrigger.js +17 -4
  74. package/dist/date-picker/family.cjs +1 -1
  75. package/dist/date-picker/family.js +1 -1
  76. package/dist/date-range-picker/DateRangePicker.cjs +1 -0
  77. package/dist/date-range-picker/DateRangePicker.d.cts +12 -0
  78. package/dist/date-range-picker/DateRangePicker.d.ts +12 -0
  79. package/dist/date-range-picker/DateRangePicker.js +1 -0
  80. package/dist/date-range-picker/index.cjs +1 -0
  81. package/dist/date-range-picker/index.d.cts +1 -0
  82. package/dist/date-range-picker/index.d.ts +1 -0
  83. package/dist/date-range-picker/index.js +1 -0
  84. package/dist/date-time-picker/DateTimePicker.cjs +1 -0
  85. package/dist/date-time-picker/DateTimePicker.d.cts +12 -0
  86. package/dist/date-time-picker/DateTimePicker.d.ts +12 -0
  87. package/dist/date-time-picker/DateTimePicker.js +1 -0
  88. package/dist/date-time-picker/index.cjs +1 -0
  89. package/dist/date-time-picker/index.d.cts +1 -0
  90. package/dist/date-time-picker/index.d.ts +1 -0
  91. package/dist/date-time-picker/index.js +1 -0
  92. package/dist/dialog/DialogAnatomy.cjs +1 -1
  93. package/dist/dialog/DialogAnatomy.js +1 -1
  94. package/dist/dialog/DialogContent.cjs +1 -1
  95. package/dist/dialog/DialogContent.d.cts +4 -0
  96. package/dist/dialog/DialogContent.d.ts +4 -0
  97. package/dist/dialog/DialogContent.js +1 -1
  98. package/dist/dialog/DialogRoot.cjs +1 -1
  99. package/dist/dialog/DialogRoot.js +1 -1
  100. package/dist/dialog/Dialogs.cjs +24 -0
  101. package/dist/dialog/Dialogs.d.cts +43 -0
  102. package/dist/dialog/Dialogs.d.ts +43 -0
  103. package/dist/dialog/Dialogs.js +24 -0
  104. package/dist/dialog/index.cjs +1 -1
  105. package/dist/dialog/index.d.cts +2 -0
  106. package/dist/dialog/index.d.ts +2 -0
  107. package/dist/dialog/index.js +1 -1
  108. package/dist/drawer/DrawerContent.cjs +2 -2
  109. package/dist/drawer/DrawerContent.js +2 -2
  110. package/dist/fab/Fab.cjs +1 -0
  111. package/dist/fab/Fab.d.cts +12 -0
  112. package/dist/fab/Fab.d.ts +12 -0
  113. package/dist/fab/Fab.js +1 -0
  114. package/dist/fab/index.cjs +1 -0
  115. package/dist/fab/index.d.cts +1 -0
  116. package/dist/fab/index.d.ts +1 -0
  117. package/dist/fab/index.js +1 -0
  118. package/dist/field/FieldError.cjs +2 -2
  119. package/dist/field/FieldError.js +1 -1
  120. package/dist/floating-panel/FloatingPanel.cjs +2 -2
  121. package/dist/floating-panel/FloatingPanel.d.cts +3 -0
  122. package/dist/floating-panel/FloatingPanel.d.ts +3 -0
  123. package/dist/floating-panel/FloatingPanel.js +2 -2
  124. package/dist/floating-panel/FloatingPanelContent.cjs +2 -2
  125. package/dist/floating-panel/FloatingPanelContent.d.cts +3 -0
  126. package/dist/floating-panel/FloatingPanelContent.d.ts +3 -0
  127. package/dist/floating-panel/FloatingPanelContent.js +2 -2
  128. package/dist/gauge/Gauge.cjs +1 -0
  129. package/dist/gauge/Gauge.d.cts +12 -0
  130. package/dist/gauge/Gauge.d.ts +12 -0
  131. package/dist/gauge/Gauge.js +1 -0
  132. package/dist/gauge/index.cjs +1 -0
  133. package/dist/gauge/index.d.cts +1 -0
  134. package/dist/gauge/index.d.ts +1 -0
  135. package/dist/gauge/index.js +1 -0
  136. package/dist/grid/Grid.cjs +1 -0
  137. package/dist/grid/Grid.d.cts +12 -0
  138. package/dist/grid/Grid.d.ts +12 -0
  139. package/dist/grid/Grid.js +1 -0
  140. package/dist/grid/index.cjs +1 -0
  141. package/dist/grid/index.d.cts +1 -0
  142. package/dist/grid/index.d.ts +1 -0
  143. package/dist/grid/index.js +1 -0
  144. package/dist/index.cjs +1 -1
  145. package/dist/index.d.cts +16 -3
  146. package/dist/index.d.ts +16 -3
  147. package/dist/index.js +1 -1
  148. package/dist/internal/csv.cjs +2 -0
  149. package/dist/internal/csv.d.cts +43 -0
  150. package/dist/internal/csv.d.ts +43 -0
  151. package/dist/internal/csv.js +2 -0
  152. package/dist/internal/define.cjs +1 -1
  153. package/dist/internal/define.js +1 -1
  154. package/dist/internal/dialogs.cjs +1 -0
  155. package/dist/internal/dialogs.d.cts +96 -0
  156. package/dist/internal/dialogs.d.ts +96 -0
  157. package/dist/internal/dialogs.js +1 -0
  158. package/dist/internal/dismiss.cjs +1 -1
  159. package/dist/internal/dismiss.d.cts +1 -1
  160. package/dist/internal/dismiss.d.ts +1 -1
  161. package/dist/internal/dismiss.js +1 -1
  162. package/dist/internal/dismissal.cjs +1 -1
  163. package/dist/internal/dismissal.d.cts +7 -0
  164. package/dist/internal/dismissal.d.ts +7 -0
  165. package/dist/internal/dismissal.js +1 -1
  166. package/dist/internal/field-core.cjs +1 -1
  167. package/dist/internal/field-core.d.cts +2 -0
  168. package/dist/internal/field-core.d.ts +2 -0
  169. package/dist/internal/field-core.js +1 -1
  170. package/dist/internal/form-associated.cjs +1 -1
  171. package/dist/internal/form-associated.js +1 -1
  172. package/dist/internal/light-dom-styles.cjs +3 -1
  173. package/dist/internal/light-dom-styles.js +2 -0
  174. package/dist/internal/media-query.cjs +1 -0
  175. package/dist/internal/media-query.d.cts +7 -0
  176. package/dist/internal/media-query.d.ts +7 -0
  177. package/dist/internal/media-query.js +1 -0
  178. package/dist/internal/menu-panel.cjs +1 -1
  179. package/dist/internal/menu-panel.js +2 -2
  180. package/dist/internal/options.cjs +1 -1
  181. package/dist/internal/options.d.cts +1 -1
  182. package/dist/internal/options.d.ts +1 -1
  183. package/dist/internal/options.js +1 -1
  184. package/dist/internal/styles.cjs +20 -7
  185. package/dist/internal/styles.d.cts +1 -1
  186. package/dist/internal/styles.d.ts +1 -1
  187. package/dist/internal/styles.js +20 -7
  188. package/dist/label/Label.cjs +1 -1
  189. package/dist/label/Label.d.cts +6 -0
  190. package/dist/label/Label.d.ts +6 -0
  191. package/dist/label/Label.js +1 -1
  192. package/dist/list/ListItem.cjs +13 -8
  193. package/dist/list/ListItem.js +12 -7
  194. package/dist/loading-overlay/LoadingOverlayBackdrop.cjs +1 -1
  195. package/dist/loading-overlay/LoadingOverlayBackdrop.js +1 -1
  196. package/dist/loading-overlay/LoadingOverlayContent.cjs +1 -1
  197. package/dist/loading-overlay/LoadingOverlayContent.js +3 -3
  198. package/dist/mentions/MentionsContent.cjs +1 -1
  199. package/dist/mentions/MentionsContent.js +2 -2
  200. package/dist/menu/MenuAnatomy.cjs +1 -1
  201. package/dist/menu/MenuAnatomy.js +1 -1
  202. package/dist/menu/MenuTrigger.cjs +3 -2
  203. package/dist/menu/MenuTrigger.d.cts +5 -0
  204. package/dist/menu/MenuTrigger.d.ts +5 -0
  205. package/dist/menu/MenuTrigger.js +5 -4
  206. package/dist/navigation-menu/NavigationMenuContent.cjs +2 -2
  207. package/dist/navigation-menu/NavigationMenuContent.js +1 -1
  208. package/dist/paper/Paper.cjs +1 -0
  209. package/dist/paper/Paper.d.cts +11 -0
  210. package/dist/paper/Paper.d.ts +11 -0
  211. package/dist/paper/Paper.js +1 -0
  212. package/dist/paper/index.cjs +1 -0
  213. package/dist/paper/index.d.cts +1 -0
  214. package/dist/paper/index.d.ts +1 -0
  215. package/dist/paper/index.js +1 -0
  216. package/dist/password-input/PasswordInputField.cjs +2 -2
  217. package/dist/password-input/PasswordInputField.js +4 -4
  218. package/dist/popover/PopoverAnchor.cjs +1 -1
  219. package/dist/popover/PopoverAnchor.d.cts +1 -0
  220. package/dist/popover/PopoverAnchor.d.ts +1 -0
  221. package/dist/popover/PopoverAnchor.js +2 -2
  222. package/dist/popover/PopoverContent.cjs +1 -1
  223. package/dist/popover/PopoverContent.js +2 -2
  224. package/dist/popover/PopoverDescription.cjs +7 -2
  225. package/dist/popover/PopoverDescription.js +7 -2
  226. package/dist/popover/PopoverTitle.cjs +7 -2
  227. package/dist/popover/PopoverTitle.js +7 -2
  228. package/dist/popover/family.cjs +1 -1
  229. package/dist/popover/family.js +1 -1
  230. package/dist/progress/ProgressCircle.cjs +2 -2
  231. package/dist/progress/ProgressCircle.js +1 -1
  232. package/dist/progress/ProgressCircleIndicator.cjs +2 -2
  233. package/dist/progress/ProgressCircleIndicator.js +2 -2
  234. package/dist/progress/ProgressIndicator.cjs +2 -2
  235. package/dist/progress/ProgressIndicator.js +1 -1
  236. package/dist/progress/ProgressLabel.cjs +1 -1
  237. package/dist/progress/ProgressLabel.js +1 -1
  238. package/dist/progress/ProgressValue.cjs +1 -1
  239. package/dist/progress/ProgressValue.js +1 -1
  240. package/dist/select/SelectContent.cjs +2 -2
  241. package/dist/select/SelectContent.d.cts +3 -0
  242. package/dist/select/SelectContent.d.ts +3 -0
  243. package/dist/select/SelectContent.js +2 -2
  244. package/dist/speed-dial/SpeedDial.cjs +2 -2
  245. package/dist/speed-dial/SpeedDial.d.cts +6 -0
  246. package/dist/speed-dial/SpeedDial.d.ts +6 -0
  247. package/dist/speed-dial/SpeedDial.js +2 -2
  248. package/dist/speed-dial/SpeedDialAnatomy.cjs +1 -1
  249. package/dist/speed-dial/SpeedDialAnatomy.js +1 -1
  250. package/dist/speed-dial/SpeedDialContent.cjs +1 -1
  251. package/dist/speed-dial/SpeedDialContent.js +2 -2
  252. package/dist/speed-dial/SpeedDialTrigger.cjs +5 -4
  253. package/dist/speed-dial/SpeedDialTrigger.d.cts +5 -0
  254. package/dist/speed-dial/SpeedDialTrigger.d.ts +5 -0
  255. package/dist/speed-dial/SpeedDialTrigger.js +5 -4
  256. package/dist/stack/Stack.cjs +1 -0
  257. package/dist/stack/Stack.d.cts +12 -0
  258. package/dist/stack/Stack.d.ts +12 -0
  259. package/dist/stack/Stack.js +1 -0
  260. package/dist/stack/index.cjs +1 -0
  261. package/dist/stack/index.d.cts +1 -0
  262. package/dist/stack/index.d.ts +1 -0
  263. package/dist/stack/index.js +1 -0
  264. package/dist/table/Table.cjs +4 -4
  265. package/dist/table/Table.d.cts +17 -1
  266. package/dist/table/Table.d.ts +17 -1
  267. package/dist/table/Table.js +5 -5
  268. package/dist/table/TableAnatomy.cjs +5 -5
  269. package/dist/table/TableAnatomy.d.cts +4 -1
  270. package/dist/table/TableAnatomy.d.ts +4 -1
  271. package/dist/table/TableAnatomy.js +11 -11
  272. package/dist/table/TableColumnHeaderFilterInput.cjs +15 -0
  273. package/dist/table/TableColumnHeaderFilterInput.d.cts +37 -0
  274. package/dist/table/TableColumnHeaderFilterInput.d.ts +37 -0
  275. package/dist/table/TableColumnHeaderFilterInput.js +15 -0
  276. package/dist/table/TableExpandTrigger.cjs +5 -5
  277. package/dist/table/TableExpandTrigger.d.cts +1 -0
  278. package/dist/table/TableExpandTrigger.d.ts +1 -0
  279. package/dist/table/TableExpandTrigger.js +5 -5
  280. package/dist/table/TableHeaderCell.cjs +44 -31
  281. package/dist/table/TableHeaderCell.d.cts +18 -0
  282. package/dist/table/TableHeaderCell.d.ts +18 -0
  283. package/dist/table/TableHeaderCell.js +44 -31
  284. package/dist/table/index.cjs +1 -1
  285. package/dist/table/index.d.cts +1 -1
  286. package/dist/table/index.d.ts +1 -1
  287. package/dist/table/index.js +1 -1
  288. package/dist/table/primitives.cjs +1 -1
  289. package/dist/table/primitives.d.cts +1 -0
  290. package/dist/table/primitives.d.ts +1 -0
  291. package/dist/table/primitives.js +1 -1
  292. package/dist/table/types.cjs +1 -1
  293. package/dist/table/types.d.cts +2 -0
  294. package/dist/table/types.d.ts +2 -0
  295. package/dist/tag-group/TagGroupAnatomy.cjs +4 -4
  296. package/dist/tag-group/TagGroupAnatomy.d.cts +5 -1
  297. package/dist/tag-group/TagGroupAnatomy.d.ts +5 -1
  298. package/dist/tag-group/TagGroupAnatomy.js +5 -5
  299. package/dist/tags-input/TagsInputInput.cjs +3 -2
  300. package/dist/tags-input/TagsInputInput.d.cts +5 -0
  301. package/dist/tags-input/TagsInputInput.d.ts +5 -0
  302. package/dist/tags-input/TagsInputInput.js +10 -9
  303. package/dist/text-field/TextField.cjs +8 -4
  304. package/dist/text-field/TextField.js +8 -4
  305. package/dist/timeline/Timeline.cjs +9 -2
  306. package/dist/timeline/Timeline.d.cts +8 -1
  307. package/dist/timeline/Timeline.d.ts +8 -1
  308. package/dist/timeline/Timeline.js +9 -2
  309. package/dist/timeline/TimelineAnatomy.cjs +7 -7
  310. package/dist/timeline/TimelineAnatomy.js +8 -8
  311. package/dist/tooltip/Tooltip.cjs +1 -0
  312. package/dist/tooltip/Tooltip.d.cts +20 -0
  313. package/dist/tooltip/Tooltip.d.ts +20 -0
  314. package/dist/tooltip/Tooltip.js +1 -0
  315. package/dist/tooltip/index.cjs +1 -0
  316. package/dist/tooltip/index.d.cts +1 -0
  317. package/dist/tooltip/index.d.ts +1 -0
  318. package/dist/tooltip/index.js +1 -0
  319. package/dist/tour/TourAnatomy.cjs +1 -1
  320. package/dist/tour/TourAnatomy.d.cts +1 -0
  321. package/dist/tour/TourAnatomy.d.ts +1 -0
  322. package/dist/tour/TourAnatomy.js +1 -1
  323. package/dist/tour/TourContent.cjs +1 -1
  324. package/dist/tour/TourContent.js +2 -2
  325. package/dist/tour/TourNextTrigger.cjs +1 -1
  326. package/dist/tour/TourNextTrigger.js +1 -1
  327. package/dist/tree/Tree.cjs +1 -1
  328. package/dist/tree/Tree.d.cts +1 -1
  329. package/dist/tree/Tree.d.ts +1 -1
  330. package/dist/tree/Tree.js +1 -1
  331. package/dist/tree-select/TreeSelectContent.cjs +2 -2
  332. package/dist/tree-select/TreeSelectContent.d.cts +3 -0
  333. package/dist/tree-select/TreeSelectContent.d.ts +3 -0
  334. package/dist/tree-select/TreeSelectContent.js +2 -2
  335. package/package.json +416 -2
@@ -1,10 +1,10 @@
1
- var _=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var o=(l,d,t,i)=>{for(var e=i>1?void 0:i?v(d,t):d,s=l.length-1,a;s>=0;s--)(a=l[s])&&(e=(i?a(d,t,e):a(e))||e);return i&&e&&_(d,t,e),e};import{css as R,html as A,LitElement as C}from"lit";import{property as r,state as c}from"lit/decorators.js";import{ifDefined as b}from"lit/directives/if-defined.js";import{hasAuthoredParts as E}from"../internal/authored.js";import{customElement as W}from"../internal/define.js";import{derivedParts as w,threadAppearance as I}from"../internal/derive.js";import{emit as u}from"../internal/events.js";import{nextId as M}from"../internal/ids.js";import{announce as x}from"../utils/live-announcer.js";import{TABLE_INTERNAL_UPDATE as B}from"./column-context.js";import{fillTableAnatomy as L,renderTableRows as y,TABLE_ANATOMY_GENERATED as z}from"./TableAnatomy.js";var D=["sort","multiSort","selected","selectionMode","expandedRowIds","columnWidths"],N=["columns","sortable","selectable","expandable","resizable","caption"],$=["data","columns","renderCell","renderExpanded","rowId","getRowLabel","empty","selectable","expandable","sort"];function p(l,d){return d.some(t=>l.has(t))}function g(l){return l==null?new Set:l instanceof Set?l:new Set(Array.isArray(l)?l:[String(l)])}function O(l,d,t){let i=l.find(s=>s.columnKey===d),e="asc";return i!==void 0&&(e=i.direction==="asc"?"desc":null),t?e===null?l.filter(s=>s.columnKey!==d):i===void 0?[...l,{columnKey:d,direction:e}]:l.map(s=>s.columnKey===d?{columnKey:d,direction:e}:s):e===null?[]:[{columnKey:d,direction:e}]}function Y(l,d){return d===null?`${l} not sorted`:`${l} sorted ${d==="asc"?"ascending":"descending"}`}var n=class extends C{constructor(){super(...arguments);this.defaultSort=[];this.multiSort=!1;this.selectionMode="none";this.getSortLabel=Y;this.defaultExpandedRowIds=[];this.defaultColumnWidths={};this.sortable=!1;this.selectable=!1;this.expandable=!1;this.resizable=!1;this.stickyHeader=!1;this.tableId=M("skdx-table");this._uncontrolledSort=[];this._uncontrolledSelected=new Set;this._uncontrolledExpandedRowIds=new Set;this._uncontrolledColumnWidths={};this._initialized=!1;this._anatomyBuilt=!1;this._fillAnatomy=()=>{if(E(this,z)){this._anatomyBuilt=!1;return}this._anatomyBuilt||(this._anatomyBuilt=!0,this.selectable&&this.selectionMode==="none"&&(this.selectionMode="multiple"),L(this))};this._rebuildAnatomy=()=>{this._anatomyBuilt=!1,this._fillAnatomy()};this._anchorRowId=null}connectedCallback(){super.connectedCallback(),this._initialized||(this._uncontrolledSort=this.defaultSort??[],this._uncontrolledSelected=g(this.defaultSelected),this._uncontrolledExpandedRowIds=g(this.defaultExpandedRowIds),this._uncontrolledColumnWidths={...this.defaultColumnWidths},this._initialized=!0),queueMicrotask(this._fillAnatomy)}get sortList(){return this.sort!==void 0?this.sort:this._uncontrolledSort}get currentSelected(){return this.selected!==void 0?g(this.selected):this._uncontrolledSelected}toggleSort(t,i=t){let e=O(this.sortList,t,this.multiSort);this.sort===void 0&&(this._uncontrolledSort=e),u(this,"sort-change",e);let s=e.find(a=>a.columnKey===t)?.direction??null;x(this.getSortLabel(i,s)),this._broadcast(),y(this)}orderedRowIds(){return[...this.querySelectorAll("skdx-table-body skdx-table-row[row-id]")].filter(i=>i.closest("skdx-table")===this).map(i=>i.getAttribute("row-id"))}toggleRow(t,i=!1){if(this.selectionMode==="none")return;let e=this.currentSelected,s=this._anchorRowId;if(i&&this.selectionMode==="multiple"&&s!==null&&s!==t){let h=this.orderedRowIds(),m=h.indexOf(s),f=h.indexOf(t);if(m!==-1&&f!==-1){let S=h.slice(Math.min(m,f),Math.max(m,f)+1);this._commitSelected(new Set([...e,...S]));return}}this._anchorRowId=t;let a;this.selectionMode==="single"?a=e.has(t)&&e.size===1?new Set:new Set([t]):(a=new Set(e),a.has(t)?a.delete(t):a.add(t)),this._commitSelected(a)}_commitSelected(t){let i=this.currentSelected;i.size===t.size&&[...t].every(e=>i.has(e))||(this.selected===void 0&&(this._uncontrolledSelected=t),u(this,"selected-change",[...t]),this._broadcast())}isRowSelected(t){return this.currentSelected.has(t)}toggleAll(t){if(this.selectionMode==="none")return;let i=this.currentSelected,e;if(t.length>0&&t.every(s=>i.has(s))){e=new Set(i);for(let s of t)e.delete(s)}else e=new Set([...i,...t]);this._commitSelected(e)}isAllSelected(t){let i=this.currentSelected;return t.length>0&&t.every(e=>i.has(e))}isSomeSelected(t){let i=this.currentSelected;return t.some(e=>i.has(e))&&!this.isAllSelected(t)}get expandedRowIdSet(){return this.expandedRowIds!==void 0?new Set(this.expandedRowIds):this._uncontrolledExpandedRowIds}get resolvedColumnWidths(){return this.columnWidths!==void 0?this.columnWidths:this._uncontrolledColumnWidths}isRowExpanded(t){return this.expandedRowIdSet.has(t)}toggleRowExpanded(t){let i=new Set(this.expandedRowIdSet);i.has(t)?i.delete(t):i.add(t),this.expandedRowIds===void 0&&(this._uncontrolledExpandedRowIds=i),u(this,"expanded-row-ids-change",[...i]),this._broadcast()}setColumnWidth(t,i){let e=this.resolvedColumnWidths;if(e[t]===i)return;let s={...e,[t]:i};this.columnWidths===void 0&&(this._uncontrolledColumnWidths=s),u(this,"column-widths-change",s),this._broadcast()}commitColumnWidths(){u(this,"column-widths-commit",this.resolvedColumnWidths)}detailRowId(t){return`${this.tableId}-detail-${t}`}_broadcast(){this.dispatchEvent(new CustomEvent(B))}updated(t){p(t,D)&&this._broadcast(),p(t,N)?this._rebuildAnatomy():this._fillAnatomy(),p(t,$)&&y(this),I(this,{size:this.size},[...w(this,"skdx-table-row-select-checkbox"),...w(this,"skdx-table-select-all-checkbox")])}headerCellCount(){let t=this.querySelectorAll("skdx-table-header-cell").length;return t>0?t:this.columnCount??1}render(){return A`<table
1
+ var _=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var r=(l,a,t,n)=>{for(var i=n>1?void 0:n?v(a,t):a,s=l.length-1,d;s>=0;s--)(d=l[s])&&(i=(n?d(a,t,i):d(i))||i);return n&&i&&_(a,t,i),i};import{css as R,html as A,LitElement as C}from"lit";import{property as o,state as c}from"lit/decorators.js";import{ifDefined as w}from"lit/directives/if-defined.js";import{hasAuthoredParts as E}from"../internal/authored.js";import{customElement as M}from"../internal/define.js";import{derivedParts as S,threadAppearance as W}from"../internal/derive.js";import{emit as u}from"../internal/events.js";import{nextId as I}from"../internal/ids.js";import{announce as B}from"../utils/live-announcer.js";import{TABLE_INTERNAL_UPDATE as L}from"./column-context.js";import{fillTableAnatomy as x,renderTableRows as p,TABLE_ANATOMY_GENERATED as z}from"./TableAnatomy.js";var F=["sort","filter","multiSort","selected","selectionMode","expandedRowIds","columnWidths"],D=["columns","sortable","selectable","expandable","resizable","filterable","caption"],N=["data","columns","renderCell","renderExpanded","rowId","getRowLabel","empty","selectable","expandable","sort","filter"];function g(l,a){return a.some(t=>l.has(t))}function b(l){return l==null?new Set:l instanceof Set?l:new Set(Array.isArray(l)?l:[String(l)])}function O(l,a,t){let n=l.find(s=>s.columnKey===a),i="asc";return n!==void 0&&(i=n.direction==="asc"?"desc":null),t?i===null?l.filter(s=>s.columnKey!==a):n===void 0?[...l,{columnKey:a,direction:i}]:l.map(s=>s.columnKey===a?{columnKey:a,direction:i}:s):i===null?[]:[{columnKey:a,direction:i}]}function $(l,a){return a===null?`${l} not sorted`:`${l} sorted ${a==="asc"?"ascending":"descending"}`}var e=class extends C{constructor(){super(...arguments);this.defaultSort=[];this.multiSort=!1;this.defaultFilter={};this.selectionMode="none";this.getSortLabel=$;this.defaultExpandedRowIds=[];this.defaultColumnWidths={};this.sortable=!1;this.selectable=!1;this.expandable=!1;this.resizable=!1;this.filterable=!1;this.stickyHeader=!1;this.tableId=I("skdx-table");this._uncontrolledSort=[];this._uncontrolledSelected=new Set;this._uncontrolledExpandedRowIds=new Set;this._uncontrolledColumnWidths={};this._uncontrolledFilter={};this._initialized=!1;this._anatomyBuilt=!1;this._fillAnatomy=()=>{if(E(this,z)){this._anatomyBuilt=!1;return}this._anatomyBuilt||(this._anatomyBuilt=!0,this.selectable&&this.selectionMode==="none"&&(this.selectionMode="multiple"),x(this))};this._rebuildAnatomy=()=>{this._anatomyBuilt=!1,this._fillAnatomy()};this._anchorRowId=null}connectedCallback(){super.connectedCallback(),this._initialized||(this._uncontrolledSort=this.defaultSort??[],this._uncontrolledSelected=b(this.defaultSelected),this._uncontrolledExpandedRowIds=b(this.defaultExpandedRowIds),this._uncontrolledColumnWidths={...this.defaultColumnWidths},this._uncontrolledFilter={...this.defaultFilter},this._initialized=!0),queueMicrotask(this._fillAnatomy)}get sortList(){return this.sort!==void 0?this.sort:this._uncontrolledSort}get filterMap(){return this.filter!==void 0?this.filter:this._uncontrolledFilter}setColumnFilter(t,n){let i=this.filterMap;if((i[t]??"")===n)return;let s={...i};n===""?delete s[t]:s[t]=n,this.filter===void 0&&(this._uncontrolledFilter=s),u(this,"filter-change",s),this._broadcast(),p(this)}get currentSelected(){return this.selected!==void 0?b(this.selected):this._uncontrolledSelected}toggleSort(t,n=t){let i=O(this.sortList,t,this.multiSort);this.sort===void 0&&(this._uncontrolledSort=i),u(this,"sort-change",i);let s=i.find(d=>d.columnKey===t)?.direction??null;B(this.getSortLabel(n,s)),this._broadcast(),p(this)}orderedRowIds(){return[...this.querySelectorAll("skdx-table-body skdx-table-row[row-id]")].filter(n=>n.closest("skdx-table")===this).map(n=>n.getAttribute("row-id"))}toggleRow(t,n=!1){if(this.selectionMode==="none")return;let i=this.currentSelected,s=this._anchorRowId;if(n&&this.selectionMode==="multiple"&&s!==null&&s!==t){let h=this.orderedRowIds(),f=h.indexOf(s),m=h.indexOf(t);if(f!==-1&&m!==-1){let y=h.slice(Math.min(f,m),Math.max(f,m)+1);this._commitSelected(new Set([...i,...y]));return}}this._anchorRowId=t;let d;this.selectionMode==="single"?d=i.has(t)&&i.size===1?new Set:new Set([t]):(d=new Set(i),d.has(t)?d.delete(t):d.add(t)),this._commitSelected(d)}_commitSelected(t){let n=this.currentSelected;n.size===t.size&&[...t].every(i=>n.has(i))||(this.selected===void 0&&(this._uncontrolledSelected=t),u(this,"selected-change",[...t]),this._broadcast())}isRowSelected(t){return this.currentSelected.has(t)}toggleAll(t){if(this.selectionMode==="none")return;let n=this.currentSelected,i;if(t.length>0&&t.every(s=>n.has(s))){i=new Set(n);for(let s of t)i.delete(s)}else i=new Set([...n,...t]);this._commitSelected(i)}isAllSelected(t){let n=this.currentSelected;return t.length>0&&t.every(i=>n.has(i))}isSomeSelected(t){let n=this.currentSelected;return t.some(i=>n.has(i))&&!this.isAllSelected(t)}get expandedRowIdSet(){return this.expandedRowIds!==void 0?new Set(this.expandedRowIds):this._uncontrolledExpandedRowIds}get resolvedColumnWidths(){return this.columnWidths!==void 0?this.columnWidths:this._uncontrolledColumnWidths}isRowExpanded(t){return this.expandedRowIdSet.has(t)}toggleRowExpanded(t){let n=new Set(this.expandedRowIdSet);n.has(t)?n.delete(t):n.add(t),this.expandedRowIds===void 0&&(this._uncontrolledExpandedRowIds=n),u(this,"expanded-row-ids-change",[...n]),this._broadcast()}setColumnWidth(t,n){let i=this.resolvedColumnWidths;if(i[t]===n)return;let s={...i,[t]:n};this.columnWidths===void 0&&(this._uncontrolledColumnWidths=s),u(this,"column-widths-change",s),this._broadcast()}commitColumnWidths(){u(this,"column-widths-commit",this.resolvedColumnWidths)}detailRowId(t){return`${this.tableId}-detail-${t}`}_broadcast(){this.dispatchEvent(new CustomEvent(L))}updated(t){g(t,F)&&this._broadcast(),g(t,D)?this._rebuildAnatomy():this._fillAnatomy(),g(t,N)&&p(this),W(this,{size:this.size},[...S(this,"skdx-table-row-select-checkbox"),...S(this,"skdx-table-select-all-checkbox")])}headerCellCount(){let t=this.querySelectorAll("skdx-table-header-cell").length;return t>0?t:this.columnCount??1}render(){return A`<table
2
2
  part="table"
3
- aria-rowcount=${b(this.rowCount)}
4
- aria-colcount=${b(this.columnCount)}
3
+ aria-rowcount=${w(this.rowCount)}
4
+ aria-colcount=${w(this.columnCount)}
5
5
  >
6
6
  <slot @slotchange=${this._fillAnatomy}></slot>
7
- </table>`}};n.styles=R`
7
+ </table>`}};e.styles=R`
8
8
  /* The host takes the table's display role; the shadow <table> stays display: contents so the skin's box lands on the host. */
9
9
  :host {
10
10
  display: table;
@@ -13,4 +13,4 @@ var _=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var o=(l,d,t,i
13
13
  :host > table {
14
14
  display: contents;
15
15
  }
16
- `,o([r({attribute:!1})],n.prototype,"sort",2),o([r({type:Array,attribute:"default-sort"})],n.prototype,"defaultSort",2),o([r({type:Number,attribute:"row-count"})],n.prototype,"rowCount",2),o([r({type:Number,attribute:"column-count"})],n.prototype,"columnCount",2),o([r({type:Boolean,attribute:"multi-sort"})],n.prototype,"multiSort",2),o([r({attribute:!1})],n.prototype,"selected",2),o([r({type:Array,attribute:"default-selected"})],n.prototype,"defaultSelected",2),o([r({type:String,attribute:"selection-mode"})],n.prototype,"selectionMode",2),o([r({attribute:!1})],n.prototype,"getSortLabel",2),o([r({attribute:!1})],n.prototype,"expandedRowIds",2),o([r({type:Array,attribute:"default-expanded-row-ids"})],n.prototype,"defaultExpandedRowIds",2),o([r({attribute:!1})],n.prototype,"columnWidths",2),o([r({type:Object,attribute:"default-column-widths"})],n.prototype,"defaultColumnWidths",2),o([r({attribute:!1})],n.prototype,"columns",2),o([r({attribute:!1})],n.prototype,"data",2),o([r({type:Boolean})],n.prototype,"sortable",2),o([r({type:Boolean})],n.prototype,"selectable",2),o([r({type:Boolean})],n.prototype,"expandable",2),o([r({type:Boolean})],n.prototype,"resizable",2),o([r()],n.prototype,"empty",2),o([r()],n.prototype,"caption",2),o([r({attribute:!1})],n.prototype,"renderCell",2),o([r({attribute:!1})],n.prototype,"renderExpanded",2),o([r({attribute:!1})],n.prototype,"rowId",2),o([r({attribute:!1})],n.prototype,"getRowLabel",2),o([r({type:String,reflect:!0,attribute:"data-density"})],n.prototype,"density",2),o([r({type:Boolean,reflect:!0,attribute:"data-sticky-header"})],n.prototype,"stickyHeader",2),o([r({type:String,attribute:"data-size"})],n.prototype,"size",2),o([c()],n.prototype,"_uncontrolledSort",2),o([c()],n.prototype,"_uncontrolledSelected",2),o([c()],n.prototype,"_uncontrolledExpandedRowIds",2),o([c()],n.prototype,"_uncontrolledColumnWidths",2),n=o([W("skdx-table","table","root")],n);export{n as SkdxTable,Y as defaultGetSortLabel};
16
+ `,r([o({attribute:!1})],e.prototype,"sort",2),r([o({type:Array,attribute:"default-sort"})],e.prototype,"defaultSort",2),r([o({type:Number,attribute:"row-count"})],e.prototype,"rowCount",2),r([o({type:Number,attribute:"column-count"})],e.prototype,"columnCount",2),r([o({type:Boolean,attribute:"multi-sort"})],e.prototype,"multiSort",2),r([o({attribute:!1})],e.prototype,"filter",2),r([o({type:Object,attribute:"default-filter"})],e.prototype,"defaultFilter",2),r([o({attribute:!1})],e.prototype,"selected",2),r([o({type:Array,attribute:"default-selected"})],e.prototype,"defaultSelected",2),r([o({type:String,attribute:"selection-mode"})],e.prototype,"selectionMode",2),r([o({attribute:!1})],e.prototype,"getSortLabel",2),r([o({attribute:!1})],e.prototype,"expandedRowIds",2),r([o({type:Array,attribute:"default-expanded-row-ids"})],e.prototype,"defaultExpandedRowIds",2),r([o({attribute:!1})],e.prototype,"columnWidths",2),r([o({type:Object,attribute:"default-column-widths"})],e.prototype,"defaultColumnWidths",2),r([o({attribute:!1})],e.prototype,"columns",2),r([o({attribute:!1})],e.prototype,"data",2),r([o({type:Boolean})],e.prototype,"sortable",2),r([o({type:Boolean})],e.prototype,"selectable",2),r([o({type:Boolean})],e.prototype,"expandable",2),r([o({type:Boolean})],e.prototype,"resizable",2),r([o({type:Boolean})],e.prototype,"filterable",2),r([o()],e.prototype,"empty",2),r([o()],e.prototype,"caption",2),r([o({attribute:!1})],e.prototype,"renderCell",2),r([o({attribute:!1})],e.prototype,"renderExpanded",2),r([o({attribute:!1})],e.prototype,"rowId",2),r([o({attribute:!1})],e.prototype,"getRowLabel",2),r([o({type:String,reflect:!0,attribute:"data-density"})],e.prototype,"density",2),r([o({type:Boolean,reflect:!0,attribute:"data-sticky-header"})],e.prototype,"stickyHeader",2),r([o({type:String,attribute:"data-size"})],e.prototype,"size",2),r([c()],e.prototype,"_uncontrolledSort",2),r([c()],e.prototype,"_uncontrolledSelected",2),r([c()],e.prototype,"_uncontrolledExpandedRowIds",2),r([c()],e.prototype,"_uncontrolledColumnWidths",2),r([c()],e.prototype,"_uncontrolledFilter",2),e=r([M("skdx-table","table","root")],e);export{e as SkdxTable,$ as defaultGetSortLabel};
@@ -1,4 +1,4 @@
1
- "use strict";var m=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var $=Object.prototype.hasOwnProperty;var A=(e,t)=>{for(var a in t)m(e,a,{get:t[a],enumerable:!0})},E=(e,t,a,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of T(t))!$.call(e,n)&&n!==a&&m(e,n,{get:()=>t[n],enumerable:!(r=S(t,n))||r.enumerable});return e};var R=e=>E(m({},"__esModule",{value:!0}),e);var L={};A(L,{TABLE_ANATOMY_GENERATED:()=>i,defaultRowId:()=>h,fillTableAnatomy:()=>z,renderTableRows:()=>y,sortRows:()=>g});module.exports=R(L);var o=require("lit"),f=require("lit/directives/repeat.js"),q=require("./TableCaption.cjs"),D=require("./TableHeader.cjs"),M=require("./TableBody.cjs"),N=require("./TableRow.cjs"),O=require("./TableCell.cjs"),_=require("./TableHeaderCell.cjs"),B=require("./TableRowSelectCheckbox.cjs"),G=require("./TableSelectAllCheckbox.cjs"),H=require("./TableExpandTrigger.cjs"),K=require("./TableExpandedRow.cjs"),V=require("./TableEmpty.cjs"),i="data-skdx-table-generated";function C(e,t){let a=e[t.key]??"";return String(a)}function h(e,t){return typeof e.id=="string"?e.id:String(t)}function I(e,t){if(typeof e=="number"&&typeof t=="number")return e-t;let a=e??"",r=t??"";return String(a).localeCompare(String(r))}function g(e,t){return t.length===0?[...e]:[...e].sort((a,r)=>{for(let{columnKey:n,direction:d}of t){let l=I(a[n],r[n]);if(l!==0)return d==="asc"?l:-l}return 0})}function z(e){let t=[];if(e.caption){let l=document.createElement("skdx-table-caption");l.setAttribute(i,""),l.textContent=e.caption,t.push(l)}let a=e.columns??[],r=document.createElement("skdx-table-header");r.setAttribute(i,"");let n=document.createElement("skdx-table-row");if(e.selectable){let l=document.createElement("skdx-table-header-cell"),s=document.createElement("skdx-table-select-all-checkbox");s.setAttribute("scope","page"),l.append(s),n.append(l)}if(e.expandable){let l=document.createElement("skdx-table-header-cell");l.setAttribute("aria-hidden","true"),n.append(l)}for(let l of a){let s=document.createElement("skdx-table-header-cell");s.setAttribute("column-key",l.key),e.sortable&&l.sortable&&s.setAttribute("sortable",""),e.resizable&&l.resizable&&s.setAttribute("resizable",""),(0,o.render)(l.header??l.key,s,{host:e}),n.append(s)}r.append(n),t.push(r);let d=document.createElement("skdx-table-body");d.setAttribute(i,""),t.push(d),e.replaceChildren(...t),y(e)}function y(e){let t=e.querySelector(`:scope > skdx-table-body[${i}]`);if(!t)return;let a=e.columns??[],r=g(e.data??[],e.sortList),n=a.length+(e.selectable?1:0)+(e.expandable?1:0),d=e.renderCell??C,l=e.renderExpanded,s=e.rowId??h,u=e.getRowLabel,x=e.querySelector(`:scope > skdx-table-header[${i}] skdx-table-select-all-checkbox`);if(x&&(x.rowIds=r.map((c,b)=>s(c,b))),r.length===0){(0,o.render)(e.empty?o.html`<skdx-table-empty col-span=${n}>${e.empty}</skdx-table-empty>`:"",t,{host:e});return}(0,o.render)((0,f.repeat)(r,(c,b)=>s(c,b),(c,b)=>{let p=s(c,b),k=u?u(c,b):`row ${p}`;return o.html`
1
+ "use strict";var u=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var $=Object.prototype.hasOwnProperty;var R=(e,t)=>{for(var n in t)u(e,n,{get:t[n],enumerable:!0})},E=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of A(t))!$.call(e,a)&&a!==n&&u(e,a,{get:()=>t[a],enumerable:!(r=T(t,a))||r.enumerable});return e};var C=e=>E(u({},"__esModule",{value:!0}),e);var z={};R(z,{TABLE_ANATOMY_GENERATED:()=>b,defaultRowId:()=>h,fillTableAnatomy:()=>I,filterRows:()=>y,renderTableRows:()=>w,sortRows:()=>g});module.exports=C(z);var o=require("lit"),f=require("lit/directives/repeat.js"),M=require("./TableCaption.cjs"),O=require("./TableHeader.cjs"),q=require("./TableBody.cjs"),D=require("./TableRow.cjs"),N=require("./TableCell.cjs"),_=require("./TableHeaderCell.cjs"),j=require("./TableRowSelectCheckbox.cjs"),B=require("./TableSelectAllCheckbox.cjs"),G=require("./TableExpandTrigger.cjs"),H=require("./TableExpandedRow.cjs"),K=require("./TableEmpty.cjs"),b="data-skdx-table-generated";function L(e,t){let n=e[t.key]??"";return String(n)}function h(e,t){return typeof e.id=="string"?e.id:String(t)}function v(e,t){if(typeof e=="number"&&typeof t=="number")return e-t;let n=e??"",r=t??"";return String(n).localeCompare(String(r))}function g(e,t){return t.length===0?[...e]:[...e].sort((n,r)=>{for(let{columnKey:a,direction:c}of t){let l=v(n[a],r[a]);if(l!==0)return c==="asc"?l:-l}return 0})}function y(e,t){let n=Object.entries(t).filter(([,r])=>r!=="");return n.length===0?[...e]:e.filter(r=>n.every(([a,c])=>String(r[a]??"").toLowerCase().includes(c.toLowerCase())))}function I(e){let t=[];if(e.caption){let l=document.createElement("skdx-table-caption");l.setAttribute(b,""),l.textContent=e.caption,t.push(l)}let n=e.columns??[],r=document.createElement("skdx-table-header");r.setAttribute(b,"");let a=document.createElement("skdx-table-row");if(e.selectable){let l=document.createElement("skdx-table-header-cell"),s=document.createElement("skdx-table-select-all-checkbox");s.setAttribute("scope","page"),l.append(s),a.append(l)}if(e.expandable){let l=document.createElement("skdx-table-header-cell");l.setAttribute("aria-hidden","true"),a.append(l)}for(let l of n){let s=document.createElement("skdx-table-header-cell");s.setAttribute("column-key",l.key),e.sortable&&l.sortable&&s.setAttribute("sortable",""),e.resizable&&l.resizable&&s.setAttribute("resizable",""),(l.filterable??e.filterable)&&(s.setAttribute("filterable",""),s.setAttribute("filter-label",`Filter ${typeof l.header=="string"?l.header:l.key}`)),(0,o.render)(l.header??l.key,s,{host:e}),a.append(s)}r.append(a),t.push(r);let c=document.createElement("skdx-table-body");c.setAttribute(b,""),t.push(c),e.replaceChildren(...t),w(e)}function w(e){let t=e.querySelector(`:scope > skdx-table-body[${b}]`);if(!t)return;let n=e.columns??[],r=g(y(e.data??[],e.filterMap),e.sortList),a=n.length+(e.selectable?1:0)+(e.expandable?1:0),c=e.renderCell??L,l=e.renderExpanded,s=e.rowId??h,m=e.getRowLabel,x=e.querySelector(`:scope > skdx-table-header[${b}] skdx-table-select-all-checkbox`);if(x&&(x.rowIds=r.map((d,i)=>s(d,i))),r.length===0){(0,o.render)(e.empty?o.html`<skdx-table-empty col-span=${a}>${e.empty}</skdx-table-empty>`:"",t,{host:e});return}(0,o.render)((0,f.repeat)(r,(d,i)=>s(d,i),(d,i)=>{let p=s(d,i),k=m?m(d,i):`row ${p}`;return o.html`
2
2
  <skdx-table-row row-id=${p}>
3
3
  ${e.selectable?o.html`<skdx-table-cell
4
4
  ><skdx-table-row-select-checkbox
@@ -12,11 +12,11 @@
12
12
  label="Details for ${k}"
13
13
  ></skdx-table-expand-trigger
14
14
  ></skdx-table-cell>`:""}
15
- ${a.map(w=>o.html`<skdx-table-cell>${d(c,w)}</skdx-table-cell>`)}
15
+ ${n.map(S=>o.html`<skdx-table-cell>${c(d,S)}</skdx-table-cell>`)}
16
16
  </skdx-table-row>
17
17
  ${e.expandable?o.html`<skdx-table-expanded-row
18
18
  row-id=${p}
19
- col-span=${n}
20
- >${l?l(c):""}</skdx-table-expanded-row
19
+ col-span=${a}
20
+ >${l?l(d):""}</skdx-table-expanded-row
21
21
  >`:""}
22
- `}),t,{host:e})}0&&(module.exports={TABLE_ANATOMY_GENERATED,defaultRowId,fillTableAnatomy,renderTableRows,sortRows});
22
+ `}),t,{host:e})}0&&(module.exports={TABLE_ANATOMY_GENERATED,defaultRowId,fillTableAnatomy,filterRows,renderTableRows,sortRows});
@@ -1,6 +1,6 @@
1
1
  import { type TemplateResult } from 'lit';
2
2
  import type { SkdxTable } from './Table.cjs';
3
- import type { TableSortState } from './types.cjs';
3
+ import type { TableFilterState, TableSortState } from './types.cjs';
4
4
  import './TableCaption.cjs';
5
5
  import './TableHeader.cjs';
6
6
  import './TableBody.cjs';
@@ -22,6 +22,8 @@ export interface SkdxTableColumn {
22
22
  sortable?: boolean;
23
23
  /** Column resize toggle; root's `resizable` gates activation. @default false */
24
24
  resizable?: boolean;
25
+ /** Column filter toggle, overriding the root's `filterable`. @default the root's `filterable` */
26
+ filterable?: boolean;
25
27
  }
26
28
  /** @internal Marks generated direct children of `<skdx-table>`. */
27
29
  export declare const TABLE_ANATOMY_GENERATED = "data-skdx-table-generated";
@@ -33,6 +35,7 @@ export declare function defaultRowId(row: Record<string, unknown>, index: number
33
35
  */
34
36
  export declare function sortRows(data: readonly Record<string, unknown>[], sortList: readonly TableSortState[]): Record<string, unknown>[];
35
37
  /** @internal Builds the optional caption, header row, and empty body; body rows render separately on `data` change. */
38
+ export declare function filterRows(data: readonly Record<string, unknown>[], filterMap: TableFilterState): Record<string, unknown>[];
36
39
  export declare function fillTableAnatomy(root: SkdxTable): void;
37
40
  /** @internal Re-renders generated body rows from `root.data`, using `renderCell`; shows `empty` in place of rows when `data` is empty. */
38
41
  export declare function renderTableRows(root: SkdxTable): void;
@@ -1,6 +1,6 @@
1
1
  import { type TemplateResult } from 'lit';
2
2
  import type { SkdxTable } from './Table.js';
3
- import type { TableSortState } from './types.js';
3
+ import type { TableFilterState, TableSortState } from './types.js';
4
4
  import './TableCaption.js';
5
5
  import './TableHeader.js';
6
6
  import './TableBody.js';
@@ -22,6 +22,8 @@ export interface SkdxTableColumn {
22
22
  sortable?: boolean;
23
23
  /** Column resize toggle; root's `resizable` gates activation. @default false */
24
24
  resizable?: boolean;
25
+ /** Column filter toggle, overriding the root's `filterable`. @default the root's `filterable` */
26
+ filterable?: boolean;
25
27
  }
26
28
  /** @internal Marks generated direct children of `<skdx-table>`. */
27
29
  export declare const TABLE_ANATOMY_GENERATED = "data-skdx-table-generated";
@@ -33,6 +35,7 @@ export declare function defaultRowId(row: Record<string, unknown>, index: number
33
35
  */
34
36
  export declare function sortRows(data: readonly Record<string, unknown>[], sortList: readonly TableSortState[]): Record<string, unknown>[];
35
37
  /** @internal Builds the optional caption, header row, and empty body; body rows render separately on `data` change. */
38
+ export declare function filterRows(data: readonly Record<string, unknown>[], filterMap: TableFilterState): Record<string, unknown>[];
36
39
  export declare function fillTableAnatomy(root: SkdxTable): void;
37
40
  /** @internal Re-renders generated body rows from `root.data`, using `renderCell`; shows `empty` in place of rows when `data` is empty. */
38
41
  export declare function renderTableRows(root: SkdxTable): void;
@@ -1,22 +1,22 @@
1
- import{html as b,render as m}from"lit";import{repeat as h}from"lit/directives/repeat.js";import"./TableCaption.js";import"./TableHeader.js";import"./TableBody.js";import"./TableRow.js";import"./TableCell.js";import"./TableHeaderCell.js";import"./TableRowSelectCheckbox.js";import"./TableSelectAllCheckbox.js";import"./TableExpandTrigger.js";import"./TableExpandedRow.js";import"./TableEmpty.js";var p="data-skdx-table-generated";function g(e,l){let r=e[l.key]??"";return String(r)}function y(e,l){return typeof e.id=="string"?e.id:String(l)}function w(e,l){if(typeof e=="number"&&typeof l=="number")return e-l;let r=e??"",a=l??"";return String(r).localeCompare(String(a))}function S(e,l){return l.length===0?[...e]:[...e].sort((r,a)=>{for(let{columnKey:s,direction:c}of l){let t=w(r[s],a[s]);if(t!==0)return c==="asc"?t:-t}return 0})}function O(e){let l=[];if(e.caption){let t=document.createElement("skdx-table-caption");t.setAttribute(p,""),t.textContent=e.caption,l.push(t)}let r=e.columns??[],a=document.createElement("skdx-table-header");a.setAttribute(p,"");let s=document.createElement("skdx-table-row");if(e.selectable){let t=document.createElement("skdx-table-header-cell"),n=document.createElement("skdx-table-select-all-checkbox");n.setAttribute("scope","page"),t.append(n),s.append(t)}if(e.expandable){let t=document.createElement("skdx-table-header-cell");t.setAttribute("aria-hidden","true"),s.append(t)}for(let t of r){let n=document.createElement("skdx-table-header-cell");n.setAttribute("column-key",t.key),e.sortable&&t.sortable&&n.setAttribute("sortable",""),e.resizable&&t.resizable&&n.setAttribute("resizable",""),m(t.header??t.key,n,{host:e}),s.append(n)}a.append(s),l.push(a);let c=document.createElement("skdx-table-body");c.setAttribute(p,""),l.push(c),e.replaceChildren(...l),T(e)}function T(e){let l=e.querySelector(`:scope > skdx-table-body[${p}]`);if(!l)return;let r=e.columns??[],a=S(e.data??[],e.sortList),s=r.length+(e.selectable?1:0)+(e.expandable?1:0),c=e.renderCell??g,t=e.renderExpanded,n=e.rowId??y,u=e.getRowLabel,x=e.querySelector(`:scope > skdx-table-header[${p}] skdx-table-select-all-checkbox`);if(x&&(x.rowIds=a.map((o,d)=>n(o,d))),a.length===0){m(e.empty?b`<skdx-table-empty col-span=${s}>${e.empty}</skdx-table-empty>`:"",l,{host:e});return}m(h(a,(o,d)=>n(o,d),(o,d)=>{let i=n(o,d),k=u?u(o,d):`row ${i}`;return b`
2
- <skdx-table-row row-id=${i}>
3
- ${e.selectable?b`<skdx-table-cell
1
+ import{html as i,render as u}from"lit";import{repeat as h}from"lit/directives/repeat.js";import"./TableCaption.js";import"./TableHeader.js";import"./TableBody.js";import"./TableRow.js";import"./TableCell.js";import"./TableHeaderCell.js";import"./TableRowSelectCheckbox.js";import"./TableSelectAllCheckbox.js";import"./TableExpandTrigger.js";import"./TableExpandedRow.js";import"./TableEmpty.js";var p="data-skdx-table-generated";function g(e,l){let a=e[l.key]??"";return String(a)}function y(e,l){return typeof e.id=="string"?e.id:String(l)}function w(e,l){if(typeof e=="number"&&typeof l=="number")return e-l;let a=e??"",n=l??"";return String(a).localeCompare(String(n))}function S(e,l){return l.length===0?[...e]:[...e].sort((a,n)=>{for(let{columnKey:s,direction:o}of l){let t=w(a[s],n[s]);if(t!==0)return o==="asc"?t:-t}return 0})}function T(e,l){let a=Object.entries(l).filter(([,n])=>n!=="");return a.length===0?[...e]:e.filter(n=>a.every(([s,o])=>String(n[s]??"").toLowerCase().includes(o.toLowerCase())))}function N(e){let l=[];if(e.caption){let t=document.createElement("skdx-table-caption");t.setAttribute(p,""),t.textContent=e.caption,l.push(t)}let a=e.columns??[],n=document.createElement("skdx-table-header");n.setAttribute(p,"");let s=document.createElement("skdx-table-row");if(e.selectable){let t=document.createElement("skdx-table-header-cell"),r=document.createElement("skdx-table-select-all-checkbox");r.setAttribute("scope","page"),t.append(r),s.append(t)}if(e.expandable){let t=document.createElement("skdx-table-header-cell");t.setAttribute("aria-hidden","true"),s.append(t)}for(let t of a){let r=document.createElement("skdx-table-header-cell");r.setAttribute("column-key",t.key),e.sortable&&t.sortable&&r.setAttribute("sortable",""),e.resizable&&t.resizable&&r.setAttribute("resizable",""),(t.filterable??e.filterable)&&(r.setAttribute("filterable",""),r.setAttribute("filter-label",`Filter ${typeof t.header=="string"?t.header:t.key}`)),u(t.header??t.key,r,{host:e}),s.append(r)}n.append(s),l.push(n);let o=document.createElement("skdx-table-body");o.setAttribute(p,""),l.push(o),e.replaceChildren(...l),A(e)}function A(e){let l=e.querySelector(`:scope > skdx-table-body[${p}]`);if(!l)return;let a=e.columns??[],n=S(T(e.data??[],e.filterMap),e.sortList),s=a.length+(e.selectable?1:0)+(e.expandable?1:0),o=e.renderCell??g,t=e.renderExpanded,r=e.rowId??y,m=e.getRowLabel,x=e.querySelector(`:scope > skdx-table-header[${p}] skdx-table-select-all-checkbox`);if(x&&(x.rowIds=n.map((c,d)=>r(c,d))),n.length===0){u(e.empty?i`<skdx-table-empty col-span=${s}>${e.empty}</skdx-table-empty>`:"",l,{host:e});return}u(h(n,(c,d)=>r(c,d),(c,d)=>{let b=r(c,d),k=m?m(c,d):`row ${b}`;return i`
2
+ <skdx-table-row row-id=${b}>
3
+ ${e.selectable?i`<skdx-table-cell
4
4
  ><skdx-table-row-select-checkbox
5
- row-id=${i}
5
+ row-id=${b}
6
6
  aria-label="Select ${k}"
7
7
  ></skdx-table-row-select-checkbox
8
8
  ></skdx-table-cell>`:""}
9
- ${e.expandable?b`<skdx-table-cell
9
+ ${e.expandable?i`<skdx-table-cell
10
10
  ><skdx-table-expand-trigger
11
- row-id=${i}
11
+ row-id=${b}
12
12
  label="Details for ${k}"
13
13
  ></skdx-table-expand-trigger
14
14
  ></skdx-table-cell>`:""}
15
- ${r.map(f=>b`<skdx-table-cell>${c(o,f)}</skdx-table-cell>`)}
15
+ ${a.map(f=>i`<skdx-table-cell>${o(c,f)}</skdx-table-cell>`)}
16
16
  </skdx-table-row>
17
- ${e.expandable?b`<skdx-table-expanded-row
18
- row-id=${i}
17
+ ${e.expandable?i`<skdx-table-expanded-row
18
+ row-id=${b}
19
19
  col-span=${s}
20
- >${t?t(o):""}</skdx-table-expanded-row
20
+ >${t?t(c):""}</skdx-table-expanded-row
21
21
  >`:""}
22
- `}),l,{host:e})}export{p as TABLE_ANATOMY_GENERATED,y as defaultRowId,O as fillTableAnatomy,T as renderTableRows,S as sortRows};
22
+ `}),l,{host:e})}export{p as TABLE_ANATOMY_GENERATED,y as defaultRowId,N as fillTableAnatomy,T as filterRows,A as renderTableRows,S as sortRows};
@@ -0,0 +1,15 @@
1
+ "use strict";var d=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var g=(r,t)=>{for(var e in t)d(r,e,{get:t[e],enumerable:!0})},E=(r,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of y(t))!b.call(r,o)&&o!==e&&d(r,o,{get:()=>t[o],enumerable:!(i=h(t,o))||i.enumerable});return r};var R=r=>E(d({},"__esModule",{value:!0}),r),c=(r,t,e,i)=>{for(var o=i>1?void 0:i?h(t,e):t,p=r.length-1,u;p>=0;p--)(u=r[p])&&(o=(i?u(t,e,o):u(o))||o);return i&&o&&d(t,e,o),o};var k={};g(k,{SkdxTableColumnHeaderFilterInput:()=>s});module.exports=R(k);var l=require("lit"),v=require("lit/decorators.js"),f=require("../internal/define.cjs"),m=require("../internal/part.cjs"),a=require("../internal/styles.cjs"),n=require("./column-context.cjs");var s=class extends l.LitElement{constructor(){super(...arguments);this.root=null;this.onRootUpdate=()=>this.requestUpdate();this.onInput=e=>{let i=this.resolvedKey;i!==void 0&&this.root?.setColumnFilter(i,e.target.value)}}connectedCallback(){super.connectedCallback(),this.root=(0,n.findTableRoot)(this),this.root?.addEventListener(n.TABLE_INTERNAL_UPDATE,this.onRootUpdate)}disconnectedCallback(){this.root?.removeEventListener(n.TABLE_INTERNAL_UPDATE,this.onRootUpdate),super.disconnectedCallback()}get resolvedKey(){if(this.columnKey!==void 0)return this.columnKey;let e=(0,n.findHeaderCell)(this);return e?.isFilterable?e.resizeColumnKey:void 0}get value(){let e=this.resolvedKey;return e===void 0?"":this.root?.filterMap[e]??""}updated(){(0,m.reflectHostState)(this,{"data-filtered":this.value===""?null:""})}render(){let e=this.resolvedKey;if(e===void 0)return l.nothing;let i=this.value,o=this.getAttribute("aria-label")??(0,n.findHeaderCell)(this)?.filterLabel??`Filter ${e}`;return l.html`
2
+ <input
3
+ type="search"
4
+ part="filter-input"
5
+ data-skdx-table-filter-input
6
+ aria-label=${o}
7
+ data-filtered=${i===""?l.nothing:""}
8
+ .value=${i}
9
+ @input=${this.onInput}
10
+ />
11
+ `}};s.shadowRootOptions=a.delegatesFocusShadowRootOptions,s.styles=[a.resetNativeControl,l.css`
12
+ :host {
13
+ display: contents;
14
+ }
15
+ `,a.controlBoxOnHost],c([(0,v.property)({type:String,attribute:"column-key",converter:n.optionalStringAttribute})],s.prototype,"columnKey",2),s=c([(0,f.customElement)("skdx-table-column-header-filter-input","table","column-header-filter-input")],s);0&&(module.exports={SkdxTableColumnHeaderFilterInput});
@@ -0,0 +1,37 @@
1
+ import { LitElement, nothing, type TemplateResult } from 'lit';
2
+ /**
3
+ * Search input filtering its column: typing writes the column's entry in the
4
+ * table's filter map, clearing removes it. Inherits the column from the
5
+ * enclosing filterable `<skdx-table-header-cell>` unless `column-key` is set.
6
+ *
7
+ * @example
8
+ * ```html
9
+ * <skdx-table-header-cell column-key="name" filterable>
10
+ * Name
11
+ * <skdx-table-column-header-filter-input aria-label="Search names"></skdx-table-column-header-filter-input>
12
+ * </skdx-table-header-cell>
13
+ * ```
14
+ */
15
+ export declare class SkdxTableColumnHeaderFilterInput extends LitElement {
16
+ static shadowRootOptions: ShadowRootInit;
17
+ static styles: import("lit").CSSResult[];
18
+ /**
19
+ * Column this input filters, inherited from the enclosing header cell when omitted.
20
+ * @default undefined — the enclosing filterable header cell's `column-key`.
21
+ */
22
+ columnKey?: string;
23
+ private root;
24
+ private readonly onRootUpdate;
25
+ connectedCallback(): void;
26
+ disconnectedCallback(): void;
27
+ private get resolvedKey();
28
+ private get value();
29
+ private readonly onInput;
30
+ protected updated(): void;
31
+ render(): TemplateResult | typeof nothing;
32
+ }
33
+ declare global {
34
+ interface HTMLElementTagNameMap {
35
+ 'skdx-table-column-header-filter-input': SkdxTableColumnHeaderFilterInput;
36
+ }
37
+ }
@@ -0,0 +1,37 @@
1
+ import { LitElement, nothing, type TemplateResult } from 'lit';
2
+ /**
3
+ * Search input filtering its column: typing writes the column's entry in the
4
+ * table's filter map, clearing removes it. Inherits the column from the
5
+ * enclosing filterable `<skdx-table-header-cell>` unless `column-key` is set.
6
+ *
7
+ * @example
8
+ * ```html
9
+ * <skdx-table-header-cell column-key="name" filterable>
10
+ * Name
11
+ * <skdx-table-column-header-filter-input aria-label="Search names"></skdx-table-column-header-filter-input>
12
+ * </skdx-table-header-cell>
13
+ * ```
14
+ */
15
+ export declare class SkdxTableColumnHeaderFilterInput extends LitElement {
16
+ static shadowRootOptions: ShadowRootInit;
17
+ static styles: import("lit").CSSResult[];
18
+ /**
19
+ * Column this input filters, inherited from the enclosing header cell when omitted.
20
+ * @default undefined — the enclosing filterable header cell's `column-key`.
21
+ */
22
+ columnKey?: string;
23
+ private root;
24
+ private readonly onRootUpdate;
25
+ connectedCallback(): void;
26
+ disconnectedCallback(): void;
27
+ private get resolvedKey();
28
+ private get value();
29
+ private readonly onInput;
30
+ protected updated(): void;
31
+ render(): TemplateResult | typeof nothing;
32
+ }
33
+ declare global {
34
+ interface HTMLElementTagNameMap {
35
+ 'skdx-table-column-header-filter-input': SkdxTableColumnHeaderFilterInput;
36
+ }
37
+ }
@@ -0,0 +1,15 @@
1
+ var c=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var a=(n,r,e,t)=>{for(var o=t>1?void 0:t?h(r,e):r,l=n.length-1,s;l>=0;l--)(s=n[l])&&(o=(t?s(r,e,o):s(o))||o);return t&&o&&c(r,e,o),o};import{css as v,html as f,LitElement as m,nothing as d}from"lit";import{property as y}from"lit/decorators.js";import{customElement as b}from"../internal/define.js";import{reflectHostState as g}from"../internal/part.js";import{controlBoxOnHost as E,delegatesFocusShadowRootOptions as R,resetNativeControl as k}from"../internal/styles.js";import{findHeaderCell as p,findTableRoot as K,optionalStringAttribute as L,TABLE_INTERNAL_UPDATE as u}from"./column-context.js";var i=class extends m{constructor(){super(...arguments);this.root=null;this.onRootUpdate=()=>this.requestUpdate();this.onInput=e=>{let t=this.resolvedKey;t!==void 0&&this.root?.setColumnFilter(t,e.target.value)}}connectedCallback(){super.connectedCallback(),this.root=K(this),this.root?.addEventListener(u,this.onRootUpdate)}disconnectedCallback(){this.root?.removeEventListener(u,this.onRootUpdate),super.disconnectedCallback()}get resolvedKey(){if(this.columnKey!==void 0)return this.columnKey;let e=p(this);return e?.isFilterable?e.resizeColumnKey:void 0}get value(){let e=this.resolvedKey;return e===void 0?"":this.root?.filterMap[e]??""}updated(){g(this,{"data-filtered":this.value===""?null:""})}render(){let e=this.resolvedKey;if(e===void 0)return d;let t=this.value,o=this.getAttribute("aria-label")??p(this)?.filterLabel??`Filter ${e}`;return f`
2
+ <input
3
+ type="search"
4
+ part="filter-input"
5
+ data-skdx-table-filter-input
6
+ aria-label=${o}
7
+ data-filtered=${t===""?d:""}
8
+ .value=${t}
9
+ @input=${this.onInput}
10
+ />
11
+ `}};i.shadowRootOptions=R,i.styles=[k,v`
12
+ :host {
13
+ display: contents;
14
+ }
15
+ `,E],a([y({type:String,attribute:"column-key",converter:L})],i.prototype,"columnKey",2),i=a([b("skdx-table-column-header-filter-input","table","column-header-filter-input")],i);export{i as SkdxTableColumnHeaderFilterInput};
@@ -1,14 +1,14 @@
1
- "use strict";var l=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var R=(i,o)=>{for(var t in o)l(i,t,{get:o[t],enumerable:!0})},y=(i,o,t,e)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of f(o))!g.call(i,r)&&r!==t&&l(i,r,{get:()=>o[r],enumerable:!(e=u(o,r))||e.enumerable});return i};var x=i=>y(l({},"__esModule",{value:!0}),i),s=(i,o,t,e)=>{for(var r=e>1?void 0:e?u(o,t):o,c=i.length-1,h;c>=0;c--)(h=i[c])&&(r=(e?h(o,t,r):h(r))||r);return e&&r&&l(o,t,r),r};var E={};R(E,{SkdxTableExpandTrigger:()=>n});module.exports=x(E);var a=require("lit"),m=require("lit/decorators.js"),p=require("../internal/define.cjs"),b=require("../internal/glyphs.cjs"),v=require("../internal/light-dom-styles.cjs"),d=require("./column-context.cjs");var n=class extends a.LitElement{constructor(){super(...arguments);this.rowId="";this.label="";this.root=null;this.onRootUpdate=()=>this.requestUpdate();this.handleClick=t=>{t.stopPropagation(),(0,d.liveTableRoot)(this.root)?.toggleRowExpanded(this.rowId)}}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.root=this.closest("skdx-table"),this.root&&(0,p.whenUpgraded)(this.root,this.onRootUpdate),this.root?.addEventListener(d.TABLE_INTERNAL_UPDATE,this.onRootUpdate),(0,v.installLightDomStyles)()}disconnectedCallback(){this.root?.removeEventListener(d.TABLE_INTERNAL_UPDATE,this.onRootUpdate),super.disconnectedCallback()}focus(t){this.querySelector(":scope > button")?.focus(t)}firstUpdated(){let t=this.querySelector(":scope > button");if(!t)return;let e=this.firstChild;for(;e&&e!==t;){let r=e.nextSibling;e.nodeType!==Node.COMMENT_NODE&&t.append(e),e=r}}render(){let t=(0,d.liveTableRoot)(this.root),e=t?.isRowExpanded(this.rowId)??!1;return a.html`
1
+ "use strict";var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var y=(i,o)=>{for(var t in o)s(i,t,{get:o[t],enumerable:!0})},x=(i,o,t,e)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of g(o))!R.call(i,r)&&r!==t&&s(i,r,{get:()=>o[r],enumerable:!(e=m(o,r))||e.enumerable});return i};var C=i=>x(s({},"__esModule",{value:!0}),i),l=(i,o,t,e)=>{for(var r=e>1?void 0:e?m(o,t):o,h=i.length-1,c;h>=0;h--)(c=i[h])&&(r=(e?c(o,t,r):c(r))||r);return e&&r&&s(o,t,r),r};var E={};y(E,{SkdxTableExpandTrigger:()=>a});module.exports=C(E);var n=require("lit"),u=require("lit/decorators.js"),b=require("../internal/authored.cjs"),p=require("../internal/define.cjs"),v=require("../internal/glyphs.cjs"),f=require("../internal/light-dom-styles.cjs"),d=require("./column-context.cjs");var a=class extends n.LitElement{constructor(){super(...arguments);this.rowId="";this.label="";this.root=null;this.onRootUpdate=()=>this.requestUpdate();this.handleClick=t=>{t.stopPropagation(),(0,d.liveTableRoot)(this.root)?.toggleRowExpanded(this.rowId)}}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.authoredContent??(this.authoredContent=(0,b.hasAuthoredContent)(this)),this.root=this.closest("skdx-table"),this.root&&(0,p.whenUpgraded)(this.root,this.onRootUpdate),this.root?.addEventListener(d.TABLE_INTERNAL_UPDATE,this.onRootUpdate),(0,f.installLightDomStyles)()}disconnectedCallback(){this.root?.removeEventListener(d.TABLE_INTERNAL_UPDATE,this.onRootUpdate),super.disconnectedCallback()}focus(t){this.querySelector(":scope > button")?.focus(t)}firstUpdated(){let t=this.querySelector(":scope > button");if(!t)return;let e=this.firstChild;for(;e&&e!==t;){let r=e.nextSibling;e.nodeType!==Node.COMMENT_NODE&&t.append(e),e=r}}render(){let t=(0,d.liveTableRoot)(this.root),e=t?.isRowExpanded(this.rowId)??!1;return n.html`
2
2
  <button
3
3
  part="expand-trigger"
4
4
  type="button"
5
5
  data-skdx-table-expand-trigger
6
6
  aria-expanded=${e}
7
- aria-controls=${t?.detailRowId(this.rowId)??a.nothing}
8
- aria-label=${this.label||a.nothing}
7
+ aria-controls=${t?.detailRowId(this.rowId)??n.nothing}
8
+ aria-label=${this.label||n.nothing}
9
9
  data-state=${e?"expanded":"collapsed"}
10
10
  @click=${this.handleClick}
11
11
  >
12
- <slot>${b.chevronRightGlyph}</slot>
12
+ <slot>${this.authoredContent?n.nothing:v.chevronRightGlyph}</slot>
13
13
  </button>
14
- `}};s([(0,m.property)({type:String,attribute:"row-id"})],n.prototype,"rowId",2),s([(0,m.property)({type:String})],n.prototype,"label",2),n=s([(0,p.customElement)("skdx-table-expand-trigger","table","expand-trigger")],n);0&&(module.exports={SkdxTableExpandTrigger});
14
+ `}};l([(0,u.property)({type:String,attribute:"row-id"})],a.prototype,"rowId",2),l([(0,u.property)({type:String})],a.prototype,"label",2),a=l([(0,p.customElement)("skdx-table-expand-trigger","table","expand-trigger")],a);0&&(module.exports={SkdxTableExpandTrigger});
@@ -30,6 +30,7 @@ export declare class SkdxTableExpandTrigger extends LitElement {
30
30
  label: string;
31
31
  private root;
32
32
  private readonly onRootUpdate;
33
+ private authoredContent?;
33
34
  connectedCallback(): void;
34
35
  disconnectedCallback(): void;
35
36
  /** Focus lands on the inner button, which is where the button role is — the job `delegatesFocus` did while this element had a shadow root. */
@@ -30,6 +30,7 @@ export declare class SkdxTableExpandTrigger extends LitElement {
30
30
  label: string;
31
31
  private root;
32
32
  private readonly onRootUpdate;
33
+ private authoredContent?;
33
34
  connectedCallback(): void;
34
35
  disconnectedCallback(): void;
35
36
  /** Focus lands on the inner button, which is where the button role is — the job `delegatesFocus` did while this element had a shadow root. */
@@ -1,14 +1,14 @@
1
- var m=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var n=(a,i,t,e)=>{for(var o=e>1?void 0:e?u(i,t):i,d=a.length-1,l;d>=0;d--)(l=a[d])&&(o=(e?l(i,t,o):l(o))||o);return e&&o&&m(i,t,o),o};import{html as b,LitElement as v,nothing as s}from"lit";import{property as p}from"lit/decorators.js";import{customElement as f,whenUpgraded as g}from"../internal/define.js";import{chevronRightGlyph as R}from"../internal/glyphs.js";import{installLightDomStyles as y}from"../internal/light-dom-styles.js";import{liveTableRoot as c,TABLE_INTERNAL_UPDATE as h}from"./column-context.js";var r=class extends v{constructor(){super(...arguments);this.rowId="";this.label="";this.root=null;this.onRootUpdate=()=>this.requestUpdate();this.handleClick=t=>{t.stopPropagation(),c(this.root)?.toggleRowExpanded(this.rowId)}}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.root=this.closest("skdx-table"),this.root&&g(this.root,this.onRootUpdate),this.root?.addEventListener(h,this.onRootUpdate),y()}disconnectedCallback(){this.root?.removeEventListener(h,this.onRootUpdate),super.disconnectedCallback()}focus(t){this.querySelector(":scope > button")?.focus(t)}firstUpdated(){let t=this.querySelector(":scope > button");if(!t)return;let e=this.firstChild;for(;e&&e!==t;){let o=e.nextSibling;e.nodeType!==Node.COMMENT_NODE&&t.append(e),e=o}}render(){let t=c(this.root),e=t?.isRowExpanded(this.rowId)??!1;return b`
1
+ var u=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var n=(a,i,t,e)=>{for(var o=e>1?void 0:e?m(i,t):i,d=a.length-1,s;d>=0;d--)(s=a[d])&&(o=(e?s(i,t,o):s(o))||o);return e&&o&&u(i,t,o),o};import{html as b,LitElement as v,nothing as l}from"lit";import{property as p}from"lit/decorators.js";import{hasAuthoredContent as f}from"../internal/authored.js";import{customElement as g,whenUpgraded as R}from"../internal/define.js";import{chevronRightGlyph as y}from"../internal/glyphs.js";import{installLightDomStyles as x}from"../internal/light-dom-styles.js";import{liveTableRoot as h,TABLE_INTERNAL_UPDATE as c}from"./column-context.js";var r=class extends v{constructor(){super(...arguments);this.rowId="";this.label="";this.root=null;this.onRootUpdate=()=>this.requestUpdate();this.handleClick=t=>{t.stopPropagation(),h(this.root)?.toggleRowExpanded(this.rowId)}}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.authoredContent??(this.authoredContent=f(this)),this.root=this.closest("skdx-table"),this.root&&R(this.root,this.onRootUpdate),this.root?.addEventListener(c,this.onRootUpdate),x()}disconnectedCallback(){this.root?.removeEventListener(c,this.onRootUpdate),super.disconnectedCallback()}focus(t){this.querySelector(":scope > button")?.focus(t)}firstUpdated(){let t=this.querySelector(":scope > button");if(!t)return;let e=this.firstChild;for(;e&&e!==t;){let o=e.nextSibling;e.nodeType!==Node.COMMENT_NODE&&t.append(e),e=o}}render(){let t=h(this.root),e=t?.isRowExpanded(this.rowId)??!1;return b`
2
2
  <button
3
3
  part="expand-trigger"
4
4
  type="button"
5
5
  data-skdx-table-expand-trigger
6
6
  aria-expanded=${e}
7
- aria-controls=${t?.detailRowId(this.rowId)??s}
8
- aria-label=${this.label||s}
7
+ aria-controls=${t?.detailRowId(this.rowId)??l}
8
+ aria-label=${this.label||l}
9
9
  data-state=${e?"expanded":"collapsed"}
10
10
  @click=${this.handleClick}
11
11
  >
12
- <slot>${R}</slot>
12
+ <slot>${this.authoredContent?l:y}</slot>
13
13
  </button>
14
- `}};n([p({type:String,attribute:"row-id"})],r.prototype,"rowId",2),n([p({type:String})],r.prototype,"label",2),r=n([f("skdx-table-expand-trigger","table","expand-trigger")],r);export{r as SkdxTableExpandTrigger};
14
+ `}};n([p({type:String,attribute:"row-id"})],r.prototype,"rowId",2),n([p({type:String})],r.prototype,"label",2),r=n([g("skdx-table-expand-trigger","table","expand-trigger")],r);export{r as SkdxTableExpandTrigger};
@@ -1,44 +1,57 @@
1
- "use strict";var p=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var k=(n,o)=>{for(var e in o)p(n,e,{get:o[e],enumerable:!0})},W=(n,o,e,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of S(o))!R.call(n,i)&&i!==e&&p(n,i,{get:()=>o[i],enumerable:!(t=b(o,i))||t.enumerable});return n};var K=n=>W(p({},"__esModule",{value:!0}),n),a=(n,o,e,t)=>{for(var i=t>1?void 0:t?b(o,e):o,u=n.length-1,h;u>=0;u--)(h=n[u])&&(i=(t?h(o,e,i):h(i))||i);return t&&i&&p(o,e,i),i};var L={};k(L,{SkdxTableHeaderCell:()=>s});module.exports=K(L);var r=require("lit"),l=require("lit/decorators.js"),y=require("../internal/define.cjs"),g=require("../internal/part.cjs"),z=require("../internal/styles.cjs"),d=require("./column-context.cjs"),v=require("./column-resize.cjs");var s=class extends r.LitElement{constructor(){super(...arguments);this.resizable=!1;this.minWidth=40;this.maxWidth=1e3;this.resizeLabel="Resize column";this.resizeStep=8;this.resize=new v.ColumnResizeController(this);this.root=null;this.onRootUpdate=()=>this.requestUpdate();this.handleSlotChange=()=>this.requestUpdate();this.activate=()=>{let e=this.resizeColumnKey;if(!this.isSortable||e===void 0)return;let t=this.textContent?.trim();this.root?.toggleSort(e,t||e)}}connectedCallback(){super.connectedCallback(),this.root=(0,d.findTableRoot)(this),this.root?.addEventListener(d.TABLE_INTERNAL_UPDATE,this.onRootUpdate)}disconnectedCallback(){this.root?.removeEventListener(d.TABLE_INTERNAL_UPDATE,this.onRootUpdate),super.disconnectedCallback()}get resizeColumnKey(){return this.columnKey}get isSortable(){return(this.sortable??!1)&&this.resizeColumnKey!==void 0}get resizeMinWidth(){return this.minWidth}get resizeMaxWidth(){return this.maxWidth}get resizeStepPx(){return this.resizeStep}get resizeTable(){return this.root}resizeMeasureCell(){return this}updated(){let e=this.resize.storedWidth;this.style.width=e===void 0?"":`${e}px`,e===void 0?this.style.removeProperty("--skdx-table-column-width"):this.style.setProperty("--skdx-table-column-width",`${e}px`),(0,g.reflectHostState)(this,{"aria-sort":this.shadowRoot?.querySelector("th")?.getAttribute("aria-sort")??null})}hasSlotted(e){let t=this.querySelector(e);return t!==null&&t.closest("skdx-table-header-cell")===this}ariaSortFor(e,t){return e?t==="asc"?"ascending":t==="desc"?"descending":"none":r.nothing}render(){let e=this.isSortable,t=this.resizeColumnKey,i=e?this.root?.sortList.find(w=>w.columnKey===t)?.direction:void 0,u=this.ariaSortFor(e,i),h=this.resizable&&this.resizeColumnKey!==void 0,c=this.resize.storedWidth,f=c===void 0?r.nothing:`width:${c}px;--skdx-table-column-width:${c}px`,m=r.html`<slot @slotchange=${this.handleSlotChange}></slot>`,$=e&&!this.hasSlotted("skdx-table-column-header-sort-trigger"),x=h&&!this.hasSlotted("skdx-table-column-resize-trigger");return r.html`
1
+ "use strict";var b=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var L=(o,n)=>{for(var e in n)b(o,e,{get:n[e],enumerable:!0})},F=(o,n,e,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of S(n))!k.call(o,r)&&r!==e&&b(o,r,{get:()=>n[r],enumerable:!(t=y(n,r))||t.enumerable});return o};var K=o=>F(b({},"__esModule",{value:!0}),o),a=(o,n,e,t)=>{for(var r=t>1?void 0:t?y(n,e):n,h=o.length-1,l;h>=0;h--)(l=o[h])&&(r=(t?l(n,e,r):l(r))||r);return t&&r&&b(n,e,r),r};var E={};L(E,{SkdxTableHeaderCell:()=>s});module.exports=K(E);var i=require("lit"),d=require("lit/decorators.js"),g=require("../internal/define.cjs"),z=require("../internal/part.cjs"),v=require("../internal/styles.cjs"),u=require("./column-context.cjs"),$=require("./column-resize.cjs");var s=class extends i.LitElement{constructor(){super(...arguments);this.resizable=!1;this.minWidth=40;this.maxWidth=1e3;this.resizeLabel="Resize column";this.resizeStep=8;this.resize=new $.ColumnResizeController(this);this.root=null;this.onRootUpdate=()=>this.requestUpdate();this.handleSlotChange=()=>this.requestUpdate();this.activate=()=>{let e=this.resizeColumnKey;if(!this.isSortable||e===void 0)return;let t=this.textContent?.trim();this.root?.toggleSort(e,t||e)};this.onFilterInput=e=>{let t=this.resizeColumnKey;t!==void 0&&this.root?.setColumnFilter(t,e.target.value)}}connectedCallback(){super.connectedCallback(),this.root=(0,u.findTableRoot)(this),this.root?.addEventListener(u.TABLE_INTERNAL_UPDATE,this.onRootUpdate)}disconnectedCallback(){this.root?.removeEventListener(u.TABLE_INTERNAL_UPDATE,this.onRootUpdate),super.disconnectedCallback()}get resizeColumnKey(){return this.columnKey}get isSortable(){return(this.sortable??!1)&&this.resizeColumnKey!==void 0}get isFilterable(){return(this.filterable??!1)&&this.resizeColumnKey!==void 0}get filterValue(){let e=this.resizeColumnKey;return e===void 0?"":this.root?.filterMap[e]??""}get resizeMinWidth(){return this.minWidth}get resizeMaxWidth(){return this.maxWidth}get resizeStepPx(){return this.resizeStep}get resizeTable(){return this.root}resizeMeasureCell(){return this}updated(){let e=this.resize.storedWidth;this.style.width=e===void 0?"":`${e}px`,e===void 0?this.style.removeProperty("--skdx-table-column-width"):this.style.setProperty("--skdx-table-column-width",`${e}px`),(0,z.reflectHostState)(this,{"aria-sort":this.shadowRoot?.querySelector("th")?.getAttribute("aria-sort")??null})}hasSlotted(e){let t=this.querySelector(e);return t!==null&&t.closest("skdx-table-header-cell")===this}ariaSortFor(e,t){return e?t==="asc"?"ascending":t==="desc"?"descending":"none":i.nothing}renderFilterInput(e,t){return i.html`
2
+ <input
3
+ type="search"
4
+ part="filter-input"
5
+ data-skdx-table-filter-input
6
+ aria-label=${this.filterLabel??`Filter ${e}`}
7
+ data-filtered=${t===""?i.nothing:""}
8
+ .value=${t}
9
+ @input=${this.onFilterInput}
10
+ />
11
+ `}renderResizer(e){return i.html`
12
+ <span
13
+ part="resizer"
14
+ role="separator"
15
+ aria-orientation="vertical"
16
+ aria-label=${this.resizeLabel}
17
+ aria-valuenow=${Math.round(e??this.minWidth)}
18
+ aria-valuemin=${this.minWidth}
19
+ aria-valuemax=${this.maxWidth}
20
+ tabindex="0"
21
+ data-skdx-table-resizer
22
+ data-dragging=${this.resize.dragging?"":i.nothing}
23
+ @pointerdown=${this.resize.handlePointerDown}
24
+ @pointermove=${this.resize.handlePointerMove}
25
+ @pointerup=${this.resize.handlePointerUp}
26
+ @pointercancel=${this.resize.handlePointerUp}
27
+ @keydown=${this.resize.handleKeyDown}
28
+ @keyup=${this.resize.handleKeyUp}
29
+ ></span>
30
+ `}renderState(){let e=this.isSortable,t=this.resizeColumnKey,r=e?this.root?.sortList.find(m=>m.columnKey===t)?.direction:void 0,h=this.resizable&&t!==void 0,l=this.resize.storedWidth,p=this.isFilterable,c=this.filterValue;return{columnId:t,sortable:e,direction:r,ariaSort:this.ariaSortFor(e,r),canResize:h,width:l,style:l===void 0?i.nothing:`width:${l}px;--skdx-table-column-width:${l}px`,filterable:p,filterValue:c,ownSortButton:e&&!this.hasSlotted("skdx-table-column-header-sort-trigger"),ownResizer:h&&!this.hasSlotted("skdx-table-column-resize-trigger"),ownFilter:p&&!this.hasSlotted("skdx-table-column-header-filter-input")}}render(){let{columnId:e,direction:t,ariaSort:r,canResize:h,width:l,style:p,filterable:c,filterValue:m,ownSortButton:w,ownResizer:R,ownFilter:x}=this.renderState(),f=i.html`<slot @slotchange=${this.handleSlotChange}></slot>`;return i.html`
2
31
  <th
3
32
  part="header-cell"
4
- aria-sort=${u}
5
- data-sort-direction=${i??r.nothing}
6
- data-resizable=${h?"":r.nothing}
7
- style=${f}
33
+ aria-sort=${r}
34
+ data-sort-direction=${t??i.nothing}
35
+ data-filterable=${c?"":i.nothing}
36
+ data-filtered=${c&&m!==""?"":i.nothing}
37
+ data-resizable=${h?"":i.nothing}
38
+ style=${p}
8
39
  >
9
- ${$?r.html`
40
+ ${w?i.html`
10
41
  <button
11
42
  type="button"
12
43
  part="sort-trigger"
13
44
  data-skdx-table-sort-trigger
14
- data-sort-direction=${i??r.nothing}
45
+ data-sort-direction=${t??i.nothing}
15
46
  @click=${this.activate}
16
47
  >
17
- ${m}
48
+ ${f}
18
49
  </button>
19
- `:m}
20
- ${x?r.html`
21
- <span
22
- part="resizer"
23
- role="separator"
24
- aria-orientation="vertical"
25
- aria-label=${this.resizeLabel}
26
- aria-valuenow=${Math.round(c??this.minWidth)}
27
- aria-valuemin=${this.minWidth}
28
- aria-valuemax=${this.maxWidth}
29
- tabindex="0"
30
- data-skdx-table-resizer
31
- data-dragging=${this.resize.dragging?"":r.nothing}
32
- @pointerdown=${this.resize.handlePointerDown}
33
- @pointermove=${this.resize.handlePointerMove}
34
- @pointerup=${this.resize.handlePointerUp}
35
- @pointercancel=${this.resize.handlePointerUp}
36
- @keydown=${this.resize.handleKeyDown}
37
- @keyup=${this.resize.handleKeyUp}
38
- ></span>
39
- `:r.nothing}
50
+ `:f}
51
+ ${x?this.renderFilterInput(e,m):i.nothing}
52
+ ${R?this.renderResizer(l):i.nothing}
40
53
  </th>
41
- `}};s.styles=[z.resetNativeControl,r.css`
54
+ `}};s.styles=[v.resetNativeControl,i.css`
42
55
  /* Host takes the display role, native element gives up its box — see Table.ts. */
43
56
  :host {
44
57
  display: table-cell;
@@ -47,4 +60,4 @@
47
60
  :host > th {
48
61
  display: contents;
49
62
  }
50
- `],a([(0,l.property)({type:String,attribute:"column-key",converter:d.optionalStringAttribute})],s.prototype,"columnKey",2),a([(0,l.property)({type:Boolean})],s.prototype,"sortable",2),a([(0,l.property)({type:Boolean})],s.prototype,"resizable",2),a([(0,l.property)({type:Number,attribute:"min-width"})],s.prototype,"minWidth",2),a([(0,l.property)({type:Number,attribute:"max-width"})],s.prototype,"maxWidth",2),a([(0,l.property)({type:String,attribute:"resize-label"})],s.prototype,"resizeLabel",2),a([(0,l.property)({type:Number,attribute:"resize-step"})],s.prototype,"resizeStep",2),s=a([(0,y.customElement)("skdx-table-header-cell","table","header-cell")],s);0&&(module.exports={SkdxTableHeaderCell});
63
+ `],a([(0,d.property)({type:String,attribute:"column-key",converter:u.optionalStringAttribute})],s.prototype,"columnKey",2),a([(0,d.property)({type:Boolean})],s.prototype,"sortable",2),a([(0,d.property)({type:Boolean})],s.prototype,"filterable",2),a([(0,d.property)({type:String,attribute:"filter-label"})],s.prototype,"filterLabel",2),a([(0,d.property)({type:Boolean})],s.prototype,"resizable",2),a([(0,d.property)({type:Number,attribute:"min-width"})],s.prototype,"minWidth",2),a([(0,d.property)({type:Number,attribute:"max-width"})],s.prototype,"maxWidth",2),a([(0,d.property)({type:String,attribute:"resize-label"})],s.prototype,"resizeLabel",2),a([(0,d.property)({type:Number,attribute:"resize-step"})],s.prototype,"resizeStep",2),s=a([(0,g.customElement)("skdx-table-header-cell","table","header-cell")],s);0&&(module.exports={SkdxTableHeaderCell});
@@ -25,6 +25,16 @@ export declare class SkdxTableHeaderCell extends LitElement implements ColumnRes
25
25
  * @default undefined
26
26
  */
27
27
  sortable?: boolean;
28
+ /**
29
+ * Whether this column can be filtered, deriving a filter input after the label unless one is slotted.
30
+ * @default undefined — not filterable.
31
+ */
32
+ filterable?: boolean;
33
+ /**
34
+ * Accessible name for the derived filter input.
35
+ * @default `Filter ${columnKey}`
36
+ */
37
+ filterLabel?: string;
28
38
  /**
29
39
  * Renders a focusable resize handle driven by pointer drag or Arrow keys.
30
40
  * @default false
@@ -59,6 +69,10 @@ export declare class SkdxTableHeaderCell extends LitElement implements ColumnRes
59
69
  get resizeColumnKey(): string | undefined;
60
70
  /** @internal Whether this column sorts — `sortable`, only when it has an identifier to sort by. */
61
71
  get isSortable(): boolean;
72
+ /** @internal */
73
+ get isFilterable(): boolean;
74
+ /** @internal */
75
+ get filterValue(): string;
62
76
  /** @internal Mirrors `minWidth` for the shared resize controller. */
63
77
  get resizeMinWidth(): number;
64
78
  /** @internal Mirrors `maxWidth` for the shared resize controller. */
@@ -75,7 +89,11 @@ export declare class SkdxTableHeaderCell extends LitElement implements ColumnRes
75
89
  /** Light-DOM children arriving or leaving change which defaults the cell owes. */
76
90
  private readonly handleSlotChange;
77
91
  private readonly activate;
92
+ private readonly onFilterInput;
78
93
  private ariaSortFor;
94
+ private renderFilterInput;
95
+ private renderResizer;
96
+ private renderState;
79
97
  render(): TemplateResult;
80
98
  }
81
99
  declare global {
@@ -25,6 +25,16 @@ export declare class SkdxTableHeaderCell extends LitElement implements ColumnRes
25
25
  * @default undefined
26
26
  */
27
27
  sortable?: boolean;
28
+ /**
29
+ * Whether this column can be filtered, deriving a filter input after the label unless one is slotted.
30
+ * @default undefined — not filterable.
31
+ */
32
+ filterable?: boolean;
33
+ /**
34
+ * Accessible name for the derived filter input.
35
+ * @default `Filter ${columnKey}`
36
+ */
37
+ filterLabel?: string;
28
38
  /**
29
39
  * Renders a focusable resize handle driven by pointer drag or Arrow keys.
30
40
  * @default false
@@ -59,6 +69,10 @@ export declare class SkdxTableHeaderCell extends LitElement implements ColumnRes
59
69
  get resizeColumnKey(): string | undefined;
60
70
  /** @internal Whether this column sorts — `sortable`, only when it has an identifier to sort by. */
61
71
  get isSortable(): boolean;
72
+ /** @internal */
73
+ get isFilterable(): boolean;
74
+ /** @internal */
75
+ get filterValue(): string;
62
76
  /** @internal Mirrors `minWidth` for the shared resize controller. */
63
77
  get resizeMinWidth(): number;
64
78
  /** @internal Mirrors `maxWidth` for the shared resize controller. */
@@ -75,7 +89,11 @@ export declare class SkdxTableHeaderCell extends LitElement implements ColumnRes
75
89
  /** Light-DOM children arriving or leaving change which defaults the cell owes. */
76
90
  private readonly handleSlotChange;
77
91
  private readonly activate;
92
+ private readonly onFilterInput;
78
93
  private ariaSortFor;
94
+ private renderFilterInput;
95
+ private renderResizer;
96
+ private renderState;
79
97
  render(): TemplateResult;
80
98
  }
81
99
  declare global {