@payfit/unity-components 1.2.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/dist/esm/components/action-bar/ActionBar.js +14 -14
  2. package/dist/esm/components/actionable/Actionable.js +31 -28
  3. package/dist/esm/components/app-layout/AppLayout.js +17 -17
  4. package/dist/esm/components/app-menu/parts/AppMenuHeader.d.ts +86 -4
  5. package/dist/esm/components/app-menu/parts/AppMenuHeader.js +25 -25
  6. package/dist/esm/components/breadcrumbs/Breadcrumbs.context.js +3 -3
  7. package/dist/esm/components/breadcrumbs/Breadcrumbs.d.ts +19 -11
  8. package/dist/esm/components/breadcrumbs/Breadcrumbs.js +29 -18
  9. package/dist/esm/components/breadcrumbs/parts/Breadcrumb.d.ts +30 -5
  10. package/dist/esm/components/breadcrumbs/parts/Breadcrumb.js +35 -27
  11. package/dist/esm/components/breadcrumbs/parts/RawBreadcrumbLink.d.ts +37 -0
  12. package/dist/esm/components/breadcrumbs/parts/RawBreadcrumbLink.js +36 -0
  13. package/dist/esm/components/client-side-pagination/ClientSidePagination.d.ts +103 -0
  14. package/dist/esm/components/client-side-pagination/ClientSidePagination.js +177 -0
  15. package/dist/esm/components/client-side-pagination/parts/PaginationEllipsis.d.ts +11 -0
  16. package/dist/esm/components/client-side-pagination/parts/PaginationEllipsis.js +30 -0
  17. package/dist/esm/components/client-side-pagination/parts/PaginationJumpDialog.d.ts +8 -0
  18. package/dist/esm/components/{pagination/parts/PaginationLink.d.ts → client-side-pagination/parts/RawPaginationLink.d.ts} +2 -2
  19. package/dist/esm/components/{pagination/parts/PaginationLink.js → client-side-pagination/parts/RawPaginationLink.js} +2 -2
  20. package/dist/esm/components/client-side-pagination/utils/pagination-window.d.ts +8 -0
  21. package/dist/esm/components/client-side-pagination/utils/pagination-window.js +33 -0
  22. package/dist/esm/components/error-state/ErrorState.d.ts +13 -1
  23. package/dist/esm/components/error-state/ErrorState.js +133 -92
  24. package/dist/esm/components/error-state/initConfig.js +1 -1
  25. package/dist/esm/components/fieldset/Fieldset.d.ts +19 -0
  26. package/dist/esm/components/fieldset/Fieldset.js +32 -26
  27. package/dist/esm/components/flex/Flex.js +52 -37
  28. package/dist/esm/components/form-field/FormField.js +12 -12
  29. package/dist/esm/components/form-field/parts/{FormContextualLink.d.ts → RawFormContextualLink.d.ts} +2 -2
  30. package/dist/esm/components/form-field/parts/RawFormContextualLink.js +39 -0
  31. package/dist/esm/components/funnel-layout/parts/FunnelSidebar.d.ts +2 -2
  32. package/dist/esm/components/icon/Icon.js +23 -19
  33. package/dist/esm/components/link/{Link.variants.d.ts → RawLink.d.ts} +92 -0
  34. package/dist/esm/components/link/{Link.variants.js → RawLink.js} +70 -4
  35. package/dist/esm/components/menu/parts/{MenuItem.d.ts → RawMenuItem.d.ts} +3 -4
  36. package/dist/esm/components/menu/parts/{MenuItem.js → RawMenuItem.js} +9 -9
  37. package/dist/esm/components/nav/parts/NavGroup.d.ts +3 -3
  38. package/dist/esm/components/nav/parts/NavGroup.js +62 -51
  39. package/dist/esm/components/nav/parts/{NavItem.d.ts → RawNavItem.d.ts} +102 -5
  40. package/dist/esm/components/nav/parts/RawNavItem.js +106 -0
  41. package/dist/esm/components/page/Page.js +1 -1
  42. package/dist/esm/components/page/parts/PageHeader.d.ts +79 -9
  43. package/dist/esm/components/page/parts/PageHeader.js +22 -20
  44. package/dist/esm/components/pagination/Pagination.d.ts +23 -44
  45. package/dist/esm/components/pagination/Pagination.js +89 -163
  46. package/dist/esm/components/pagination/PaginationContext.d.ts +11 -0
  47. package/dist/esm/components/pagination/PaginationContext.js +15 -0
  48. package/dist/esm/components/pagination/hooks/use-pagination-state.d.ts +63 -0
  49. package/dist/esm/components/pagination/hooks/use-pagination-state.js +27 -0
  50. package/dist/esm/components/pagination/hooks/use-pagination-window.d.ts +64 -0
  51. package/dist/esm/components/pagination/hooks/use-pagination-window.js +15 -0
  52. package/dist/esm/components/pagination/parts/PaginationContent.d.ts +30 -0
  53. package/dist/esm/components/pagination/parts/PaginationContent.js +37 -0
  54. package/dist/esm/components/pagination/parts/PaginationEllipsis.d.ts +23 -4
  55. package/dist/esm/components/pagination/parts/PaginationEllipsis.js +20 -16
  56. package/dist/esm/components/pagination/parts/PaginationItem.d.ts +38 -0
  57. package/dist/esm/components/pagination/parts/PaginationItem.js +22 -0
  58. package/dist/esm/components/pagination/parts/RawPaginationLink.d.ts +11 -0
  59. package/dist/esm/components/pagination/parts/RawPaginationLink.js +60 -0
  60. package/dist/esm/components/pagination/parts/RawPaginationNext.d.ts +22 -0
  61. package/dist/esm/components/pagination/parts/RawPaginationNext.js +70 -0
  62. package/dist/esm/components/pagination/parts/RawPaginationPrevious.d.ts +22 -0
  63. package/dist/esm/components/pagination/parts/RawPaginationPrevious.js +67 -0
  64. package/dist/esm/components/pagination/utils/pagination-window.js +29 -20
  65. package/dist/esm/components/select/Select.js +63 -45
  66. package/dist/esm/components/select/parts/SelectOption.js +9 -9
  67. package/dist/esm/components/skip-links/SkipLinks.js +1 -1
  68. package/dist/esm/components/table/Table.d.ts +1 -0
  69. package/dist/esm/components/table/Table.js +82 -73
  70. package/dist/esm/components/table/hooks/useTableKeyboardNavigation.js +6 -6
  71. package/dist/esm/components/table/parts/TableCell.js +29 -26
  72. package/dist/esm/components/table/parts/TablePagination.d.ts +5 -5
  73. package/dist/esm/components/table/parts/TablePagination.js +10 -10
  74. package/dist/esm/components/table/parts/TableRow.js +21 -18
  75. package/dist/esm/components/tabs/parts/{Tab.d.ts → RawTab.d.ts} +2 -2
  76. package/dist/esm/components/tabs/parts/{Tab.js → RawTab.js} +6 -6
  77. package/dist/esm/components/task-menu/TaskMenu.d.ts +4 -4
  78. package/dist/esm/components/task-menu/parts/{SubTask.d.ts → RawSubTask.d.ts} +7 -7
  79. package/dist/esm/components/task-menu/parts/{SubTask.js → RawSubTask.js} +19 -19
  80. package/dist/esm/components/task-menu/parts/{Task.d.ts → RawTask.d.ts} +7 -7
  81. package/dist/esm/components/task-menu/parts/{Task.js → RawTask.js} +17 -17
  82. package/dist/esm/components/task-menu/parts/TaskGroup.d.ts +5 -5
  83. package/dist/esm/components/text/Text.js +30 -27
  84. package/dist/esm/hooks/use-container-query-level.d.ts +42 -0
  85. package/dist/esm/hooks/use-container-query-level.js +33 -0
  86. package/dist/esm/index.d.ts +21 -11
  87. package/dist/esm/index.js +424 -399
  88. package/dist/esm/integrations/tanstack-router/components/breadcrumbs/Breadcrumb.d.ts +23 -0
  89. package/dist/esm/integrations/tanstack-router/components/breadcrumbs/BreadcrumbLink.d.ts +38 -0
  90. package/dist/esm/integrations/tanstack-router/components/breadcrumbs/BreadcrumbLink.js +7 -0
  91. package/dist/esm/integrations/tanstack-router/components/breadcrumbs/Breadcrumbs.d.ts +23 -0
  92. package/dist/esm/integrations/tanstack-router/components/breadcrumbs/use-route-breadcrumb.d.ts +53 -0
  93. package/dist/esm/integrations/tanstack-router/components/form-contextual-link/FormContextualLink.d.ts +40 -0
  94. package/dist/esm/integrations/tanstack-router/components/form-contextual-link/FormContextualLink.js +7 -0
  95. package/dist/esm/integrations/tanstack-router/components/link/Link.d.ts +33 -0
  96. package/dist/esm/integrations/tanstack-router/components/link/Link.js +7 -0
  97. package/dist/esm/integrations/tanstack-router/components/menu-item/MenuItem.d.ts +49 -0
  98. package/dist/esm/integrations/tanstack-router/components/menu-item/MenuItem.js +16 -0
  99. package/dist/esm/integrations/tanstack-router/components/nav-item/NavItem.d.ts +52 -0
  100. package/dist/esm/integrations/tanstack-router/components/nav-item/NavItem.js +29 -0
  101. package/dist/esm/integrations/tanstack-router/components/pagination/PaginationLink.d.ts +54 -0
  102. package/dist/esm/integrations/tanstack-router/components/pagination/PaginationLink.js +21 -0
  103. package/dist/esm/integrations/tanstack-router/components/pagination/PaginationNext.d.ts +52 -0
  104. package/dist/esm/integrations/tanstack-router/components/pagination/PaginationNext.js +22 -0
  105. package/dist/esm/integrations/tanstack-router/components/pagination/PaginationPrevious.d.ts +51 -0
  106. package/dist/esm/integrations/tanstack-router/components/pagination/PaginationPrevious.js +22 -0
  107. package/dist/esm/integrations/tanstack-router/components/tabs/Tabs.d.ts +82 -0
  108. package/dist/esm/integrations/tanstack-router/components/tabs/Tabs.js +41 -0
  109. package/dist/esm/integrations/tanstack-router/components/tabs/parts/Tab.d.ts +52 -0
  110. package/dist/esm/integrations/tanstack-router/components/tabs/parts/Tab.js +15 -0
  111. package/dist/esm/integrations/tanstack-router/components/tabs/parts/TabList.d.ts +5 -0
  112. package/dist/esm/integrations/tanstack-router/components/tabs/parts/TabPanel.d.ts +77 -0
  113. package/dist/esm/integrations/tanstack-router/components/tabs/parts/TabPanel.js +16 -0
  114. package/dist/esm/integrations/tanstack-router/components/task-menu/SubTask.d.ts +69 -0
  115. package/dist/esm/integrations/tanstack-router/components/task-menu/SubTask.js +14 -0
  116. package/dist/esm/integrations/tanstack-router/components/task-menu/Task.d.ts +64 -0
  117. package/dist/esm/integrations/tanstack-router/components/task-menu/Task.js +14 -0
  118. package/dist/esm/integrations/tanstack-router/index.d.ts +16 -0
  119. package/dist/esm/integrations/tanstack-router/utils/decorators.d.ts +23 -0
  120. package/dist/esm/integrations/tanstack-router.js +34 -0
  121. package/dist/esm/providers/router/RouterProvider.d.ts +7 -2
  122. package/dist/esm/providers/router/RouterProvider.js +14 -10
  123. package/dist/esm/types/DataAttributes.d.ts +1 -1
  124. package/i18n/en-GB.json +1 -0
  125. package/i18n/es-ES.json +1 -0
  126. package/i18n/fr-FR.json +1 -0
  127. package/package.json +47 -25
  128. package/dist/esm/components/form-field/parts/FormContextualLink.js +0 -37
  129. package/dist/esm/components/link/Link.d.ts +0 -93
  130. package/dist/esm/components/link/Link.js +0 -68
  131. package/dist/esm/components/nav/parts/NavItem.js +0 -95
  132. /package/dist/esm/components/{pagination → client-side-pagination}/hooks/use-pagination.d.ts +0 -0
  133. /package/dist/esm/components/{pagination → client-side-pagination}/hooks/use-pagination.js +0 -0
  134. /package/dist/esm/components/{pagination → client-side-pagination}/parts/PaginationJumpDialog.js +0 -0
  135. /package/dist/esm/components/{pagination → client-side-pagination}/parts/PaginationNavButton.d.ts +0 -0
  136. /package/dist/esm/components/{pagination → client-side-pagination}/parts/PaginationNavButton.js +0 -0
