@gunkin/uiify 0.0.12-alpha → 0.0.13-alpha

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 (219) hide show
  1. package/dist/components/behavior.css +9 -6
  2. package/dist/components/behavior.css.map +1 -1
  3. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
  4. package/dist/components/breadcrumb/Breadcrumb.js +5 -4
  5. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  6. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  7. package/dist/components/carousel/CarouselMarkup.js +2 -1
  8. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  9. package/dist/components/carousel/client/CarouselClientView.d.ts.map +1 -1
  10. package/dist/components/carousel/client/CarouselClientView.js +1 -0
  11. package/dist/components/carousel/client/CarouselClientView.js.map +1 -1
  12. package/dist/components/carousel/client/carousel-controller.d.ts.map +1 -1
  13. package/dist/components/carousel/client/carousel-controller.js +25 -4
  14. package/dist/components/carousel/client/carousel-controller.js.map +1 -1
  15. package/dist/components/carousel/client/carousel-observer.d.ts.map +1 -1
  16. package/dist/components/carousel/client/carousel-observer.js +40 -0
  17. package/dist/components/carousel/client/carousel-observer.js.map +1 -1
  18. package/dist/components/carousel/fade/fade-controller.d.ts.map +1 -1
  19. package/dist/components/carousel/fade/fade-controller.js +3 -0
  20. package/dist/components/carousel/fade/fade-controller.js.map +1 -1
  21. package/dist/components/carousel/types.d.ts +2 -0
  22. package/dist/components/carousel/types.d.ts.map +1 -1
  23. package/dist/components/checkbox/Checkbox.d.ts +1 -6
  24. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  25. package/dist/components/checkbox/Checkbox.js +2 -52
  26. package/dist/components/checkbox/Checkbox.js.map +1 -1
  27. package/dist/components/drawer/Drawer.d.ts +1 -1
  28. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  29. package/dist/components/drawer/Drawer.js +46 -9
  30. package/dist/components/drawer/Drawer.js.map +1 -1
  31. package/dist/components/drawer/DrawerNative.d.ts +8 -16
  32. package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
  33. package/dist/components/drawer/DrawerNative.js +80 -34
  34. package/dist/components/drawer/DrawerNative.js.map +1 -1
  35. package/dist/components/drawer/drawer-store.d.ts +1 -1
  36. package/dist/components/drawer/drawer-store.d.ts.map +1 -1
  37. package/dist/components/drawer/drawer-store.js +7 -3
  38. package/dist/components/drawer/drawer-store.js.map +1 -1
  39. package/dist/components/drawer/index.d.ts +3 -3
  40. package/dist/components/drawer/index.d.ts.map +1 -1
  41. package/dist/components/drawer/index.js +9 -1
  42. package/dist/components/drawer/index.js.map +1 -1
  43. package/dist/components/drawer/types.d.ts +114 -3
  44. package/dist/components/drawer/types.d.ts.map +1 -1
  45. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  46. package/dist/components/dropdown-menu/DropdownMenu.js +1 -0
  47. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  48. package/dist/components/enhance/dialog-dismiss.d.ts +1 -1
  49. package/dist/components/enhance/dialog-dismiss.d.ts.map +1 -1
  50. package/dist/components/enhance/dialog-dismiss.js +19 -10
  51. package/dist/components/enhance/dialog-dismiss.js.map +1 -1
  52. package/dist/components/enhance/internal/box-observer.d.ts +4 -0
  53. package/dist/components/enhance/internal/box-observer.d.ts.map +1 -0
  54. package/dist/components/enhance/internal/box-observer.js +32 -0
  55. package/dist/components/enhance/internal/box-observer.js.map +1 -0
  56. package/dist/components/enhance/sheet-swipe.d.ts.map +1 -1
  57. package/dist/components/enhance/sheet-swipe.js +42 -14
  58. package/dist/components/enhance/sheet-swipe.js.map +1 -1
  59. package/dist/components/enhance/types.d.ts +5 -0
  60. package/dist/components/enhance/types.d.ts.map +1 -0
  61. package/dist/components/field/Field.d.ts.map +1 -1
  62. package/dist/components/field/Field.js +1 -0
  63. package/dist/components/field/Field.js.map +1 -1
  64. package/dist/components/file-upload/FileUpload.d.ts +4 -7
  65. package/dist/components/file-upload/FileUpload.d.ts.map +1 -1
  66. package/dist/components/file-upload/FileUpload.js +28 -122
  67. package/dist/components/file-upload/FileUpload.js.map +1 -1
  68. package/dist/components/file-upload/FileUploadInput.d.ts +7 -0
  69. package/dist/components/file-upload/FileUploadInput.d.ts.map +1 -0
  70. package/dist/components/file-upload/FileUploadInput.js +60 -0
  71. package/dist/components/file-upload/FileUploadInput.js.map +1 -0
  72. package/dist/components/file-upload/FileUploadRoot.d.ts +8 -0
  73. package/dist/components/file-upload/FileUploadRoot.d.ts.map +1 -0
  74. package/dist/components/file-upload/FileUploadRoot.js +70 -0
  75. package/dist/components/file-upload/FileUploadRoot.js.map +1 -0
  76. package/dist/components/file-upload/file-upload-context.d.ts +3 -0
  77. package/dist/components/file-upload/file-upload-context.d.ts.map +1 -0
  78. package/dist/components/file-upload/file-upload-context.js +8 -0
  79. package/dist/components/file-upload/file-upload-context.js.map +1 -0
  80. package/dist/components/file-upload/index.d.ts +1 -1
  81. package/dist/components/file-upload/index.d.ts.map +1 -1
  82. package/dist/components/file-upload/index.js.map +1 -1
  83. package/dist/components/file-upload/types.d.ts +8 -10
  84. package/dist/components/file-upload/types.d.ts.map +1 -1
  85. package/dist/components/form/Form.d.ts.map +1 -1
  86. package/dist/components/form/Form.js +2 -1
  87. package/dist/components/form/Form.js.map +1 -1
  88. package/dist/components/hover-card/HoverCard.js +1 -1
  89. package/dist/components/hover-card/HoverCard.js.map +1 -1
  90. package/dist/components/index.d.ts +0 -1
  91. package/dist/components/index.d.ts.map +1 -1
  92. package/dist/components/index.js +0 -1
  93. package/dist/components/index.js.map +1 -1
  94. package/dist/components/input/Input.d.ts.map +1 -1
  95. package/dist/components/input/Input.js +1 -1
  96. package/dist/components/input/Input.js.map +1 -1
  97. package/dist/components/internal/choice-family/ChoiceGroup.js +1 -1
  98. package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
  99. package/dist/components/internal/choice-family/types.d.ts +3 -3
  100. package/dist/components/internal/choice-family/types.d.ts.map +1 -1
  101. package/dist/components/internal/native-check-control/NativeCheckControl.d.ts +7 -0
  102. package/dist/components/internal/native-check-control/NativeCheckControl.d.ts.map +1 -0
  103. package/dist/components/internal/native-check-control/NativeCheckControl.js +56 -0
  104. package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -0
  105. package/dist/components/internal/native-check-control/types.d.ts +13 -0
  106. package/dist/components/internal/native-check-control/types.d.ts.map +1 -0
  107. package/dist/components/internal/native-check-control/types.js +1 -0
  108. package/dist/components/number-field/NumberField.d.ts.map +1 -1
  109. package/dist/components/number-field/NumberField.js +11 -2
  110. package/dist/components/number-field/NumberField.js.map +1 -1
  111. package/dist/components/number-field/format.d.ts +1 -0
  112. package/dist/components/number-field/format.d.ts.map +1 -1
  113. package/dist/components/number-field/format.js +18 -6
  114. package/dist/components/number-field/format.js.map +1 -1
  115. package/dist/components/popup/PopupParts.d.ts.map +1 -1
  116. package/dist/components/popup/PopupParts.js +2 -0
  117. package/dist/components/popup/PopupParts.js.map +1 -1
  118. package/dist/components/select/Select.d.ts.map +1 -1
  119. package/dist/components/select/Select.js +1 -1
  120. package/dist/components/select/Select.js.map +1 -1
  121. package/dist/components/skeleton/Skeleton.d.ts.map +1 -1
  122. package/dist/components/skeleton/Skeleton.js +14 -35
  123. package/dist/components/skeleton/Skeleton.js.map +1 -1
  124. package/dist/components/skeleton/types.d.ts +1 -8
  125. package/dist/components/skeleton/types.d.ts.map +1 -1
  126. package/dist/components/table/Table.d.ts +1 -40
  127. package/dist/components/table/Table.d.ts.map +1 -1
  128. package/dist/components/table/Table.js +9 -259
  129. package/dist/components/table/Table.js.map +1 -1
  130. package/dist/components/table/TableShell.d.ts +5 -1
  131. package/dist/components/table/TableShell.d.ts.map +1 -1
  132. package/dist/components/table/TableShell.js +63 -9
  133. package/dist/components/table/TableShell.js.map +1 -1
  134. package/dist/components/table/client/Table.d.ts +30 -0
  135. package/dist/components/table/client/Table.d.ts.map +1 -0
  136. package/dist/components/table/client/Table.js +135 -0
  137. package/dist/components/table/client/Table.js.map +1 -0
  138. package/dist/components/table/client/TableBody.d.ts +7 -0
  139. package/dist/components/table/client/TableBody.d.ts.map +1 -0
  140. package/dist/components/table/client/TableBody.js +35 -0
  141. package/dist/components/table/client/TableBody.js.map +1 -0
  142. package/dist/components/table/client/TableColumnHeader.d.ts +7 -0
  143. package/dist/components/table/client/TableColumnHeader.d.ts.map +1 -0
  144. package/dist/components/table/client/TableColumnHeader.js +69 -0
  145. package/dist/components/table/client/TableColumnHeader.js.map +1 -0
  146. package/dist/components/table/client/TableExpansion.d.ts +11 -0
  147. package/dist/components/table/client/TableExpansion.d.ts.map +1 -0
  148. package/dist/components/table/client/TableExpansion.js +43 -0
  149. package/dist/components/table/client/TableExpansion.js.map +1 -0
  150. package/dist/components/table/client/TableRow.d.ts +7 -0
  151. package/dist/components/table/client/TableRow.d.ts.map +1 -0
  152. package/dist/components/table/client/TableRow.js +95 -0
  153. package/dist/components/table/client/TableRow.js.map +1 -0
  154. package/dist/components/table/client/TableSelection.d.ts +11 -0
  155. package/dist/components/table/client/TableSelection.d.ts.map +1 -0
  156. package/dist/components/table/client/TableSelection.js +48 -0
  157. package/dist/components/table/client/TableSelection.js.map +1 -0
  158. package/dist/components/table/client/table-context.d.ts +3 -0
  159. package/dist/components/table/client/table-context.d.ts.map +1 -0
  160. package/dist/components/table/client/table-context.js +8 -0
  161. package/dist/components/table/client/table-context.js.map +1 -0
  162. package/dist/components/table/client.d.ts +4 -0
  163. package/dist/components/table/client.d.ts.map +1 -0
  164. package/dist/components/table/client.js +30 -0
  165. package/dist/components/table/client.js.map +1 -0
  166. package/dist/components/table/index.d.ts +2 -2
  167. package/dist/components/table/index.d.ts.map +1 -1
  168. package/dist/components/table/index.js +7 -7
  169. package/dist/components/table/index.js.map +1 -1
  170. package/dist/components/table/types.d.ts +42 -15
  171. package/dist/components/table/types.d.ts.map +1 -1
  172. package/dist/components/textarea/Textarea.d.ts.map +1 -1
  173. package/dist/components/textarea/Textarea.js +1 -1
  174. package/dist/components/textarea/Textarea.js.map +1 -1
  175. package/dist/components/tooltip/Tooltip.js +1 -1
  176. package/dist/components/tooltip/Tooltip.js.map +1 -1
  177. package/dist/components/virtual-scroll/VirtualScroll.d.ts.map +1 -1
  178. package/dist/components/virtual-scroll/VirtualScroll.js +54 -34
  179. package/dist/components/virtual-scroll/VirtualScroll.js.map +1 -1
  180. package/dist/components/virtual-scroll/types.d.ts +2 -2
  181. package/dist/components/virtual-scroll/types.d.ts.map +1 -1
  182. package/dist/components/virtual-scroll/types.js.map +1 -1
  183. package/dist/components/virtual-scroll/virtual-scroll-scroll.d.ts.map +1 -1
  184. package/dist/components/virtual-scroll/virtual-scroll-scroll.js +0 -1
  185. package/dist/components/virtual-scroll/virtual-scroll-scroll.js.map +1 -1
  186. package/dist/core/roving-focus.d.ts +2 -1
  187. package/dist/core/roving-focus.d.ts.map +1 -1
  188. package/dist/core/roving-focus.js.map +1 -1
  189. package/dist/core/use-popover.d.ts.map +1 -1
  190. package/dist/core/use-popover.js +6 -1
  191. package/dist/core/use-popover.js.map +1 -1
  192. package/dist/elements/choice/types.d.ts +1 -1
  193. package/dist/elements/choice/types.d.ts.map +1 -1
  194. package/dist/styles/index.css +1 -1
  195. package/dist/styles/tailwind.css +1 -0
  196. package/dist/styles/tokens.css +1 -1
  197. package/package.json +1 -1
  198. package/dist/components/drawer/client-types.d.ts +0 -99
  199. package/dist/components/drawer/client-types.d.ts.map +0 -1
  200. package/dist/components/drawer/client-types.js +0 -1
  201. package/dist/components/enhance/internal/read-box.d.ts +0 -3
  202. package/dist/components/enhance/internal/read-box.d.ts.map +0 -1
  203. package/dist/components/enhance/internal/read-box.js +0 -7
  204. package/dist/components/enhance/internal/read-box.js.map +0 -1
  205. package/dist/components/stepper/Stepper.d.ts +0 -7
  206. package/dist/components/stepper/Stepper.d.ts.map +0 -1
  207. package/dist/components/stepper/Stepper.js +0 -35
  208. package/dist/components/stepper/Stepper.js.map +0 -1
  209. package/dist/components/stepper/index.d.ts +0 -3
  210. package/dist/components/stepper/index.d.ts.map +0 -1
  211. package/dist/components/stepper/index.js +0 -5
  212. package/dist/components/stepper/index.js.map +0 -1
  213. package/dist/components/stepper/types.d.ts +0 -14
  214. package/dist/components/stepper/types.d.ts.map +0 -1
  215. package/dist/components/stepper.d.ts +0 -1
  216. package/dist/components/stepper.js +0 -1
  217. /package/dist/components/{stepper → enhance}/types.js +0 -0
  218. /package/dist/components/{stepper → enhance}/types.js.map +0 -0
  219. /package/dist/components/{drawer/client-types.js.map → internal/native-check-control/types.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/select/Select.tsx"],"sourcesContent":["import type { ElementType, ReactElement, SyntheticEvent } from \"react\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type {\n SelectRootProps,\n SelectContentOwnProps,\n SelectItemProps,\n SelectGroupProps,\n SelectSeparatorProps,\n} from \"./types.js\";\n\nexport function SelectRoot<TAs extends ElementType = \"select\">(\n props: SelectRootProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n value,\n defaultValue,\n onValueChange,\n name,\n disabled = false,\n children: consumerChildren,\n ...consumerProps\n } = props as SelectRootProps<\"select\">;\n\n const isControlled = value !== undefined;\n\n const handleChange = (event: SyntheticEvent<HTMLSelectElement>): void => {\n onValueChange?.(event.currentTarget.value);\n };\n\n const consumerOnChange = (\n consumerProps as Record<string, unknown> & {\n onChange?: (event: SyntheticEvent<HTMLSelectElement>) => void;\n }\n ).onChange;\n\n return useRenderElement({\n as,\n defaultTag: \"select\",\n props: {\n ...consumerProps,\n children: consumerChildren,\n \"data-uiify-select\": \"\",\n \"data-disabled\": disabled ? \"\" : undefined,\n disabled: disabled || undefined,\n name,\n onChange: composeEventHandlers(consumerOnChange, handleChange),\n ...(isControlled ? { value } : defaultValue !== undefined ? { defaultValue } : {}),\n },\n render,\n state: { disabled },\n });\n}\n\nexport function SelectContent(props: SelectContentOwnProps): React.ReactNode {\n return props.children ?? null;\n}\n\nexport function SelectItem<TAs extends ElementType = \"option\">(\n props: SelectItemProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n children,\n disabled = false,\n value,\n ...consumerProps\n } = props as SelectItemProps<\"option\">;\n\n return useRenderElement({\n as,\n defaultTag: \"option\",\n props: {\n ...consumerProps,\n disabled: disabled || undefined,\n value,\n children,\n },\n render,\n state: { disabled },\n });\n}\n\nexport function SelectGroup<TAs extends ElementType = \"optgroup\">(\n props: SelectGroupProps<TAs>,\n): ReactElement | null {\n const { as, render, children, label, ...consumerProps } = props as SelectGroupProps<\"optgroup\">;\n\n return useRenderElement({\n as,\n defaultTag: \"optgroup\",\n props: {\n ...consumerProps,\n label,\n children,\n },\n render,\n state: { label },\n });\n}\nSelectGroup.displayName = \"SelectGroup\";\n\nexport function SelectSeparator<TAs extends ElementType = \"hr\">(\n props: SelectSeparatorProps<TAs>,\n): ReactElement | null {\n const { as, render, ...consumerProps } = props as SelectSeparatorProps<\"hr\">;\n\n return useRenderElement({\n as,\n defaultTag: \"hr\",\n props: { ...consumerProps, \"data-part\": \"separator\" },\n render,\n state: {},\n });\n}\nSelectSeparator.displayName = \"SelectSeparator\";\n\nexport const Select = {\n Content: SelectContent,\n Group: SelectGroup,\n Item: SelectItem,\n Root: SelectRoot,\n Separator: SelectSeparator,\n};\n"],"mappings":"AACA,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AAS1B,SAAS,WACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,UAAU;AAAA,IACV,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,eAAe,UAAU;AAE/B,QAAM,eAAe,CAAC,UAAmD;AACvE,oBAAgB,MAAM,cAAc,KAAK;AAAA,EAC3C;AAEA,QAAM,mBACJ,cAGA;AAEF,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU;AAAA,MACV,qBAAqB;AAAA,MACrB,iBAAiB,WAAW,KAAK;AAAA,MACjC,UAAU,YAAY;AAAA,MACtB;AAAA,MACA,UAAU,qBAAqB,kBAAkB,YAAY;AAAA,MAC7D,GAAI,eAAe,EAAE,MAAM,IAAI,iBAAiB,SAAY,EAAE,aAAa,IAAI,CAAC;AAAA,IAClF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,SAAS;AAAA,EACpB,CAAC;AACH;AAEO,SAAS,cAAc,OAA+C;AAC3E,SAAO,MAAM,YAAY;AAC3B;AAEO,SAAS,WACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU,YAAY;AAAA,MACtB;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,SAAS;AAAA,EACpB,CAAC;AACH;AAEO,SAAS,YACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,UAAU,OAAO,GAAG,cAAc,IAAI;AAE1D,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,MAAM;AAAA,EACjB,CAAC;AACH;AACA,YAAY,cAAc;AAEnB,SAAS,gBACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AAEzC,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO,EAAE,GAAG,eAAe,aAAa,YAAY;AAAA,IACpD;AAAA,IACA,OAAO,CAAC;AAAA,EACV,CAAC;AACH;AACA,gBAAgB,cAAc;AAEvB,MAAM,SAAS;AAAA,EACpB,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,WAAW;AACb;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/select/Select.tsx"],"sourcesContent":["import type { ElementType, ReactElement, SyntheticEvent } from \"react\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type {\n SelectRootProps,\n SelectContentOwnProps,\n SelectItemProps,\n SelectGroupProps,\n SelectSeparatorProps,\n} from \"./types.js\";\n\nexport function SelectRoot<TAs extends ElementType = \"select\">(\n props: SelectRootProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n value,\n defaultValue,\n onValueChange,\n name,\n disabled = false,\n children: consumerChildren,\n ...consumerProps\n } = props as SelectRootProps<\"select\">;\n\n const isControlled = value !== undefined;\n\n const handleChange = (event: SyntheticEvent<HTMLSelectElement>): void => {\n onValueChange?.(event.currentTarget.value);\n };\n\n const consumerOnChange = (\n consumerProps as Record<string, unknown> & {\n onChange?: (event: SyntheticEvent<HTMLSelectElement>) => void;\n }\n ).onChange;\n\n return useRenderElement({\n as,\n defaultTag: \"select\",\n props: {\n ...consumerProps,\n children: consumerChildren,\n \"data-uiify-select\": \"\",\n \"data-disabled\": disabled ? \"\" : undefined,\n disabled: disabled || undefined,\n name,\n onChange: onValueChange\n ? composeEventHandlers(consumerOnChange, handleChange)\n : consumerOnChange,\n ...(isControlled ? { value } : defaultValue !== undefined ? { defaultValue } : {}),\n },\n render,\n state: { disabled },\n });\n}\n\nexport function SelectContent(props: SelectContentOwnProps): React.ReactNode {\n return props.children ?? null;\n}\n\nexport function SelectItem<TAs extends ElementType = \"option\">(\n props: SelectItemProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n children,\n disabled = false,\n value,\n ...consumerProps\n } = props as SelectItemProps<\"option\">;\n\n return useRenderElement({\n as,\n defaultTag: \"option\",\n props: {\n ...consumerProps,\n disabled: disabled || undefined,\n value,\n children,\n },\n render,\n state: { disabled },\n });\n}\n\nexport function SelectGroup<TAs extends ElementType = \"optgroup\">(\n props: SelectGroupProps<TAs>,\n): ReactElement | null {\n const { as, render, children, label, ...consumerProps } = props as SelectGroupProps<\"optgroup\">;\n\n return useRenderElement({\n as,\n defaultTag: \"optgroup\",\n props: {\n ...consumerProps,\n label,\n children,\n },\n render,\n state: { label },\n });\n}\nSelectGroup.displayName = \"SelectGroup\";\n\nexport function SelectSeparator<TAs extends ElementType = \"hr\">(\n props: SelectSeparatorProps<TAs>,\n): ReactElement | null {\n const { as, render, ...consumerProps } = props as SelectSeparatorProps<\"hr\">;\n\n return useRenderElement({\n as,\n defaultTag: \"hr\",\n props: { ...consumerProps, \"data-part\": \"separator\" },\n render,\n state: {},\n });\n}\nSelectSeparator.displayName = \"SelectSeparator\";\n\nexport const Select = {\n Content: SelectContent,\n Group: SelectGroup,\n Item: SelectItem,\n Root: SelectRoot,\n Separator: SelectSeparator,\n};\n"],"mappings":"AACA,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AAS1B,SAAS,WACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,UAAU;AAAA,IACV,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,eAAe,UAAU;AAE/B,QAAM,eAAe,CAAC,UAAmD;AACvE,oBAAgB,MAAM,cAAc,KAAK;AAAA,EAC3C;AAEA,QAAM,mBACJ,cAGA;AAEF,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU;AAAA,MACV,qBAAqB;AAAA,MACrB,iBAAiB,WAAW,KAAK;AAAA,MACjC,UAAU,YAAY;AAAA,MACtB;AAAA,MACA,UAAU,gBACN,qBAAqB,kBAAkB,YAAY,IACnD;AAAA,MACJ,GAAI,eAAe,EAAE,MAAM,IAAI,iBAAiB,SAAY,EAAE,aAAa,IAAI,CAAC;AAAA,IAClF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,SAAS;AAAA,EACpB,CAAC;AACH;AAEO,SAAS,cAAc,OAA+C;AAC3E,SAAO,MAAM,YAAY;AAC3B;AAEO,SAAS,WACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU,YAAY;AAAA,MACtB;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,SAAS;AAAA,EACpB,CAAC;AACH;AAEO,SAAS,YACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,UAAU,OAAO,GAAG,cAAc,IAAI;AAE1D,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,MAAM;AAAA,EACjB,CAAC;AACH;AACA,YAAY,cAAc;AAEnB,SAAS,gBACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AAEzC,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO,EAAE,GAAG,eAAe,aAAa,YAAY;AAAA,IACpD;AAAA,IACA,OAAO,CAAC;AAAA,EACV,CAAC;AACH;AACA,gBAAgB,cAAc;AAEvB,MAAM,SAAS;AAAA,EACpB,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,WAAW;AACb;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/skeleton/Skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,YAAY,CAAC;AAOtE,wBAAgB,QAAQ,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EACtD,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,GACxB,YAAY,GAAG,IAAI,CA0BrB;yBA5Be,QAAQ"}
