@mieweb/ui 0.1.1 → 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 (75) 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 +17 -12
  8. package/dist/brands/index.d.cts +2 -0
  9. package/dist/brands/index.d.ts +2 -0
  10. package/dist/brands/index.js +4 -3
  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-4T2ZNPTC.js +220 -0
  21. package/dist/chunk-4T2ZNPTC.js.map +1 -0
  22. package/dist/{chunk-NL3CZNBH.cjs → chunk-5UUL5EEO.cjs} +16 -5
  23. package/dist/chunk-5UUL5EEO.cjs.map +1 -0
  24. package/dist/{chunk-O7WRE2WX.js → chunk-5YRTFJ7K.js} +54 -2
  25. package/dist/chunk-5YRTFJ7K.js.map +1 -0
  26. package/dist/{chunk-6DP6RKUA.cjs → chunk-B5364UWR.cjs} +3 -2
  27. package/dist/chunk-B5364UWR.cjs.map +1 -0
  28. package/dist/chunk-BV75DAKO.cjs +245 -0
  29. package/dist/chunk-BV75DAKO.cjs.map +1 -0
  30. package/dist/chunk-D3BUYVLN.cjs +120 -0
  31. package/dist/chunk-D3BUYVLN.cjs.map +1 -0
  32. package/dist/{chunk-SJ3BF4BO.cjs → chunk-ERIGUDFS.cjs} +54 -2
  33. package/dist/chunk-ERIGUDFS.cjs.map +1 -0
  34. package/dist/{chunk-UBRDKNLQ.js → chunk-GHRQ3ZJH.js} +178 -51
  35. package/dist/chunk-GHRQ3ZJH.js.map +1 -0
  36. package/dist/{chunk-AKTUXJPI.cjs → chunk-INFSKLXE.cjs} +178 -51
  37. package/dist/chunk-INFSKLXE.cjs.map +1 -0
  38. package/dist/chunk-K5T2PT4M.js +3 -0
  39. package/dist/chunk-K5T2PT4M.js.map +1 -0
  40. package/dist/chunk-KEIA2G6O.cjs +84 -0
  41. package/dist/chunk-KEIA2G6O.cjs.map +1 -0
  42. package/dist/{chunk-MFB4FS7D.js → chunk-QSMMFATL.js} +16 -5
  43. package/dist/chunk-QSMMFATL.js.map +1 -0
  44. package/dist/{chunk-FIUNOH6W.js → chunk-RYQ5NEKH.js} +3 -2
  45. package/dist/chunk-RYQ5NEKH.js.map +1 -0
  46. package/dist/components/AudioPlayer/index.cjs +6 -6
  47. package/dist/components/AudioPlayer/index.d.cts +24 -10
  48. package/dist/components/AudioPlayer/index.d.ts +24 -10
  49. package/dist/components/AudioPlayer/index.js +1 -1
  50. package/dist/components/Select/index.cjs +3 -3
  51. package/dist/components/Select/index.js +1 -1
  52. package/dist/components/Slider/index.cjs +25 -0
  53. package/dist/components/Slider/index.cjs.map +1 -0
  54. package/dist/components/Slider/index.d.cts +82 -0
  55. package/dist/components/Slider/index.d.ts +82 -0
  56. package/dist/components/Slider/index.js +4 -0
  57. package/dist/components/Slider/index.js.map +1 -0
  58. package/dist/index.cjs +2782 -2350
  59. package/dist/index.cjs.map +1 -1
  60. package/dist/index.d.cts +213 -238
  61. package/dist/index.d.ts +213 -238
  62. package/dist/index.js +2577 -2133
  63. package/dist/index.js.map +1 -1
  64. package/dist/styles.css +1 -1
  65. package/dist/tailwind-preset.cjs +4 -4
  66. package/dist/tailwind-preset.js +1 -1
  67. package/package.json +12 -1
  68. package/dist/chunk-6DP6RKUA.cjs.map +0 -1
  69. package/dist/chunk-AKTUXJPI.cjs.map +0 -1
  70. package/dist/chunk-FIUNOH6W.js.map +0 -1
  71. package/dist/chunk-MFB4FS7D.js.map +0 -1
  72. package/dist/chunk-NL3CZNBH.cjs.map +0 -1
  73. package/dist/chunk-O7WRE2WX.js.map +0 -1
  74. package/dist/chunk-SJ3BF4BO.cjs.map +0 -1
  75. package/dist/chunk-UBRDKNLQ.js.map +0 -1
