@contractspec/lib.ui-kit 1.46.1 → 1.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/ui/accordion.d.ts +5 -5
  2. package/dist/ui/accordion.d.ts.map +1 -1
  3. package/dist/ui/alert-dialog.d.ts +9 -9
  4. package/dist/ui/alert-dialog.d.ts.map +1 -1
  5. package/dist/ui/alert.d.ts +4 -4
  6. package/dist/ui/aspect-ratio.d.ts +5 -5
  7. package/dist/ui/aspect-ratio.d.ts.map +1 -1
  8. package/dist/ui/atoms/FilterSelect/FilterSelect.js.map +1 -1
  9. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js.map +1 -1
  10. package/dist/ui/atoms/Pagination/Pagination.js.map +1 -1
  11. package/dist/ui/atoms/SearchInput/SearchInput.js.map +1 -1
  12. package/dist/ui/avatar.d.ts +4 -4
  13. package/dist/ui/avatar.d.ts.map +1 -1
  14. package/dist/ui/badge.d.ts +3 -3
  15. package/dist/ui/badge.d.ts.map +1 -1
  16. package/dist/ui/breadcrumb.d.ts +8 -8
  17. package/dist/ui/breadcrumb.d.ts.map +1 -1
  18. package/dist/ui/button.d.ts +7 -7
  19. package/dist/ui/button.d.ts.map +1 -1
  20. package/dist/ui/card.d.ts +7 -7
  21. package/dist/ui/checkbox.d.ts +3 -3
  22. package/dist/ui/collapsible.d.ts +8 -8
  23. package/dist/ui/context-menu.d.ts +16 -16
  24. package/dist/ui/date-picker.d.ts +2 -2
  25. package/dist/ui/date-range-picker.d.ts +2 -2
  26. package/dist/ui/datetime-picker.d.ts +2 -2
  27. package/dist/ui/dialog.d.ts +10 -10
  28. package/dist/ui/dropdown-menu.d.ts +16 -16
  29. package/dist/ui/empty-state.d.ts +4 -4
  30. package/dist/ui/empty.d.ts +9 -9
  31. package/dist/ui/fab.d.ts +3 -3
  32. package/dist/ui/field.d.ts +13 -13
  33. package/dist/ui/form.d.ts +7 -7
  34. package/dist/ui/form.d.ts.map +1 -1
  35. package/dist/ui/hover-card.d.ts +6 -6
  36. package/dist/ui/hover-card.d.ts.map +1 -1
  37. package/dist/ui/input.d.ts +2 -2
  38. package/dist/ui/input.d.ts.map +1 -1
  39. package/dist/ui/label.d.ts +2 -2
  40. package/dist/ui/label.d.ts.map +1 -1
  41. package/dist/ui/link.d.ts +2 -2
  42. package/dist/ui/link.d.ts.map +1 -1
  43. package/dist/ui/loading-button.d.ts +2 -2
  44. package/dist/ui/loading-button.d.ts.map +1 -1
  45. package/dist/ui/loading-overlay.d.ts +2 -2
  46. package/dist/ui/loading-overlay.d.ts.map +1 -1
  47. package/dist/ui/loading-screen.d.ts +2 -2
  48. package/dist/ui/loading-screen.d.ts.map +1 -1
  49. package/dist/ui/marketing/FeatureGrid.d.ts +2 -2
  50. package/dist/ui/marketing/FeatureGrid.d.ts.map +1 -1
  51. package/dist/ui/marketing/Hero.d.ts +2 -2
  52. package/dist/ui/marketing/Hero.d.ts.map +1 -1
  53. package/dist/ui/marketing/PricingTable.d.ts +2 -2
  54. package/dist/ui/marketing/PricingTable.d.ts.map +1 -1
  55. package/dist/ui/menubar.d.ts +17 -17
  56. package/dist/ui/menubar.d.ts.map +1 -1
  57. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +0 -2
  58. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js.map +1 -1
  59. package/dist/ui/molecules/SkeletonList.d.ts +2 -2
  60. package/dist/ui/molecules/SkeletonList.d.ts.map +1 -1
  61. package/dist/ui/navigation-menu.d.ts +12 -12
  62. package/dist/ui/navigation-menu.d.ts.map +1 -1
  63. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +2 -2
  64. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts.map +1 -1
  65. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js.map +1 -1
  66. package/dist/ui/organisms/ListPage/ListPage.d.ts +2 -2
  67. package/dist/ui/organisms/ListPage/ListPage.d.ts.map +1 -1
  68. package/dist/ui/organisms/ListPage/ListPage.js +0 -2
  69. package/dist/ui/organisms/ListPage/ListPage.js.map +1 -1
  70. package/dist/ui/page-header.d.ts +4 -4
  71. package/dist/ui/page-header.d.ts.map +1 -1
  72. package/dist/ui/password-strength.d.ts +2 -2
  73. package/dist/ui/password-strength.js.map +1 -1
  74. package/dist/ui/popover.d.ts +6 -6
  75. package/dist/ui/progress.d.ts +2 -2
  76. package/dist/ui/radio-group.d.ts +3 -3
  77. package/dist/ui/select.d.ts +13 -13
  78. package/dist/ui/separator.d.ts +2 -2
  79. package/dist/ui/skeleton.d.ts +2 -2
  80. package/dist/ui/stack.d.ts +17 -17
  81. package/dist/ui/stack.d.ts.map +1 -1
  82. package/dist/ui/stepper.d.ts +2 -2
  83. package/dist/ui/switch.d.ts +2 -2
  84. package/dist/ui/table.d.ts +8 -8
  85. package/dist/ui/tabs.d.ts +9 -9
  86. package/dist/ui/text.d.ts +2 -2
  87. package/dist/ui/time-picker.d.ts +2 -2
  88. package/dist/ui/time-picker.d.ts.map +1 -1
  89. package/dist/ui/toggle-group.d.ts +4 -4
  90. package/dist/ui/toggle.d.ts +6 -6
  91. package/dist/ui/toggle.d.ts.map +1 -1
  92. package/dist/ui/tooltip.d.ts +6 -6
  93. package/dist/ui/tooltip.d.ts.map +1 -1
  94. package/dist/ui/typography.d.ts +12 -12
  95. package/dist/ui/typography.d.ts.map +1 -1
  96. package/dist/ui/useColorScheme.d.ts +2 -2
  97. package/dist/ui/useListState.js.map +1 -1
  98. package/dist/ui/usecases/UseCaseCard.d.ts +2 -2
  99. package/dist/ui/usecases/UserStoryCard.d.ts +2 -2
  100. package/dist/ui/usecases/UserStoryCard.d.ts.map +1 -1
  101. package/package.json +13 -10
