@mieweb/ui 0.2.0 → 0.2.1

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 (57) hide show
  1. package/dist/ag-grid.cjs +753 -0
  2. package/dist/ag-grid.cjs.map +1 -0
  3. package/dist/ag-grid.d.cts +193 -0
  4. package/dist/ag-grid.d.ts +193 -0
  5. package/dist/ag-grid.js +698 -0
  6. package/dist/ag-grid.js.map +1 -0
  7. package/dist/brands/index.cjs +12 -7
  8. package/dist/brands/index.d.cts +2 -0
  9. package/dist/brands/index.d.ts +2 -0
  10. package/dist/brands/index.js +3 -2
  11. package/dist/brands/ozwell.cjs +12 -0
  12. package/dist/brands/ozwell.cjs.map +1 -0
  13. package/dist/brands/ozwell.css +145 -0
  14. package/dist/brands/ozwell.d.cts +17 -0
  15. package/dist/brands/ozwell.d.ts +17 -0
  16. package/dist/brands/ozwell.js +3 -0
  17. package/dist/brands/ozwell.js.map +1 -0
  18. package/dist/chunk-4DJNHPHB.js +82 -0
  19. package/dist/chunk-4DJNHPHB.js.map +1 -0
  20. package/dist/{chunk-O7WRE2WX.js → chunk-5YRTFJ7K.js} +54 -2
  21. package/dist/chunk-5YRTFJ7K.js.map +1 -0
  22. package/dist/{chunk-CLJZHS7Y.cjs → chunk-B5364UWR.cjs} +3 -2
  23. package/dist/chunk-B5364UWR.cjs.map +1 -0
  24. package/dist/chunk-D3BUYVLN.cjs +120 -0
  25. package/dist/chunk-D3BUYVLN.cjs.map +1 -0
  26. package/dist/{chunk-SJ3BF4BO.cjs → chunk-ERIGUDFS.cjs} +54 -2
  27. package/dist/chunk-ERIGUDFS.cjs.map +1 -0
  28. package/dist/{chunk-UBRDKNLQ.js → chunk-GHRQ3ZJH.js} +178 -51
  29. package/dist/chunk-GHRQ3ZJH.js.map +1 -0
  30. package/dist/{chunk-AKTUXJPI.cjs → chunk-INFSKLXE.cjs} +178 -51
  31. package/dist/chunk-INFSKLXE.cjs.map +1 -0
  32. package/dist/chunk-K5T2PT4M.js +3 -0
  33. package/dist/chunk-K5T2PT4M.js.map +1 -0
  34. package/dist/chunk-KEIA2G6O.cjs +84 -0
  35. package/dist/chunk-KEIA2G6O.cjs.map +1 -0
  36. package/dist/{chunk-S4DK5WN6.js → chunk-RYQ5NEKH.js} +3 -2
  37. package/dist/chunk-RYQ5NEKH.js.map +1 -0
  38. package/dist/components/AudioPlayer/index.cjs +6 -6
  39. package/dist/components/AudioPlayer/index.d.cts +24 -10
  40. package/dist/components/AudioPlayer/index.d.ts +24 -10
  41. package/dist/components/AudioPlayer/index.js +1 -1
  42. package/dist/index.cjs +1637 -1653
  43. package/dist/index.cjs.map +1 -1
  44. package/dist/index.d.cts +162 -225
  45. package/dist/index.d.ts +162 -225
  46. package/dist/index.js +1459 -1447
  47. package/dist/index.js.map +1 -1
  48. package/dist/styles.css +1 -1
  49. package/dist/tailwind-preset.cjs +4 -4
  50. package/dist/tailwind-preset.js +1 -1
  51. package/package.json +12 -1
  52. package/dist/chunk-AKTUXJPI.cjs.map +0 -1
  53. package/dist/chunk-CLJZHS7Y.cjs.map +0 -1
  54. package/dist/chunk-O7WRE2WX.js.map +0 -1
  55. package/dist/chunk-S4DK5WN6.js.map +0 -1
  56. package/dist/chunk-SJ3BF4BO.cjs.map +0 -1
  57. package/dist/chunk-UBRDKNLQ.js.map +0 -1
@@ -6,10 +6,11 @@ var brands = {
6
6
  default: () => import('./default-ZGHKI5WF.cjs').then((m) => m.defaultBrand),
7
7
  "enterprise-health": () => import('./enterprise-health-UDI25OCV.cjs').then((m) => m.enterpriseHealthBrand),
8
8
  mieweb: () => import('./mieweb-UJABK5XX.cjs').then((m) => m.miewebBrand),
9
+ ozwell: () => import('./brands/ozwell.cjs').then((m) => m.ozwellBrand),
9
10
  waggleline: () => import('./waggleline-6IGA66HR.cjs').then((m) => m.wagglelineBrand),
10
11
  webchart: () => import('./webchart-EHVGP46N.cjs').then((m) => m.webchartBrand)
11
12
  };