@@ -1,7 +1,7 @@
1
- import { jsx as d } from "react/jsx-runtime";
2
- import { forwardRef as c } from "react";
3
- import { text as h } from "./Text.variants.js";
4
- const y = {
1
+ import { jsx as h } from "react/jsx-runtime";
2
+ import { forwardRef as y, useMemo as c } from "react";
3
+ import { text as g } from "./Text.variants.js";
4
+ const b = {
5
5
  inherit: "span",
6
6
  h1: "h1",
7
7
  h2: "h2",
@@ -21,38 +21,41 @@ const y = {
21
21
  actionLarge: "span",
22
22
  actionSmall: "span",
23
23
  actionInfo: "span"
24
- }, g = c(
24
+ }, x = y(
25
25
  ({
26
- children: e,
26
+ children: l,
27
27
  variant: o,
28
- color: n,
29
- isTruncated: a,
30
- lineClamp: t,
31
- asElement: s,
32
- className: r,
33
- ...l
28
+ color: t,
29
+ isTruncated: e,
30
+ lineClamp: s,
31
+ asElement: m,
32
+ className: n,
33
+ ...r
34
34
  }, i) => {
35
- const m = h({
36
- variant: o,
37
- color: n,
38
- isTruncated: a,
39
- isLineClamped: t !== void 0,
40
- className: r
41
- }), p = y[o ?? "inherit"];
42
- return /* @__PURE__ */ d(
43
- s ?? p,
35
+ const a = s !== void 0, p = c(
36
+ () => g({
37
+ variant: o,
38
+ color: t,
39
+ isTruncated: e,
40
+ isLineClamped: a,
41
+ className: n
42
+ }),
43
+ [n, t, a, e, o]
44
+ ), d = b[o ?? "inherit"];
45
+ return /* @__PURE__ */ h(
46
+ m ?? d,
44
47
  {
45
48
  "data-dd-privacy": "mask",
46
- ...l,
49
+ ...r,
47
50
  ref: i,
48
- className: m,
49
- style: { "--uy-text-line-clamp": t },
50
- children: e
51
+ className: p,
52
+ style: { "--uy-text-line-clamp": s },
53
+ children: l
51
54
  }
52
55
  );
53
56
  }
54
57
  );
55
- g.displayName = "Text";
58
+ x.displayName = "Text";
56
59
  export {
57
- g as Text
60
+ x as Text
58
61
  };
@@ -0,0 +1,42 @@
1
+ export type ContainerQueryLevel = 'component' | 'section' | 'page' | 'app';
2
+ interface UseContainerQueryLevelOptions {
3
+ /**
4
+ * The ref to the container element to observe
5
+ */
6
+ ref: React.RefObject<HTMLElement | null>;
7
+ }
8
+ interface UseContainerQueryLevelReturn {
9
+ /**
10
+ * The current container query level based on the container width
11
+ */
12
+ level: ContainerQueryLevel;
13
+ /**
14
+ * The current width of the observed container
15
+ */
16
+ width: number;
17
+ }
18
+ /**
19
+ * Hook that determines the current container query level based on container width.
20
+ *
21
+ * This hook uses ResizeObserver to monitor the width of a container element and
22
+ * determines which container query level it falls into based on Unity's container
23
+ * breakpoints from design tokens. Breakpoints are automatically synced with Unity's
24
+ * design system: component (< 703px), section (703-1062px), page (1063-1438px), app (≥ 1439px).
25
+ * @param options Configuration options containing the ref to observe
26
+ * @returns Object containing the current level and width
27
+ * @example
28
+ * ```tsx
29
+ * function MyComponent() {
30
+ * const containerRef = useRef<HTMLDivElement>(null)
31
+ * const { level, width } = useContainerQueryLevel({ ref: containerRef })
32
+ *
33
+ * return (
34
+ * <div ref={containerRef}>
35
+ * Current level: {level} (width: {width}px)
36
+ * </div>
37
+ * )
38
+ * }
39
+ * ```
40
+ */
41
+ export declare function useContainerQueryLevel(options: UseContainerQueryLevelOptions): UseContainerQueryLevelReturn;
42
+ export {};
@@ -0,0 +1,33 @@
1
+ import s from "@payfit/unity-themes/tokens/sizes.json";
2
+ import { useResizeObserver as c } from "usehooks-ts";
3
+ const i = () => {
4
+ const n = s.container, o = {
5
+ section: parseInt(n.section.$value.replace("px", ""), 10),
6
+ page: parseInt(n.page.$value.replace("px", ""), 10),
7
+ app: parseInt(n.app.$value.replace("px", ""), 10)
8
+ };
9
+ if (typeof window > "u")
10
+ return o;
11
+ const r = getComputedStyle(document.documentElement), e = (t) => {
12
+ const p = r.getPropertyValue(`--uy-container-${t}`), a = parseInt(p.replace("px", ""), 10);
13
+ return isNaN(a) ? o[t] : a;
14
+ };
15
+ return {
16
+ section: e("section"),
17
+ page: e("page"),
18
+ app: e("app")
19
+ };
20
+ };
21
+ function d(n) {
22
+ const { ref: o } = n, e = c({
23
+ ref: o,
24
+ box: "border-box"
25
+ }).width ?? 0, t = i();
26
+ return {
27
+ level: e >= t.app ? "app" : e >= t.page ? "page" : e >= t.section ? "section" : "component",
28
+ width: e
29
+ };
30
+ }
31
+ export {
32
+ d as useContainerQueryLevel
33
+ };
@@ -1,4 +1,7 @@
1
1
  export * from './components/actionable/Actionable.js';
2
+ export * from './components/action-bar/ActionBar.js';
3
+ export * from './components/action-bar/parts/ActionBarAction.js';
4
+ export * from './components/action-bar/parts/ActionBarRoot.js';
2
5
  export * from './components/alert/Alert.js';
3
6
  export * from './components/alert/parts/AlertActions.js';
4
7
  export * from './components/alert/parts/AlertContent.js';
@@ -25,6 +28,7 @@ export * from './components/bottom-sheet/parts/BottomSheetFooter.js';
25
28
  export * from './components/bottom-sheet/parts/BottomSheetHeader.js';
26
29
  export * from './components/breadcrumbs/Breadcrumbs.js';
27
30
  export * from './components/breadcrumbs/parts/Breadcrumb.js';
31
+ export * from './components/breadcrumbs/parts/RawBreadcrumbLink.js';
28
32
  export * from './components/button/Button.js';
29
33
  export * from './components/checkbox-field/CheckboxField.js';
30
34
  export * from './components/checkbox-group-field/CheckboxGroupField.js';
@@ -46,13 +50,14 @@ export * from './components/dialog/parts/DialogActions.js';
46
50
  export * from './components/dialog/parts/DialogActions/DialogButton.js';
47
51
  export * from './components/dialog/parts/DialogContent.js';
48
52
  export * from './components/dialog/parts/DialogTitle.js';
53
+ export * from './components/error-state/ErrorState.js';
49
54
  export * from './components/fieldset/Fieldset.js';
50
55
  export * from './components/fieldset/parts/FieldGroup.js';
51
56
  export * from './components/flex/Flex.js';
52
57
  export * from './components/flex/Flex.variants.js';
53
58
  export * from './components/flex/FlexItem.js';
54
59
  export * from './components/form-field/FormField.js';
55
- export * from './components/form-field/parts/FormContextualLink.js';
60
+ export * from './components/form-field/parts/RawFormContextualLink.js';
56
61
  export * from './components/form-field/parts/FormControl.js';
57
62
  export * from './components/form-field/parts/FormFeedbackText.js';
58
63
  export * from './components/form-field/parts/FormHelperText.js';
@@ -76,11 +81,11 @@ export * from './components/icon-button/IconButton.js';
76
81
  export * from './components/icon/Icon.js';
77
82
  export * from './components/input/Input.js';
78
83
  export * from './components/label/Label.js';
79
- export * from './components/link/Link.js';
84
+ export * from './components/link/RawLink.js';
80
85
  export * from './components/menu/Menu.js';
81
86
  export * from './components/menu/parts/MenuContent.js';
82
87
  export * from './components/menu/parts/MenuHeader.js';
83
- export * from './components/menu/parts/MenuItem.js';
88
+ export * from './components/menu/parts/RawMenuItem.js';
84
89
  export * from './components/menu/parts/MenuSeparator.js';
85
90
  export * from './components/menu/parts/MenuTrigger.js';
86
91
  export * from './components/multi-select-field/MultiSelectField.js';
@@ -89,13 +94,21 @@ export * from './components/multi-select/parts/MultiSelectOptGroup.js';
89
94
  export * from './components/multi-select/parts/MultiSelectOption.js';
90
95
  export * from './components/nav/Nav.js';
91
96
  export * from './components/nav/parts/NavGroup.js';
92
- export * from './components/nav/parts/NavItem.js';
97
+ export * from './components/nav/parts/RawNavItem.js';
93
98
  export * from './components/number-field/NumberField.js';
94
99
  export * from './components/number-input/NumberInput.js';
95
100
  export * from './components/page/Page.js';
96
101
  export * from './components/page/parts/PageHeader.js';
97
102
  export * from './components/page/parts/PageHeading.js';
98
103
  export * from './components/pagination/Pagination.js';
104
+ export * from './components/pagination/parts/PaginationContent.js';
105
+ export * from './components/pagination/parts/PaginationItem.js';
106
+ export * from './components/pagination/parts/RawPaginationLink.js';
107
+ export * from './components/pagination/parts/RawPaginationPrevious.js';
108
+ export * from './components/pagination/parts/RawPaginationNext.js';
109
+ export * from './components/pagination/parts/PaginationEllipsis.js';
110
+ export * from './components/pagination/hooks/use-pagination-window.js';
111
+ export * from './components/pagination/hooks/use-pagination-state.js';
99
112
  export * from './components/payfit-brand/PayFitBrand.js';
100
113
  export * from './components/payfit-brand/PayFitPreprod.js';
101
114
  export * from './components/pill/Pill.js';
@@ -138,12 +151,12 @@ export * from './components/table/parts/TableHeader.js';
138
151
  export * from './components/table/parts/TablePagination.js';
139
152
  export * from './components/table/parts/TableRow.js';
140
153
  export * from './components/tabs/Tabs.js';
141
- export * from './components/tabs/parts/Tab.js';
154
+ export * from './components/tabs/parts/RawTab.js';
142
155
  export * from './components/tabs/parts/TabList.js';
143
156
  export * from './components/tabs/parts/TabPanel.js';
144
157
  export * from './components/task-menu/TaskMenu.js';
145
- export * from './components/task-menu/parts/SubTask.js';
146
- export * from './components/task-menu/parts/Task.js';
158
+ export * from './components/task-menu/parts/RawSubTask.js';
159
+ export * from './components/task-menu/parts/RawTask.js';
147
160
  export * from './components/task-menu/parts/TaskGroup.js';
148
161
  export * from './components/text-area/TextArea.js';
149
162
  export * from './components/text-field/TextField.js';
@@ -158,10 +171,7 @@ export * from './components/toggle-switch/ToggleSwitch.js';
158
171
  export * from './components/tooltip/Tooltip.js';
159
172
  export * from './hooks/use-async-list.js';
160
173
  export * from './hooks/use-breakpoint-listener.js';
174
+ export * from './hooks/use-container-query-level.js';
161
175
  export * from './hooks/use-form.js';
162
176
  export * from './hooks/use-media-query.js';
163
177
  export * from './providers/router/RouterProvider.js';
164
- export * from './components/action-bar/ActionBar.js';
165
- export * from './components/action-bar/parts/ActionBarAction.js';
166
- export * from './components/action-bar/parts/ActionBarRoot.js';
167
- export * from './components/error-state/ErrorState.js';