1
+ {"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/skeleton/Skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMhD,wBAAgB,QAAQ,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EACtD,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,GACxB,YAAY,GAAG,IAAI,CAiCrB;yBAnCe,QAAQ"}
@@ -1,7 +1,5 @@
1
- import { jsx } from "react/jsx-runtime";
2
1
  import { useRenderElement } from "@gunkin/uiify/core/render";
3
2
  function toCssSize(value) {
4
- if (value === void 0) return void 0;
5
3
  return typeof value === "number" ? `${value}px` : value;
6
4
  }
7
5
  function Skeleton(props) {
@@ -12,52 +10,33 @@ function Skeleton(props) {
12
10
  height,
13
11
  loading = true,
14
12
  width,
13
+ variant,
15
14
  children,
16
15
  ...consumerProps
17
16
  } = props;
18
- if (!loading) {
19
- return children;
20
- }
21
- return /* @__PURE__ */ jsx(
22
- SkeletonLoading,
23
- {
24
- as,
25
- circle,
26
- elementProps: consumerProps,
27
- height,
28
- render,
29
- width
30
- }
31
- );
32
- }
33
- Skeleton.displayName = "Skeleton";
34
- function SkeletonLoading({
35
- as,
36
- circle,
37
- elementProps,
38
- height,
39
- render,
40
- width
41
- }) {
42
- const { style: consumerStyle, ...rest } = elementProps;
17
+ const style = consumerProps.style;
43
18
  return useRenderElement({
44
19
  as,
45
20
  defaultTag: "div",
46
21
  props: {
47
- ...rest,
48
- "aria-hidden": true,
22
+ ...consumerProps,
23
+ "aria-hidden": loading ? true : void 0,
24
+ "data-uiify-skeleton": "",
49
25
  "data-shape": circle ? "circle" : "rect",
50
- "data-state": "loading",
26
+ "data-state": loading ? "loading" : "loaded",
27
+ ...variant !== void 0 ? { "data-variant": variant } : {},
51
28
  style: {
52
- ...consumerStyle,
53
- "--skeleton-h": toCssSize(height) ?? "",
54
- "--skeleton-w": toCssSize(width) ?? ""
55
- }
29
+ ...style,
30
+ ...width !== void 0 ? { "--uiify-skeleton-w": toCssSize(width) } : {},
31
+ ...height !== void 0 ? { "--uiify-skeleton-h": toCssSize(height) } : {}
32
+ },
33
+ children: loading ? void 0 : children
56
34
  },
57
35
  render,
58
- state: { loading: true }
36
+ state: { loading }
59
37
  });