@@ -0,0 +1,245 @@
1
+ 'use strict';
2
+
3
+ var chunkOR5DRJCW_cjs = require('./chunk-OR5DRJCW.cjs');
4
+ var React = require('react');
5
+ var classVarianceAuthority = require('class-variance-authority');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
27
+
28
+ var sliderTrackVariants = classVarianceAuthority.cva(
29
+ [
30
+ "relative w-full overflow-hidden rounded-full",
31
+ "bg-neutral-200 dark:bg-neutral-700",
32
+ "cursor-pointer",
33
+ "group-data-[disabled=true]:cursor-not-allowed group-data-[disabled=true]:opacity-50"
34
+ ],
35
+ {
36
+ variants: {
37
+ size: {
38
+ sm: "h-1",
39
+ md: "h-2",
40
+ lg: "h-3"
41
+ }
42
+ },
43
+ defaultVariants: {
44
+ size: "md"
45
+ }
46
+ }
47
+ );
48
+ var sliderRangeVariants = classVarianceAuthority.cva(
49
+ ["absolute h-full rounded-full transition-all duration-75 ease-out"],
50
+ {
51
+ variants: {
52
+ variant: {
53
+ default: "bg-primary-500",
54
+ success: "bg-green-500",
55
+ warning: "bg-yellow-500",
56
+ danger: "bg-red-500",
57
+ neutral: "bg-neutral-500"
58
+ }
59
+ },
60
+ defaultVariants: {
61
+ variant: "default"
62
+ }
63
+ }
64
+ );
65
+ var sliderThumbVariants = classVarianceAuthority.cva(
66
+ [
67
+ "absolute top-1/2 -translate-y-1/2 -translate-x-1/2",
68
+ "rounded-full border-2 bg-white",
69
+ "shadow-md transition-shadow duration-150",
70
+ "peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2",
71
+ "peer-hover:shadow-lg",
72
+ "peer-active:shadow-xl peer-active:scale-110",
73
+ "group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50"
74
+ ],
75
+ {
76
+ variants: {
77
+ size: {
78
+ sm: "h-3.5 w-3.5",
79
+ md: "h-5 w-5",
80
+ lg: "h-6 w-6"
81
+ },
82
+ variant: {
83
+ default: "border-primary-500",
84
+ success: "border-green-500",
85
+ warning: "border-yellow-500",
86
+ danger: "border-red-500",
87
+ neutral: "border-neutral-500"
88
+ }
89
+ },
90
+ defaultVariants: {
91
+ size: "md",
92
+ variant: "default"
93
+ }
94
+ }
95
+ );
96
+ var Slider = React__namespace.forwardRef(
97
+ ({
98
+ value: controlledValue,
99
+ defaultValue = 0,
100
+ min = 0,
101
+ max = 100,
102
+ step = 1,
103
+ onValueChange,
104
+ onValueCommit,
105
+ disabled = false,
106
+ label,
107
+ showValue = false,
108
+ formatValue,
109
+ description,
110
+ minLabel,
111
+ maxLabel,
112
+ variant,
113
+ size,
114
+ className,
115
+ trackClassName,
116
+ id,
117
+ name,
118
+ "aria-label": ariaLabelProp,
119
+ "aria-labelledby": ariaLabelledByProp
120
+ }, ref) => {
121
+ const hasExplicitLabel = !!label;
122
+ const ariaLabelledBy = ariaLabelledByProp;
123
+ const ariaLabel = ariaLabelProp ?? (!hasExplicitLabel && !ariaLabelledByProp ? "Slider" : void 0);
124
+ const [uncontrolledValue, setUncontrolledValue] = React__namespace.useState(defaultValue);
125
+ const isControlled = controlledValue !== void 0;
126
+ const currentValue = isControlled ? controlledValue : uncontrolledValue;
127
+ const clampedValue = Math.min(Math.max(currentValue, min), max);
128
+ const percentage = max !== min ? (clampedValue - min) / (max - min) * 100 : 0;
129
+ const generatedId = React__namespace.useId();
130
+ const inputId = id ?? generatedId;
131
+ const handleChange = (e) => {
132
+ const newValue = parseFloat(e.target.value);
133
+ if (!isControlled) {
134
+ setUncontrolledValue(newValue);
135
+ }
136
+ onValueChange?.(newValue);
137
+ };
138
+ const handleCommit = () => {
139
+ onValueCommit?.(clampedValue);
140
+ };
141
+ const displayValue = formatValue ? formatValue(clampedValue) : String(clampedValue);
142
+ return /* @__PURE__ */ jsxRuntime.jsxs(
143
+ "div",
144
+ {
145
+ className: chunkOR5DRJCW_cjs.cn("w-full", className),
146
+ "data-disabled": disabled || void 0,
147
+ children: [
148
+ (label || showValue) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1.5 flex items-baseline justify-between", children: [
149
+ label && /* @__PURE__ */ jsxRuntime.jsxs(
150
+ "label",
151
+ {
152
+ htmlFor: inputId,
153
+ className: chunkOR5DRJCW_cjs.cn(
154
+ "text-foreground text-sm font-medium",
155
+ disabled && "opacity-50"
156
+ ),
157
+ children: [
158
+ label,
159
+ showValue && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground ml-1", children: displayValue })
160
+ ]
161
+ }
162
+ ),
163
+ !label && showValue && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-sm", children: displayValue })
164
+ ] }),
165
+ description && /* @__PURE__ */ jsxRuntime.jsx(
166
+ "p",
167
+ {
168
+ className: chunkOR5DRJCW_cjs.cn(
169
+ "text-muted-foreground mb-2 text-xs",
170
+ disabled && "opacity-50"
171
+ ),
172
+ children: description
173
+ }
174
+ ),
175
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "group relative", "data-disabled": disabled || void 0, children: [
176
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkOR5DRJCW_cjs.cn(sliderTrackVariants({ size }), trackClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
177
+ "div",
178
+ {
179
+ className: sliderRangeVariants({ variant }),
180
+ style: { width: `${percentage}%` }
181
+ }
182
+ ) }),
183
+ /* @__PURE__ */ jsxRuntime.jsx(
184
+ "input",
185
+ {
186
+ ref,
187
+ type: "range",
188
+ className: chunkOR5DRJCW_cjs.cn(
189
+ "peer absolute inset-0 h-full w-full cursor-pointer opacity-0",
190
+ disabled && "cursor-not-allowed"
191
+ ),
192
+ id: inputId,
193
+ name,
194
+ min,
195
+ max,
196
+ step,
197
+ value: clampedValue,
198
+ onChange: handleChange,
199
+ onMouseUp: handleCommit,
200
+ onTouchEnd: handleCommit,
201
+ onKeyUp: handleCommit,
202
+ onBlur: handleCommit,
203
+ disabled,
204
+ "aria-label": ariaLabel,
205
+ "aria-labelledby": ariaLabelledBy,
206
+ "aria-valuemin": min,
207
+ "aria-valuemax": max,
208
+ "aria-valuenow": clampedValue
209
+ }
210
+ ),
211
+ /* @__PURE__ */ jsxRuntime.jsx(
212
+ "div",
213
+ {
214
+ className: sliderThumbVariants({ size, variant }),
215
+ style: { left: `${percentage}%` },
216
+ "aria-hidden": "true"
217
+ }
218
+ )
219
+ ] }),
220
+ (minLabel || maxLabel) && /* @__PURE__ */ jsxRuntime.jsxs(
221
+ "div",
222
+ {
223
+ className: chunkOR5DRJCW_cjs.cn(
224
+ "text-muted-foreground mt-1 flex justify-between text-xs",
225
+ disabled && "opacity-50"
226
+ ),
227
+ children: [
228
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: minLabel }),
229
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: maxLabel })
230
+ ]
231
+ }
232
+ )
233
+ ]
234
+ }
235
+ );
236
+ }
237
+ );
238
+ Slider.displayName = "Slider";
239
+
240
+ exports.Slider = Slider;
241
+ exports.sliderRangeVariants = sliderRangeVariants;
242
+ exports.sliderThumbVariants = sliderThumbVariants;
243
+ exports.sliderTrackVariants = sliderTrackVariants;
244
+ //# sourceMappingURL=chunk-BV75DAKO.cjs.map
245
+ //# sourceMappingURL=chunk-BV75DAKO.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Slider/Slider.tsx"],"names":["cva","React","jsxs","cn","jsx"],"mappings":"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","file":"chunk-BV75DAKO.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Slider Variants\n// ============================================================================\n\nconst sliderTrackVariants = cva(\n [\n 'relative w-full overflow-hidden rounded-full',\n 'bg-neutral-200 dark:bg-neutral-700',\n 'cursor-pointer',\n 'group-data-[disabled=true]:cursor-not-allowed group-data-[disabled=true]:opacity-50',\n ],\n {\n variants: {\n size: {\n sm: 'h-1',\n md: 'h-2',\n lg: 'h-3',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nconst sliderRangeVariants = cva(\n ['absolute h-full rounded-full transition-all duration-75 ease-out'],\n {\n variants: {\n variant: {\n default: 'bg-primary-500',\n success: 'bg-green-500',\n warning: 'bg-yellow-500',\n danger: 'bg-red-500',\n neutral: 'bg-neutral-500',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nconst sliderThumbVariants = cva(\n [\n 'absolute top-1/2 -translate-y-1/2 -translate-x-1/2',\n 'rounded-full border-2 bg-white',\n 'shadow-md transition-shadow duration-150',\n 'peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2',\n 'peer-hover:shadow-lg',\n 'peer-active:shadow-xl peer-active:scale-110',\n 'group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50',\n ],\n {\n variants: {\n size: {\n sm: 'h-3.5 w-3.5',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n },\n variant: {\n default: 'border-primary-500',\n success: 'border-green-500',\n warning: 'border-yellow-500',\n danger: 'border-red-500',\n neutral: 'border-neutral-500',\n },\n },\n defaultVariants: {\n size: 'md',\n variant: 'default',\n },\n }\n);\n\n// ============================================================================\n// Slider Component\n// ============================================================================\n\nexport interface SliderProps\n extends\n VariantProps<typeof sliderTrackVariants>,\n VariantProps<typeof sliderRangeVariants> {\n /** Current value (controlled) */\n value?: number;\n /** Default value (uncontrolled) */\n defaultValue?: number;\n /** Minimum value */\n min?: number;\n /** Maximum value */\n max?: number;\n /** Step increment */\n step?: number;\n /** Callback when value changes */\n onValueChange?: (value: number) => void;\n /** Callback when interaction ends (mouseup / touchend) */\n onValueCommit?: (value: number) => void;\n /** Whether the slider is disabled */\n disabled?: boolean;\n /** Label for the slider */\n label?: string;\n /** Show the current value */\n showValue?: boolean;\n /** Format the displayed value */\n formatValue?: (value: number) => string;\n /** Description text below the label */\n description?: string;\n /** Min label displayed below the track (left) */\n minLabel?: string;\n /** Max label displayed below the track (right) */\n maxLabel?: string;\n /** Additional class name for the root container */\n className?: string;\n /** Additional class name for the track */\n trackClassName?: string;\n /** ID for the underlying input */\n id?: string;\n /** Name for form submission */\n name?: string;\n /** Accessible label for the slider */\n 'aria-label'?: string;\n /** ID of the element that labels the slider */\n 'aria-labelledby'?: string;\n}\n\n/**\n * A fully branded, accessible slider/range input component.\n *\n * Uses brand design tokens for colors, border-radius, and sizing.\n * Supports controlled and uncontrolled usage, labels, descriptions,\n * min/max labels, value display, and multiple color variants.\n *\n * @example\n * ```tsx\n * <Slider label=\"Volume\" min={0} max={100} defaultValue={50} />\n * <Slider\n * label=\"Border Radius\"\n * min={0}\n * max={32}\n * value={radius}\n * onValueChange={setRadius}\n * showValue\n * formatValue={(v) => `${v}px`}\n * minLabel=\"Square\"\n * maxLabel=\"Rounded\"\n * />\n * ```\n */\nconst Slider = React.forwardRef<HTMLInputElement, SliderProps>(\n (\n {\n value: controlledValue,\n defaultValue = 0,\n min = 0,\n max = 100,\n step = 1,\n onValueChange,\n onValueCommit,\n disabled = false,\n label,\n showValue = false,\n formatValue,\n description,\n minLabel,\n maxLabel,\n variant,\n size,\n className,\n trackClassName,\n id,\n name,\n 'aria-label': ariaLabelProp,\n 'aria-labelledby': ariaLabelledByProp,\n },\n ref\n ) => {\n const hasExplicitLabel = !!label;\n const ariaLabelledBy = ariaLabelledByProp;\n const ariaLabel =\n ariaLabelProp ??\n (!hasExplicitLabel && !ariaLabelledByProp ? 'Slider' : undefined);\n const [uncontrolledValue, setUncontrolledValue] =\n React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : uncontrolledValue;\n\n // Clamp value to min/max\n const clampedValue = Math.min(Math.max(currentValue, min), max);\n\n // Percentage for visual fill\n const percentage =\n max !== min ? ((clampedValue - min) / (max - min)) * 100 : 0;\n\n const generatedId = React.useId();\n const inputId = id ?? generatedId;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = parseFloat(e.target.value);\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n onValueChange?.(newValue);\n };\n\n const handleCommit = () => {\n onValueCommit?.(clampedValue);\n };\n\n const displayValue = formatValue\n ? formatValue(clampedValue)\n : String(clampedValue);\n\n return (\n <div\n className={cn('w-full', className)}\n data-disabled={disabled || undefined}\n >\n {/* Label row */}\n {(label || showValue) && (\n <div className=\"mb-1.5 flex items-baseline justify-between\">\n {label && (\n <label\n htmlFor={inputId}\n className={cn(\n 'text-foreground text-sm font-medium',\n disabled && 'opacity-50'\n )}\n >\n {label}\n {showValue && (\n <span className=\"text-muted-foreground ml-1\">\n {displayValue}\n </span>\n )}\n </label>\n )}\n {!label && showValue && (\n <span className=\"text-muted-foreground text-sm\">\n {displayValue}\n </span>\n )}\n </div>\n )}\n\n {/* Description */}\n {description && (\n <p\n className={cn(\n 'text-muted-foreground mb-2 text-xs',\n disabled && 'opacity-50'\n )}\n >\n {description}\n </p>\n )}\n\n {/* Track + Thumb */}\n <div className=\"group relative\" data-disabled={disabled || undefined}>\n {/* Visual track background */}\n <div className={cn(sliderTrackVariants({ size }), trackClassName)}>\n {/* Filled range */}\n <div\n className={sliderRangeVariants({ variant })}\n style={{ width: `${percentage}%` }}\n />\n </div>\n\n {/* Native range input — stretched to fill, made invisible */}\n <input\n ref={ref}\n type=\"range\"\n className={cn(\n 'peer absolute inset-0 h-full w-full cursor-pointer opacity-0',\n disabled && 'cursor-not-allowed'\n )}\n id={inputId}\n name={name}\n min={min}\n max={max}\n step={step}\n value={clampedValue}\n onChange={handleChange}\n onMouseUp={handleCommit}\n onTouchEnd={handleCommit}\n onKeyUp={handleCommit}\n onBlur={handleCommit}\n disabled={disabled}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={clampedValue}\n />\n\n {/* Thumb indicator (visual only) */}\n <div\n className={sliderThumbVariants({ size, variant })}\n style={{ left: `${percentage}%` }}\n aria-hidden=\"true\"\n />\n </div>\n\n {/* Min / Max labels */}\n {(minLabel || maxLabel) && (\n <div\n className={cn(\n 'text-muted-foreground mt-1 flex justify-between text-xs',\n disabled && 'opacity-50'\n )}\n >\n <span>{minLabel}</span>\n <span>{maxLabel}</span>\n </div>\n )}\n </div>\n );\n }\n);\n\nSlider.displayName = 'Slider';\n\nexport {\n Slider,\n sliderTrackVariants,\n sliderRangeVariants,\n sliderThumbVariants,\n};\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"]}