@@ -1,18 +1,18 @@
1
1
  import * as React$1 from "react";
2
- import * as react_native51 from "react-native";
3
- import * as react_jsx_runtime145 from "react/jsx-runtime";
2
+ import * as react_native25 from "react-native";
3
+ import * as react_jsx_runtime86 from "react/jsx-runtime";
4
4
  import * as _rn_primitives_tooltip0 from "@rn-primitives/tooltip";
5
5
 
6
6
  //#region ui/tooltip.d.ts
7
- declare const Tooltip: React$1.ForwardRefExoticComponent<react_native51.ViewProps & {
7
+ declare const Tooltip: React$1.ForwardRefExoticComponent<react_native25.ViewProps & {
8
8
  asChild?: boolean;
9
9
  } & {
10
10
  onOpenChange?: (open: boolean) => void;
11
11
  delayDuration?: number;
12
12
  skipDelayDuration?: number;
13
13
  disableHoverableContent?: boolean;
14
- } & React$1.RefAttributes<react_native51.View>>;
15
- declare const TooltipTrigger: React$1.ForwardRefExoticComponent<Omit<react_native51.PressableProps & React$1.RefAttributes<react_native51.View>, "ref"> & {
14
+ } & React$1.RefAttributes<react_native25.View>>;
15
+ declare const TooltipTrigger: React$1.ForwardRefExoticComponent<Omit<react_native25.PressableProps & React$1.RefAttributes<react_native25.View>, "ref"> & {
16
16
  asChild?: boolean;
17
17
  } & {
18
18
  onKeyDown?: (ev: React$1.KeyboardEvent) => void;
@@ -26,7 +26,7 @@ declare function TooltipContent({
26
26
  }: _rn_primitives_tooltip0.ContentProps & {
27
27
  ref?: React$1.RefObject<_rn_primitives_tooltip0.ContentRef>;
28
28
  portalHost?: string;
29
- }): react_jsx_runtime145.JSX.Element;
29
+ }): react_jsx_runtime86.JSX.Element;
30
30
  //#endregion
31
31
  export { Tooltip, TooltipContent, TooltipTrigger };