60
38
  }
39
+ Skeleton.displayName = "Skeleton";
61
40
  export {
62
41
  Skeleton
63
42
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/skeleton/Skeleton.tsx"],"sourcesContent":["import type { CSSProperties, ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type { SkeletonProps, SkeletonLoadingProps } from \"./types.js\";\n\nfunction toCssSize(value: number | string | undefined): string | undefined {\n if (value === undefined) return undefined;\n return typeof value === \"number\" ? `${value}px` : value;\n}\n\nexport function Skeleton<TAs extends ElementType = \"div\">(\n props: SkeletonProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n circle = false,\n height,\n loading = true,\n width,\n children,\n ...consumerProps\n } = props as SkeletonProps<\"div\">;\n\n if (!loading) {\n return children as ReactElement | null;\n }\n\n return (\n <SkeletonLoading\n as={as}\n circle={circle}\n elementProps={consumerProps}\n height={height}\n render={render}\n width={width}\n />\n );\n}\nSkeleton.displayName = \"Skeleton\";\n\nfunction SkeletonLoading({\n as,\n circle,\n elementProps,\n height,\n render,\n width,\n}: SkeletonLoadingProps): ReactElement | null {\n const { style: consumerStyle, ...rest } = elementProps;\n\n return useRenderElement({\n as,\n defaultTag: \"div\",\n props: {\n ...rest,\n \"aria-hidden\": true,\n \"data-shape\": circle ? \"circle\" : \"rect\",\n \"data-state\": \"loading\",\n style: {\n ...(consumerStyle as CSSProperties | undefined),\n \"--skeleton-h\": toCssSize(height) ?? \"\",\n \"--skeleton-w\": toCssSize(width) ?? \"\",\n } as CSSProperties,\n },\n render,\n state: { loading: true },\n });\n}\n"],"mappings":"AA4BI;AA3BJ,SAAS,wBAAwB;AAGjC,SAAS,UAAU,OAAwD;AACzE,MAAI,UAAU,OAAW,QAAO;AAChC,SAAO,OAAO,UAAU,WAAW,GAAG,KAAK,OAAO;AACpD;AAEO,SAAS,SACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;AACA,SAAS,cAAc;AAEvB,SAAS,gBAAgB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA8C;AAC5C,QAAM,EAAE,OAAO,eAAe,GAAG,KAAK,IAAI;AAE1C,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,eAAe;AAAA,MACf,cAAc,SAAS,WAAW;AAAA,MAClC,cAAc;AAAA,MACd,OAAO;AAAA,QACL,GAAI;AAAA,QACJ,gBAAgB,UAAU,MAAM,KAAK;AAAA,QACrC,gBAAgB,UAAU,KAAK,KAAK;AAAA,MACtC;AAAA,IACF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,SAAS,KAAK;AAAA,EACzB,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/skeleton/Skeleton.tsx"],"sourcesContent":["import type { CSSProperties, ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type { SkeletonProps } from \"./types.js\";\n\nfunction toCssSize(value: number | string | undefined): string | undefined {\n return typeof value === \"number\" ? `${value}px` : value;\n}\n\nexport function Skeleton<TAs extends ElementType = \"div\">(\n props: SkeletonProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n circle = false,\n height,\n loading = true,\n width,\n variant,\n children,\n ...consumerProps\n } = props as SkeletonProps<\"div\">;\n const style = (consumerProps as { style?: CSSProperties }).style;\n return useRenderElement({\n as,\n defaultTag: \"div\",\n props: {\n ...consumerProps,\n \"aria-hidden\": loading ? true : undefined,\n \"data-uiify-skeleton\": \"\",\n \"data-shape\": circle ? \"circle\" : \"rect\",\n \"data-state\": loading ? \"loading\" : \"loaded\",\n ...(variant !== undefined ? { \"data-variant\": variant } : {}),\n style: {\n ...style,\n ...(width !== undefined ? { \"--uiify-skeleton-w\": toCssSize(width) } : {}),\n ...(height !== undefined ? { \"--uiify-skeleton-h\": toCssSize(height) } : {}),\n } as CSSProperties,\n children: loading ? undefined : children,\n },\n render,\n state: { loading },\n });\n}\nSkeleton.displayName = \"Skeleton\";\n"],"mappings":"AACA,SAAS,wBAAwB;AAGjC,SAAS,UAAU,OAAwD;AACzE,SAAO,OAAO,UAAU,WAAW,GAAG,KAAK,OAAO;AACpD;AAEO,SAAS,SACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,QAAS,cAA4C;AAC3D,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,eAAe,UAAU,OAAO;AAAA,MAChC,uBAAuB;AAAA,MACvB,cAAc,SAAS,WAAW;AAAA,MAClC,cAAc,UAAU,YAAY;AAAA,MACpC,GAAI,YAAY,SAAY,EAAE,gBAAgB,QAAQ,IAAI,CAAC;AAAA,MAC3D,OAAO;AAAA,QACL,GAAG;AAAA,QACH,GAAI,UAAU,SAAY,EAAE,sBAAsB,UAAU,KAAK,EAAE,IAAI,CAAC;AAAA,QACxE,GAAI,WAAW,SAAY,EAAE,sBAAsB,UAAU,MAAM,EAAE,IAAI,CAAC;AAAA,MAC5E;AAAA,MACA,UAAU,UAAU,SAAY;AAAA,IAClC;AAAA,IACA;AAAA,IACA,OAAO,EAAE,QAAQ;AAAA,EACnB,CAAC;AACH;AACA,SAAS,cAAc;","names":[]}
@@ -4,18 +4,11 @@ export interface SkeletonOwnProps {
4
4
  readonly circle?: boolean;
5
5
  readonly height?: number | string;
6
6
  readonly loading?: boolean;
7
+ readonly variant?: "pulse" | "shimmer" | "none";
7
8
  readonly width?: number | string;
8
9
  readonly children?: ReactNode;
9
10
  }
