@opengovsg/oui 0.0.0-snapshot-20250813090518 → 0.0.0-snapshot-20250813172831

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 (142) hide show
  1. package/dist/cjs/badge/badge.cjs +4 -4
  2. package/dist/cjs/badge/use-badge.cjs +6 -6
  3. package/dist/cjs/banner/banner.cjs +4 -4
  4. package/dist/cjs/button/button.cjs +4 -4
  5. package/dist/cjs/calendar/calendar-bottom-content.cjs +2 -2
  6. package/dist/cjs/calendar/calendar-header.cjs +2 -2
  7. package/dist/cjs/calendar/calendar-month-day-selector.cjs +4 -4
  8. package/dist/cjs/calendar/calendar.cjs +4 -4
  9. package/dist/cjs/calendar/hooks/use-calendar-selectors.cjs +4 -4
  10. package/dist/cjs/calendar/utils.cjs +3 -3
  11. package/dist/cjs/checkbox/checkbox.cjs +1 -1
  12. package/dist/cjs/combo-box/combo-box-fuzzy.cjs +6 -6
  13. package/dist/cjs/combo-box/combo-box-item.cjs +2 -2
  14. package/dist/cjs/combo-box/combo-box.cjs +5 -5
  15. package/dist/cjs/date-field/date-field.cjs +4 -4
  16. package/dist/cjs/date-picker/date-picker.cjs +6 -7
  17. package/dist/cjs/date-range-picker/date-range-picker.cjs +8 -8
  18. package/dist/cjs/govt-banner/govt-banner.cjs +3 -3
  19. package/dist/cjs/hooks/use-callback-ref.cjs +4 -4
  20. package/dist/cjs/hooks/use-controllable-state.cjs +2 -2
  21. package/dist/cjs/index.cjs +20 -9
  22. package/dist/cjs/input/input.cjs +2 -2
  23. package/dist/cjs/menu/menu.cjs +7 -7
  24. package/dist/cjs/node_modules/.pnpm/@react-aria_focus@3.20.5_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/focus/dist/useFocusRing.cjs +45 -0
  25. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/context.cjs +21 -0
  26. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/textSelection.cjs +72 -0
  27. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocus.cjs +60 -0
  28. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs +210 -0
  29. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs +100 -0
  30. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useHover.cjs +152 -0
  31. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/usePress.cjs +676 -0
  32. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/utils.cjs +160 -0
  33. package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_check_private_redeclaration.cjs +9 -0
  34. package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.cjs +9 -0
  35. package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.cjs +16 -0
  36. package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.cjs +9 -0
  37. package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_get.cjs +11 -0
  38. package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_init.cjs +10 -0
  39. package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_set.cjs +12 -0
  40. package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/Icon.cjs +4 -4
  41. package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/createLucideIcon.cjs +3 -3
  42. package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/chevrons-right.cjs +22 -0
  43. package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/ellipsis.cjs +23 -0
  44. package/dist/cjs/pagination/hooks/use-pagination.cjs +117 -0
  45. package/dist/cjs/pagination/index.cjs +17 -0
  46. package/dist/cjs/pagination/pagination-cursor.cjs +18 -0
  47. package/dist/cjs/pagination/pagination-item.cjs +18 -0
  48. package/dist/cjs/pagination/pagination.cjs +263 -0
  49. package/dist/cjs/pagination/use-pagination-item.cjs +87 -0
  50. package/dist/cjs/pagination/use-pagination.cjs +251 -0
  51. package/dist/cjs/range-calendar/range-calendar.cjs +7 -7
  52. package/dist/cjs/ripple/use-ripple.cjs +4 -4
  53. package/dist/cjs/select/select.cjs +5 -5
  54. package/dist/cjs/spinner/use-spinner.cjs +3 -3
  55. package/dist/cjs/system/react-utils/context.cjs +3 -3
  56. package/dist/cjs/system/react-utils/dom-props.cjs +186 -0
  57. package/dist/cjs/system/react-utils/filter-dom-props.cjs +46 -0
  58. package/dist/cjs/system/react-utils/index.cjs +2 -0
  59. package/dist/cjs/system/react-utils/refs.cjs +3 -3
  60. package/dist/cjs/system/utils.cjs +3 -3
  61. package/dist/cjs/tabs/tabs.cjs +2 -2
  62. package/dist/cjs/tag-field/tag-field-item.cjs +2 -2
  63. package/dist/cjs/tag-field/tag-field-list.cjs +4 -4
  64. package/dist/cjs/tag-field/tag-field-root.cjs +14 -14
  65. package/dist/cjs/tag-field/tag-field-state-context.cjs +2 -2
  66. package/dist/cjs/tag-field/tag-field-tag-list.cjs +3 -3
  67. package/dist/cjs/tag-field/tag-field-trigger.cjs +2 -2
  68. package/dist/cjs/tag-field/tag-field.cjs +5 -5
  69. package/dist/cjs/tag-field/use-tag-field-state.cjs +6 -6
  70. package/dist/cjs/tag-field/use-tag-field.cjs +4 -4
  71. package/dist/cjs/text-area/text-area.cjs +2 -2
  72. package/dist/cjs/text-area-field/text-area-field.cjs +1 -1
  73. package/dist/cjs/text-field/text-field.cjs +1 -1
  74. package/dist/cjs/toggle/toggle.cjs +3 -3
  75. package/dist/esm/banner/banner.js +1 -1
  76. package/dist/esm/button/button.js +1 -1
  77. package/dist/esm/calendar/calendar-month-day-selector.js +2 -2
  78. package/dist/esm/checkbox/checkbox.js +1 -1
  79. package/dist/esm/combo-box/combo-box.js +2 -2
  80. package/dist/esm/date-field/date-field.js +1 -1
  81. package/dist/esm/date-picker/date-picker.js +4 -5
  82. package/dist/esm/date-range-picker/date-range-picker.js +5 -5
  83. package/dist/esm/index.js +8 -3
  84. package/dist/esm/menu/menu.js +1 -1
  85. package/dist/esm/node_modules/.pnpm/@react-aria_focus@3.20.5_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/focus/dist/useFocusRing.js +43 -0
  86. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/context.js +19 -0
  87. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/textSelection.js +69 -0
  88. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocus.js +58 -0
  89. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocusVisible.js +205 -0
  90. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocusWithin.js +98 -0
  91. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useHover.js +150 -0
  92. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/usePress.js +674 -0
  93. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/utils.js +155 -0
  94. package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_check_private_redeclaration.js +7 -0
  95. package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js +7 -0
  96. package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js +14 -0
  97. package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js +7 -0
  98. package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_get.js +9 -0
  99. package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_init.js +8 -0
  100. package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_set.js +10 -0
  101. package/dist/esm/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/chevrons-right.js +17 -0
  102. package/dist/esm/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/ellipsis.js +18 -0
  103. package/dist/esm/pagination/hooks/use-pagination.js +114 -0
  104. package/dist/esm/pagination/index.js +6 -0
  105. package/dist/esm/pagination/pagination-cursor.js +16 -0
  106. package/dist/esm/pagination/pagination-item.js +16 -0
  107. package/dist/esm/pagination/pagination.js +261 -0
  108. package/dist/esm/pagination/use-pagination-item.js +85 -0
  109. package/dist/esm/pagination/use-pagination.js +248 -0
  110. package/dist/esm/range-calendar/range-calendar.js +1 -1
  111. package/dist/esm/select/select.js +3 -3
  112. package/dist/esm/system/react-utils/dom-props.js +183 -0
  113. package/dist/esm/system/react-utils/filter-dom-props.js +44 -0
  114. package/dist/esm/system/react-utils/index.js +1 -0
  115. package/dist/esm/tag-field/tag-field.js +3 -3
  116. package/dist/esm/text-area-field/text-area-field.js +1 -1
  117. package/dist/esm/text-field/text-field.js +1 -1
  118. package/dist/types/index.d.mts +1 -0
  119. package/dist/types/index.d.ts +1 -0
  120. package/dist/types/index.d.ts.map +1 -1
  121. package/dist/types/pagination/hooks/use-pagination.d.ts +51 -0
  122. package/dist/types/pagination/hooks/use-pagination.d.ts.map +1 -0
  123. package/dist/types/pagination/index.d.ts +7 -0
  124. package/dist/types/pagination/index.d.ts.map +1 -0
  125. package/dist/types/pagination/pagination-cursor.d.ts +9 -0
  126. package/dist/types/pagination/pagination-cursor.d.ts.map +1 -0
  127. package/dist/types/pagination/pagination-item.d.ts +5 -0
  128. package/dist/types/pagination/pagination-item.d.ts.map +1 -0
  129. package/dist/types/pagination/pagination.d.ts +5 -0
  130. package/dist/types/pagination/pagination.d.ts.map +1 -0
  131. package/dist/types/pagination/use-pagination-item.d.ts +51 -0
  132. package/dist/types/pagination/use-pagination-item.d.ts.map +1 -0
  133. package/dist/types/pagination/use-pagination.d.ts +353 -0
  134. package/dist/types/pagination/use-pagination.d.ts.map +1 -0
  135. package/dist/types/system/react-utils/context.d.ts.map +1 -1
  136. package/dist/types/system/react-utils/dom-props.d.ts +3 -0
  137. package/dist/types/system/react-utils/dom-props.d.ts.map +1 -0
  138. package/dist/types/system/react-utils/filter-dom-props.d.ts +39 -0
  139. package/dist/types/system/react-utils/filter-dom-props.d.ts.map +1 -0
  140. package/dist/types/system/react-utils/index.d.ts +1 -0
  141. package/dist/types/system/react-utils/index.d.ts.map +1 -1
  142. package/package.json +6 -4