32
32
  //# sourceMappingURL=tooltip.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.d.ts","names":[],"sources":["../../ui/tooltip.tsx"],"sourcesContent":[],"mappings":";;;;;;cAOM,SAAO,OAAA,CAAA,0BAAwB,cAAA,CAAxB,SAAA;;;;EAAP,aAA+B,CAAA,EAAA,MAAA;EAAA,iBAAxB,CAAA,EAAA,MAAA;EAAA,uBAAA,CAAA,EAAA,OAAA;0BAAA,cAAA,CAAA,IAAA;cAEP,cAFO,EAEO,OAAA,CAAA,yBAFP,CAEO,IAFP,CAEkC,cAAA,CAA3B,cAAA,GAAA,OAAA,CAAA,aAFP,CAEO,cAAA,CAAA,IAAA,CAFP,EAAA,KAAA,CAAA,GAAA;EAAA,OAAA,CAAA,EAAA,OAAA;AAAA,CAAA,GAEP;EAAyC,SAAA,CAAA,EAA3B,CAAA,EAAA,uBAAA,EAAA,GAAA,IAAA;EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,GAAA,IAAA;CAAA,wBAAA,oCAAA,CAAA;iBAEX,cAAA,CAFW;EAAA,SAAA;EAAA,UAAA;EAAA,UAAA;EAAA,GAAA;CAAA,EAOjB,uBAAA,CAAiB,YAPA,GAAA;QAQZ,OAAA,CAAM,UAAU,uBAAA,CAAiB;;IAExC,oBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"tooltip.d.ts","names":[],"sources":["../../ui/tooltip.tsx"],"sourcesContent":[],"mappings":";;;;;;cAOM,SAAO,OAAA,CAAA,0BAAwB,cAAA,CAAxB,SAAA;;;;EAAP,aAA+B,CAAA,EAAA,MAAA;EAAA,iBAAxB,CAAA,EAAA,MAAA;EAAA,uBAAA,CAAA,EAAA,OAAA;0BAAA,cAAA,CAAA,IAAA;cAEP,cAFO,EAEO,OAAA,CAAA,yBAFP,CAEO,IAFP,CAEkC,cAAA,CAA3B,cAAA,GAAA,OAAA,CAAA,aAFP,CAEO,cAAA,CAAA,IAAA,CAFP,EAAA,KAAA,CAAA,GAAA;EAAA,OAAA,CAAA,EAAA,OAAA;AAAA,CAAA,GAEP;EAAyC,SAAA,CAAA,EAA3B,CAAA,EAAA,uBAAA,EAAA,GAAA,IAAA;EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,GAAA,IAAA;CAAA,wBAAA,oCAAA,CAAA;iBAEX,cAAA,CAFW;EAAA,SAAA;EAAA,UAAA;EAAA,UAAA;EAAA,GAAA;CAAA,EAOjB,uBAAA,CAAiB,YAPA,GAAA;QAQZ,OAAA,CAAM,UAAU,uBAAA,CAAiB;;IAExC,mBAAA,CAAA,GAAA,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { TextProps } from "./text.js";
2
- import * as react_jsx_runtime134 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime87 from "react/jsx-runtime";
3
3
 
4
4
  //#region ui/typography.d.ts
5
5
  type TypographyProps = TextProps & {
@@ -9,57 +9,57 @@ declare function H1({
9
9
  className,
10
10
  asChild,
11
11
  ...props
12
- }: TypographyProps): react_jsx_runtime134.JSX.Element;
12
+ }: TypographyProps): react_jsx_runtime87.JSX.Element;
13
13
  declare function H2({
14
14
  className,
15
15
  asChild,
16
16
  ...props
17
- }: TypographyProps): react_jsx_runtime134.JSX.Element;
17
+ }: TypographyProps): react_jsx_runtime87.JSX.Element;
18
18
  declare function H3({
19
19
  className,
20
20
  asChild,
21
21
  ...props
22
- }: TypographyProps): react_jsx_runtime134.JSX.Element;
22
+ }: TypographyProps): react_jsx_runtime87.JSX.Element;
23
23
  declare function H4({
24
24
  className,
25
25
  asChild,
26
26
  ...props
27
- }: TypographyProps): react_jsx_runtime134.JSX.Element;
27
+ }: TypographyProps): react_jsx_runtime87.JSX.Element;
28
28
  declare function P({
29
29
  className,
30
30
  asChild,
31
31
  ...props
32
- }: TypographyProps): react_jsx_runtime134.JSX.Element;
32
+ }: TypographyProps): react_jsx_runtime87.JSX.Element;
33
33
  declare function BlockQuote({
34
34
  className,
35
35
  asChild,
36
36
  ...props
37
- }: TypographyProps): react_jsx_runtime134.JSX.Element;
37
+ }: TypographyProps): react_jsx_runtime87.JSX.Element;
38
38
  declare function Code({
39
39
  className,
40
40
  asChild,
41
41
  ...props
42
- }: TypographyProps): react_jsx_runtime134.JSX.Element;
42
+ }: TypographyProps): react_jsx_runtime87.JSX.Element;
43
43
  declare function Lead({
44
44
  className,
45
45
  asChild,
46
46
  ...props
47
- }: TypographyProps): react_jsx_runtime134.JSX.Element;
47
+ }: TypographyProps): react_jsx_runtime87.JSX.Element;
48
48
  declare function Large({
49
49
  className,
50
50
  asChild,
51
51
  ...props
52
- }: TypographyProps): react_jsx_runtime134.JSX.Element;
52
+ }: TypographyProps): react_jsx_runtime87.JSX.Element;
53
53
  declare function Small({
54
54
  className,
55
55
  asChild,
56
56
  ...props
57
- }: TypographyProps): react_jsx_runtime134.JSX.Element;
57
+ }: TypographyProps): react_jsx_runtime87.JSX.Element;
58
58
  declare function Muted({
59
59
  className,
60
60
  asChild,
61
61
  ...props
62
- }: TypographyProps): react_jsx_runtime134.JSX.Element;
62
+ }: TypographyProps): react_jsx_runtime87.JSX.Element;
63
63
  //#endregion