10
11
  export type SkeletonProps<TAs extends ElementType = "div"> = RenderableProps<TAs, SkeletonOwnProps, {
11
12
  loading: boolean;
12
13
  }, HTMLElement>;
13
- export interface SkeletonLoadingProps {
14
- readonly as: ElementType | undefined;
15
- readonly circle: boolean;
16
- readonly elementProps: Record<string, unknown>;
17
- readonly height: number | string | undefined;
18
- readonly render: SkeletonProps<"div">["render"] | undefined;
19
- readonly width: number | string | undefined;
20
- }
21
14
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/skeleton/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED,MAAM,MAAM,aAAa,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC1E,GAAG,EACH,gBAAgB,EAChB;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,EACpB,WAAW,CACZ,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC7C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/skeleton/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED,MAAM,MAAM,aAAa,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC1E,GAAG,EACH,gBAAgB,EAChB;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,EACpB,WAAW,CACZ,CAAC"}
@@ -1,41 +1,2 @@
1
- import type { ElementType, ReactElement } from "react";
2
- import { TableBody as TableBodyElement, TableCaption, TableCell, TableColumnHeader as TableColumnHeaderElement, TableHeader } from "./TableShell.js";
3
- import type { TableRootProps, TableRowProps, TableRowSelectOwnProps } from "./types.js";
4
- export type { SelectionMode, SortDescriptor } from "./types.js";
5
- export { TableCaption, TableCell, TableHeader };
6
- export declare function TableRoot<TAs extends ElementType = "table">(props: TableRootProps<TAs>): ReactElement | null;
7
- export declare namespace TableRoot {
8
- var displayName: string;
9
- }
10
- export declare function TableBody(props: React.ComponentProps<typeof TableBodyElement>): ReactElement | null;
11
- export declare namespace TableBody {
12
- var displayName: string;
13
- }
14
- export declare function TableRow(props: TableRowProps): ReactElement | null;
15
- export declare namespace TableRow {
16
- var displayName: string;
17
- }
18
- export declare function TableColumnHeader(props: React.ComponentProps<typeof TableColumnHeaderElement>): ReactElement | null;
19
- export declare namespace TableColumnHeader {
20
- var displayName: string;
21
- }
22
- export declare function TableSelectAll(): ReactElement;
23
- export declare namespace TableSelectAll {
24
- var displayName: string;
25
- }
26
- export declare function TableRowSelect({ rowId }: TableRowSelectOwnProps): ReactElement;
27
- export declare namespace TableRowSelect {
28
- var displayName: string;
29
- }
30
- export declare const Table: {
31
- Body: typeof TableBody;
32
- Caption: typeof TableCaption;
33
- Cell: typeof TableCell;
34
- ColumnHeader: typeof TableColumnHeader;
35
- Header: typeof TableHeader;
36
- Root: typeof TableRoot;
37
- Row: typeof TableRow;
38
- RowSelect: typeof TableRowSelect;
39
- SelectAll: typeof TableSelectAll;
40
- };
1
+ export { Table, TableRoot, TableBody, TableRow, TableColumnHeader, TableCaption, TableCell, TableHeader, TableFooter, TableRowHeader, } from "./TableShell.js";
41
2
  //# sourceMappingURL=Table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAA6B,YAAY,EAAE,MAAM,OAAO,CAAC;AAQlF,OAAO,EACL,SAAS,IAAI,gBAAgB,EAC7B,YAAY,EACZ,SAAS,EACT,iBAAiB,IAAI,wBAAwB,EAC7C,WAAW,EAEZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAGV,cAAc,EACd,aAAa,EACb,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AAIhD,wBAAgB,SAAS,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EACzD,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,GACzB,YAAY,GAAG,IAAI,CA4DrB;yBA9De,SAAS;;;AAiEzB,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,GACnD,YAAY,GAAG,IAAI,CAarB;yBAfe,SAAS;;;AAkBzB,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,GAAG,IAAI,CA2FlE;yBA3Fe,QAAQ;;;AAsGxB,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,wBAAwB,CAAC,GAC3D,YAAY,GAAG,IAAI,CAoDrB;yBAtDe,iBAAiB;;;AAyDjC,wBAAgB,cAAc,IAAI,YAAY,CAoB7C;yBApBe,cAAc;;;AAuB9B,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,sBAAsB,GAAG,YAAY,CAgB9E;yBAhBe,cAAc;;;AAmB9B,eAAO,MAAM,KAAK;;;;;;;;;;CAUjB,CAAC"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,GACf,MAAM,iBAAiB,CAAC"}
