@birdycom/omniaui-react 0.12.4 → 0.12.6

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 (38) hide show
  1. package/dist/index.d.ts +329 -39
  2. package/dist/index.js +2647 -1723
  3. package/manifest.json +90 -6
  4. package/package.json +1 -1
  5. package/src/blocks/BlockAppHeader.tsx +1 -1
  6. package/src/blocks/BlockAppShell.tsx +1 -1
  7. package/src/blocks/BlockProfileHeader.tsx +20 -3
  8. package/src/components/Attachment.tsx +1 -1
  9. package/src/components/AvatarPicker.tsx +68 -0
  10. package/src/components/Barcode.tsx +42 -0
  11. package/src/components/Breadcrumb.tsx +8 -4
  12. package/src/components/Button.tsx +22 -7
  13. package/src/components/ChatComposer.tsx +1 -1
  14. package/src/components/DataTable.tsx +182 -33
  15. package/src/components/DateField.tsx +41 -0
  16. package/src/components/EmojiPicker.tsx +2 -2
  17. package/src/components/FormSection.tsx +32 -0
  18. package/src/components/Gallery.tsx +56 -0
  19. package/src/components/Glass.tsx +5 -3
  20. package/src/components/GlassBar.tsx +42 -0
  21. package/src/components/Icon.tsx +9 -14
  22. package/src/components/LanguageSelect.tsx +1 -4
  23. package/src/components/LazyImage.tsx +45 -0
  24. package/src/components/Message.tsx +12 -11
  25. package/src/components/MessageThread.tsx +11 -11
  26. package/src/components/MeterRow.tsx +38 -0
  27. package/src/components/NameCard.tsx +59 -0
  28. package/src/components/Price.tsx +45 -0
  29. package/src/components/Prose.tsx +3 -3
  30. package/src/components/Quantity.tsx +55 -0
  31. package/src/components/Rating.tsx +69 -0
  32. package/src/components/Ribbon.tsx +30 -0
  33. package/src/components/SpecList.tsx +36 -0
  34. package/src/components/Stock.tsx +28 -0
  35. package/src/components/User.tsx +3 -3
  36. package/src/index.ts +15 -1
  37. package/src/utils.ts +7 -0
  38. package/src/components/ColumnMenu.tsx +0 -66
package/src/index.ts CHANGED
@@ -9,8 +9,10 @@ export * from "./components/AlertDialog";
9
9
  export * from "./components/AlphaTabs";
10
10
  export * from "./components/Attachment";
11
11
  export * from "./components/Avatar";
12
+ export * from "./components/AvatarPicker";
12
13
  export * from "./components/BackLink";
13
14
  export * from "./components/Badge";
15
+ export * from "./components/Barcode";
14
16
  export * from "./components/BarcodeInput";
15
17
  export * from "./components/Breadcrumb";
16
18
  export * from "./components/BrowserFrame";
@@ -25,13 +27,13 @@ export * from "./components/ChipFilter";
25
27
  export * from "./components/Collapsible";
26
28
  export * from "./components/ColorField";
27
29
  export * from "./components/ColorSelect";
28
- export * from "./components/ColumnMenu";
29
30
  export * from "./components/Command";
30
31
  export * from "./components/ConfirmDialog";
31
32
  export * from "./components/CookieConsent";
32
33
  export * from "./components/CopyField";
33
34
  export * from "./components/Counter";
34
35
  export * from "./components/DataTable";
36
+ export * from "./components/DateField";
35
37
  export * from "./components/DecimalInput";
36
38
  export * from "./components/DefinitionList";
37
39
  export * from "./components/DocViewer";
@@ -44,7 +46,10 @@ export * from "./components/FactList";
44
46
  export * from "./components/FilterCounts";
45
47
  export * from "./components/FlipCard";
46
48
  export * from "./components/FormField";
49
+ export * from "./components/FormSection";
50
+ export * from "./components/Gallery";
47
51
  export * from "./components/Glass";
52
+ export * from "./components/GlassBar";
48
53
  export * from "./components/Greeting";
49
54
  export * from "./components/Heading";
50
55
  export * from "./components/Icon";
@@ -53,6 +58,7 @@ export * from "./components/Input";
53
58
  export * from "./components/InputGroup";
54
59
  export * from "./components/LanguageSelect";
55
60
  export * from "./components/LauncherCard";
61
+ export * from "./components/LazyImage";
56
62
  export * from "./components/Lightbox";
57
63
  export * from "./components/LinkArrow";
58
64
  export * from "./components/LinkRow";
@@ -64,7 +70,9 @@ export * from "./components/MediaRow";
64
70
  export * from "./components/MediaThumb";
65
71
  export * from "./components/Message";
66
72
  export * from "./components/MessageThread";
73
+ export * from "./components/MeterRow";
67
74
  export * from "./components/Modal";
75
+ export * from "./components/NameCard";
68
76
  export * from "./components/Navmenu";
69
77
  export * from "./components/NextTeaser";
70
78
  export * from "./components/NumberInput";
@@ -75,12 +83,16 @@ export * from "./components/PasswordInput";
75
83
  export * from "./components/PasswordRequirements";
76
84
  export * from "./components/PhoneInput";
77
85
  export * from "./components/Popover";