64
64
  export { BlockQuote, Code, H1, H2, H3, H4, Large, Lead, Muted, P, Small, TypographyProps };
65
65
  //# sourceMappingURL=typography.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typography.d.ts","names":[],"sources":["../../ui/typography.tsx"],"sourcesContent":[],"mappings":";;;;KAMY,eAAA,GAAkB;;;AAA9B,iBAIS,EAAA,CAJG;EAAe,SAAA;EAAA,OAAG;EAAA,GAAS;AAAA,CAAA,EAIe,eAJf,CAAA,EAI8B,oBAAA,CAAA,GAAA,CAAA,OAJ9B;AAErC,iBAiBO,EAAA,CAfE;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAe2C,eAf3C,CAAA,EAe0D,oBAAA,CAAA,GAAA,CAAA,OAf1D;iBA8BF,EAAA,CA9BK;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA8BwC,eA9BxC,CAAA,EA8BuD,oBAAA,CAAA,GAAA,CAAA,OA9BvD;iBA6CL,EAAA,CA7CgB;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA6C6B,eA7C7B,CAAA,EA6C4C,oBAAA,CAAA,GAAA,CAAA,OA7C5C;iBA4DhB,CAAA,CA5D6C;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA4DD,eA5DC,CAAA,EA4Dc,oBAAA,CAAA,GAAA,CAAA,OA5Dd;iBAsE7C,UAAA,CAtE4D;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAsEP,eAtEO,CAAA,EAsEQ,oBAAA,CAAA,GAAA,CAAA,OAtER;iBAqF5D,IAAA,CArF4D;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAqFb,eArFa,CAAA,EAqFE,oBAAA,CAAA,GAAA,CAAA,OArFF;AAAA,iBAoG5D,IAAA,CArFE;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAqF6C,eArF7C,CAAA,EAqF4D,oBAAA,CAAA,GAAA,CAAA,OArF5D;iBA+FF,KAAA,CA/FK;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA+F2C,eA/F3C,CAAA,EA+F0D,oBAAA,CAAA,GAAA,CAAA,OA/F1D;iBA4GL,KAAA,CA5GgB;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA4GgC,eA5GhC,CAAA,EA4G+C,oBAAA,CAAA,GAAA,CAAA,OA5G/C;iBAyHhB,KAAA,CAzH6C;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAyHG,eAzHH,CAAA,EAyHkB,oBAAA,CAAA,GAAA,CAAA,OAzHlB"}