@@ -0,0 +1,51 @@
1
+ export declare enum PaginationItemType {
2
+ DOTS = "dots",
3
+ PREV = "prev",
4
+ NEXT = "next"
5
+ }
6
+ export interface UsePaginationProps {
7
+ /**
8
+ * The total number of pages.
9
+ */
10
+ total: number;
11
+ /**
12
+ * The selected page on initial render.
13
+ * @default 1
14
+ */
15
+ initialPage?: number;
16
+ /**
17
+ * The controlled selected page.
18
+ */
19
+ page?: number;
20
+ /**
21
+ * The number of pages to show on each side of the current page.
22
+ * @default 1
23
+ */
24
+ siblings?: number;
25
+ /**
26
+ * The number of pages to show at the beginning and end of the pagination.
27
+ * @default 1
28
+ */
29
+ boundaries?: number;
30
+ /**
31
+ * If `true`, the range will include "prev" and "next" buttons.
32
+ * @default false
33
+ */
34
+ showControls?: boolean;
35
+ /**
36
+ * Callback fired when the page changes.
37
+ */
38
+ onChange?: (page: number) => void;
39
+ }
40
+ export type PaginationItemValue = number | PaginationItemType;
41
+ export declare function usePagination(props: UsePaginationProps): {
42
+ range: PaginationItemValue[];
43
+ activePage: number;
44
+ setPage: (pageNumber: number) => void;
45
+ next: () => void;
46
+ previous: () => void;
47
+ first: () => void;
48
+ last: () => void;
49
+ };
50
+ export type UsePaginationReturn = ReturnType<typeof usePagination>;
51
+ //# sourceMappingURL=use-pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-pagination.d.ts","sourceRoot":"","sources":["../../../../src/pagination/hooks/use-pagination.ts"],"names":[],"mappings":"AAKA,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAcD,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAClC;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,kBAAkB,CAAA;AAE7D,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB;;;0BA+BtC,MAAM;;;;;EAuFtB;AAED,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ export * from "./pagination";
2
+ export * from "./pagination-cursor";
3
+ export * from "./pagination-item";
4
+ export { PaginationItemType } from "./hooks/use-pagination";
5
+ export type { PaginationItemValue } from "./hooks/use-pagination";
6
+ export * from "./use-pagination";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pagination/index.tsx"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEjE,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { HtmlUiProps } from "../system/types";
2
+ export interface PaginationCursorProps extends HtmlUiProps<"span"> {
3
+ /**
4
+ * The current active page.
5
+ */
6
+ activePage?: number;
7
+ }
8
+ export declare const PaginationCursor: import("../system/utils").InternalForwardRefRenderFunction<"span", PaginationCursorProps, never>;
9
+ //# sourceMappingURL=pagination-cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination-cursor.d.ts","sourceRoot":"","sources":["../../../src/pagination/pagination-cursor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAIlD,MAAM,WAAW,qBAAsB,SAAQ,WAAW,CAAC,MAAM,CAAC;IAChE;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,gBAAgB,kGAa5B,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { UsePaginationItemProps } from "./use-pagination-item";
2
+ export interface PaginationItemProps extends UsePaginationItemProps {
3
+ }
4
+ export declare const PaginationItem: import("../system/utils").InternalForwardRefRenderFunction<"li", PaginationItemProps, never>;
5
+ //# sourceMappingURL=pagination-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination-item.d.ts","sourceRoot":"","sources":["../../../src/pagination/pagination-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAKnE,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;CAAG;AAEtE,eAAO,MAAM,cAAc,8FAS1B,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { UsePaginationProps } from "./use-pagination";
2
+ export interface PaginationProps extends UsePaginationProps {
3
+ }
4
+ export declare const Pagination: import("../system/utils").InternalForwardRefRenderFunction<"nav", PaginationProps, never>;
5
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/pagination/pagination.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAQ1D,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;CAAG;AAE9D,eAAO,MAAM,UAAU,2FAiRrB,CAAA"}
@@ -0,0 +1,51 @@
1
+ import type { LinkDOMProps, PressEvent } from "@react-types/shared";
2
+ import type { Ref } from "react";
3
+ import type { HtmlUiProps, PropGetter } from "../system/types";
4
+ import type { PaginationItemValue } from "./hooks/use-pagination";
5
+ interface Props extends Omit<HtmlUiProps<"li">, "onClick"> {
6
+ /**
7
+ * Ref to the DOM node.
8
+ */
9
+ ref?: Ref<HTMLElement>;
10
+ /**
11
+ * Value of the item.
12
+ */
13
+ value?: PaginationItemValue;
14
+ /**
15
+ * Whether the item is active.
16
+ * @default false
17
+ */
18
+ isActive?: boolean;
19
+ /**
20
+ * Whether the item is disabled.
21
+ * @default false
22
+ */
23
+ isDisabled?: boolean;
24
+ /**
25
+ * Callback fired when the item is clicked.
26
+ * @param e MouseEvent
27
+ * @deprecated Use `onPress` instead.
28
+ */
29
+ onClick?: HtmlUiProps<"li">["onClick"];
30
+ /**
31
+ * Callback fired when the item is clicked.
32
+ * @param e PressEvent
33
+ */
34
+ onPress?: (e: PressEvent) => void;
35
+ /**
36
+ * Function to get the aria-label of the item.
37
+ */
38
+ getAriaLabel?: (page?: PaginationItemValue) => string | undefined;
39
+ }
40
+ export type UsePaginationItemProps = Props & LinkDOMProps;
41
+ export declare function usePaginationItem(props: UsePaginationItemProps): {
42
+ Component: string;
43
+ children: import("react").ReactNode;
44
+ ariaLabel: string | undefined;
45
+ isFocused: boolean;
46
+ isFocusVisible: boolean;
47
+ getItemProps: PropGetter;
48
+ };
49
+ export type UsePaginationItemReturn = ReturnType<typeof usePaginationItem>;
50
+ export {};
51
+ //# sourceMappingURL=use-pagination-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-pagination-item.d.ts","sourceRoot":"","sources":["../../../src/pagination/use-pagination-item.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAahC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAGjE,UAAU,KAAM,SAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IACxD;;OAEG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAA;IACtC;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;IACjC;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,mBAAmB,KAAK,MAAM,GAAG,SAAS,CAAA;CAClE;AAED,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,YAAY,CAAA;AAEzD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB;;;;;;;EAwF9D;AAED,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
@@ -0,0 +1,353 @@
1
+ import type { PressEvent } from "@react-types/shared";
2
+ import type { Key, ReactNode, Ref } from "react";
3
+ import type { PaginationSlots, PaginationVariantProps, SlotsToClasses } from "@opengovsg/oui-theme";
4
+ import type { HtmlUiProps, PropGetter } from "../system/types";
5
+ import type { PaginationItemValue, UsePaginationProps as UseBasePaginationProps } from "./hooks/use-pagination";
6
+ export type PaginationItemRenderProps = {
7
+ /**
8
+ * The pagination item ref.
9
+ */
10
+ ref?: Ref<any>;
11
+ /**
12
+ * React key.
13
+ */
14
+ key?: Key;
15
+ /**
16
+ * The pagination item value.
17
+ */
18
+ children?: ReactNode;
19
+ /**
20
+ * The pagination item value.
21
+ */
22
+ value: PaginationItemValue;
23
+ /**
24
+ * The pagination item index.
25
+ */
26
+ index: number;
27
+ /**
28
+ * Calculated pagination item position. This includes the dots.
29
+ */
30
+ page: number;
31
+ /**
32
+ * The pagination total number of pages.
33
+ */
34
+ total: number;
35
+ /**
36
+ * The active page number.
37
+ */
38
+ activePage: number;
39
+ /**
40
+ * Whether the pagination item is active.
41
+ */
42
+ isActive: boolean;
43
+ /**
44
+ * Whether the item is before the active page.
45
+ */
46
+ isBefore: boolean;
47
+ /**
48
+ * Whether the pagination item is the first item in the pagination.
49
+ */
50
+ isFirst: boolean;
51
+ /**
52
+ * Whether the pagination item is the last item in the pagination.
53
+ */
54
+ isLast: boolean;
55
+ /**
56
+ * Whether the pagination item is the next item in the pagination.
57
+ */
58
+ isNext: boolean;
59
+ /**
60
+ * Number of pages that are added or subtracted on the '...' button.
61
+ * @default 5
62
+ */
63
+ dotsJump: number;
64
+ /**
65
+ * Whether the pagination item is the previous item in the pagination.
66
+ */
67
+ isPrevious: boolean;
68
+ /**
69
+ * The pagination item className.
70
+ */
71
+ className: string;
72
+ /**
73
+ * Callback to go to the next page.
74
+ */
75
+ onNext: () => void;
76
+ /**
77
+ * Callback to go to the previous page.
78
+ */
79
+ onPrevious: () => void;
80
+ /**
81
+ * Callback to go to the page.
82
+ */
83
+ setPage: (page: number) => void;
84
+ /**
85
+ * Callback fired when the item is clicked.
86
+ * @param e PressEvent
87
+ */
88
+ onPress?: (e: PressEvent) => void;
89
+ /**
90
+ * Function to get the aria-label of the item.
91
+ */
92
+ getAriaLabel?: (page?: PaginationItemValue) => string | undefined;
93
+ };
94
+ interface Props extends Omit<HtmlUiProps<"nav">, "onChange"> {
95
+ /**
96
+ * Ref to the DOM node.
97
+ */
98
+ ref?: Ref<HTMLElement>;
99
+ /**
100
+ * Number of pages that are added or subtracted on the '...' button.
101
+ * @default 5
102
+ */
103
+ dotsJump?: number;
104
+ /**
105
+ * Non disable next/previous controls
106
+ * @default false
107
+ */
108
+ loop?: boolean;
109
+ /**
110
+ * Whether the pagination should display controls (left/right arrows).
111
+ * @default true
112
+ */
113
+ showControls?: boolean;
114
+ /**
115
+ * Render a custom pagination item.
116
+ * @param props Pagination item props
117
+ * @returns ReactNode
118
+ */
119
+ renderItem?: (props: PaginationItemRenderProps) => ReactNode;
120
+ /**
121
+ * Function to get the aria-label of the item. If not provided, pagination will use the default one.
122
+ */
123
+ getItemAriaLabel?: (page?: string | PaginationItemValue) => string;
124
+ /**
125
+ * Classname or List of classes to change the classNames of the element.
126
+ * if `className` is passed, it will be added to the base slot.
127
+ *
128
+ * @example
129
+ * ```ts
130
+ * <Pagination classNames={{
131
+ * base:"base-classes",
132
+ * prev: "prev-classes", // prev button classes
133
+ * item: "item-classes",
134
+ * next: "next-classes", // next button classes
135
+ * cursor: "cursor-classes", // this is the one that moves when an item is selected
136
+ * forwardIcon: "forward-icon-classes", // forward icon
137
+ * ellipsis: "ellipsis-classes", // ellipsis icon
138
+ * chevronNext: "chevron-next-classes", // chevron next icon
139
+ * }} />
140
+ * ```
141
+ */
142
+ classNames?: SlotsToClasses<PaginationSlots>;
143
+ }
144
+ export type UsePaginationProps = Props & UseBasePaginationProps & PaginationVariantProps;
145
+ export declare const CURSOR_TRANSITION_TIMEOUT = 300;
146
+ export declare function usePagination(originalProps: UsePaginationProps): {
147
+ Component: import("../system/types").As<any>;
148
+ showControls: boolean;
149
+ dotsJump: number;
150
+ slots: {
151
+ base: (slotProps?: ({
152
+ size?: "lg" | "md" | "sm" | undefined;
153
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
154
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
155
+ variant?: "light" | undefined;
156
+ isDisabled?: boolean | undefined;
157
+ isCompact?: boolean | undefined;
158
+ disableCursorAnimation?: boolean | undefined;
159
+ disableAnimation?: boolean | undefined;
160
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
161
+ wrapper: (slotProps?: ({
162
+ size?: "lg" | "md" | "sm" | undefined;
163
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
164
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
165
+ variant?: "light" | undefined;
166
+ isDisabled?: boolean | undefined;
167
+ isCompact?: boolean | undefined;
168
+ disableCursorAnimation?: boolean | undefined;
169
+ disableAnimation?: boolean | undefined;
170
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
171
+ item: (slotProps?: ({
172
+ size?: "lg" | "md" | "sm" | undefined;
173
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
174
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
175
+ variant?: "light" | undefined;
176
+ isDisabled?: boolean | undefined;
177
+ isCompact?: boolean | undefined;
178
+ disableCursorAnimation?: boolean | undefined;
179
+ disableAnimation?: boolean | undefined;
180
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
181
+ prev: (slotProps?: ({
182
+ size?: "lg" | "md" | "sm" | undefined;
183
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
184
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
185
+ variant?: "light" | undefined;
186
+ isDisabled?: boolean | undefined;
187
+ isCompact?: boolean | undefined;
188
+ disableCursorAnimation?: boolean | undefined;
189
+ disableAnimation?: boolean | undefined;
190
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
191
+ next: (slotProps?: ({
192
+ size?: "lg" | "md" | "sm" | undefined;
193
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
194
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
195
+ variant?: "light" | undefined;
196
+ isDisabled?: boolean | undefined;
197
+ isCompact?: boolean | undefined;
198
+ disableCursorAnimation?: boolean | undefined;
199
+ disableAnimation?: boolean | undefined;
200
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
201
+ cursor: (slotProps?: ({
202
+ size?: "lg" | "md" | "sm" | undefined;
203
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
204
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
205
+ variant?: "light" | undefined;
206
+ isDisabled?: boolean | undefined;
207
+ isCompact?: boolean | undefined;
208
+ disableCursorAnimation?: boolean | undefined;
209
+ disableAnimation?: boolean | undefined;
210
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
211
+ forwardIcon: (slotProps?: ({
212
+ size?: "lg" | "md" | "sm" | undefined;
213
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
214
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
215
+ variant?: "light" | undefined;
216
+ isDisabled?: boolean | undefined;
217
+ isCompact?: boolean | undefined;
218
+ disableCursorAnimation?: boolean | undefined;
219
+ disableAnimation?: boolean | undefined;
220
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
221
+ ellipsis: (slotProps?: ({
222
+ size?: "lg" | "md" | "sm" | undefined;
223
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
224
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
225
+ variant?: "light" | undefined;
226
+ isDisabled?: boolean | undefined;
227
+ isCompact?: boolean | undefined;
228
+ disableCursorAnimation?: boolean | undefined;
229
+ disableAnimation?: boolean | undefined;
230
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
231
+ chevronNext: (slotProps?: ({
232
+ size?: "lg" | "md" | "sm" | undefined;
233
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
234
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
235
+ variant?: "light" | undefined;
236
+ isDisabled?: boolean | undefined;
237
+ isCompact?: boolean | undefined;
238
+ disableCursorAnimation?: boolean | undefined;
239
+ disableAnimation?: boolean | undefined;
240
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
241
+ } & {
242
+ base: (slotProps?: ({
243
+ size?: "lg" | "md" | "sm" | undefined;
244
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
245
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
246
+ variant?: "light" | undefined;
247
+ isDisabled?: boolean | undefined;
248
+ isCompact?: boolean | undefined;
249
+ disableCursorAnimation?: boolean | undefined;
250
+ disableAnimation?: boolean | undefined;
251
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
252
+ wrapper: (slotProps?: ({
253
+ size?: "lg" | "md" | "sm" | undefined;
254
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
255
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
256
+ variant?: "light" | undefined;
257
+ isDisabled?: boolean | undefined;
258
+ isCompact?: boolean | undefined;
259
+ disableCursorAnimation?: boolean | undefined;
260
+ disableAnimation?: boolean | undefined;
261
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
262
+ item: (slotProps?: ({
263
+ size?: "lg" | "md" | "sm" | undefined;
264
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
265
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
266
+ variant?: "light" | undefined;
267
+ isDisabled?: boolean | undefined;
268
+ isCompact?: boolean | undefined;
269
+ disableCursorAnimation?: boolean | undefined;
270
+ disableAnimation?: boolean | undefined;
271
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
272
+ prev: (slotProps?: ({
273
+ size?: "lg" | "md" | "sm" | undefined;
274
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
275
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
276
+ variant?: "light" | undefined;
277
+ isDisabled?: boolean | undefined;
278
+ isCompact?: boolean | undefined;
279
+ disableCursorAnimation?: boolean | undefined;
280
+ disableAnimation?: boolean | undefined;
281
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
282
+ next: (slotProps?: ({
283
+ size?: "lg" | "md" | "sm" | undefined;
284
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
285
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
286
+ variant?: "light" | undefined;
287
+ isDisabled?: boolean | undefined;
288
+ isCompact?: boolean | undefined;
289
+ disableCursorAnimation?: boolean | undefined;
290
+ disableAnimation?: boolean | undefined;
291
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
292
+ cursor: (slotProps?: ({
293
+ size?: "lg" | "md" | "sm" | undefined;
294
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
295
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
296
+ variant?: "light" | undefined;
297
+ isDisabled?: boolean | undefined;
298
+ isCompact?: boolean | undefined;
299
+ disableCursorAnimation?: boolean | undefined;
300
+ disableAnimation?: boolean | undefined;
301
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
302
+ forwardIcon: (slotProps?: ({
303
+ size?: "lg" | "md" | "sm" | undefined;
304
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
305
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
306
+ variant?: "light" | undefined;
307
+ isDisabled?: boolean | undefined;
308
+ isCompact?: boolean | undefined;
309
+ disableCursorAnimation?: boolean | undefined;
310
+ disableAnimation?: boolean | undefined;
311
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
312
+ ellipsis: (slotProps?: ({
313
+ size?: "lg" | "md" | "sm" | undefined;
314
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
315
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
316
+ variant?: "light" | undefined;
317
+ isDisabled?: boolean | undefined;
318
+ isCompact?: boolean | undefined;
319
+ disableCursorAnimation?: boolean | undefined;
320
+ disableAnimation?: boolean | undefined;
321
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
322
+ chevronNext: (slotProps?: ({
323
+ size?: "lg" | "md" | "sm" | undefined;
324
+ color?: "main" | "neutral" | "critical" | "warning" | "success" | undefined;
325
+ radius?: "lg" | "md" | "sm" | "none" | "full" | undefined;
326
+ variant?: "light" | undefined;
327
+ isDisabled?: boolean | undefined;
328
+ isCompact?: boolean | undefined;
329
+ disableCursorAnimation?: boolean | undefined;
330
+ disableAnimation?: boolean | undefined;
331
+ } & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string;
332
+ } & {};
333
+ classNames: SlotsToClasses<"cursor" | "base" | "wrapper" | "prev" | "next" | "ellipsis" | "chevronNext" | "item" | "forwardIcon"> | undefined;
334
+ loop: boolean;
335
+ total: number;
336
+ range: PaginationItemValue[];
337
+ activePage: number;
338
+ getItemRef: (node: HTMLElement | null, value: number) => void;
339
+ disableAnimation: boolean;
340
+ disableCursorAnimation: boolean;
341
+ setPage: (pageNumber: number) => void;
342
+ onPrevious: () => void;
343
+ onNext: () => void;
344
+ renderItem: ((props: PaginationItemRenderProps) => ReactNode) | undefined;
345
+ getBaseProps: PropGetter;
346
+ getWrapperProps: PropGetter;
347
+ getItemProps: PropGetter;
348
+ getCursorProps: PropGetter;
349
+ getItemAriaLabel: (page?: string | PaginationItemValue) => string | undefined;
350
+ };
351
+ export type UsePaginationReturn = ReturnType<typeof usePagination>;
352
+ export {};
353
+ //# sourceMappingURL=use-pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-pagination.d.ts","sourceRoot":"","sources":["../../../src/pagination/use-pagination.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/system/react-utils/context.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,GAAG;IAC3C;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,YAAY,CAAC,EAAE,CAAC,CAAA;CACjB;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;AAEhE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,WAAW,EACvC,OAAO,GAAE,oBAAoB,CAAC,WAAW,CAAM,GAC9C,mBAAmB,CAAC,WAAW,CAAC,CA2BlC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/system/react-utils/context.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,GAAG;IAC3C;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,YAAY,CAAC,EAAE,CAAC,CAAA;CACjB;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;AAEhE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,WAAW,EACvC,OAAO,GAAE,oBAAoB,CAAC,WAAW,CAAM,GAC9C,mBAAmB,CAAC,WAAW,CAAC,CA2BlC"}
@@ -0,0 +1,3 @@
1
+ export declare const DOMPropNames: Set<string>;
2
+ export declare const DOMEventNames: Set<string>;
3
+ //# sourceMappingURL=dom-props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom-props.d.ts","sourceRoot":"","sources":["../../../../src/system/react-utils/dom-props.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,aAgIvB,CAAA;AAEF,eAAO,MAAM,aAAa,aAkDxB,CAAA"}
@@ -0,0 +1,39 @@
1
+ import type { AriaLabelingProps, DOMProps } from "@react-types/shared";
2
+ interface Options {
3
+ /**
4
+ * If the filter should be enabled.
5
+ */
6
+ enabled?: boolean;
7
+ /**
8
+ * If labelling associated aria properties should be included in the filter.
9
+ */
10
+ labelable?: boolean;
11
+ /**
12
+ * A Set of other property names that should be included in the filter.
13
+ */
14
+ propNames?: Set<string>;
15
+ /**
16
+ * A Set of other property names that should be removed from the filter.
17
+ */
18
+ omitPropNames?: Set<string>;
19
+ /**
20
+ * A Set of event names that should be excluded from the filter.
21
+ */
22
+ omitEventNames?: Set<string>;
23
+ /**
24
+ * Whether to omit data-* props.
25
+ */
26
+ omitDataProps?: boolean;
27
+ /**
28
+ * Whether to omit event props.
29
+ */
30
+ omitEventProps?: boolean;
31
+ }
32
+ /**
33
+ * Filters out all props that aren't valid DOM props or defined via override prop obj.
34
+ * @param props - The component props to be filtered.
35
+ * @param opts - Props to override.
36
+ */
37
+ export declare function filterDOMProps(props: DOMProps & AriaLabelingProps, opts?: Options): DOMProps & AriaLabelingProps;
38
+ export {};
39
+ //# sourceMappingURL=filter-dom-props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-dom-props.d.ts","sourceRoot":"","sources":["../../../../src/system/react-utils/filter-dom-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAItE,UAAU,OAAO;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACvB;;OAEG;IACH,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B;;OAEG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAMD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,QAAQ,GAAG,iBAAiB,EACnC,IAAI,GAAE,OAAY,GACjB,QAAQ,GAAG,iBAAiB,CAiD9B"}
@@ -1,3 +1,4 @@
1
1
  export * from "./context";
2
2
  export * from "./refs";
3
+ export * from "./filter-dom-props";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/system/react-utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/system/react-utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,oBAAoB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengovsg/oui",
3
- "version": "0.0.0-snapshot-20250813090518",
3
+ "version": "0.0.0-snapshot-20250813172831",
4
4
  "sideEffects": false,
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "type": "module",
@@ -47,7 +47,7 @@
47
47
  "storybook": "9.1.1",
48
48
  "tsx": "^4.20.3",
49
49
  "typescript": "5.7.3",
50
- "@opengovsg/oui-theme": "0.0.0-snapshot-20250813090518",
50
+ "@opengovsg/oui-theme": "0.0.0-snapshot-20250813172831",
51
51
  "@oui/chromatic": "0.0.0",
52
52
  "@oui/eslint-config": "0.0.0",
53
53
  "@oui/prettier-config": "0.0.0",
@@ -73,14 +73,16 @@
73
73
  "react-aria": "^3.41.1",
74
74
  "react-aria-components": "^1.10.1",
75
75
  "react-stately": "^3.39.0",
76
+ "scroll-into-view-if-needed": "^3.1.0",
76
77
  "type-fest": "^4.41.0",
77
- "use-deep-compare": "^1.3.0"
78
+ "use-deep-compare": "^1.3.0",
79
+ "usehooks-ts": "^3.1.1"
78
80
  },
79
81
  "prettier": "@oui/prettier-config",
80
82
  "peerDependencies": {
81
83
  "motion": ">=11.12.0 || >=12.0.0-alpha.1",
82
84
  "react-aria-components": "^1.10.1",
83
- "@opengovsg/oui-theme": "0.0.0-snapshot-20250813090518"
85
+ "@opengovsg/oui-theme": "0.0.0-snapshot-20250813172831"
84
86
  },
85
87
  "scripts": {
86
88
  "build": "tsx ../../tooling/build-scripts/main.ts --dts --clean",