86
+ export * from "./components/Price";
78
87
  export * from "./components/PriceCard";
79
88
  export * from "./components/ProductMark";
80
89
  export * from "./components/Progress";
81
90
  export * from "./components/ProjectCard";
82
91
  export * from "./components/Prose";
92
+ export * from "./components/Quantity";
93
+ export * from "./components/Rating";
83
94
  export * from "./components/RecoveryCodes";
95
+ export * from "./components/Ribbon";
84
96
  export * from "./components/Segmented";
85
97
  export * from "./components/Select";
86
98
  export * from "./components/SeverityCard";
@@ -88,11 +100,13 @@ export * from "./components/Sheet";
88
100
  export * from "./components/Sidebar";
89
101
  export * from "./components/Skeleton";
90
102
  export * from "./components/SortableRow";
103
+ export * from "./components/SpecList";
91
104
  export * from "./components/StackCard";
92
105
  export * from "./components/StackList";
93
106
  export * from "./components/StatCard";
94
107
  export * from "./components/StatusDot";
95
108
  export * from "./components/Stepper";
109
+ export * from "./components/Stock";
96
110
  export * from "./components/Switch";
97
111
  export * from "./components/Table";
98
112
  export * from "./components/TableActions";
package/src/utils.ts CHANGED
@@ -19,6 +19,13 @@ export function attrs(record: Record<string, string | undefined>): object {
19
19
 
20
20
  export type Slot = ReactNode;
21
21
 
22
+ /** "Contact 1" -> "AL": the first letters of the first two words (as the Blade components do). */
23
+ export function initialsOf(name: unknown): string {
24
+ return typeof name === "string"
25
+ ? name.trim().split(/\s+/).filter(Boolean).slice(0, 2).map((w) => w[0].toUpperCase()).join("")
26
+ : "";
27
+ }
28
+
22
29
  /** Call a handler, then call another one. */
23
30
  export function callAll<E>(...fns: Array<((e: E) => void) | undefined>) {
24
31
  return (e: E) => fns.forEach((fn) => fn?.(e));
@@ -1,66 +0,0 @@
1
- // File: packages/react/src/components/ColumnMenu.tsx
2
- // Map: ColumnMenu = scope -> toolbar trigger -> popover (title, form with one checkbox per column, reset) -> children (the table)
3
- // Hiding columns is pure CSS: an unchecked [data-col="n"] hides column n inside the scope (n = 1-10).
4
- // The checkboxes are uncontrolled, so "Reset" (a form reset) restores the defaults.
5
- import { forwardRef, useId } from "react";
6
- import type { HTMLAttributes, ReactNode } from "react";
7
- import { attrs, cx } from "../utils";
8
-
9
- export interface ColumnMenuColumn {
10
- label: ReactNode;
11
- /** Visible at the start (default true). */
12
- visible?: boolean;
13
- /** Always visible; the checkbox is disabled. */
14
- locked?: boolean;
15
- }
16
-
17
- export interface ColumnMenuProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
18
- /** One entry per table column, in column order (max 10). */
19
- columns: ColumnMenuColumn[];
20
- /** The table (`.oc-table`) the menu controls. */
21
- children: ReactNode;
22
- triggerLabel?: ReactNode;
23
- title?: ReactNode;
24
- resetLabel?: ReactNode;
25
- /** Called with the column number (1-based) and its new visibility. */
26
- onColumnToggle?: (column: number, visible: boolean) => void;
27
- }
28
-
29
- /** `.oc-column-menu-scope` with a `.oc-column-menu[popover]` column checklist. */
30
- export const ColumnMenu = forwardRef<HTMLDivElement, ColumnMenuProps>(function ColumnMenu(
31
- { columns, children, triggerLabel = "Columns", title = "Visible columns", resetLabel = "Reset", onColumnToggle, className, ...rest },
32
- ref,
33
- ) {
34
- const menuId = `oc-column-menu-${useId().replace(/:/g, "")}`;
35
- return (
36
- <div ref={ref} className={cx("oc-column-menu-scope", className)} {...rest}>
37
- <div className="oc-table-toolbar">
38
- <span className="oc-table-toolbar-spacer" />
39
- <button className="oc-btn oc-btn--outline oc-btn--sm" type="button" popoverTarget={menuId}>
40
- {triggerLabel}
41
- </button>
42
- </div>
43
- <div className="oc-column-menu" id={menuId} {...attrs({ popover: "" })}>
44
- <p className="oc-column-menu-title">{title}</p>
45
- <form className="oc-column-menu-list">
46
- {columns.map((col, i) => (
47
- <label className="oc-column-menu-item" key={i}>
48
- <input
49
- type="checkbox"
50
- data-col={i + 1}
51
- defaultChecked={col.locked || col.visible !== false}
52
- disabled={col.locked}
53
- onChange={(e) => onColumnToggle?.(i + 1, e.currentTarget.checked)}
54
- />{" "}
55
- {col.label}
56
- </label>
57
- ))}
58
- <div className="oc-column-menu-footer">
59
- <button className="oc-btn oc-btn--ghost oc-btn--sm" type="reset">{resetLabel}</button>
60
- </div>
61
- </form>
62
- </div>
63
- {children}
64
- </div>
65
- );
66
- });