1
+ {"version":3,"file":"typography.d.ts","names":[],"sources":["../../ui/typography.tsx"],"sourcesContent":[],"mappings":";;;;KAMY,eAAA,GAAkB;;;AAA9B,iBAIS,EAAA,CAJG;EAAe,SAAA;EAAA,OAAG;EAAA,GAAS;AAAA,CAAA,EAIe,eAJf,CAAA,EAI8B,mBAAA,CAAA,GAAA,CAAA,OAJ9B;AAErC,iBAiBO,EAAA,CAfE;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAe2C,eAf3C,CAAA,EAe0D,mBAAA,CAAA,GAAA,CAAA,OAf1D;iBA8BF,EAAA,CA9BK;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA8BwC,eA9BxC,CAAA,EA8BuD,mBAAA,CAAA,GAAA,CAAA,OA9BvD;iBA6CL,EAAA,CA7CgB;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA6C6B,eA7C7B,CAAA,EA6C4C,mBAAA,CAAA,GAAA,CAAA,OA7C5C;iBA4DhB,CAAA,CA5D6C;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA4DD,eA5DC,CAAA,EA4Dc,mBAAA,CAAA,GAAA,CAAA,OA5Dd;iBAsE7C,UAAA,CAtE4D;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAsEP,eAtEO,CAAA,EAsEQ,mBAAA,CAAA,GAAA,CAAA,OAtER;iBAqF5D,IAAA,CArF4D;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAqFb,eArFa,CAAA,EAqFE,mBAAA,CAAA,GAAA,CAAA,OArFF;AAAA,iBAoG5D,IAAA,CArFE;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAqF6C,eArF7C,CAAA,EAqF4D,mBAAA,CAAA,GAAA,CAAA,OArF5D;iBA+FF,KAAA,CA/FK;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA+F2C,eA/F3C,CAAA,EA+F0D,mBAAA,CAAA,GAAA,CAAA,OA/F1D;iBA4GL,KAAA,CA5GgB;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA4GgC,eA5GhC,CAAA,EA4G+C,mBAAA,CAAA,GAAA,CAAA,OA5G/C;iBAyHhB,KAAA,CAzH6C;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAyHG,eAzHH,CAAA,EAyHkB,mBAAA,CAAA,GAAA,CAAA,OAzHlB"}
@@ -1,10 +1,10 @@
1
- import * as react_native55 from "react-native";
1
+ import * as react_native29 from "react-native";
2
2
 
3
3
  //#region ui/useColorScheme.d.ts
4
4
  declare function useColorScheme(): {
5
5
  colorScheme: "light" | "dark";
6
6
  isDarkColorScheme: boolean;
7
- setColorScheme: (scheme: react_native55.ColorSchemeName) => void;
7
+ setColorScheme: (scheme: react_native29.ColorSchemeName) => void;
8
8
  toggleColorScheme: () => void;
9
9
  };
