@roy-ui/ui 0.0.7 → 0.0.9

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 (68) hide show
  1. package/dist/{Button-XBBWB5ZT.css → Button-OZLAH5NO.css} +60 -13
  2. package/dist/Table-qVdGZkB4.d.ts +42 -0
  3. package/dist/TimePicker-BhRta4MK.d.ts +39 -0
  4. package/dist/chunk-4SGMAZBG.js +161 -0
  5. package/dist/chunk-4SGMAZBG.js.map +1 -0
  6. package/dist/chunk-5CIBIH7R.js +98 -0
  7. package/dist/chunk-5CIBIH7R.js.map +1 -0
  8. package/dist/chunk-75IGGPXL.js +518 -0
  9. package/dist/chunk-75IGGPXL.js.map +1 -0
  10. package/dist/chunk-C5X3TE5U.js +87 -0
  11. package/dist/chunk-C5X3TE5U.js.map +1 -0
  12. package/dist/chunk-HUCK7AM7.js +840 -0
  13. package/dist/chunk-HUCK7AM7.js.map +1 -0
  14. package/dist/chunk-KSHKVSNK.js +82 -0
  15. package/dist/chunk-KSHKVSNK.js.map +1 -0
  16. package/dist/chunk-M6HB6BMA.js +101 -0
  17. package/dist/chunk-M6HB6BMA.js.map +1 -0
  18. package/dist/chunk-MDPMEW4K.js +58 -0
  19. package/dist/chunk-MDPMEW4K.js.map +1 -0
  20. package/dist/chunk-PGV55XSZ.js +107 -0
  21. package/dist/chunk-PGV55XSZ.js.map +1 -0
  22. package/dist/chunk-RLBVY3DG.js +64 -0
  23. package/dist/chunk-RLBVY3DG.js.map +1 -0
  24. package/dist/chunk-SFENGB5N.js +410 -0
  25. package/dist/chunk-SFENGB5N.js.map +1 -0
  26. package/dist/chunk-XERZVDIT.js +194 -0
  27. package/dist/chunk-XERZVDIT.js.map +1 -0
  28. package/dist/components/button/index.d.ts +37 -0
  29. package/dist/components/button/index.js +4 -0
  30. package/dist/components/button/index.js.map +1 -0
  31. package/dist/components/data-table/index.d.ts +145 -0
  32. package/dist/components/data-table/index.js +9 -0
  33. package/dist/components/data-table/index.js.map +1 -0
  34. package/dist/components/date-range-picker/index.d.ts +30 -0
  35. package/dist/components/date-range-picker/index.js +4 -0
  36. package/dist/components/date-range-picker/index.js.map +1 -0
  37. package/dist/components/gradient-button/index.d.ts +12 -0
  38. package/dist/components/gradient-button/index.js +4 -0
  39. package/dist/components/gradient-button/index.js.map +1 -0
  40. package/dist/components/made-by/index.d.ts +23 -0
  41. package/dist/components/made-by/index.js +4 -0
  42. package/dist/components/made-by/index.js.map +1 -0
  43. package/dist/components/pagination/index.d.ts +23 -0
  44. package/dist/components/pagination/index.js +4 -0
  45. package/dist/components/pagination/index.js.map +1 -0
  46. package/dist/components/popover/index.d.ts +18 -0
  47. package/dist/components/popover/index.js +4 -0
  48. package/dist/components/popover/index.js.map +1 -0
  49. package/dist/components/table/index.d.ts +28 -0
  50. package/dist/components/table/index.js +4 -0
  51. package/dist/components/table/index.js.map +1 -0
  52. package/dist/components/table-search/index.d.ts +19 -0
  53. package/dist/components/table-search/index.js +4 -0
  54. package/dist/components/table-search/index.js.map +1 -0
  55. package/dist/components/text-morph/index.d.ts +28 -0
  56. package/dist/components/text-morph/index.js +4 -0
  57. package/dist/components/text-morph/index.js.map +1 -0
  58. package/dist/components/time-picker/index.d.ts +14 -0
  59. package/dist/components/time-picker/index.js +4 -0
  60. package/dist/components/time-picker/index.js.map +1 -0
  61. package/dist/components/tree-nav/index.d.ts +30 -0
  62. package/dist/components/tree-nav/index.js +4 -0
  63. package/dist/components/tree-nav/index.js.map +1 -0
  64. package/dist/dateUtils-B_m_EICl.d.ts +14 -0
  65. package/dist/index.d.ts +17 -422
  66. package/dist/index.js +12 -2519
  67. package/dist/index.js.map +1 -1
  68. package/package.json +51 -2