12
13
 
13
14
  exports.brands = brands;
14
- //# sourceMappingURL=chunk-CLJZHS7Y.cjs.map
15
- //# sourceMappingURL=chunk-CLJZHS7Y.cjs.map
15
+ //# sourceMappingURL=chunk-B5364UWR.cjs.map
16
+ //# sourceMappingURL=chunk-B5364UWR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/brands/index.ts"],"names":[],"mappings":";;;AAiCO,IAAM,MAAA,GAAS;AAAA,EACpB,QAAA,EAAU,MAAM,OAAO,uBAAY,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa,CAAA;AAAA,EAChE,OAAA,EAAS,MAAM,OAAO,wBAAW,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,YAAY,CAAA;AAAA,EAC7D,mBAAA,EAAqB,MACnB,OAAO,kCAAqB,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,qBAAqB,CAAA;AAAA,EACnE,MAAA,EAAQ,MAAM,OAAO,uBAAU,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,CAAA;AAAA,EAC1D,MAAA,EAAQ,MAAM,OAAO,qBAAU,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,CAAA;AAAA,EAC1D,UAAA,EAAY,MAAM,OAAO,2BAAc,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,eAAe,CAAA;AAAA,EACtE,QAAA,EAAU,MAAM,OAAO,yBAAY,EAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa;AAClE","file":"chunk-B5364UWR.cjs","sourcesContent":["/**\n * @mieweb/ui Brand System\n *\n * Export all brand-related types, utilities, and configurations.\n */\n\n// Types and utilities\nexport type {\n BrandConfig,\n BrandColors,\n BrandTypography,\n BrandBorderRadius,\n BrandBoxShadow,\n ColorScale,\n SemanticColors,\n} from './types';\n\nexport {\n generateBrandCSS,\n generateTailwindTheme,\n createBrandPreset,\n} from './types';\n\n// Brand configurations\nexport { bluehiveBrand } from './bluehive';\nexport { defaultBrand } from './default';\nexport { enterpriseHealthBrand } from './enterprise-health';\nexport { miewebBrand } from './mieweb';\nexport { ozwellBrand } from './ozwell';\nexport { wagglelineBrand } from './waggleline';\nexport { webchartBrand } from './webchart';\n\n// All brands for iteration\nexport const brands = {\n bluehive: () => import('./bluehive').then((m) => m.bluehiveBrand),\n default: () => import('./default').then((m) => m.defaultBrand),\n 'enterprise-health': () =>\n import('./enterprise-health').then((m) => m.enterpriseHealthBrand),\n mieweb: () => import('./mieweb').then((m) => m.miewebBrand),\n ozwell: () => import('./ozwell').then((m) => m.ozwellBrand),\n waggleline: () => import('./waggleline').then((m) => m.wagglelineBrand),\n webchart: () => import('./webchart').then((m) => m.webchartBrand),\n} as const;\n"]}
@@ -0,0 +1,120 @@
1
+ 'use strict';
2
+
3
+ var lucideReact = require('lucide-react');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "AlertCircle", {
8
+ enumerable: true,
9
+ get: function () { return lucideReact.AlertCircle; }
10
+ });
11
+ Object.defineProperty(exports, "ArrowLeft", {
12
+ enumerable: true,
13
+ get: function () { return lucideReact.ArrowLeft; }
14
+ });
15
+ Object.defineProperty(exports, "Building", {
16
+ enumerable: true,
17
+ get: function () { return lucideReact.Building; }
18
+ });
19
+ Object.defineProperty(exports, "Calendar", {
20
+ enumerable: true,
21
+ get: function () { return lucideReact.Calendar; }
22
+ });
23
+ Object.defineProperty(exports, "Camera", {
24
+ enumerable: true,
25
+ get: function () { return lucideReact.Camera; }
26
+ });
27
+ Object.defineProperty(exports, "Check", {
28
+ enumerable: true,
29
+ get: function () { return lucideReact.Check; }
30
+ });
31
+ Object.defineProperty(exports, "CheckCircle", {
32
+ enumerable: true,
33
+ get: function () { return lucideReact.CheckCircle; }
34
+ });
35
+ Object.defineProperty(exports, "ChevronDown", {
36
+ enumerable: true,
37
+ get: function () { return lucideReact.ChevronDown; }
38
+ });
39
+ Object.defineProperty(exports, "ChevronUp", {
40
+ enumerable: true,
41
+ get: function () { return lucideReact.ChevronUp; }
42
+ });
43
+ Object.defineProperty(exports, "ClipboardList", {
44
+ enumerable: true,
45
+ get: function () { return lucideReact.ClipboardList; }
46
+ });
47
+ Object.defineProperty(exports, "Clock", {
48
+ enumerable: true,
49
+ get: function () { return lucideReact.Clock; }
50
+ });
51
+ Object.defineProperty(exports, "FileText", {
52
+ enumerable: true,
53
+ get: function () { return lucideReact.FileText; }
54
+ });
55
+ Object.defineProperty(exports, "Globe", {
56
+ enumerable: true,
57
+ get: function () { return lucideReact.Globe; }
58
+ });
59
+ Object.defineProperty(exports, "Image", {
60
+ enumerable: true,
61
+ get: function () { return lucideReact.Image; }
62
+ });
63
+ Object.defineProperty(exports, "Mail", {
64
+ enumerable: true,
65
+ get: function () { return lucideReact.Mail; }
66
+ });
67
+ Object.defineProperty(exports, "Menu", {
68
+ enumerable: true,
69
+ get: function () { return lucideReact.Menu; }
70
+ });
71
+ Object.defineProperty(exports, "Paperclip", {
72
+ enumerable: true,
73
+ get: function () { return lucideReact.Paperclip; }
74
+ });
75
+ Object.defineProperty(exports, "Pencil", {
76
+ enumerable: true,
77
+ get: function () { return lucideReact.Pencil; }
78
+ });
79
+ Object.defineProperty(exports, "Phone", {
80
+ enumerable: true,
81
+ get: function () { return lucideReact.Phone; }
82
+ });
83
+ Object.defineProperty(exports, "Plus", {
84
+ enumerable: true,
85
+ get: function () { return lucideReact.Plus; }
86
+ });
87
+ Object.defineProperty(exports, "RefreshCw", {
88
+ enumerable: true,
89
+ get: function () { return lucideReact.RefreshCw; }
90
+ });
91
+ Object.defineProperty(exports, "Scan", {
92
+ enumerable: true,
93
+ get: function () { return lucideReact.Scan; }
94
+ });
95
+ Object.defineProperty(exports, "ScanLine", {
96
+ enumerable: true,
97
+ get: function () { return lucideReact.ScanLine; }
98
+ });
99
+ Object.defineProperty(exports, "Stethoscope", {
100
+ enumerable: true,
101
+ get: function () { return lucideReact.Stethoscope; }
102
+ });
103
+ Object.defineProperty(exports, "Trash2", {
104
+ enumerable: true,
105
+ get: function () { return lucideReact.Trash2; }
106
+ });
107
+ Object.defineProperty(exports, "Upload", {
108
+ enumerable: true,
109
+ get: function () { return lucideReact.Upload; }
110
+ });
111
+ Object.defineProperty(exports, "Users", {
112
+ enumerable: true,
113
+ get: function () { return lucideReact.Users; }
114
+ });
115
+ Object.defineProperty(exports, "X", {
116
+ enumerable: true,
117
+ get: function () { return lucideReact.X; }
118
+ });
119
+ //# sourceMappingURL=chunk-D3BUYVLN.cjs.map
120
+ //# sourceMappingURL=chunk-D3BUYVLN.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-D3BUYVLN.cjs","sourcesContent":[]}
@@ -33,6 +33,58 @@ var miewebUISafelist = [
33
33
  "focus:ring-destructive",
34
34
  "border-primary",
35
35
  "border-destructive",
36
+ "border-success",
37
+ "focus:ring-success/20",
38
+ "focus:ring-destructive/20",
39
+ // Opacity-modifier variants for semantic colors used by components
40
+ "bg-background/60",
41
+ "bg-background/80",
42
+ "bg-background/90",
43
+ "bg-background/95",
44
+ "bg-card/80",
45
+ "bg-destructive/5",
46
+ "bg-destructive/10",
47
+ "bg-foreground/50",
48
+ "bg-info/10",
49
+ "bg-muted/10",
50
+ "bg-muted/30",
51
+ "bg-muted/50",
52
+ "bg-primary/5",
53
+ "bg-primary/10",
54
+ "bg-success/10",
55
+ "bg-warning/10",
56
+ "border-border/80",
57
+ "border-destructive/20",
58
+ "border-destructive/30",
59
+ "border-destructive/50",
60
+ "border-info/30",
61
+ "border-muted-foreground/25",
62
+ "border-muted-foreground/40",
63
+ "border-primary/30",
64
+ "border-primary/50",
65
+ "border-success/30",
66
+ "border-success/50",
67
+ "border-warning/30",
68
+ "hover:bg-destructive/10",
69
+ "hover:bg-muted/10",
70
+ "hover:bg-muted/20",
71
+ "hover:bg-muted/50",
72
+ "hover:bg-muted/80",
73
+ "hover:bg-primary/5",
74
+ "hover:bg-primary/10",
75
+ "hover:bg-primary/20",
76
+ "hover:bg-primary/90",
77
+ "hover:border-border/80",
78
+ "hover:border-muted-foreground/50",
79
+ "hover:text-destructive/80",
80
+ "hover:text-primary/80",
81
+ "text-muted-foreground/30",
82
+ "text-muted-foreground/40",
83
+ "text-muted-foreground/50",
84
+ "text-muted-foreground/60",
85
+ "text-muted-foreground/70",
86
+ "text-primary/80",
87
+ "text-primary-foreground/90",
36
88
  "ring-primary",
37
89
  "ring-2",
38
90
  "ring-offset-2",
@@ -195,5 +247,5 @@ var tailwind_preset_default = miewebUIPreset;
195
247
  exports.miewebUIPreset = miewebUIPreset;
196
248
  exports.miewebUISafelist = miewebUISafelist;
197
249
  exports.tailwind_preset_default = tailwind_preset_default;
198
- //# sourceMappingURL=chunk-SJ3BF4BO.cjs.map
199
- //# sourceMappingURL=chunk-SJ3BF4BO.cjs.map
250
+ //# sourceMappingURL=chunk-ERIGUDFS.cjs.map
251
+ //# sourceMappingURL=chunk-ERIGUDFS.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tailwind-preset.ts"],"names":[],"mappings":"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","file":"chunk-ERIGUDFS.cjs","sourcesContent":["/**\n * @mieweb/ui Tailwind CSS Preset\n *\n * This preset provides the default theme configuration for @mieweb/ui components.\n * Consumers can extend or override these values in their own tailwind.config.js\n *\n * Usage:\n * ```js\n * // tailwind.config.js\n * module.exports = {\n * presets: [require('@mieweb/ui/tailwind-preset')],\n * theme: {\n * extend: {\n * colors: {\n * primary: {\n * 500: '#your-brand-color',\n * },\n * },\n * },\n * },\n * };\n * ```\n */\n\n/**\n * Safelist of classes used by @mieweb/ui components.\n * These must be safelisted because Tailwind may not detect them when\n * components are imported from node_modules (especially with Tailwind CSS 4).\n */\nexport const miewebUISafelist = [\n // Semantic colors\n 'border-border',\n 'border-input',\n 'ring-ring',\n 'bg-background',\n 'bg-card',\n 'bg-muted',\n 'bg-primary',\n 'bg-success',\n 'bg-warning',\n 'bg-destructive',\n 'bg-info',\n 'text-foreground',\n 'text-card-foreground',\n 'text-muted-foreground',\n 'text-primary',\n 'text-primary-foreground',\n 'text-success',\n 'text-success-foreground',\n 'text-warning',\n 'text-warning-foreground',\n 'text-destructive',\n 'text-destructive-foreground',\n 'text-info',\n 'text-info-foreground',\n 'focus:ring-ring',\n 'focus:ring-primary',\n 'focus:border-transparent',\n 'focus:ring-destructive',\n 'border-primary',\n 'border-destructive',\n 'border-success',\n 'focus:ring-success/20',\n 'focus:ring-destructive/20',\n // Opacity-modifier variants for semantic colors used by components\n 'bg-background/60',\n 'bg-background/80',\n 'bg-background/90',\n 'bg-background/95',\n 'bg-card/80',\n 'bg-destructive/5',\n 'bg-destructive/10',\n 'bg-foreground/50',\n 'bg-info/10',\n 'bg-muted/10',\n 'bg-muted/30',\n 'bg-muted/50',\n 'bg-primary/5',\n 'bg-primary/10',\n 'bg-success/10',\n 'bg-warning/10',\n 'border-border/80',\n 'border-destructive/20',\n 'border-destructive/30',\n 'border-destructive/50',\n 'border-info/30',\n 'border-muted-foreground/25',\n 'border-muted-foreground/40',\n 'border-primary/30',\n 'border-primary/50',\n 'border-success/30',\n 'border-success/50',\n 'border-warning/30',\n 'hover:bg-destructive/10',\n 'hover:bg-muted/10',\n 'hover:bg-muted/20',\n 'hover:bg-muted/50',\n 'hover:bg-muted/80',\n 'hover:bg-primary/5',\n 'hover:bg-primary/10',\n 'hover:bg-primary/20',\n 'hover:bg-primary/90',\n 'hover:border-border/80',\n 'hover:border-muted-foreground/50',\n 'hover:text-destructive/80',\n 'hover:text-primary/80',\n 'text-muted-foreground/30',\n 'text-muted-foreground/40',\n 'text-muted-foreground/50',\n 'text-muted-foreground/60',\n 'text-muted-foreground/70',\n 'text-primary/80',\n 'text-primary-foreground/90',\n 'ring-primary',\n 'ring-2',\n 'ring-offset-2',\n // Grid classes for QuickAction and responsive layouts\n 'grid-cols-1',\n 'grid-cols-2',\n 'grid-cols-3',\n 'grid-cols-4',\n 'grid-cols-6',\n 'sm:grid-cols-1',\n 'sm:grid-cols-2',\n 'sm:grid-cols-3',\n 'sm:grid-cols-4',\n 'sm:grid-cols-6',\n 'md:grid-cols-2',\n 'md:grid-cols-3',\n 'md:grid-cols-4',\n 'lg:grid-cols-2',\n 'lg:grid-cols-3',\n 'lg:grid-cols-4',\n // Switch component\n 'bg-neutral-200',\n 'dark:bg-neutral-700',\n 'bg-primary-500',\n 'h-5',\n 'w-9',\n 'h-6',\n 'w-11',\n 'h-7',\n 'w-14',\n 'h-4',\n 'w-4',\n 'w-5',\n 'w-6',\n 'translate-x-0.5',\n 'translate-x-4',\n 'translate-x-5',\n 'translate-x-7',\n // SchedulePicker / overflow handling\n 'overflow-x-auto',\n 'overflow-hidden',\n // Select component\n 'truncate',\n];\n\nexport interface MiewebUIPreset {\n darkMode: ['class', '[data-theme=\"dark\"]'];\n safelist: string[];\n theme: {\n extend: Record<string, unknown>;\n };\n}\n\nexport const miewebUIPreset: MiewebUIPreset = {\n darkMode: ['class', '[data-theme=\"dark\"]'],\n safelist: miewebUISafelist,\n theme: {\n extend: {\n colors: {\n // Primary color scale - easily overridable by consumers\n primary: {\n DEFAULT: 'var(--mieweb-primary, var(--mieweb-primary-500, #27aae1))',\n 50: 'var(--mieweb-primary-50, #f0f9ff)',\n 100: 'var(--mieweb-primary-100, #e0f4fe)',\n 200: 'var(--mieweb-primary-200, #b9eafd)',\n 300: 'var(--mieweb-primary-300, #7cdbfc)',\n 400: 'var(--mieweb-primary-400, #36c9f8)',\n 500: 'var(--mieweb-primary-500, #27aae1)',\n 600: 'var(--mieweb-primary-600, #0c90c9)',\n 700: 'var(--mieweb-primary-700, #0b73a3)',\n 800: 'var(--mieweb-primary-800, #0f6086)',\n 900: 'var(--mieweb-primary-900, #124f6f)',\n 950: 'var(--mieweb-primary-950, #0c334a)',\n foreground: 'var(--mieweb-primary-foreground, hsl(210 40% 98%))',\n },\n // Semantic colors using CSS variables for theming\n border: 'var(--mieweb-border, hsl(214.3 31.8% 91.4%))',\n input: 'var(--mieweb-input, hsl(214.3 31.8% 91.4%))',\n ring: 'var(--mieweb-ring, hsl(221.2 83.2% 53.3%))',\n background: 'var(--mieweb-background, hsl(0 0% 100%))',\n foreground: 'var(--mieweb-foreground, hsl(222.2 84% 4.9%))',\n // Component-specific semantic colors\n card: {\n DEFAULT: 'var(--mieweb-card, hsl(0 0% 100%))',\n foreground: 'var(--mieweb-card-foreground, hsl(222.2 84% 4.9%))',\n },\n muted: {\n DEFAULT: 'var(--mieweb-muted, hsl(210 40% 96.1%))',\n foreground: 'var(--mieweb-muted-foreground, hsl(215.4 16.3% 46.9%))',\n },\n destructive: {\n DEFAULT: 'var(--mieweb-destructive, hsl(0 84.2% 60.2%))',\n foreground: 'var(--mieweb-destructive-foreground, hsl(210 40% 98%))',\n },\n success: {\n DEFAULT: 'var(--mieweb-success, hsl(142.1 76.2% 36.3%))',\n foreground: 'var(--mieweb-success-foreground, hsl(355.7 100% 97.3%))',\n },\n warning: {\n DEFAULT: 'var(--mieweb-warning, hsl(45.4 93.4% 47.5%))',\n foreground: 'var(--mieweb-warning-foreground, hsl(26 83.3% 14.1%))',\n },\n info: {\n DEFAULT: 'var(--mieweb-info, hsl(204 94% 94%))',\n foreground: 'var(--mieweb-info-foreground, hsl(213 31% 91%))',\n },\n },\n fontFamily: {\n sans: [\n 'var(--mieweb-font-sans, ui-sans-serif)',\n 'system-ui',\n 'sans-serif',\n ],\n },\n borderRadius: {\n '2xl': 'var(--mieweb-radius-2xl, 1rem)',\n lg: 'var(--mieweb-radius-lg, 0.75rem)',\n md: 'var(--mieweb-radius-md, 0.5rem)',\n sm: 'var(--mieweb-radius-sm, 0.25rem)',\n xl: 'var(--mieweb-radius-xl, 1rem)',\n },\n boxShadow: {\n card: 'var(--mieweb-shadow-card, 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1))',\n },\n keyframes: {\n 'fade-in': {\n '0%': { opacity: '0' },\n '100%': { opacity: '1' },\n },\n 'fade-out': {\n '0%': { opacity: '1' },\n '100%': { opacity: '0' },\n },\n 'slide-in-from-top': {\n '0%': { transform: 'translateY(-0.5rem)', opacity: '0' },\n '100%': { transform: 'translateY(0)', opacity: '1' },\n },\n 'slide-in-from-bottom': {\n '0%': { transform: 'translateY(0.5rem)', opacity: '0' },\n '100%': { transform: 'translateY(0)', opacity: '1' },\n },\n 'slide-in-right': {\n '0%': { transform: 'translateX(100%)', opacity: '0' },\n '100%': { transform: 'translateX(0)', opacity: '1' },\n },\n 'slide-in-left': {\n '0%': { transform: 'translateX(-100%)', opacity: '0' },\n '100%': { transform: 'translateX(0)', opacity: '1' },\n },\n 'scale-in': {\n '0%': { transform: 'scale(0.95)', opacity: '0' },\n '100%': { transform: 'scale(1)', opacity: '1' },\n },\n },\n animation: {\n 'fade-in': 'fade-in 150ms ease-out',\n 'fade-out': 'fade-out 150ms ease-in',\n 'slide-in-from-top': 'slide-in-from-top 150ms ease-out',\n 'slide-in-from-bottom': 'slide-in-from-bottom 150ms ease-out',\n 'slide-in-right': 'slide-in-right 300ms ease-out',\n 'slide-in-left': 'slide-in-left 300ms ease-out',\n 'scale-in': 'scale-in 150ms ease-out',\n },\n },\n },\n};\n\nexport default miewebUIPreset;\n"]}
@@ -206,6 +206,7 @@ function Waveform({
206
206
  progressColor,
207
207
  height = 64,
208
208
  showHoverCursor = false,
209
+ waveformRef,
209
210
  onHoverTimeChange,
210
211
  cursorColor = "var(--color-red-500, rgb(239, 68, 68))"
211
212
  }) {
@@ -214,6 +215,43 @@ function Waveform({
214
215
  const [isLoaded, setIsLoaded] = React.useState(false);
215
216
  const [isHovering, setIsHovering] = React.useState(false);
216
217
  const [hoverPosition, setHoverPosition] = React.useState(0);
218
+ React.useEffect(() => {
219
+ if (waveformRef) {
220
+ waveformRef.current = {
221
+ seekTo: (time) => {
222
+ if (wavesurferRef.current && isLoaded) {
223
+ const duration = wavesurferRef.current.getDuration();
224
+ if (duration > 0) {
225
+ const clampedTime = Math.min(Math.max(time, 0), duration);
226
+ const progress = clampedTime / duration;
227
+ wavesurferRef.current.seekTo(progress);
228
+ }
229
+ }
230
+ },
231
+ play: () => {
232
+ if (wavesurferRef.current && isLoaded) {
233
+ wavesurferRef.current.play();
234
+ }
235
+ },
236
+ pause: () => {
237
+ if (wavesurferRef.current && isLoaded) {
238
+ wavesurferRef.current.pause();
239
+ }
240
+ },
241
+ getCurrentTime: () => {
242
+ return wavesurferRef.current?.getCurrentTime?.() ?? 0;
243
+ },
244
+ getDuration: () => {
245
+ return wavesurferRef.current?.getDuration?.() ?? 0;
246
+ }
247
+ };
248
+ }
249
+ return () => {
250
+ if (waveformRef) {
251
+ waveformRef.current = null;
252
+ }
253
+ };
254
+ }, [waveformRef, isLoaded]);
217
255
  React.useEffect(() => {
218
256
  if (!containerRef.current) return;
219
257
  const initWaveSurfer = async () => {
@@ -257,6 +295,7 @@ function Waveform({
257
295
  console.error("Failed to load WaveSurfer:", error);
258
296
  }
259
297
  };
298
+ setIsLoaded(false);
260
299
  initWaveSurfer();
261
300
  return () => {
262
301
  if (wavesurferRef.current) {
@@ -351,7 +390,7 @@ function Waveform({
351
390
  }
352
391
  );
353
392
  }
354
- function AudioPlayer({
393
+ var AudioPlayer = React.forwardRef(function AudioPlayer2({
355
394
  src,
356
395
  title,
357
396
  variant = "compact",
@@ -376,14 +415,16 @@ function AudioPlayer({
376
415
  preload = false,
377
416
  /** Fallback duration in seconds to display before audio is loaded */
378
417
  fallbackDuration
379
- }) {
418
+ }, ref) {
380
419
  const [state, setState] = React.useState("idle");
381
420
  const [currentTime, setCurrentTime] = React.useState(0);
382
421
  const [duration, setDuration] = React.useState(0);
383
422
  const [playbackRate, setPlaybackRate] = React.useState(1);
384
423
  const [audioInitialized, setAudioInitialized] = React.useState(false);
385
424
  const [hoverTime, setHoverTime] = React.useState(null);
425
+ const containerRef = React.useRef(null);
386
426
  const audioRef = React.useRef(null);
427
+ const waveformMethodsRef = React.useRef(null);
387
428
  const isPlaying = state === "playing";
388
429
  const isLoading = state === "loading";
389
430
  const updateState = React.useCallback(
@@ -428,6 +469,70 @@ function AudioPlayer({
428
469
  onEnded,
429
470
  onError
430
471
  ]);
472
+ React.useImperativeHandle(
473
+ ref,
474
+ () => ({
475
+ get container() {
476
+ return containerRef.current;
477
+ },
478
+ seekTo: (time) => {
479
+ if (variant === "waveform") {
480
+ waveformMethodsRef.current?.seekTo(time);
481
+ } else {
482
+ if (!audioRef.current) {
483
+ initAudio();
484
+ }
485
+ if (audioRef.current) {
486
+ audioRef.current.currentTime = time;
487
+ }
488
+ }
489
+ },
490
+ play: () => {
491
+ if (variant === "waveform") {
492
+ if (waveformMethodsRef.current) {
493
+ waveformMethodsRef.current.play();
494
+ updateState("playing");
495
+ }
496
+ } else {
497
+ if (!audioRef.current) {
498
+ initAudio();
499
+ }
500
+ if (audioRef.current) {
501
+ audioRef.current.play().catch((error) => {
502
+ updateState("error");
503
+ onError?.(error);
504
+ });
505
+ updateState("playing");
506
+ }
507
+ }
508
+ },
509
+ pause: () => {
510
+ if (variant === "waveform") {
511
+ if (waveformMethodsRef.current) {
512
+ waveformMethodsRef.current.pause();
513
+ updateState("paused");
514
+ }
515
+ } else if (audioRef.current) {
516
+ audioRef.current.pause();
517
+ updateState("paused");
518
+ }
519
+ },
520
+ getCurrentTime: () => {
521
+ if (variant === "waveform") {
522
+ return waveformMethodsRef.current?.getCurrentTime() ?? 0;
523
+ }
524
+ return audioRef.current?.currentTime ?? 0;
525
+ },
526
+ getDuration: () => {
527
+ if (variant === "waveform") {
528
+ return waveformMethodsRef.current?.getDuration() ?? 0;
529
+ }
530
+ const rawDuration = audioRef.current?.duration;
531
+ return Number.isFinite(rawDuration) ? rawDuration : 0;
532
+ }
533
+ }),
534
+ [variant, initAudio, updateState, onError]
535
+ );
431
536
  React.useEffect(() => {
432
537
  if (preload && !audioInitialized && variant !== "waveform") {
433
538
  initAudio();
@@ -579,59 +684,81 @@ function AudioPlayer({
579
684
  };
580
685
  if (variant === "inline") {
581
686
  const displayDuration = duration > 0 ? duration : fallbackDuration ?? 0;
582
- return /* @__PURE__ */ jsxs("div", { className: cn(audioPlayerVariants({ variant, size }), className), children: [
583
- renderPlayButton(),
584
- title && /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-neutral-700 dark:text-neutral-300", children: title }),
585
- showDuration && displayDuration > 0 && /* @__PURE__ */ jsx("span", { className: "font-mono text-xs text-neutral-500 tabular-nums dark:text-neutral-400", children: isPlaying ? formatTime(currentTime) : formatTime(displayDuration) })
586
- ] });
687
+ return /* @__PURE__ */ jsxs(
688
+ "div",
689
+ {
690
+ ref: containerRef,
691
+ className: cn(audioPlayerVariants({ variant, size }), className),
692
+ children: [
693
+ renderPlayButton(),
694
+ title && /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-neutral-700 dark:text-neutral-300", children: title }),
695
+ showDuration && displayDuration > 0 && /* @__PURE__ */ jsx("span", { className: "font-mono text-xs text-neutral-500 tabular-nums dark:text-neutral-400", children: isPlaying ? formatTime(currentTime) : formatTime(displayDuration) })
696
+ ]
697
+ }
698
+ );
587
699
  }
588
700
  if (variant === "compact") {
589
- return /* @__PURE__ */ jsxs("div", { className: cn(audioPlayerVariants({ variant, size }), className), children: [
590
- renderPlayButton(),
591
- /* @__PURE__ */ jsx(
592
- ProgressBar,
593
- {
594
- currentTime,
595
- duration,
596
- onSeek: handleSeek,
597
- disabled
598
- }
599
- ),
600
- renderTime(),
601
- renderPlaybackRateControl()
602
- ] });
603
- }
604
- return /* @__PURE__ */ jsxs("div", { className: cn(audioPlayerVariants({ variant, size }), className), children: [
605
- title && /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-neutral-700 dark:text-neutral-300", children: title }),
606
- /* @__PURE__ */ jsx(
607
- Waveform,
701
+ return /* @__PURE__ */ jsxs(
702
+ "div",
608
703
  {
609
- src,
610
- isPlaying,
611
- playbackRate,
612
- onReady: handleWaveformReady,
613
- onTimeUpdate: handleWaveformTimeUpdate,
614
- onFinish: handleWaveformFinish,
615
- onSeek: handleWaveformSeek,
616
- waveColor,
617
- progressColor,
618
- height: waveformHeight,
619
- showHoverCursor: showWaveformHoverCursor,
620
- onHoverTimeChange: handleHoverTimeChange,
621
- cursorColor: waveformCursorColor
704
+ ref: containerRef,
705
+ className: cn(audioPlayerVariants({ variant, size }), className),
706
+ children: [
707
+ renderPlayButton(),
708
+ /* @__PURE__ */ jsx(
709
+ ProgressBar,
710
+ {
711
+ currentTime,
712
+ duration,
713
+ onSeek: handleSeek,
714
+ disabled
715
+ }
716
+ ),
717
+ renderTime(),
718
+ renderPlaybackRateControl()
719
+ ]
622
720
  }
623
- ),
624
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
625
- renderPlayButton(),
626
- /* @__PURE__ */ jsxs("div", { className: "flex flex-1 items-center justify-between", children: [
627
- renderTime(true),
628
- renderPlaybackRateControl()
629
- ] })
630
- ] })
631
- ] });
632
- }
721
+ );
722
+ }
723
+ return /* @__PURE__ */ jsxs(
724
+ "div",
725
+ {
726
+ ref: containerRef,
727
+ className: cn(audioPlayerVariants({ variant, size }), className),
728
+ children: [
729
+ title && /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-neutral-700 dark:text-neutral-300", children: title }),
730
+ /* @__PURE__ */ jsx(
731
+ Waveform,
732
+ {
733
+ src,
734
+ isPlaying,
735
+ playbackRate,
736
+ onReady: handleWaveformReady,
737
+ onTimeUpdate: handleWaveformTimeUpdate,
738
+ onFinish: handleWaveformFinish,
739
+ onSeek: handleWaveformSeek,
740
+ waveColor,
741
+ progressColor,
742
+ height: waveformHeight,
743
+ showHoverCursor: showWaveformHoverCursor,
744
+ onHoverTimeChange: handleHoverTimeChange,
745
+ cursorColor: waveformCursorColor,
746
+ waveformRef: waveformMethodsRef
747
+ }
748
+ ),
749
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
750
+ renderPlayButton(),
751
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-1 items-center justify-between", children: [
752
+ renderTime(true),
753
+ renderPlaybackRateControl()
754
+ ] })
755
+ ] })
756
+ ]
757
+ }
758
+ );
759
+ });
633
760
  AudioPlayer.displayName = "AudioPlayer";
634
761
 
635
762
  export { AudioPlayer, ProgressBar, audioPlayerVariants, formatTime, playButtonVariants };
636
- //# sourceMappingURL=chunk-UBRDKNLQ.js.map
637
- //# sourceMappingURL=chunk-UBRDKNLQ.js.map
763
+ //# sourceMappingURL=chunk-GHRQ3ZJH.js.map
764
+ //# sourceMappingURL=chunk-GHRQ3ZJH.js.map