10
10
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"useListState.js","names":["filterParams: Record<string, string>"],"sources":["../../ui/useListState.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\n\nexport interface UseListStateOptions {\n initialSearch?: string;\n initialFilters?: Record<string, string>;\n initialPage?: number;\n initialItemsPerPage?: number;\n debounceMs?: number;\n}\n\nexport interface UseListStateReturn {\n // Search\n searchQuery: string;\n setSearchQuery: (query: string) => void;\n\n // Filters\n filters: Record<string, string>;\n setFilter: (key: string, value: string) => void;\n clearFilters: () => void;\n\n // Pagination\n currentPage: number;\n itemsPerPage: number;\n setCurrentPage: (page: number) => void;\n setItemsPerPage: (itemsPerPage: number) => void;\n\n // Combined state for API calls\n queryParams: {\n search: string;\n page: number;\n limit: number;\n } & Record<string, string | number>;\n\n // Reset all\n resetAll: () => void;\n}\n\nexport const useListState = ({\n initialSearch = '',\n initialFilters = {},\n initialPage = 1,\n initialItemsPerPage = 25,\n}: UseListStateOptions = {}): UseListStateReturn => {\n const [searchQuery, setSearchQuery] = useState(initialSearch);\n const [filters, setFilters] = useState(initialFilters);\n const [currentPage, setCurrentPage] = useState(initialPage);\n const [itemsPerPage, setItemsPerPage] = useState(initialItemsPerPage);\n\n const setFilter = useCallback((key: string, value: string) => {\n setFilters((prev) => ({\n ...prev,\n [key]: value,\n }));\n // Reset to first page when filtering\n setCurrentPage(1);\n }, []);\n\n const clearFilters = useCallback(() => {\n setFilters({});\n setCurrentPage(1);\n }, []);\n\n const handleSetSearchQuery = useCallback((query: string) => {\n setSearchQuery(query);\n // Reset to first page when searching\n setCurrentPage(1);\n }, []);\n\n const handleSetItemsPerPage = useCallback((newItemsPerPage: number) => {\n setItemsPerPage(newItemsPerPage);\n // Reset to first page when changing items per page\n setCurrentPage(1);\n }, []);\n\n const resetAll = useCallback(() => {\n setSearchQuery(initialSearch);\n setFilters(initialFilters);\n setCurrentPage(initialPage);\n setItemsPerPage(initialItemsPerPage);\n }, [initialSearch, initialFilters, initialPage, initialItemsPerPage]);\n\n const queryParams = useMemo(() => {\n const baseParams = {\n search: searchQuery,\n page: currentPage,\n limit: itemsPerPage,\n };\n\n // Add active filters to params\n const filterParams: Record<string, string> = {};\n Object.entries(filters).forEach(([key, value]) => {\n if (value) {\n filterParams[key] = value;\n }\n });\n\n return { ...baseParams, ...filterParams };\n }, [searchQuery, filters, currentPage, itemsPerPage]);\n\n return {\n searchQuery,\n setSearchQuery: handleSetSearchQuery,\n filters,\n setFilter,\n clearFilters,\n currentPage,\n itemsPerPage,\n setCurrentPage,\n setItemsPerPage: handleSetItemsPerPage,\n queryParams,\n resetAll,\n };\n};\n"],"mappings":";;;AAqCA,MAAa,gBAAgB,EAC3B,gBAAgB,IAChB,iBAAiB,EAAE,EACnB,cAAc,GACd,sBAAsB,OACC,EAAE,KAAyB;CAClD,MAAM,CAAC,aAAa,kBAAkB,SAAS,cAAc;CAC7D,MAAM,CAAC,SAAS,cAAc,SAAS,eAAe;CACtD,MAAM,CAAC,aAAa,kBAAkB,SAAS,YAAY;CAC3D,MAAM,CAAC,cAAc,mBAAmB,SAAS,oBAAoB;CAErE,MAAM,YAAY,aAAa,KAAa,UAAkB;AAC5D,cAAY,UAAU;GACpB,GAAG;IACF,MAAM;GACR,EAAE;AAEH,iBAAe,EAAE;IAChB,EAAE,CAAC;CAEN,MAAM,eAAe,kBAAkB;AACrC,aAAW,EAAE,CAAC;AACd,iBAAe,EAAE;IAChB,EAAE,CAAC;CAEN,MAAM,uBAAuB,aAAa,UAAkB;AAC1D,iBAAe,MAAM;AAErB,iBAAe,EAAE;IAChB,EAAE,CAAC;CAEN,MAAM,wBAAwB,aAAa,oBAA4B;AACrE,kBAAgB,gBAAgB;AAEhC,iBAAe,EAAE;IAChB,EAAE,CAAC;CAEN,MAAM,WAAW,kBAAkB;AACjC,iBAAe,cAAc;AAC7B,aAAW,eAAe;AAC1B,iBAAe,YAAY;AAC3B,kBAAgB,oBAAoB;IACnC;EAAC;EAAe;EAAgB;EAAa;EAAoB,CAAC;AAoBrE,QAAO;EACL;EACA,gBAAgB;EAChB;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB;EACjB,aA5BkB,cAAc;GAChC,MAAM,aAAa;IACjB,QAAQ;IACR,MAAM;IACN,OAAO;IACR;GAGD,MAAMA,eAAuC,EAAE;AAC/C,UAAO,QAAQ,QAAQ,CAAC,SAAS,CAAC,KAAK,WAAW;AAChD,QAAI,MACF,cAAa,OAAO;KAEtB;AAEF,UAAO;IAAE,GAAG;IAAY,GAAG;IAAc;KACxC;GAAC;GAAa;GAAS;GAAa;GAAa,CAAC;EAanD;EACD"}
1
+ {"version":3,"file":"useListState.js","names":[],"sources":["../../ui/useListState.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\n\nexport interface UseListStateOptions {\n initialSearch?: string;\n initialFilters?: Record<string, string>;\n initialPage?: number;\n initialItemsPerPage?: number;\n debounceMs?: number;\n}\n\nexport interface UseListStateReturn {\n // Search\n searchQuery: string;\n setSearchQuery: (query: string) => void;\n\n // Filters\n filters: Record<string, string>;\n setFilter: (key: string, value: string) => void;\n clearFilters: () => void;\n\n // Pagination\n currentPage: number;\n itemsPerPage: number;\n setCurrentPage: (page: number) => void;\n setItemsPerPage: (itemsPerPage: number) => void;\n\n // Combined state for API calls\n queryParams: {\n search: string;\n page: number;\n limit: number;\n } & Record<string, string | number>;\n\n // Reset all\n resetAll: () => void;\n}\n\nexport const useListState = ({\n initialSearch = '',\n initialFilters = {},\n initialPage = 1,\n initialItemsPerPage = 25,\n}: UseListStateOptions = {}): UseListStateReturn => {\n const [searchQuery, setSearchQuery] = useState(initialSearch);\n const [filters, setFilters] = useState(initialFilters);\n const [currentPage, setCurrentPage] = useState(initialPage);\n const [itemsPerPage, setItemsPerPage] = useState(initialItemsPerPage);\n\n const setFilter = useCallback((key: string, value: string) => {\n setFilters((prev) => ({\n ...prev,\n [key]: value,\n }));\n // Reset to first page when filtering\n setCurrentPage(1);\n }, []);\n\n const clearFilters = useCallback(() => {\n setFilters({});\n setCurrentPage(1);\n }, []);\n\n const handleSetSearchQuery = useCallback((query: string) => {\n setSearchQuery(query);\n // Reset to first page when searching\n setCurrentPage(1);\n }, []);\n\n const handleSetItemsPerPage = useCallback((newItemsPerPage: number) => {\n setItemsPerPage(newItemsPerPage);\n // Reset to first page when changing items per page\n setCurrentPage(1);\n }, []);\n\n const resetAll = useCallback(() => {\n setSearchQuery(initialSearch);\n setFilters(initialFilters);\n setCurrentPage(initialPage);\n setItemsPerPage(initialItemsPerPage);\n }, [initialSearch, initialFilters, initialPage, initialItemsPerPage]);\n\n const queryParams = useMemo(() => {\n const baseParams = {\n search: searchQuery,\n page: currentPage,\n limit: itemsPerPage,\n };\n\n // Add active filters to params\n const filterParams: Record<string, string> = {};\n Object.entries(filters).forEach(([key, value]) => {\n if (value) {\n filterParams[key] = value;\n }\n });\n\n return { ...baseParams, ...filterParams };\n }, [searchQuery, filters, currentPage, itemsPerPage]);\n\n return {\n searchQuery,\n setSearchQuery: handleSetSearchQuery,\n filters,\n setFilter,\n clearFilters,\n currentPage,\n itemsPerPage,\n setCurrentPage,\n setItemsPerPage: handleSetItemsPerPage,\n queryParams,\n resetAll,\n };\n};\n"],"mappings":";;;AAqCA,MAAa,gBAAgB,EAC3B,gBAAgB,IAChB,iBAAiB,EAAE,EACnB,cAAc,GACd,sBAAsB,OACC,EAAE,KAAyB;CAClD,MAAM,CAAC,aAAa,kBAAkB,SAAS,cAAc;CAC7D,MAAM,CAAC,SAAS,cAAc,SAAS,eAAe;CACtD,MAAM,CAAC,aAAa,kBAAkB,SAAS,YAAY;CAC3D,MAAM,CAAC,cAAc,mBAAmB,SAAS,oBAAoB;CAErE,MAAM,YAAY,aAAa,KAAa,UAAkB;AAC5D,cAAY,UAAU;GACpB,GAAG;IACF,MAAM;GACR,EAAE;AAEH,iBAAe,EAAE;IAChB,EAAE,CAAC;CAEN,MAAM,eAAe,kBAAkB;AACrC,aAAW,EAAE,CAAC;AACd,iBAAe,EAAE;IAChB,EAAE,CAAC;CAEN,MAAM,uBAAuB,aAAa,UAAkB;AAC1D,iBAAe,MAAM;AAErB,iBAAe,EAAE;IAChB,EAAE,CAAC;CAEN,MAAM,wBAAwB,aAAa,oBAA4B;AACrE,kBAAgB,gBAAgB;AAEhC,iBAAe,EAAE;IAChB,EAAE,CAAC;CAEN,MAAM,WAAW,kBAAkB;AACjC,iBAAe,cAAc;AAC7B,aAAW,eAAe;AAC1B,iBAAe,YAAY;AAC3B,kBAAgB,oBAAoB;IACnC;EAAC;EAAe;EAAgB;EAAa;EAAoB,CAAC;AAoBrE,QAAO;EACL;EACA,gBAAgB;EAChB;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB;EACjB,aA5BkB,cAAc;GAChC,MAAM,aAAa;IACjB,QAAQ;IACR,MAAM;IACN,OAAO;IACR;GAGD,MAAM,eAAuC,EAAE;AAC/C,UAAO,QAAQ,QAAQ,CAAC,SAAS,CAAC,KAAK,WAAW;AAChD,QAAI,MACF,cAAa,OAAO;KAEtB;AAEF,UAAO;IAAE,GAAG;IAAY,GAAG;IAAc;KACxC;GAAC;GAAa;GAAS;GAAa;GAAa,CAAC;EAanD;EACD"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime113 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime155 from "react/jsx-runtime";
2
2
 
3
3
  //#region ui/usecases/UseCaseCard.d.ts
4
4
  declare function UseCaseCard({
@@ -13,7 +13,7 @@ declare function UseCaseCard({
13
13
  ctaHref?: string;
14
14
  ctaLabel?: string;
15
15
  onCtaClick?: () => void;
16
- }): react_jsx_runtime113.JSX.Element;
16
+ }): react_jsx_runtime155.JSX.Element;
17
17
  //#endregion
18
18
  export { UseCaseCard };
19
19
  //# sourceMappingURL=UseCaseCard.d.ts.map
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime114 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime83 from "react/jsx-runtime";
2
2
 
3
3
  //#region ui/usecases/UserStoryCard.d.ts
4
4
  declare function UserStoryCard({
@@ -9,7 +9,7 @@ declare function UserStoryCard({
9
9
  title: string;
10
10
  body?: string;
11
11
  outcome?: string;
12
- }): react_jsx_runtime114.JSX.Element;
12
+ }): react_jsx_runtime83.JSX.Element;
13
13
  //#endregion
14
14
  export { UserStoryCard };
15
15
  //# sourceMappingURL=UserStoryCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserStoryCard.d.ts","names":[],"sources":["../../../ui/usecases/UserStoryCard.tsx"],"sourcesContent":[],"mappings":";;;iBAGgB,aAAA;;;;;;;EAAA,OAAA,CAAA,EAAA,MAAa;CAC3B,CAAA,EAOD,oBAAA,CAAA,GAAA,CAAA,OAPC"}
1
+ {"version":3,"file":"UserStoryCard.d.ts","names":[],"sources":["../../../ui/usecases/UserStoryCard.tsx"],"sourcesContent":[],"mappings":";;;iBAGgB,aAAA;;;;;;;EAAA,OAAA,CAAA,EAAA,MAAa;CAC3B,CAAA,EAOD,mBAAA,CAAA,GAAA,CAAA,OAPC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contractspec/lib.ui-kit",
3
- "version": "1.46.1",
3
+ "version": "1.47.0",
4
4
  "description": "Cross-platform UI components for React Native and web",
5
5
  "keywords": [
6
6
  "contractspec",
@@ -11,8 +11,6 @@
11
11
  "typescript"
12
12
  ],
13
13
  "type": "module",
14
- "main": "./dist/index.js",
15
- "module": "./dist/index.js",
16
14
  "types": "./dist/index.d.ts",
17
15
  "sideEffects": false,
18
16
  "scripts": {
@@ -28,9 +26,10 @@
28
26
  "lint:check": "eslint ui"
29
27
  },
30
28
  "dependencies": {
31
- "@contractspec/lib.ui-kit-core": "1.46.1",
32
- "@react-native-community/datetimepicker": "^8.4.5",
29
+ "@contractspec/lib.ui-kit-core": "1.47.0",
30
+ "@hookform/resolvers": "^5.2.2",
33
31
  "@react-native-async-storage/async-storage": "^2.1.2",
32
+ "@react-native-community/datetimepicker": "^8.6.0",
34
33
  "@react-navigation/native": "^7.1.26",
35
34
  "@rn-primitives/accordion": "^1.2.0",
36
35
  "@rn-primitives/alert-dialog": "^1.2.0",
@@ -79,10 +78,12 @@
79
78
  "expo-system-ui": "~5.0.7",
80
79
  "expo-updates": "~0.28.15",
81
80
  "expo-web-browser": "^14.2.0",
81
+ "lucide-react": "^0.562.0",
82
82
  "lucide-react-native": "^0.562.0",
83
83
  "nativewind": "5.0.0-preview.2",
84
84
  "react": "19.2.3",
85
85
  "react-dom": "19.2.3",
86
+ "react-hook-form": "^7.70.0",
86
87
  "react-native": "0.81.4",
87
88
  "react-native-device-info": "^14.1.1",
88
89
  "react-native-localize": "^3.5.2",
@@ -94,13 +95,15 @@
94
95
  "react-use": "^17.6.0",
95
96
  "tailwind-merge": "^3.3.1",
96
97
  "tailwindcss": "4.1.18",
97
- "tailwindcss-animate": "^1.0.7"
98
+ "tailwindcss-animate": "^1.0.7",
99
+ "zod": "^4.3.5"
98
100
  },
99
101
  "devDependencies": {
100
- "@babel/core": "^7.28.4",
101
- "@contractspec/tool.typescript": "1.46.1",
102
- "@contractspec/tool.tsdown": "1.46.1",
103
- "tsdown": "^0.18.3",
102
+ "@babel/core": "^7.28.6",
103
+ "@contractspec/tool.tsdown": "1.47.0",
104
+ "@contractspec/tool.typescript": "1.47.0",
105
+ "react-native-css": "^3.0.0",
106
+ "tsdown": "^0.19.0",
104
107
  "typescript": "^5.9.3"
105
108
  },
106
109
  "exports": {