@@ -1,275 +1,25 @@
1
- "use client";
2
- import { jsx } from "react/jsx-runtime";
3
- import { createElement, useCallback, useMemo, useRef, useSyncExternalStore } from "react";
4
- import { useIsomorphicLayoutEffect } from "@gunkin/uiify/hooks";
5
- import { createPartContext } from "@gunkin/uiify/core";
6
- import { composeEventHandlers } from "@gunkin/uiify/core/compose-event-handlers";
7
- import { RovingFocusItem, RovingFocusRoot } from "@gunkin/uiify/core/roving-focus";
8
- import { useRenderElement } from "@gunkin/uiify/core/render";
9
- import { Checkbox } from "../checkbox/Checkbox.js";
10
1
  import {
11
- TableBody as TableBodyElement,
2
+ Table,
3
+ TableRoot,
4
+ TableBody,
5
+ TableRow,
6
+ TableColumnHeader,
12
7
  TableCaption,
13
8
  TableCell,
14
- TableColumnHeader as TableColumnHeaderElement,
15
9
  TableHeader,
16
- TableRow as TableRowElement
10
+ TableFooter,
11
+ TableRowHeader
17
12
  } from "./TableShell.js";
18
- import { createTableStore } from "./table-store.js";
19
- const [TableProvider, useTableContext] = createPartContext("Table");
20
- function TableRoot(props) {
21
- const {
22
- as,
23
- render,
24
- "aria-label": ariaLabel,
25
- "aria-labelledby": ariaLabelledBy,
26
- defaultSelectedKeys,
27
- defaultSortDescriptor,
28
- onSelectionChange,
29
- onSortChange,
30
- selectedKeys,
31
- selectionBehavior,
32
- selectionMode = "none",
33
- sortDescriptor,
34
- ...consumerProps
35
- } = props;
36
- const storeRef = useRef(null);
37
- storeRef.current ??= createTableStore({
38
- selectionMode,
39
- ...defaultSelectedKeys !== void 0 ? { defaultSelectedKeys } : {},
40
- ...defaultSortDescriptor !== void 0 ? { defaultSortDescriptor } : {},
41
- ...onSelectionChange !== void 0 ? { onSelectionChange } : {},
42
- ...onSortChange !== void 0 ? { onSortChange } : {},
43
- ...selectedKeys !== void 0 ? { selectedKeys } : {},
44
- ...sortDescriptor !== void 0 ? { sortDescriptor } : {},
45
- ...selectionBehavior !== void 0 ? { selectionBehavior } : {}
46
- });
47
- const store = storeRef.current;
48
- store.updateOptions({
49
- ...onSelectionChange !== void 0 ? { onSelectionChange } : {},
50
- ...onSortChange !== void 0 ? { onSortChange } : {},
51
- ...selectionBehavior !== void 0 ? { selectionBehavior } : {},
52
- selectionMode
53
- });
54
- useIsomorphicLayoutEffect(() => {
55
- if (selectedKeys !== void 0) store.syncSelectedKeys(selectedKeys);
56
- }, [selectedKeys, store]);
57
- useIsomorphicLayoutEffect(() => {
58
- if (sortDescriptor !== void 0) store.syncSortDescriptor(sortDescriptor);
59
- }, [sortDescriptor, store]);
60
- const interactive = selectionMode !== "none";
61
- const contextValue = useMemo(() => ({ interactive, store }), [interactive, store]);
62
- const element = useRenderElement({
63
- as,
64
- defaultTag: "table",
65
- props: {
66
- ...consumerProps,
67
- "aria-label": ariaLabel,
68
- "aria-labelledby": ariaLabelledBy,
69
- role: interactive ? "grid" : void 0
70
- },
71
- render,
72
- state: {}
73
- });
74
- return /* @__PURE__ */ jsx(TableProvider, { value: contextValue, children: element });
75
- }
76
- TableRoot.displayName = "TableRoot";
77
- function TableBody(props) {
78
- const { interactive } = useTableContext("Body");
79
- const { as: _as, render: _render, children, ...consumerProps } = props;
80
- if (!interactive) {
81
- return /* @__PURE__ */ jsx(TableBodyElement, { ...props });
82
- }
83
- return /* @__PURE__ */ jsx(RovingFocusRoot, { as: "tbody", loop: true, orientation: "both", ...consumerProps, children });
84
- }
85
- TableBody.displayName = "TableBody";
86
- function TableRow(props) {
87
- const { disabled = false, id, as, render, ...consumerProps } = props;
88
- const { interactive, store } = useTableContext("Row");
89
- useIsomorphicLayoutEffect(() => store.registerRow(id), [id, store]);
90
- useIsomorphicLayoutEffect(() => store.setRowDisabled(id, disabled), [id, disabled, store]);
91
- const selected = useSyncExternalStore(
92
- (listener) => store.subscribeRow(id, listener),
93
- () => store.isRowSelected(id),
94
- () => false
95
- );
96
- const { onClick: consumerOnClick, onKeyDown: consumerOnKeyDown } = consumerProps;
97
- const handleClick = (event) => {
98
- const target = event.target;
99
- if (target?.closest("input, button, a, [role='checkbox']")) return;
100
- store.toggleRow(id, {
101
- disabled,
102
- metaKey: event.metaKey || event.ctrlKey,
103
- shiftKey: event.shiftKey
104
- });
105
- };
106
- const handleKeyDown = (event) => {
107
- if (event.key === " " && interactive) {
108
- event.preventDefault();
109
- store.toggleRow(id, { disabled });
110
- }
111
- };
112
- if (interactive) {
113
- return createElement(RovingFocusItem, {
114
- disabled,
115
- id,
116
- render: (renderProps) => {
117
- const { onKeyDown: rovingFocusOnKeyDown, ...restRenderProps } = renderProps;
118
- const rowProps2 = {
119
- ...consumerProps,
120
- ...restRenderProps,
121
- "aria-selected": selected,
122
- disabled,
123
- id,
124
- selected,
125
- onClick: composeEventHandlers(consumerOnClick, handleClick),
126
- onKeyDown: composeEventHandlers(
127
- rovingFocusOnKeyDown,
128
- composeEventHandlers(consumerOnKeyDown, handleKeyDown)
129
- )
130
- };
131
- if (render) {
132
- return createElement(TableRowElement, { ...rowProps2, render });
133
- }
134
- return createElement(TableRowElement, {
135
- ...rowProps2,
136
- ...as !== void 0 ? { as } : {}
137
- });
138
- }
139
- });
140
- }
141
- const rowProps = {
142
- ...consumerProps,
143
- disabled,
144
- id,
145
- selected
146
- };
147
- if (render) {
148
- return createElement(TableRowElement, { ...rowProps, render });
149
- }
150
- return createElement(TableRowElement, {
151
- ...rowProps,
152
- ...as !== void 0 ? { as } : {}
153
- });
154
- }
155
- TableRow.displayName = "TableRow";
156
- function ariaSortForColumn(descriptor, column) {
157
- if (!descriptor || descriptor.column !== column) return void 0;
158
- return descriptor.direction;
159
- }
160
- function TableColumnHeader(props) {
161
- const { allowsSorting = false, id, onClick, as, render, ...rest } = props;
162
- const { store } = useTableContext("ColumnHeader");
163
- const sortDescriptor = useSyncExternalStore(
164
- store.subscribeSort,
165
- store.getSortSnapshot,
166
- store.getServerSortSnapshot
167
- );
168
- const shared = {
169
- ...rest,
170
- allowsSorting,
171
- id,
172
- sortDirection: allowsSorting ? ariaSortForColumn(sortDescriptor, id) ?? null : null
173
- };
174
- if (allowsSorting) {
175
- if (render) {
176
- return /* @__PURE__ */ jsx(
177
- TableColumnHeaderElement,
178
- {
179
- ...shared,
180
- onClick: () => store.toggleSort(id),
181
- render
182
- }
183
- );
184
- }
185
- return /* @__PURE__ */ jsx(
186
- TableColumnHeaderElement,
187
- {
188
- ...shared,
189
- onClick: () => store.toggleSort(id),
190
- ...as !== void 0 ? { as } : {}
191
- }
192
- );
193
- }
194
- if (render) {
195
- return /* @__PURE__ */ jsx(
196
- TableColumnHeaderElement,
197
- {
198
- ...shared,
199
- ...onClick !== void 0 ? { onClick } : {},
200
- render
201
- }
202
- );
203
- }
204
- return /* @__PURE__ */ jsx(
205
- TableColumnHeaderElement,
206
- {
207
- ...shared,
208
- ...onClick !== void 0 ? { onClick } : {},
209
- ...as !== void 0 ? { as } : {}
210
- }
211
- );
212
- }
213
- TableColumnHeader.displayName = "TableColumnHeader";
214
- function TableSelectAll() {
215
- const { store } = useTableContext("SelectAll");
216
- const selectionState = useSyncExternalStore(
217
- store.subscribeSelection,
218
- store.getSelectionState,
219
- () => "none"
220
- );
221
- const checked = selectionState === "all" ? true : selectionState === "some" ? "indeterminate" : false;
222
- const handleChange = useCallback(() => store.toggleSelectAll(), [store]);
223
- return /* @__PURE__ */ jsx(
224
- Checkbox,
225
- {
226
- id: "table-select-all",
227
- label: "Select all rows",
228
- checked,
229
- onCheckedChange: handleChange
230
- }
231
- );
232
- }
233
- TableSelectAll.displayName = "TableSelectAll";
234
- function TableRowSelect({ rowId }) {
235
- const { store } = useTableContext("RowSelect");
236
- const selected = useSyncExternalStore(
237
- (listener) => store.subscribeRow(rowId, listener),
238
- () => store.isRowSelected(rowId),
239
- () => false
240
- );
241
- return /* @__PURE__ */ jsx(
242
- Checkbox,
243
- {
244
- id: `table-row-${rowId}`,
245
- label: "Select row",
246
- checked: selected,
247
- onCheckedChange: () => store.toggleRow(rowId)
248
- }
249
- );
250
- }
251
- TableRowSelect.displayName = "TableRowSelect";
252
- const Table = {
253
- Body: TableBody,
254
- Caption: TableCaption,
255
- Cell: TableCell,
256
- ColumnHeader: TableColumnHeader,
257
- Header: TableHeader,
258
- Root: TableRoot,
259
- Row: TableRow,
260
- RowSelect: TableRowSelect,
261
- SelectAll: TableSelectAll
262
- };
263
13
  export {
264
14
  Table,
265
15
  TableBody,
266
16
  TableCaption,
267
17
  TableCell,
268
18
  TableColumnHeader,
19
+ TableFooter,
269
20
  TableHeader,
270
21
  TableRoot,
271
22
  TableRow,
272
- TableRowSelect,
273
- TableSelectAll
23
+ TableRowHeader
274
24
  };
