@optimum-intelligence/opti-ui 0.0.0-stage → 0.2.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 (174) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +161 -2
  3. package/dist/components/accordion/Accordion.d.ts +17 -0
  4. package/dist/components/accordion/Accordion.js +204 -0
  5. package/dist/components/accordion/Accordion.js.map +1 -0
  6. package/dist/components/alert/Alert.d.ts +18 -0
  7. package/dist/components/alert/Alert.js +164 -0
  8. package/dist/components/alert/Alert.js.map +1 -0
  9. package/dist/components/app-shell/AppShell.d.ts +97 -0
  10. package/dist/components/app-shell/AppShell.js +689 -0
  11. package/dist/components/app-shell/AppShell.js.map +1 -0
  12. package/dist/components/avatar/Avatar.d.ts +21 -0
  13. package/dist/components/avatar/Avatar.js +190 -0
  14. package/dist/components/avatar/Avatar.js.map +1 -0
  15. package/dist/components/badge/Badge.d.ts +16 -0
  16. package/dist/components/badge/Badge.js +94 -0
  17. package/dist/components/badge/Badge.js.map +1 -0
  18. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +18 -0
  19. package/dist/components/breadcrumbs/Breadcrumbs.js +154 -0
  20. package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
  21. package/dist/components/button/Button.d.ts +23 -0
  22. package/dist/components/button/Button.js +159 -0
  23. package/dist/components/button/Button.js.map +1 -0
  24. package/dist/components/calendar/Calendar.d.ts +59 -0
  25. package/dist/components/calendar/Calendar.js +709 -0
  26. package/dist/components/calendar/Calendar.js.map +1 -0
  27. package/dist/components/calendar/date-utils.d.ts +32 -0
  28. package/dist/components/calendar/date-utils.js +112 -0
  29. package/dist/components/calendar/date-utils.js.map +1 -0
  30. package/dist/components/card/Card.d.ts +42 -0
  31. package/dist/components/card/Card.js +82 -0
  32. package/dist/components/card/Card.js.map +1 -0
  33. package/dist/components/choice/Choice.d.ts +32 -0
  34. package/dist/components/choice/Choice.js +371 -0
  35. package/dist/components/choice/Choice.js.map +1 -0
  36. package/dist/components/collapsible/Collapsible.d.ts +15 -0
  37. package/dist/components/collapsible/Collapsible.js +155 -0
  38. package/dist/components/collapsible/Collapsible.js.map +1 -0
  39. package/dist/components/combobox/Combobox.d.ts +68 -0
  40. package/dist/components/combobox/Combobox.js +752 -0
  41. package/dist/components/combobox/Combobox.js.map +1 -0
  42. package/dist/components/command-palette/CommandPalette.d.ts +52 -0
  43. package/dist/components/command-palette/CommandPalette.js +328 -0
  44. package/dist/components/command-palette/CommandPalette.js.map +1 -0
  45. package/dist/components/data-table/DataTable.d.ts +111 -0
  46. package/dist/components/data-table/DataTable.js +444 -0
  47. package/dist/components/data-table/DataTable.js.map +1 -0
  48. package/dist/components/date-picker/DatePicker.d.ts +50 -0
  49. package/dist/components/date-picker/DatePicker.js +485 -0
  50. package/dist/components/date-picker/DatePicker.js.map +1 -0
  51. package/dist/components/date-picker/DateRangePicker.d.ts +39 -0
  52. package/dist/components/date-picker/DateRangePicker.js +339 -0
  53. package/dist/components/date-picker/DateRangePicker.js.map +1 -0
  54. package/dist/components/date-picker/PickerField.d.ts +38 -0
  55. package/dist/components/date-picker/PickerField.js +238 -0
  56. package/dist/components/date-picker/PickerField.js.map +1 -0
  57. package/dist/components/dialog/Dialog.d.ts +70 -0
  58. package/dist/components/dialog/Dialog.js +354 -0
  59. package/dist/components/dialog/Dialog.js.map +1 -0
  60. package/dist/components/drawer/Drawer.d.ts +39 -0
  61. package/dist/components/drawer/Drawer.js +225 -0
  62. package/dist/components/drawer/Drawer.js.map +1 -0
  63. package/dist/components/empty-state/EmptyState.d.ts +12 -0
  64. package/dist/components/empty-state/EmptyState.js +116 -0
  65. package/dist/components/empty-state/EmptyState.js.map +1 -0
  66. package/dist/components/field/Field.d.ts +36 -0
  67. package/dist/components/field/Field.js +337 -0
  68. package/dist/components/field/Field.js.map +1 -0
  69. package/dist/components/file-upload/FileUpload.d.ts +91 -0
  70. package/dist/components/file-upload/FileUpload.js +714 -0
  71. package/dist/components/file-upload/FileUpload.js.map +1 -0
  72. package/dist/components/input/Input.d.ts +49 -0
  73. package/dist/components/input/Input.js +538 -0
  74. package/dist/components/input/Input.js.map +1 -0
  75. package/dist/components/link/Link.d.ts +17 -0
  76. package/dist/components/link/Link.js +91 -0
  77. package/dist/components/link/Link.js.map +1 -0
  78. package/dist/components/menu/Menu.d.ts +79 -0
  79. package/dist/components/menu/Menu.js +615 -0
  80. package/dist/components/menu/Menu.js.map +1 -0
  81. package/dist/components/number-field/NumberField.d.ts +16 -0
  82. package/dist/components/number-field/NumberField.js +188 -0
  83. package/dist/components/number-field/NumberField.js.map +1 -0
  84. package/dist/components/pagination/Pagination.d.ts +34 -0
  85. package/dist/components/pagination/Pagination.js +244 -0
  86. package/dist/components/pagination/Pagination.js.map +1 -0
  87. package/dist/components/popover/Popover.d.ts +22 -0
  88. package/dist/components/popover/Popover.js +186 -0
  89. package/dist/components/popover/Popover.js.map +1 -0
  90. package/dist/components/preview-card/PreviewCard.d.ts +20 -0
  91. package/dist/components/preview-card/PreviewCard.js +114 -0
  92. package/dist/components/preview-card/PreviewCard.js.map +1 -0
  93. package/dist/components/progress/Progress.d.ts +20 -0
  94. package/dist/components/progress/Progress.js +169 -0
  95. package/dist/components/progress/Progress.js.map +1 -0
  96. package/dist/components/scroll-area/ScrollArea.d.ts +8 -0
  97. package/dist/components/scroll-area/ScrollArea.js +112 -0
  98. package/dist/components/scroll-area/ScrollArea.js.map +1 -0
  99. package/dist/components/search-input/SearchInput.d.ts +14 -0
  100. package/dist/components/search-input/SearchInput.js +114 -0
  101. package/dist/components/search-input/SearchInput.js.map +1 -0
  102. package/dist/components/select/Select.d.ts +66 -0
  103. package/dist/components/select/Select.js +601 -0
  104. package/dist/components/select/Select.js.map +1 -0
  105. package/dist/components/separator/Separator.d.ts +4 -0
  106. package/dist/components/separator/Separator.js +46 -0
  107. package/dist/components/separator/Separator.js.map +1 -0
  108. package/dist/components/skeleton/Skeleton.d.ts +16 -0
  109. package/dist/components/skeleton/Skeleton.js +135 -0
  110. package/dist/components/skeleton/Skeleton.js.map +1 -0
  111. package/dist/components/slider/Slider.d.ts +11 -0
  112. package/dist/components/slider/Slider.js +107 -0
  113. package/dist/components/slider/Slider.js.map +1 -0
  114. package/dist/components/spinner/Spinner.d.ts +9 -0
  115. package/dist/components/spinner/Spinner.js +78 -0
  116. package/dist/components/spinner/Spinner.js.map +1 -0
  117. package/dist/components/stack/Stack.d.ts +23 -0
  118. package/dist/components/stack/Stack.js +79 -0
  119. package/dist/components/stack/Stack.js.map +1 -0
  120. package/dist/components/stat-card/StatCard.d.ts +22 -0
  121. package/dist/components/stat-card/StatCard.js +153 -0
  122. package/dist/components/stat-card/StatCard.js.map +1 -0
  123. package/dist/components/stepper/Stepper.d.ts +30 -0
  124. package/dist/components/stepper/Stepper.js +131 -0
  125. package/dist/components/stepper/Stepper.js.map +1 -0
  126. package/dist/components/table/Table.d.ts +53 -0
  127. package/dist/components/table/Table.js +221 -0
  128. package/dist/components/table/Table.js.map +1 -0
  129. package/dist/components/tabs/Tabs.d.ts +19 -0
  130. package/dist/components/tabs/Tabs.js +183 -0
  131. package/dist/components/tabs/Tabs.js.map +1 -0
  132. package/dist/components/tag/Tag.d.ts +22 -0
  133. package/dist/components/tag/Tag.js +121 -0
  134. package/dist/components/tag/Tag.js.map +1 -0
  135. package/dist/components/toast/Toast.d.ts +34 -0
  136. package/dist/components/toast/Toast.js +187 -0
  137. package/dist/components/toast/Toast.js.map +1 -0
  138. package/dist/components/toggle/Toggle.d.ts +31 -0
  139. package/dist/components/toggle/Toggle.js +197 -0
  140. package/dist/components/toggle/Toggle.js.map +1 -0
  141. package/dist/components/toolbar/Toolbar.d.ts +21 -0
  142. package/dist/components/toolbar/Toolbar.js +239 -0
  143. package/dist/components/toolbar/Toolbar.js.map +1 -0
  144. package/dist/components/tooltip/Tooltip.d.ts +33 -0
  145. package/dist/components/tooltip/Tooltip.js +182 -0
  146. package/dist/components/tooltip/Tooltip.js.map +1 -0
  147. package/dist/components/typography/Typography.d.ts +32 -0
  148. package/dist/components/typography/Typography.js +183 -0
  149. package/dist/components/typography/Typography.js.map +1 -0
  150. package/dist/fonts.css +3 -0
  151. package/dist/icons/index.d.ts +125 -0
  152. package/dist/icons/index.js +174 -0
  153. package/dist/icons/index.js.map +1 -0
  154. package/dist/index.d.ts +53 -0
  155. package/dist/index.js +56 -0
  156. package/dist/opti-ui.css +5365 -0
  157. package/dist/theme/ThemeProvider.d.ts +22 -0
  158. package/dist/theme/ThemeProvider.js +115 -0
  159. package/dist/theme/ThemeProvider.js.map +1 -0
  160. package/dist/theme/index.d.ts +2 -0
  161. package/dist/utils/cx.d.ts +10 -0
  162. package/dist/utils/cx.js +18 -0
  163. package/dist/utils/cx.js.map +1 -0
  164. package/dist/utils/index.d.ts +2 -0
  165. package/dist/utils/portal.d.ts +8 -0
  166. package/dist/utils/portal.js +16 -0
  167. package/dist/utils/portal.js.map +1 -0
  168. package/dist/utils/primitive.d.ts +13 -0
  169. package/dist/utils/primitive.js +61 -0
  170. package/dist/utils/primitive.js.map +1 -0
  171. package/dist/utils/search.d.ts +4 -0
  172. package/dist/utils/search.js +15 -0
  173. package/dist/utils/search.js.map +1 -0
  174. package/package.json +71 -4