@@ -0,0 +1,87 @@
1
+ "use client";
2
+ import { useState, useRef, useEffect } from 'react';
3
+ import './Popover-LSYVKT4M.css';
4
+ import { jsx, jsxs } from 'react/jsx-runtime';
5
+
6
+ // src/components/popover/Popover.tsx
7
+ var InfoIcon = () => /* @__PURE__ */ jsxs(
8
+ "svg",
9
+ {
10
+ width: "14",
11
+ height: "14",
12
+ viewBox: "0 0 24 24",
13
+ fill: "none",
14
+ stroke: "currentColor",
15
+ strokeWidth: "1.5",
16
+ strokeLinecap: "round",
17
+ strokeLinejoin: "round",
18
+ "aria-hidden": true,
19
+ children: [
20
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9" }),
21
+ /* @__PURE__ */ jsx("path", { d: "M12 16v-5M12 8h.01" })
22
+ ]
23
+ }
24
+ );
25
+ function Popover({
26
+ children,
27
+ title,
28
+ align = "right",
29
+ width = "md",
30
+ label = "Open menu",
31
+ defaultOpen = false,
32
+ renderTrigger
33
+ }) {
34
+ const [open, setOpen] = useState(defaultOpen);
35
+ const wrap = useRef(null);
36
+ const toggle = () => setOpen((o) => !o);
37
+ useEffect(() => {
38
+ if (!open) return;
39
+ function onDown(e) {
40
+ if (wrap.current && !wrap.current.contains(e.target)) {
41
+ setOpen(false);
42
+ }
43
+ }
44
+ function onKey(e) {
45
+ if (e.key === "Escape") setOpen(false);
46
+ }
47
+ document.addEventListener("mousedown", onDown);
48
+ document.addEventListener("keydown", onKey);
49
+ return () => {
50
+ document.removeEventListener("mousedown", onDown);
51
+ document.removeEventListener("keydown", onKey);
52
+ };
53
+ }, [open]);
54
+ const trigger = renderTrigger ? renderTrigger({ isOpen: open, toggle }) : /* @__PURE__ */ jsx(
55
+ "button",
56
+ {
57
+ type: "button",
58
+ onClick: toggle,
59
+ "aria-label": label,
60
+ "aria-expanded": open,
61
+ className: `royui-popover__trigger ${open ? "royui-popover__trigger--on" : ""}`,
62
+ children: /* @__PURE__ */ jsx(InfoIcon, {})
63
+ }
64
+ );
65
+ const widthClass = typeof width === "string" ? `royui-popover__panel--${width}` : "";
66
+ const customWidth = typeof width === "number" ? { width: `${width}px` } : void 0;
67
+ const alignClass = `royui-popover__panel--${align}`;
68
+ return /* @__PURE__ */ jsxs("div", { ref: wrap, className: "royui-popover", children: [
69
+ trigger,
70
+ open && /* @__PURE__ */ jsxs(
71
+ "div",
72
+ {
73
+ className: `royui-popover__panel ${widthClass} ${alignClass}`,
74
+ style: customWidth,
75
+ role: "dialog",
76
+ children: [
77
+ title && /* @__PURE__ */ jsx("div", { className: "royui-popover__title", children: title }),
78
+ /* @__PURE__ */ jsx("div", { className: "royui-popover__body", children })
79
+ ]
80
+ }
81
+ )
82
+ ] });
83
+ }
84
+
85
+ export { Popover };
86
+ //# sourceMappingURL=chunk-C5X3TE5U.js.map
87
+ //# sourceMappingURL=chunk-C5X3TE5U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/popover/Popover.tsx"],"names":[],"mappings":"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","file":"chunk-C5X3TE5U.js","sourcesContent":["'use client';\n\nimport {\n useEffect,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport './Popover.css';\n\nexport interface PopoverProps {\n children: ReactNode;\n title?: string;\n align?: 'left' | 'right';\n width?: 'sm' | 'md' | 'lg' | number;\n label?: string;\n defaultOpen?: boolean;\n renderTrigger?: (api: { isOpen: boolean; toggle: () => void }) => ReactNode;\n}\n\nconst InfoIcon = () => (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" />\n <path d=\"M12 16v-5M12 8h.01\" />\n </svg>\n);\n\nexport function Popover({\n children,\n title,\n align = 'right',\n width = 'md',\n label = 'Open menu',\n defaultOpen = false,\n renderTrigger,\n}: PopoverProps) {\n const [open, setOpen] = useState(defaultOpen);\n const wrap = useRef<HTMLDivElement>(null);\n const toggle = () => setOpen((o) => !o);\n\n useEffect(() => {\n if (!open) return;\n function onDown(e: MouseEvent) {\n if (wrap.current && !wrap.current.contains(e.target as Node)) {\n setOpen(false);\n }\n }\n function onKey(e: KeyboardEvent) {\n if (e.key === 'Escape') setOpen(false);\n }\n document.addEventListener('mousedown', onDown);\n document.addEventListener('keydown', onKey);\n return () => {\n document.removeEventListener('mousedown', onDown);\n document.removeEventListener('keydown', onKey);\n };\n }, [open]);\n\n const trigger = renderTrigger ? (\n renderTrigger({ isOpen: open, toggle })\n ) : (\n <button\n type=\"button\"\n onClick={toggle}\n aria-label={label}\n aria-expanded={open}\n className={`royui-popover__trigger ${open ? 'royui-popover__trigger--on' : ''}`}\n >\n <InfoIcon />\n </button>\n );\n\n const widthClass =\n typeof width === 'string' ? `royui-popover__panel--${width}` : '';\n const customWidth =\n typeof width === 'number' ? { width: `${width}px` } : undefined;\n const alignClass = `royui-popover__panel--${align}`;\n\n return (\n <div ref={wrap} className=\"royui-popover\">\n {trigger}\n {open && (\n <div\n className={`royui-popover__panel ${widthClass} ${alignClass}`}\n style={customWidth}\n role=\"dialog\"\n >\n {title && <div className=\"royui-popover__title\">{title}</div>}\n <div className=\"royui-popover__body\">{children}</div>\n </div>\n )}\n </div>\n );\n}\n"]}