275
25
  //# sourceMappingURL=Table.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/table/Table.tsx"],"sourcesContent":["\"use client\";\n\nimport { createElement, useCallback, useMemo, useRef, useSyncExternalStore } from \"react\";\nimport type { ElementType, KeyboardEvent, MouseEvent, ReactElement } from \"react\";\nimport { useIsomorphicLayoutEffect } from \"@gunkin/uiify/hooks\";\nimport { createPartContext } from \"@gunkin/uiify/core\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { RovingFocusItem, RovingFocusRoot } from \"@gunkin/uiify/core/roving-focus\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { Checkbox } from \"../checkbox/Checkbox.js\";\nimport type { CheckedState } from \"../checkbox/types.js\";\nimport {\n TableBody as TableBodyElement,\n TableCaption,\n TableCell,\n TableColumnHeader as TableColumnHeaderElement,\n TableHeader,\n TableRow as TableRowElement,\n} from \"./TableShell.js\";\nimport { createTableStore } from \"./table-store.js\";\nimport type {\n SortDescriptor,\n TableContextValue,\n TableRootProps,\n TableRowProps,\n TableRowSelectOwnProps,\n TableStore,\n} from \"./types.js\";\n\nexport type { SelectionMode, SortDescriptor } from \"./types.js\";\n\nexport { TableCaption, TableCell, TableHeader };\n\nconst [TableProvider, useTableContext] = createPartContext<TableContextValue>(\"Table\");\n\nexport function TableRoot<TAs extends ElementType = \"table\">(\n props: TableRootProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n defaultSelectedKeys,\n defaultSortDescriptor,\n onSelectionChange,\n onSortChange,\n selectedKeys,\n selectionBehavior,\n selectionMode = \"none\",\n sortDescriptor,\n ...consumerProps\n } = props as TableRootProps<\"table\">;\n\n const storeRef = useRef<TableStore | null>(null);\n storeRef.current ??= createTableStore({\n selectionMode,\n ...(defaultSelectedKeys !== undefined ? { defaultSelectedKeys } : {}),\n ...(defaultSortDescriptor !== undefined ? { defaultSortDescriptor } : {}),\n ...(onSelectionChange !== undefined ? { onSelectionChange } : {}),\n ...(onSortChange !== undefined ? { onSortChange } : {}),\n ...(selectedKeys !== undefined ? { selectedKeys } : {}),\n ...(sortDescriptor !== undefined ? { sortDescriptor } : {}),\n ...(selectionBehavior !== undefined ? { selectionBehavior } : {}),\n });\n const store = storeRef.current;\n store.updateOptions({\n ...(onSelectionChange !== undefined ? { onSelectionChange } : {}),\n ...(onSortChange !== undefined ? { onSortChange } : {}),\n ...(selectionBehavior !== undefined ? { selectionBehavior } : {}),\n selectionMode,\n });\n\n useIsomorphicLayoutEffect(() => {\n if (selectedKeys !== undefined) store.syncSelectedKeys(selectedKeys);\n }, [selectedKeys, store]);\n useIsomorphicLayoutEffect(() => {\n if (sortDescriptor !== undefined) store.syncSortDescriptor(sortDescriptor);\n }, [sortDescriptor, store]);\n\n const interactive = selectionMode !== \"none\";\n const contextValue = useMemo(() => ({ interactive, store }), [interactive, store]);\n\n const element = useRenderElement({\n as,\n defaultTag: \"table\",\n props: {\n ...consumerProps,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n role: interactive ? \"grid\" : undefined,\n },\n render,\n state: {},\n });\n\n return <TableProvider value={contextValue}>{element}</TableProvider>;\n}\nTableRoot.displayName = \"TableRoot\";\n\nexport function TableBody(\n props: React.ComponentProps<typeof TableBodyElement>,\n): ReactElement | null {\n const { interactive } = useTableContext(\"Body\");\n const { as: _as, render: _render, children, ...consumerProps } = props;\n\n if (!interactive) {\n return <TableBodyElement {...props} />;\n }\n\n return (\n <RovingFocusRoot as=\"tbody\" loop orientation=\"both\" {...consumerProps}>\n {children}\n </RovingFocusRoot>\n );\n}\nTableBody.displayName = \"TableBody\";\n\nexport function TableRow(props: TableRowProps): ReactElement | null {\n const { disabled = false, id, as, render, ...consumerProps } = props;\n const { interactive, store } = useTableContext(\"Row\");\n useIsomorphicLayoutEffect(() => store.registerRow(id), [id, store]);\n useIsomorphicLayoutEffect(() => store.setRowDisabled(id, disabled), [id, disabled, store]);\n\n const selected = useSyncExternalStore(\n (listener) => store.subscribeRow(id, listener),\n () => store.isRowSelected(id),\n () => false,\n );\n\n const { onClick: consumerOnClick, onKeyDown: consumerOnKeyDown } = consumerProps as {\n onClick?: (event: MouseEvent<HTMLTableRowElement>) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLTableRowElement>) => void;\n };\n\n const handleClick = (event: MouseEvent<HTMLTableRowElement>) => {\n const target = event.target as HTMLElement | null;\n if (target?.closest(\"input, button, a, [role='checkbox']\")) return;\n store.toggleRow(id, {\n disabled,\n metaKey: event.metaKey || event.ctrlKey,\n shiftKey: event.shiftKey,\n });\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLTableRowElement>) => {\n if (event.key === \" \" && interactive) {\n event.preventDefault();\n store.toggleRow(id, { disabled });\n }\n };\n\n if (interactive) {\n return createElement(RovingFocusItem, {\n disabled,\n id,\n render: (renderProps: Record<string, unknown>) => {\n // T5 — three-way nested composition. `renderProps` is RovingFocusItem's own\n // fully-resolved props (id/aria-disabled/data-current/data-disabled/onFocus/\n // ref/tabIndex, plus its own `onKeyDown` for arrow-key roving + typeahead).\n // Chain innermost first: roving-focus's onKeyDown runs as the outer layer\n // (it never calls preventDefault() for Space), then the real consumer's\n // onKeyDown, then this row's own Space-toggle — preserving Space's today\n // double duty as both a typeahead character and the row-toggle key.\n const { onKeyDown: rovingFocusOnKeyDown, ...restRenderProps } = renderProps as Record<\n string,\n unknown\n > & { onKeyDown?: (event: KeyboardEvent<HTMLTableRowElement>) => void };\n\n const rowProps = {\n ...consumerProps,\n ...restRenderProps,\n \"aria-selected\": selected,\n disabled,\n id,\n selected,\n onClick: composeEventHandlers(consumerOnClick, handleClick),\n onKeyDown: composeEventHandlers(\n rovingFocusOnKeyDown,\n composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n ),\n };\n\n if (render) {\n return createElement(TableRowElement, { ...rowProps, render });\n }\n return createElement(TableRowElement, {\n ...rowProps,\n ...(as !== undefined ? { as } : {}),\n });\n },\n });\n }\n\n const rowProps = {\n ...consumerProps,\n disabled,\n id,\n selected,\n };\n\n if (render) {\n return createElement(TableRowElement, { ...rowProps, render });\n }\n\n return createElement(TableRowElement, {\n ...rowProps,\n ...(as !== undefined ? { as } : {}),\n });\n}\nTableRow.displayName = \"TableRow\";\n\nfunction ariaSortForColumn(\n descriptor: SortDescriptor | null,\n column: string,\n): SortDescriptor[\"direction\"] | undefined {\n if (!descriptor || descriptor.column !== column) return undefined;\n return descriptor.direction;\n}\n\nexport function TableColumnHeader(\n props: React.ComponentProps<typeof TableColumnHeaderElement>,\n): ReactElement | null {\n const { allowsSorting = false, id, onClick, as, render, ...rest } = props;\n const { store } = useTableContext(\"ColumnHeader\");\n const sortDescriptor = useSyncExternalStore(\n store.subscribeSort,\n store.getSortSnapshot,\n store.getServerSortSnapshot,\n );\n\n const shared = {\n ...rest,\n allowsSorting,\n id,\n sortDirection: allowsSorting ? (ariaSortForColumn(sortDescriptor, id) ?? null) : null,\n };\n\n if (allowsSorting) {\n if (render) {\n return (\n <TableColumnHeaderElement\n {...shared}\n onClick={() => store.toggleSort(id)}\n render={render}\n />\n );\n }\n return (\n <TableColumnHeaderElement\n {...shared}\n onClick={() => store.toggleSort(id)}\n {...(as !== undefined ? { as } : {})}\n />\n );\n }\n\n if (render) {\n return (\n <TableColumnHeaderElement\n {...shared}\n {...(onClick !== undefined ? { onClick } : {})}\n render={render}\n />\n );\n }\n\n return (\n <TableColumnHeaderElement\n {...shared}\n {...(onClick !== undefined ? { onClick } : {})}\n {...(as !== undefined ? { as } : {})}\n />\n );\n}\nTableColumnHeader.displayName = \"TableColumnHeader\";\n\nexport function TableSelectAll(): ReactElement {\n const { store } = useTableContext(\"SelectAll\");\n const selectionState = useSyncExternalStore(\n store.subscribeSelection,\n store.getSelectionState,\n () => \"none\" as const,\n );\n const checked: CheckedState =\n selectionState === \"all\" ? true : selectionState === \"some\" ? \"indeterminate\" : false;\n\n const handleChange = useCallback(() => store.toggleSelectAll(), [store]);\n\n return (\n <Checkbox\n id=\"table-select-all\"\n label=\"Select all rows\"\n checked={checked}\n onCheckedChange={handleChange}\n />\n );\n}\nTableSelectAll.displayName = \"TableSelectAll\";\n\nexport function TableRowSelect({ rowId }: TableRowSelectOwnProps): ReactElement {\n const { store } = useTableContext(\"RowSelect\");\n const selected = useSyncExternalStore(\n (listener) => store.subscribeRow(rowId, listener),\n () => store.isRowSelected(rowId),\n () => false,\n );\n\n return (\n <Checkbox\n id={`table-row-${rowId}`}\n label=\"Select row\"\n checked={selected}\n onCheckedChange={() => store.toggleRow(rowId)}\n />\n );\n}\nTableRowSelect.displayName = \"TableRowSelect\";\n\nexport const Table = {\n Body: TableBody,\n Caption: TableCaption,\n Cell: TableCell,\n ColumnHeader: TableColumnHeader,\n Header: TableHeader,\n Root: TableRoot,\n Row: TableRow,\n RowSelect: TableRowSelect,\n SelectAll: TableSelectAll,\n};\n"],"mappings":"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","names":["rowProps"]}