@@ -0,0 +1,188 @@
1
+ "use client";
2
+ import { withClass } from "../../utils/cx.js";
3
+ import { MinusIcon, PlusIcon } from "../../icons/index.js";
4
+ import { Field } from "../field/Field.js";
5
+ import { c } from "react/compiler-runtime";
6
+ import "react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { NumberField } from "@base-ui/react/number-field";
9
+ //#region src/components/number-field/NumberField.tsx
10
+ /** Numeric input with stepper buttons, locale formatting and keyboard stepping. */
11
+ function NumberField$1(t0) {
12
+ const $ = c(52);
13
+ let className;
14
+ let description;
15
+ let disabled;
16
+ let error;
17
+ let hideStepper;
18
+ let label;
19
+ let name;
20
+ let placeholder;
21
+ let props;
22
+ let ref;
23
+ let required;
24
+ let t1;
25
+ let t2;
26
+ let t3;
27
+ if ($[0] !== t0) {
28
+ ({label, description, error, size: t1, placeholder, hideStepper, decrementLabel: t2, incrementLabel: t3, className, name, disabled, required, ref, ...props} = t0);
29
+ $[0] = t0;
30
+ $[1] = className;
31
+ $[2] = description;
32
+ $[3] = disabled;
33
+ $[4] = error;
34
+ $[5] = hideStepper;
35
+ $[6] = label;
36
+ $[7] = name;
37
+ $[8] = placeholder;
38
+ $[9] = props;
39
+ $[10] = ref;
40
+ $[11] = required;
41
+ $[12] = t1;
42
+ $[13] = t2;
43
+ $[14] = t3;
44
+ } else {
45
+ className = $[1];
46
+ description = $[2];
47
+ disabled = $[3];
48
+ error = $[4];
49
+ hideStepper = $[5];
50
+ label = $[6];
51
+ name = $[7];
52
+ placeholder = $[8];
53
+ props = $[9];
54
+ ref = $[10];
55
+ required = $[11];
56
+ t1 = $[12];
57
+ t2 = $[13];
58
+ t3 = $[14];
59
+ }
60
+ const size = t1 === void 0 ? "md" : t1;
61
+ const decrementLabel = t2 === void 0 ? "Decrease" : t2;
62
+ const incrementLabel = t3 === void 0 ? "Increase" : t3;
63
+ const t4 = error ? true : void 0;
64
+ let t5;
65
+ if ($[15] !== label || $[16] !== required) {
66
+ t5 = label && /* @__PURE__ */ jsx(Field.Label, {
67
+ required,
68
+ children: label
69
+ });
70
+ $[15] = label;
71
+ $[16] = required;
72
+ $[17] = t5;
73
+ } else t5 = $[17];
74
+ let t6;
75
+ if ($[18] !== className) {
76
+ t6 = withClass("oui-number-field", className);
77
+ $[18] = className;
78
+ $[19] = t6;
79
+ } else t6 = $[19];
80
+ let t7;
81
+ if ($[20] !== decrementLabel || $[21] !== hideStepper) {
82
+ t7 = !hideStepper && /* @__PURE__ */ jsx(NumberField.Decrement, {
83
+ className: "oui-number-field__step",
84
+ "aria-label": decrementLabel,
85
+ children: /* @__PURE__ */ jsx(MinusIcon, {})
86
+ });
87
+ $[20] = decrementLabel;
88
+ $[21] = hideStepper;
89
+ $[22] = t7;
90
+ } else t7 = $[22];
91
+ let t8;
92
+ if ($[23] !== placeholder) {
93
+ t8 = /* @__PURE__ */ jsx(NumberField.Input, {
94
+ className: "oui-number-field__input",
95
+ placeholder
96
+ });
97
+ $[23] = placeholder;
98
+ $[24] = t8;
99
+ } else t8 = $[24];
100
+ let t9;
101
+ if ($[25] !== hideStepper || $[26] !== incrementLabel) {
102
+ t9 = !hideStepper && /* @__PURE__ */ jsx(NumberField.Increment, {
103
+ className: "oui-number-field__step",
104
+ "aria-label": incrementLabel,
105
+ children: /* @__PURE__ */ jsx(PlusIcon, {})
106
+ });
107
+ $[25] = hideStepper;
108
+ $[26] = incrementLabel;
109
+ $[27] = t9;
110
+ } else t9 = $[27];
111
+ let t10;
112
+ if ($[28] !== size || $[29] !== t7 || $[30] !== t8 || $[31] !== t9) {
113
+ t10 = /* @__PURE__ */ jsxs(NumberField.Group, {
114
+ className: "oui-number-field__group",
115
+ "data-size": size,
116
+ children: [
117
+ t7,
118
+ t8,
119
+ t9
120
+ ]
121
+ });
122
+ $[28] = size;
123
+ $[29] = t7;
124
+ $[30] = t8;
125
+ $[31] = t9;
126
+ $[32] = t10;
127
+ } else t10 = $[32];
128
+ let t11;
129
+ if ($[33] !== disabled || $[34] !== props || $[35] !== ref || $[36] !== required || $[37] !== t10 || $[38] !== t6) {
130
+ t11 = /* @__PURE__ */ jsx(NumberField.Root, {
131
+ ref,
132
+ className: t6,
133
+ disabled,
134
+ required,
135
+ ...props,
136
+ children: t10
137
+ });
138
+ $[33] = disabled;
139
+ $[34] = props;
140
+ $[35] = ref;
141
+ $[36] = required;
142
+ $[37] = t10;
143
+ $[38] = t6;
144
+ $[39] = t11;
145
+ } else t11 = $[39];
146
+ let t12;
147
+ if ($[40] !== description) {
148
+ t12 = description && /* @__PURE__ */ jsx(Field.Description, { children: description });
149
+ $[40] = description;
150
+ $[41] = t12;
151
+ } else t12 = $[41];
152
+ let t13;
153
+ if ($[42] !== error) {
154
+ t13 = error ? /* @__PURE__ */ jsx(Field.Error, {
155
+ match: true,
156
+ children: error
157
+ }) : /* @__PURE__ */ jsx(Field.Error, {});
158
+ $[42] = error;
159
+ $[43] = t13;
160
+ } else t13 = $[43];
161
+ let t14;
162
+ if ($[44] !== disabled || $[45] !== name || $[46] !== t11 || $[47] !== t12 || $[48] !== t13 || $[49] !== t4 || $[50] !== t5) {
163
+ t14 = /* @__PURE__ */ jsxs(Field.Root, {
164
+ name,
165
+ disabled,
166
+ invalid: t4,
167
+ children: [
168
+ t5,
169
+ t11,
170
+ t12,
171
+ t13
172
+ ]
173
+ });
174
+ $[44] = disabled;
175
+ $[45] = name;
176
+ $[46] = t11;
177
+ $[47] = t12;
178
+ $[48] = t13;
179
+ $[49] = t4;
180
+ $[50] = t5;
181
+ $[51] = t14;
182
+ } else t14 = $[51];
183
+ return t14;
184
+ }
185
+ //#endregion
186
+ export { NumberField$1 as NumberField };
187
+
188
+ //# sourceMappingURL=NumberField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberField.js","names":["React","NumberField","BaseNumberField","withClass","MinusIcon","PlusIcon","Field","ControlSize","NumberFieldProps","Root","Props","label","ReactNode","description","error","size","placeholder","hideStepper","decrementLabel","incrementLabel","t0","$","_c","className","disabled","name","props","ref","required","t1","t2","t3","undefined","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","NumberField","_c","BaseNumberField"],"sources":["../../../src/components/number-field/NumberField.tsx"],"sourcesContent":["import * as React from 'react';\nimport { NumberField as BaseNumberField } from '@base-ui/react/number-field';\nimport { withClass } from '../../utils/cx';\nimport { MinusIcon, PlusIcon } from '../../icons';\nimport { Field } from '../field/Field';\nimport type { ControlSize } from '../input/Input';\n\nexport interface NumberFieldProps extends BaseNumberField.Root.Props {\n label?: React.ReactNode;\n description?: React.ReactNode;\n error?: React.ReactNode;\n size?: ControlSize;\n placeholder?: string;\n /** Hide the − / + stepper buttons. */\n hideStepper?: boolean;\n decrementLabel?: string;\n incrementLabel?: string;\n}\n\n/** Numeric input with stepper buttons, locale formatting and keyboard stepping. */\nexport function NumberField({\n label,\n description,\n error,\n size = 'md',\n placeholder,\n hideStepper,\n decrementLabel = 'Decrease',\n incrementLabel = 'Increase',\n className,\n name,\n disabled,\n required,\n ref,\n ...props\n}: NumberFieldProps) {\n return (\n <Field.Root name={name} disabled={disabled} invalid={error ? true : undefined}>\n {label && <Field.Label required={required}>{label}</Field.Label>}\n <BaseNumberField.Root\n ref={ref}\n className={withClass('oui-number-field', className)}\n disabled={disabled}\n required={required}\n {...props}\n >\n <BaseNumberField.Group className=\"oui-number-field__group\" data-size={size}>\n {!hideStepper && (\n <BaseNumberField.Decrement className=\"oui-number-field__step\" aria-label={decrementLabel}>\n <MinusIcon />\n </BaseNumberField.Decrement>\n )}\n <BaseNumberField.Input className=\"oui-number-field__input\" placeholder={placeholder} />\n {!hideStepper && (\n <BaseNumberField.Increment className=\"oui-number-field__step\" aria-label={incrementLabel}>\n <PlusIcon />\n </BaseNumberField.Increment>\n )}\n </BaseNumberField.Group>\n </BaseNumberField.Root>\n {description && <Field.Description>{description}</Field.Description>}\n {error ? <Field.Error match>{error}</Field.Error> : <Field.Error />}\n </Field.Root>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import * as React from 'react';
2
+ export interface PaginationLabels {
3
+ navigation: string;
4
+ previous: string;
5
+ next: string;
6
+ rowsPerPage: string;
7
+ page: (page: number) => string;
8
+ /** Summary text, e.g. "11–20 of 87". `total` is 0 when there is nothing to show. */
9
+ range: (from: number, to: number, total: number) => React.ReactNode;
10
+ }
11
+ /** Page numbers to render, with `'gap'` where pages are skipped. */
12
+ export declare function getPageItems(page: number, pageCount: number, siblingCount?: number): Array<number | 'gap'>;
13
+ export interface PaginationProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange'> {
14
+ ref?: React.Ref<HTMLElement>;
15
+ /** Current page, starting at 1. */
16
+ page: number;
17
+ pageSize: number;
18
+ /** Total number of items across all pages. */
19
+ total: number;
20
+ onPageChange: (page: number) => void;
21
+ /** Passing this adds the rows-per-page select. */
22
+ onPageSizeChange?: (pageSize: number) => void;
23
+ pageSizeOptions?: number[];
24
+ /** `pages` shows numbered buttons; `simple` only previous / next. */
25
+ variant?: 'pages' | 'simple';
26
+ /** Numbered pages shown on each side of the current one. */
27
+ siblingCount?: number;
28
+ /** Hide the "11–20 of 87" summary. */
29
+ hideRange?: boolean;
30
+ /** Override texts for localisation. */
31
+ labels?: Partial<PaginationLabels>;
32
+ }
33
+ /** Controlled page navigation with an optional rows-per-page select. */
34
+ export declare function Pagination({ page, pageSize, total, onPageChange, onPageSizeChange, pageSizeOptions, variant, siblingCount, hideRange, labels, className, ref, ...props }: PaginationProps): React.JSX.Element;
@@ -0,0 +1,244 @@
1
+ "use client";
2
+ import { cx } from "../../utils/cx.js";
3
+ import { ChevronLeftIcon, ChevronRightIcon } from "../../icons/index.js";
4
+ import { IconButton } from "../button/Button.js";
5
+ import { Select } from "../select/Select.js";
6
+ import { c } from "react/compiler-runtime";
7
+ import "react";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ //#region src/components/pagination/Pagination.tsx
10
+ var defaultLabels = {
11
+ navigation: "Pagination",
12
+ previous: "Previous page",
13
+ next: "Next page",
14
+ rowsPerPage: "Rows per page",
15
+ page: (page) => `Page ${page}`,
16
+ range: (from, to, total) => total ? `${from}–${to} of ${total}` : "0 results"
17
+ };
18
+ /** Page numbers to render, with `'gap'` where pages are skipped. */
19
+ function getPageItems(page, pageCount, siblingCount = 1) {
20
+ if (pageCount <= siblingCount * 2 + 5) return Array.from({ length: pageCount }, (_, i) => i + 1);
21
+ const start = Math.max(2, Math.min(page - siblingCount, pageCount - siblingCount * 2 - 2));
22
+ const end = Math.min(pageCount - 1, Math.max(page + siblingCount, siblingCount * 2 + 3));
23
+ const items = [1];
24
+ if (start > 2) items.push("gap");
25
+ for (let i = start; i <= end; i++) items.push(i);
26
+ if (end < pageCount - 1) items.push("gap");
27
+ items.push(pageCount);
28
+ return items;
29
+ }
30
+ /** Controlled page navigation with an optional rows-per-page select. */
31
+ function Pagination(t0) {
32
+ const $ = c(47);
33
+ let current;
34
+ let onPageChange;
35
+ let pageCount;
36
+ let t1;
37
+ let t10;
38
+ let t11;
39
+ let t2;
40
+ let t3;
41
+ let t4;
42
+ let t5;
43
+ let t6;
44
+ let t7;
45
+ let t8;
46
+ let t9;
47
+ let text;
48
+ if ($[0] !== t0) {
49
+ const { page, pageSize, total, onPageChange: t12, onPageSizeChange, pageSizeOptions: t13, variant: t14, siblingCount: t15, hideRange, labels, className, ref, ...props } = t0;
50
+ onPageChange = t12;
51
+ const pageSizeOptions = t13 === void 0 ? [
52
+ 10,
53
+ 25,
54
+ 50
55
+ ] : t13;
56
+ const variant = t14 === void 0 ? "pages" : t14;
57
+ const siblingCount = t15 === void 0 ? 1 : t15;
58
+ text = {
59
+ ...defaultLabels,
60
+ ...labels
61
+ };
62
+ pageCount = Math.max(1, Math.ceil(total / pageSize));
63
+ current = Math.min(Math.max(1, page), pageCount);
64
+ const from = total ? (current - 1) * pageSize + 1 : 0;
65
+ const to = Math.min(current * pageSize, total);
66
+ const sizes = pageSizeOptions.includes(pageSize) ? pageSizeOptions : [...pageSizeOptions, pageSize].sort(_temp);
67
+ t6 = ref;
68
+ t7 = text.navigation;
69
+ if ($[16] !== className) {
70
+ t8 = cx("oui-pagination", className);
71
+ $[16] = className;
72
+ $[17] = t8;
73
+ } else t8 = $[17];
74
+ t9 = variant;
75
+ t10 = props;
76
+ t11 = !hideRange && /* @__PURE__ */ jsx("span", {
77
+ className: "oui-pagination__range",
78
+ "aria-live": "polite",
79
+ children: text.range(from, to, total)
80
+ });
81
+ t4 = "oui-pagination__controls";
82
+ t5 = onPageSizeChange && /* @__PURE__ */ jsxs("label", {
83
+ className: "oui-pagination__size",
84
+ children: [/* @__PURE__ */ jsx("span", { children: text.rowsPerPage }), /* @__PURE__ */ jsx(Select, {
85
+ size: "sm",
86
+ items: sizes.map(_temp2),
87
+ value: String(pageSize),
88
+ onValueChange: (value) => value && onPageSizeChange(Number(value)),
89
+ triggerProps: { "aria-label": text.rowsPerPage }
90
+ })]
91
+ });
92
+ t1 = "oui-pagination__pages";
93
+ let t16;
94
+ if ($[18] !== current || $[19] !== onPageChange) {
95
+ t16 = () => onPageChange(current - 1);
96
+ $[18] = current;
97
+ $[19] = onPageChange;
98
+ $[20] = t16;
99
+ } else t16 = $[20];
100
+ let t17;
101
+ if ($[21] === Symbol.for("react.memo_cache_sentinel")) {
102
+ t17 = /* @__PURE__ */ jsx(ChevronLeftIcon, {});
103
+ $[21] = t17;
104
+ } else t17 = $[21];
105
+ t2 = /* @__PURE__ */ jsx(IconButton, {
106
+ size: "sm",
107
+ "aria-label": text.previous,
108
+ disabled: current <= 1,
109
+ onClick: t16,
110
+ children: t17
111
+ });
112
+ t3 = variant === "pages" && getPageItems(current, pageCount, siblingCount).map((item, index) => item === "gap" ? /* @__PURE__ */ jsx("span", {
113
+ className: "oui-pagination__gap",
114
+ "aria-hidden": true,
115
+ children: "…"
116
+ }, `gap-${index}`) : /* @__PURE__ */ jsx("button", {
117
+ type: "button",
118
+ className: "oui-pagination__page",
119
+ "aria-label": text.page(item),
120
+ "aria-current": item === current ? "page" : void 0,
121
+ onClick: () => onPageChange(item),
122
+ children: item
123
+ }, item));
124
+ $[0] = t0;
125
+ $[1] = current;
126
+ $[2] = onPageChange;
127
+ $[3] = pageCount;
128
+ $[4] = t1;
129
+ $[5] = t10;
130
+ $[6] = t11;
131
+ $[7] = t2;
132
+ $[8] = t3;
133
+ $[9] = t4;
134
+ $[10] = t5;
135
+ $[11] = t6;
136
+ $[12] = t7;
137
+ $[13] = t8;
138
+ $[14] = t9;
139
+ $[15] = text;
140
+ } else {
141
+ current = $[1];
142
+ onPageChange = $[2];
143
+ pageCount = $[3];
144
+ t1 = $[4];
145
+ t10 = $[5];
146
+ t11 = $[6];
147
+ t2 = $[7];
148
+ t3 = $[8];
149
+ t4 = $[9];
150
+ t5 = $[10];
151
+ t6 = $[11];
152
+ t7 = $[12];
153
+ t8 = $[13];
154
+ t9 = $[14];
155
+ text = $[15];
156
+ }
157
+ const t12 = current >= pageCount;
158
+ let t13;
159
+ if ($[22] !== current || $[23] !== onPageChange) {
160
+ t13 = () => onPageChange(current + 1);
161
+ $[22] = current;
162
+ $[23] = onPageChange;
163
+ $[24] = t13;
164
+ } else t13 = $[24];
165
+ let t14;
166
+ if ($[25] === Symbol.for("react.memo_cache_sentinel")) {
167
+ t14 = /* @__PURE__ */ jsx(ChevronRightIcon, {});
168
+ $[25] = t14;
169
+ } else t14 = $[25];
170
+ let t15;
171
+ if ($[26] !== t12 || $[27] !== t13 || $[28] !== text.next) {
172
+ t15 = /* @__PURE__ */ jsx(IconButton, {
173
+ size: "sm",
174
+ "aria-label": text.next,
175
+ disabled: t12,
176
+ onClick: t13,
177
+ children: t14
178
+ });
179
+ $[26] = t12;
180
+ $[27] = t13;
181
+ $[28] = text.next;
182
+ $[29] = t15;
183
+ } else t15 = $[29];
184
+ let t16;
185
+ if ($[30] !== t1 || $[31] !== t15 || $[32] !== t2 || $[33] !== t3) {
186
+ t16 = /* @__PURE__ */ jsxs("div", {
187
+ className: t1,
188
+ children: [
189
+ t2,
190
+ t3,
191
+ t15
192
+ ]
193
+ });
194
+ $[30] = t1;
195
+ $[31] = t15;
196
+ $[32] = t2;
197
+ $[33] = t3;
198
+ $[34] = t16;
199
+ } else t16 = $[34];
200
+ let t17;
201
+ if ($[35] !== t16 || $[36] !== t4 || $[37] !== t5) {
202
+ t17 = /* @__PURE__ */ jsxs("div", {
203
+ className: t4,
204
+ children: [t5, t16]
205
+ });
206
+ $[35] = t16;
207
+ $[36] = t4;
208
+ $[37] = t5;
209
+ $[38] = t17;
210
+ } else t17 = $[38];
211
+ let t18;
212
+ if ($[39] !== t10 || $[40] !== t11 || $[41] !== t17 || $[42] !== t6 || $[43] !== t7 || $[44] !== t8 || $[45] !== t9) {
213
+ t18 = /* @__PURE__ */ jsxs("nav", {
214
+ ref: t6,
215
+ "aria-label": t7,
216
+ className: t8,
217
+ "data-variant": t9,
218
+ ...t10,
219
+ children: [t11, t17]
220
+ });
221
+ $[39] = t10;
222
+ $[40] = t11;
223
+ $[41] = t17;
224
+ $[42] = t6;
225
+ $[43] = t7;
226
+ $[44] = t8;
227
+ $[45] = t9;
228
+ $[46] = t18;
229
+ } else t18 = $[46];
230
+ return t18;
231
+ }
232
+ function _temp2(size) {
233
+ return {
234
+ value: String(size),
235
+ label: String(size)
236
+ };
237
+ }
238
+ function _temp(a, b) {
239
+ return a - b;
240
+ }
241
+ //#endregion
242
+ export { Pagination, getPageItems };
243
+
244
+ //# sourceMappingURL=Pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.js","names":["React","cx","IconButton","Select","ChevronLeftIcon","ChevronRightIcon","PaginationLabels","navigation","previous","next","rowsPerPage","page","range","from","to","total","ReactNode","defaultLabels","getPageItems","pageCount","siblingCount","Array","slots","length","_","i","start","Math","max","min","end","items","push","PaginationProps","Omit","HTMLAttributes","HTMLElement","ref","Ref","pageSize","onPageChange","onPageSizeChange","pageSizeOptions","variant","hideRange","labels","Partial","Pagination","t0","$","_c","current","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","text","t12","t13","t14","t15","className","props","undefined","ceil","sizes","includes","sort","_temp","map","_temp2","String","value","Number","t16","t17","Symbol","for","item","index","t18","size","label","a","b","_c"],"sources":["../../../src/components/pagination/Pagination.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { IconButton } from '../button/Button';\nimport { Select } from '../select/Select';\nimport { ChevronLeftIcon, ChevronRightIcon } from '../../icons';\n\nexport interface PaginationLabels {\n navigation: string;\n previous: string;\n next: string;\n rowsPerPage: string;\n page: (page: number) => string;\n /** Summary text, e.g. \"11–20 of 87\". `total` is 0 when there is nothing to show. */\n range: (from: number, to: number, total: number) => React.ReactNode;\n}\n\nconst defaultLabels: PaginationLabels = {\n navigation: 'Pagination',\n previous: 'Previous page',\n next: 'Next page',\n rowsPerPage: 'Rows per page',\n page: (page) => `Page ${page}`,\n range: (from, to, total) => (total ? `${from}–${to} of ${total}` : '0 results'),\n};\n\n/** Page numbers to render, with `'gap'` where pages are skipped. */\nexport function getPageItems(page: number, pageCount: number, siblingCount = 1): Array<number | 'gap'> {\n // first + last + current + siblings + two gaps\n const slots = siblingCount * 2 + 5;\n if (pageCount <= slots) return Array.from({ length: pageCount }, (_, i) => i + 1);\n const start = Math.max(2, Math.min(page - siblingCount, pageCount - siblingCount * 2 - 2));\n const end = Math.min(pageCount - 1, Math.max(page + siblingCount, siblingCount * 2 + 3));\n const items: Array<number | 'gap'> = [1];\n if (start > 2) items.push('gap');\n for (let i = start; i <= end; i++) items.push(i);\n if (end < pageCount - 1) items.push('gap');\n items.push(pageCount);\n return items;\n}\n\nexport interface PaginationProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange'> {\n ref?: React.Ref<HTMLElement>;\n /** Current page, starting at 1. */\n page: number;\n pageSize: number;\n /** Total number of items across all pages. */\n total: number;\n onPageChange: (page: number) => void;\n /** Passing this adds the rows-per-page select. */\n onPageSizeChange?: (pageSize: number) => void;\n pageSizeOptions?: number[];\n /** `pages` shows numbered buttons; `simple` only previous / next. */\n variant?: 'pages' | 'simple';\n /** Numbered pages shown on each side of the current one. */\n siblingCount?: number;\n /** Hide the \"11–20 of 87\" summary. */\n hideRange?: boolean;\n /** Override texts for localisation. */\n labels?: Partial<PaginationLabels>;\n}\n\n/** Controlled page navigation with an optional rows-per-page select. */\nexport function Pagination({\n page,\n pageSize,\n total,\n onPageChange,\n onPageSizeChange,\n pageSizeOptions = [10, 25, 50],\n variant = 'pages',\n siblingCount = 1,\n hideRange,\n labels,\n className,\n ref,\n ...props\n}: PaginationProps) {\n const text = { ...defaultLabels, ...labels };\n const pageCount = Math.max(1, Math.ceil(total / pageSize));\n const current = Math.min(Math.max(1, page), pageCount);\n const from = total ? (current - 1) * pageSize + 1 : 0;\n const to = Math.min(current * pageSize, total);\n const sizes = pageSizeOptions.includes(pageSize) ? pageSizeOptions : [...pageSizeOptions, pageSize].sort((a, b) => a - b);\n\n return (\n <nav ref={ref} aria-label={text.navigation} className={cx('oui-pagination', className)} data-variant={variant} {...props}>\n {!hideRange && (\n <span className=\"oui-pagination__range\" aria-live=\"polite\">\n {text.range(from, to, total)}\n </span>\n )}\n <div className=\"oui-pagination__controls\">\n {onPageSizeChange && (\n <label className=\"oui-pagination__size\">\n <span>{text.rowsPerPage}</span>\n <Select\n size=\"sm\"\n items={sizes.map((size) => ({ value: String(size), label: String(size) }))}\n value={String(pageSize)}\n onValueChange={(value) => value && onPageSizeChange(Number(value))}\n triggerProps={{ 'aria-label': text.rowsPerPage }}\n />\n </label>\n )}\n <div className=\"oui-pagination__pages\">\n <IconButton size=\"sm\" aria-label={text.previous} disabled={current <= 1} onClick={() => onPageChange(current - 1)}>\n <ChevronLeftIcon />\n </IconButton>\n {variant === 'pages' &&\n getPageItems(current, pageCount, siblingCount).map((item, index) =>\n item === 'gap' ? (\n <span key={`gap-${index}`} className=\"oui-pagination__gap\" aria-hidden>\n …\n </span>\n ) : (\n <button\n key={item}\n type=\"button\"\n className=\"oui-pagination__page\"\n aria-label={text.page(item)}\n aria-current={item === current ? 'page' : undefined}\n onClick={() => onPageChange(item)}\n >\n {item}\n </button>\n ),\n )}\n <IconButton size=\"sm\" aria-label={text.next} disabled={current >= pageCount} onClick={() => onPageChange(current + 1)}>\n <ChevronRightIcon />\n </IconButton>\n </div>\n </div>\n </nav>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { Popover as BasePopover } from '@base-ui/react/popover';
2
+ export interface PopoverContentProps extends BasePopover.Popup.Props {
3
+ side?: BasePopover.Positioner.Props['side'];
4
+ align?: BasePopover.Positioner.Props['align'];
5
+ sideOffset?: BasePopover.Positioner.Props['sideOffset'];
6
+ /** Show a small arrow pointing at the trigger. */
7
+ arrow?: boolean;
8
+ positionerProps?: BasePopover.Positioner.Props;
9
+ }
10
+ declare function PopoverContent({ side, align, sideOffset, arrow, positionerProps, className, children, ref, ...props }: PopoverContentProps): import("react").JSX.Element;
11
+ declare function PopoverTitle({ className, ref, ...props }: BasePopover.Title.Props): import("react").JSX.Element;
12
+ declare function PopoverDescription({ className, ref, ...props }: BasePopover.Description.Props): import("react").JSX.Element;
13
+ /** Floating panel anchored to a trigger, for small forms, filters and details. */
14
+ export declare const Popover: {
15
+ Root: typeof BasePopover.Root;
16
+ Trigger: BasePopover.Trigger;
17
+ Content: typeof PopoverContent;
18
+ Title: typeof PopoverTitle;
19
+ Description: typeof PopoverDescription;
20
+ Close: import("react").ForwardRefExoticComponent<Omit<import("@base-ui/react").PopoverCloseProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
21
+ };
22
+ export {};