1
+ {"version":3,"sources":["../../../src/components/table/Table.tsx"],"sourcesContent":["export {\n Table,\n TableRoot,\n TableBody,\n TableRow,\n TableColumnHeader,\n TableCaption,\n TableCell,\n TableHeader,\n TableFooter,\n TableRowHeader,\n} from \"./TableShell.js\";\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
@@ -1,5 +1,5 @@
1
1
  import type { ElementType, ReactElement } from "react";
2
- import type { TableBodyProps, TableCaptionProps, TableCellProps, TableRowProps, TableColumnHeaderProps, TableHeaderProps, TableRootProps } from "./types.js";
2
+ import type { TableFooterProps, TableRowHeaderProps, TableBodyProps, TableCaptionProps, TableCellProps, TableRowProps, TableColumnHeaderProps, TableHeaderProps, TableRootProps } from "./types.js";
3
3
  export type { SelectionMode, SortDescriptor } from "./types.js";
4
4
  export declare function TableRoot<TAs extends ElementType = "table">(props: TableRootProps<TAs>): ReactElement | null;
5
5
  export declare function TableHeader<TAs extends ElementType = "thead">(props: TableHeaderProps<TAs>): ReactElement | null;
@@ -8,7 +8,11 @@ export declare function TableRow<TAs extends ElementType = "tr">(props: TableRow
8
8
  export declare function TableColumnHeader<TAs extends ElementType = "th">(props: TableColumnHeaderProps<TAs>): ReactElement | null;
9
9
  export declare function TableCell<TAs extends ElementType = "td">(props: TableCellProps<TAs>): ReactElement | null;
10
10
  export declare function TableCaption<TAs extends ElementType = "caption">(props: TableCaptionProps<TAs>): ReactElement | null;
11
+ export declare function TableFooter<TAs extends ElementType = "tfoot">(props: TableFooterProps<TAs>): ReactElement | null;
12
+ export declare function TableRowHeader<TAs extends ElementType = "th">(props: TableRowHeaderProps<TAs>): ReactElement | null;
11
13
  export declare const Table: {
14
+ Footer: typeof TableFooter;
15
+ RowHeader: typeof TableRowHeader;
12
16
  Body: typeof TableBody;
13
17
  Caption: typeof TableCaption;
14
18
  Cell: typeof TableCell;
@@ -1 +1 @@
1
- {"version":3,"file":"TableShell.d.ts","sourceRoot":"","sources":["../../../src/components/table/TableShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,wBAAgB,SAAS,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EACzD,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,GACzB,YAAY,GAAG,IAAI,CAuBrB;AAED,wBAAgB,WAAW,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EAC3D,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAC3B,YAAY,GAAG,IAAI,CAGrB;AAED,wBAAgB,SAAS,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EACzD,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,GACzB,YAAY,GAAG,IAAI,CASrB;AAED,wBAAgB,QAAQ,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EACrD,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,GACxB,YAAY,GAAG,IAAI,CAuBrB;AAED,wBAAgB,iBAAiB,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EAC9D,KAAK,EAAE,sBAAsB,CAAC,GAAG,CAAC,GACjC,YAAY,GAAG,IAAI,CA0BrB;AAED,wBAAgB,SAAS,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EACtD,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,GACzB,YAAY,GAAG,IAAI,CASrB;AAED,wBAAgB,YAAY,CAAC,GAAG,SAAS,WAAW,GAAG,SAAS,EAC9D,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAC5B,YAAY,GAAG,IAAI,CASrB;AAED,eAAO,MAAM,KAAK;;;;;;;;CAQjB,CAAC"}
1
+ {"version":3,"file":"TableShell.d.ts","sourceRoot":"","sources":["../../../src/components/table/TableShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,wBAAgB,SAAS,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EACzD,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,GACzB,YAAY,GAAG,IAAI,CA2BrB;AAED,wBAAgB,WAAW,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EAC3D,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAC3B,YAAY,GAAG,IAAI,CASrB;AAED,wBAAgB,SAAS,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EACzD,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,GACzB,YAAY,GAAG,IAAI,CASrB;AAED,wBAAgB,QAAQ,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EACrD,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,GACxB,YAAY,GAAG,IAAI,CA0BrB;AAED,wBAAgB,iBAAiB,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EAC9D,KAAK,EAAE,sBAAsB,CAAC,GAAG,CAAC,GACjC,YAAY,GAAG,IAAI,CA+BrB;AAED,wBAAgB,SAAS,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EACtD,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,GACzB,YAAY,GAAG,IAAI,CAerB;AAED,wBAAgB,YAAY,CAAC,GAAG,SAAS,WAAW,GAAG,SAAS,EAC9D,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAC5B,YAAY,GAAG,IAAI,CASrB;AAED,wBAAgB,WAAW,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EAC3D,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAC3B,YAAY,GAAG,IAAI,CASrB;AACD,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EAC3D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAerB;AAED,eAAO,MAAM,KAAK;;;;;;;;;;CAUjB,CAAC"}