@pathscale/ui 1.1.42 → 1.1.44

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 (61) hide show
  1. package/dist/components/disclosure/Disclosure.classes.d.ts +15 -0
  2. package/dist/components/disclosure/Disclosure.classes.js +16 -0
  3. package/dist/components/disclosure/Disclosure.css +84 -0
  4. package/dist/components/disclosure/Disclosure.d.ts +45 -0
  5. package/dist/components/disclosure/Disclosure.js +302 -0
  6. package/dist/components/disclosure/index.d.ts +11 -0
  7. package/dist/components/disclosure/index.js +9 -0
  8. package/dist/components/disclosure-group/DisclosureGroup.classes.d.ts +3 -0
  9. package/dist/components/disclosure-group/DisclosureGroup.classes.js +4 -0
  10. package/dist/components/disclosure-group/DisclosureGroup.css +9 -0
  11. package/dist/components/disclosure-group/DisclosureGroup.d.ts +25 -0
  12. package/dist/components/disclosure-group/DisclosureGroup.js +73 -0
  13. package/dist/components/disclosure-group/index.d.ts +9 -0
  14. package/dist/components/disclosure-group/index.js +6 -0
  15. package/dist/components/disclosure-group/useDisclosureGroupNavigation.d.ts +14 -0
  16. package/dist/components/disclosure-group/useDisclosureGroupNavigation.js +54 -0
  17. package/dist/components/icon/Icon.js +1 -2
  18. package/dist/components/immersive-landing/ImmersiveLanding.css +1 -1
  19. package/dist/components/input/Input.css +4 -0
  20. package/dist/components/meter/Meter.classes.d.ts +21 -0
  21. package/dist/components/meter/Meter.classes.js +22 -0
  22. package/dist/components/meter/Meter.css +89 -0
  23. package/dist/components/meter/Meter.d.ts +43 -0
  24. package/dist/components/meter/Meter.js +212 -0
  25. package/dist/components/meter/index.d.ts +1 -0
  26. package/dist/components/meter/index.js +8 -0
  27. package/dist/components/popover/Popover.classes.d.ts +10 -0
  28. package/dist/components/popover/Popover.classes.js +11 -0
  29. package/dist/components/popover/Popover.css +125 -0
  30. package/dist/components/popover/Popover.d.ts +47 -0
  31. package/dist/components/popover/Popover.js +310 -0
  32. package/dist/components/popover/index.d.ts +11 -0
  33. package/dist/components/popover/index.js +9 -0
  34. package/dist/components/range-calendar/RangeCalendar.classes.d.ts +11 -0
  35. package/dist/components/range-calendar/RangeCalendar.classes.js +12 -0
  36. package/dist/components/range-calendar/RangeCalendar.css +51 -0
  37. package/dist/components/range-calendar/RangeCalendar.d.ts +24 -0
  38. package/dist/components/range-calendar/RangeCalendar.js +110 -0
  39. package/dist/components/range-calendar/index.d.ts +1 -0
  40. package/dist/components/range-calendar/index.js +3 -0
  41. package/dist/components/scroll-shadow/ScrollShadow.classes.d.ts +13 -0
  42. package/dist/components/scroll-shadow/ScrollShadow.classes.js +14 -0
  43. package/dist/components/scroll-shadow/ScrollShadow.css +93 -0
  44. package/dist/components/scroll-shadow/ScrollShadow.d.ts +18 -0
  45. package/dist/components/scroll-shadow/ScrollShadow.js +87 -0
  46. package/dist/components/scroll-shadow/index.d.ts +2 -0
  47. package/dist/components/scroll-shadow/index.js +3 -0
  48. package/dist/components/scroll-shadow/useScrollShadow.d.ts +13 -0
  49. package/dist/components/scroll-shadow/useScrollShadow.js +97 -0
  50. package/dist/components/toggle/Toggle.css +9 -0
  51. package/dist/components/toolbar/Toolbar.classes.d.ts +10 -0
  52. package/dist/components/toolbar/Toolbar.classes.js +11 -0
  53. package/dist/components/toolbar/Toolbar.css +55 -0
  54. package/dist/components/toolbar/Toolbar.d.ts +15 -0
  55. package/dist/components/toolbar/Toolbar.js +96 -0
  56. package/dist/components/toolbar/index.d.ts +1 -0
  57. package/dist/components/toolbar/index.js +5 -0
  58. package/dist/index.d.ts +13 -0
  59. package/dist/index.js +21 -1
  60. package/dist/purge-manifest.json +176 -0
  61. package/package.json +1 -1
@@ -0,0 +1,54 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
2
+ const normalizeKeys = (keys)=>new Set(Array.from(keys).map((key)=>String(key)));
3
+ const useDisclosureGroupNavigation = (props)=>{
4
+ const currentIndex = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
5
+ const ids = props.itemIds();
6
+ const expanded = Array.from(normalizeKeys(props.expandedKeys())).filter((id)=>ids.includes(id));
7
+ const current = expanded.length > 0 ? expanded[0] : ids[0];
8
+ if (!current) return -1;
9
+ return ids.indexOf(current);
10
+ });
11
+ const setExpanded = (id)=>{
12
+ if (!id) return;
13
+ const allowsMultiple = Boolean(props.allowsMultipleExpanded);
14
+ if (allowsMultiple) {
15
+ const next = new Set(props.expandedKeys());
16
+ next.add(id);
17
+ props.onExpandedChange(next);
18
+ return;
19
+ }
20
+ props.onExpandedChange(new Set([
21
+ id
22
+ ]));
23
+ };
24
+ const onPrevious = ()=>{
25
+ const ids = props.itemIds();
26
+ const index = currentIndex();
27
+ if (index <= 0) return;
28
+ const prev = ids[index - 1];
29
+ if (!prev) return;
30
+ setExpanded(prev);
31
+ };
32
+ const onNext = ()=>{
33
+ const ids = props.itemIds();
34
+ const index = currentIndex();
35
+ if (index >= ids.length - 1) return;
36
+ const next = ids[index + 1];
37
+ if (!next) return;
38
+ setExpanded(next);
39
+ };
40
+ const isPrevDisabled = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>currentIndex() <= 0);
41
+ const isNextDisabled = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
42
+ const index = currentIndex();
43
+ const ids = props.itemIds();
44
+ return index < 0 || index >= ids.length - 1;
45
+ });
46
+ return {
47
+ currentIndex,
48
+ isPrevDisabled,
49
+ isNextDisabled,
50
+ onPrevious,
51
+ onNext
52
+ };
53
+ };
54
+ export { useDisclosureGroupNavigation };
@@ -16,8 +16,7 @@ const Icon = (props)=>{
16
16
  ]);
17
17
  const width = local.width ?? 24;
18
18
  const height = local.height ?? 24;
19
- const name = local.name;
20
- const classes = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>(0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Icon_classes_js_7218ccd2__.CLASSES.base, name, local.class, local.className));
19
+ const classes = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>(0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Icon_classes_js_7218ccd2__.CLASSES.base, local.name, local.class, local.className));
21
20
  return (()=>{
22
21
  var _el$ = _tmpl$();
23
22
  (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, ()=>({
@@ -210,6 +210,7 @@
210
210
  bottom: 1rem;
211
211
  left: 1rem;
212
212
  z-index: 51;
213
+ pointer-events: auto;
213
214
  animation: immersive-landing-slide-up 220ms ease;
214
215
  }
215
216
 
@@ -559,4 +560,3 @@
559
560
  }
560
561
  }
561
562
  }
562
-
@@ -132,6 +132,10 @@
132
132
  pointer-events: none;
133
133
  }
134
134
 
135
+ .input__icon > :is(button, [role="button"], a, [tabindex]):not([tabindex="-1"]) {
136
+ pointer-events: auto;
137
+ }
138
+
135
139
  .input__icon > * {
136
140
  width: 1rem;
137
141
  height: 1rem;
@@ -0,0 +1,21 @@
1
+ export declare const CLASSES: {
2
+ readonly base: "meter";
3
+ readonly output: "meter__output";
4
+ readonly track: "meter__track";
5
+ readonly fill: "meter__fill";
6
+ readonly size: {
7
+ readonly sm: "meter--sm";
8
+ readonly md: "meter--md";
9
+ readonly lg: "meter--lg";
10
+ };
11
+ readonly color: {
12
+ readonly default: "meter--default";
13
+ readonly accent: "meter--accent";
14
+ readonly success: "meter--success";
15
+ readonly warning: "meter--warning";
16
+ readonly danger: "meter--danger";
17
+ };
18
+ readonly state: {
19
+ readonly disabled: "meter--disabled";
20
+ };
21
+ };
@@ -0,0 +1,22 @@
1
+ const CLASSES = {
2
+ base: "meter",
3
+ output: "meter__output",
4
+ track: "meter__track",
5
+ fill: "meter__fill",
6
+ size: {
7
+ sm: "meter--sm",
8
+ md: "meter--md",
9
+ lg: "meter--lg"
10
+ },
11
+ color: {
12
+ default: "meter--default",
13
+ accent: "meter--accent",
14
+ success: "meter--success",
15
+ warning: "meter--warning",
16
+ danger: "meter--danger"
17
+ },
18
+ state: {
19
+ disabled: "meter--disabled"
20
+ }
21
+ };
22
+ export { CLASSES };
@@ -0,0 +1,89 @@
1
+ @layer components {
2
+ .meter {
3
+ display: grid;
4
+ width: 100%;
5
+ gap: 0.25rem;
6
+ grid-template-areas:
7
+ "label output"
8
+ "track track";
9
+ grid-template-columns: 1fr auto;
10
+
11
+ --meter-fill: var(--color-accent);
12
+ }
13
+
14
+ .meter [data-slot="label"] {
15
+ grid-area: label;
16
+ width: fit-content;
17
+ font-size: 0.875rem;
18
+ line-height: 1.25rem;
19
+ font-weight: 500;
20
+ }
21
+
22
+ .meter__output {
23
+ grid-area: output;
24
+ font-size: 0.875rem;
25
+ line-height: 1.25rem;
26
+ font-weight: 500;
27
+ font-variant-numeric: tabular-nums;
28
+ }
29
+
30
+ .meter__track {
31
+ grid-area: track;
32
+ position: relative;
33
+ overflow: hidden;
34
+ border-radius: 9999px;
35
+ background: var(--color-base-200);
36
+ height: 0.5rem;
37
+ }
38
+
39
+ .meter__fill {
40
+ position: absolute;
41
+ top: 0;
42
+ left: 0;
43
+ height: 100%;
44
+ border-radius: 9999px;
45
+ background-color: var(--meter-fill);
46
+ transition: width 300ms var(--ease-out);
47
+ }
48
+
49
+ .meter--sm .meter__track {
50
+ height: 0.25rem;
51
+ }
52
+
53
+ .meter--lg .meter__track {
54
+ height: 0.75rem;
55
+ }
56
+
57
+ .meter--default {
58
+ --meter-fill: var(--color-base-content);
59
+ }
60
+
61
+ .meter--accent {
62
+ --meter-fill: var(--color-accent);
63
+ }
64
+
65
+ .meter--success {
66
+ --meter-fill: var(--color-success);
67
+ }
68
+
69
+ .meter--warning {
70
+ --meter-fill: var(--color-warning);
71
+ }
72
+
73
+ .meter--danger {
74
+ --meter-fill: var(--color-danger);
75
+ }
76
+
77
+ .meter--disabled,
78
+ .meter[aria-disabled="true"],
79
+ .meter[data-disabled="true"] {
80
+ opacity: 0.6;
81
+ }
82
+
83
+ @media (prefers-reduced-motion: reduce) {
84
+ .meter__fill {
85
+ transition: none;
86
+ }
87
+ }
88
+ }
89
+
@@ -0,0 +1,43 @@
1
+ import "./Meter.css";
2
+ import { type Component, type JSX } from "solid-js";
3
+ import type { IComponentBaseProps } from "../types";
4
+ export type MeterSize = "sm" | "md" | "lg";
5
+ export type MeterColor = "default" | "accent" | "success" | "warning" | "danger";
6
+ export type MeterRenderState = {
7
+ value: number;
8
+ minValue: number;
9
+ maxValue: number;
10
+ percentage: number;
11
+ valueText: string;
12
+ isDisabled: boolean;
13
+ };
14
+ export type MeterRootProps = IComponentBaseProps & Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> & {
15
+ children?: JSX.Element | ((state: MeterRenderState) => JSX.Element);
16
+ value?: number;
17
+ minValue?: number;
18
+ maxValue?: number;
19
+ lowValue?: number;
20
+ highValue?: number;
21
+ optimumValue?: number;
22
+ isDisabled?: boolean;
23
+ size?: MeterSize;
24
+ color?: MeterColor;
25
+ formatOptions?: Intl.NumberFormatOptions;
26
+ formatValue?: (value: number, state: Omit<MeterRenderState, "valueText">) => string;
27
+ };
28
+ export type MeterOutputProps = IComponentBaseProps & JSX.HTMLAttributes<HTMLSpanElement>;
29
+ export type MeterTrackProps = IComponentBaseProps & JSX.HTMLAttributes<HTMLDivElement>;
30
+ export type MeterFillProps = IComponentBaseProps & JSX.HTMLAttributes<HTMLDivElement>;
31
+ declare const MeterRoot: Component<MeterRootProps>;
32
+ declare const MeterOutput: Component<MeterOutputProps>;
33
+ declare const MeterTrack: Component<MeterTrackProps>;
34
+ declare const MeterFill: Component<MeterFillProps>;
35
+ declare const Meter: Component<MeterRootProps> & {
36
+ Root: Component<MeterRootProps>;
37
+ Output: Component<MeterOutputProps>;
38
+ Track: Component<MeterTrackProps>;
39
+ Fill: Component<MeterFillProps>;
40
+ };
41
+ export default Meter;
42
+ export { Meter, MeterRoot, MeterOutput, MeterTrack, MeterFill };
43
+ export type { MeterRootProps as MeterProps };
@@ -0,0 +1,212 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__ from "solid-js/web";
2
+ import "./Meter.css";
3
+ import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
4
+ import * as __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__ from "tailwind-merge";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__Meter_classes_js_21fc494c__ from "./Meter.classes.js";
6
+ var _tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div>"), _tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<span>");
7
+ const MeterContext = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createContext)();
8
+ const useMeterContext = ()=>{
9
+ const context = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.useContext)(MeterContext);
10
+ if (!context) throw new Error("Meter compound components must be used within <Meter>");
11
+ return context;
12
+ };
13
+ const clamp = (value, min, max)=>Math.min(Math.max(value, min), max);
14
+ const MeterRoot = (props)=>{
15
+ const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
16
+ "children",
17
+ "class",
18
+ "className",
19
+ "dataTheme",
20
+ "style",
21
+ "value",
22
+ "minValue",
23
+ "maxValue",
24
+ "lowValue",
25
+ "highValue",
26
+ "optimumValue",
27
+ "isDisabled",
28
+ "size",
29
+ "color",
30
+ "formatOptions",
31
+ "formatValue"
32
+ ]);
33
+ const minValue = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>local.minValue ?? 0);
34
+ const maxValue = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
35
+ const resolvedMin = minValue();
36
+ const resolvedMax = local.maxValue ?? 100;
37
+ return resolvedMax > resolvedMin ? resolvedMax : resolvedMin + 1;
38
+ });
39
+ const clampedValue = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>clamp(local.value ?? minValue(), minValue(), maxValue()));
40
+ const percentage = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>(clampedValue() - minValue()) / (maxValue() - minValue()) * 100);
41
+ const formatter = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
42
+ if (!local.formatOptions) return;
43
+ try {
44
+ return new Intl.NumberFormat(void 0, local.formatOptions);
45
+ } catch {
46
+ return;
47
+ }
48
+ });
49
+ const state = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
50
+ const base = {
51
+ value: clampedValue(),
52
+ minValue: minValue(),
53
+ maxValue: maxValue(),
54
+ percentage: percentage(),
55
+ isDisabled: Boolean(local.isDisabled)
56
+ };
57
+ const valueText = local.formatValue ? local.formatValue(base.value, base) : formatter()?.format(base.value) ?? `${Math.round(base.percentage)}%`;
58
+ return {
59
+ ...base,
60
+ valueText
61
+ };
62
+ });
63
+ const rootClasses = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>(0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Meter_classes_js_21fc494c__.CLASSES.base, __WEBPACK_EXTERNAL_MODULE__Meter_classes_js_21fc494c__.CLASSES.size[local.size ?? "md"], __WEBPACK_EXTERNAL_MODULE__Meter_classes_js_21fc494c__.CLASSES.color[local.color ?? "accent"], local.isDisabled && __WEBPACK_EXTERNAL_MODULE__Meter_classes_js_21fc494c__.CLASSES.state.disabled, local.class, local.className));
64
+ return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(MeterContext.Provider, {
65
+ value: {
66
+ state
67
+ },
68
+ get children () {
69
+ var _el$ = _tmpl$();
70
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
71
+ get role () {
72
+ return others.role ?? "meter";
73
+ },
74
+ get ["aria-valuemin"] () {
75
+ return minValue();
76
+ },
77
+ get ["aria-valuemax"] () {
78
+ return maxValue();
79
+ },
80
+ get ["aria-valuenow"] () {
81
+ return state().value;
82
+ },
83
+ get ["aria-valuetext"] () {
84
+ return state().valueText;
85
+ },
86
+ get ["aria-disabled"] () {
87
+ return local.isDisabled ? "true" : void 0;
88
+ },
89
+ get ["data-disabled"] () {
90
+ return local.isDisabled ? "true" : void 0;
91
+ },
92
+ "data-slot": "meter",
93
+ get ["data-theme"] () {
94
+ return local.dataTheme;
95
+ },
96
+ get ["data-low-value"] () {
97
+ return local.lowValue;
98
+ },
99
+ get ["data-high-value"] () {
100
+ return local.highValue;
101
+ },
102
+ get ["data-optimum-value"] () {
103
+ return local.optimumValue;
104
+ },
105
+ get style () {
106
+ return local.style;
107
+ }
108
+ }, ()=>({
109
+ class: rootClasses()
110
+ })), false, true);
111
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, (()=>{
112
+ var _c$ = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>"function" == typeof local.children);
113
+ return ()=>_c$() ? local.children(state()) : local.children;
114
+ })());
115
+ return _el$;
116
+ }
117
+ });
118
+ };
119
+ const MeterOutput = (props)=>{
120
+ const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
121
+ "children",
122
+ "class",
123
+ "className",
124
+ "dataTheme",
125
+ "style"
126
+ ]);
127
+ const { state } = useMeterContext();
128
+ return (()=>{
129
+ var _el$2 = _tmpl$2();
130
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$2, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
131
+ "data-slot": "meter-output",
132
+ get ["data-theme"] () {
133
+ return local.dataTheme;
134
+ },
135
+ get style () {
136
+ return local.style;
137
+ }
138
+ }, ()=>({
139
+ class: (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Meter_classes_js_21fc494c__.CLASSES.output, local.class, local.className)
140
+ })), false, true);
141
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$2, ()=>local.children ?? state().valueText);
142
+ return _el$2;
143
+ })();
144
+ };
145
+ const MeterTrack = (props)=>{
146
+ const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
147
+ "children",
148
+ "class",
149
+ "className",
150
+ "dataTheme",
151
+ "style"
152
+ ]);
153
+ return (()=>{
154
+ var _el$3 = _tmpl$();
155
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$3, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
156
+ "data-slot": "meter-track",
157
+ get ["data-theme"] () {
158
+ return local.dataTheme;
159
+ },
160
+ get style () {
161
+ return local.style;
162
+ }
163
+ }, ()=>({
164
+ class: (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Meter_classes_js_21fc494c__.CLASSES.track, local.class, local.className)
165
+ })), false, true);
166
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$3, ()=>local.children);
167
+ return _el$3;
168
+ })();
169
+ };
170
+ const MeterFill = (props)=>{
171
+ const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
172
+ "class",
173
+ "className",
174
+ "dataTheme",
175
+ "style"
176
+ ]);
177
+ const { state } = useMeterContext();
178
+ const style = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
179
+ if ("string" == typeof local.style) {
180
+ const trimmed = local.style.trim();
181
+ const suffix = trimmed.length > 0 && !trimmed.endsWith(";") ? ";" : "";
182
+ return `${trimmed}${suffix} width: ${state().percentage}%;`;
183
+ }
184
+ return {
185
+ ...local.style ?? {},
186
+ width: `${state().percentage}%`
187
+ };
188
+ });
189
+ return (()=>{
190
+ var _el$4 = _tmpl$();
191
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$4, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
192
+ "data-slot": "meter-fill",
193
+ get ["data-theme"] () {
194
+ return local.dataTheme;
195
+ },
196
+ get style () {
197
+ return style();
198
+ }
199
+ }, ()=>({
200
+ class: (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Meter_classes_js_21fc494c__.CLASSES.fill, local.class, local.className)
201
+ })), false, false);
202
+ return _el$4;
203
+ })();
204
+ };
205
+ const Meter_Meter = Object.assign(MeterRoot, {
206
+ Root: MeterRoot,
207
+ Output: MeterOutput,
208
+ Track: MeterTrack,
209
+ Fill: MeterFill
210
+ });
211
+ const Meter = Meter_Meter;
212
+ export { Meter_Meter as Meter, MeterFill, MeterOutput, MeterRoot, MeterTrack, Meter as default };
@@ -0,0 +1 @@
1
+ export { default, Meter, MeterRoot, MeterOutput, MeterTrack, MeterFill, type MeterProps, type MeterRootProps, type MeterOutputProps, type MeterTrackProps, type MeterFillProps, type MeterSize, type MeterColor, type MeterRenderState, } from "./Meter";
@@ -0,0 +1,8 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE__Meter_js_d9647ac6__ from "./Meter.js";
2
+ var __webpack_exports__Meter = __WEBPACK_EXTERNAL_MODULE__Meter_js_d9647ac6__.Meter;
3
+ var __webpack_exports__MeterFill = __WEBPACK_EXTERNAL_MODULE__Meter_js_d9647ac6__.MeterFill;
4
+ var __webpack_exports__MeterOutput = __WEBPACK_EXTERNAL_MODULE__Meter_js_d9647ac6__.MeterOutput;
5
+ var __webpack_exports__MeterRoot = __WEBPACK_EXTERNAL_MODULE__Meter_js_d9647ac6__.MeterRoot;
6
+ var __webpack_exports__MeterTrack = __WEBPACK_EXTERNAL_MODULE__Meter_js_d9647ac6__.MeterTrack;
7
+ var __webpack_exports__default = __WEBPACK_EXTERNAL_MODULE__Meter_js_d9647ac6__["default"];
8
+ export { __webpack_exports__Meter as Meter, __webpack_exports__MeterFill as MeterFill, __webpack_exports__MeterOutput as MeterOutput, __webpack_exports__MeterRoot as MeterRoot, __webpack_exports__MeterTrack as MeterTrack, __webpack_exports__default as default };
@@ -0,0 +1,10 @@
1
+ export declare const CLASSES: {
2
+ readonly base: "popover";
3
+ readonly slot: {
4
+ readonly root: "popover-root";
5
+ readonly trigger: "popover__trigger";
6
+ readonly dialog: "popover__dialog";
7
+ readonly arrow: "popover__arrow";
8
+ readonly heading: "popover__heading";
9
+ };
10
+ };
@@ -0,0 +1,11 @@
1
+ const CLASSES = {
2
+ base: "popover",
3
+ slot: {
4
+ root: "popover-root",
5
+ trigger: "popover__trigger",
6
+ dialog: "popover__dialog",
7
+ arrow: "popover__arrow",
8
+ heading: "popover__heading"
9
+ }
10
+ };
11
+ export { CLASSES };
@@ -0,0 +1,125 @@
1
+ @layer components {
2
+ .popover-root {
3
+ position: relative;
4
+ display: inline-flex;
5
+ }
6
+
7
+ .popover {
8
+ position: absolute;
9
+ z-index: var(--z-overlay, 70);
10
+ border-radius: 1.5rem;
11
+ padding: 0;
12
+ font-size: 0.875rem;
13
+ line-height: 1.25rem;
14
+ background-color: var(--color-overlay, var(--color-base-100));
15
+ color: var(--color-overlay-foreground, var(--color-base-content));
16
+ box-shadow: var(--shadow-overlay, 0 24px 48px color-mix(in oklab, black 20%, transparent));
17
+ opacity: 0;
18
+ pointer-events: none;
19
+ transform: translateY(-4px) scale(0.96);
20
+ transform-origin: center;
21
+ transition:
22
+ opacity 150ms var(--ease-smooth, ease),
23
+ transform 150ms var(--ease-smooth, ease);
24
+ }
25
+
26
+ .popover[data-open="true"] {
27
+ opacity: 1;
28
+ pointer-events: auto;
29
+ transform: translateY(0) scale(1);
30
+ }
31
+
32
+ .popover[data-placement="top"] {
33
+ bottom: calc(100% + var(--popover-offset, 8px));
34
+ left: 50%;
35
+ transform: translateX(-50%) translateY(4px) scale(0.96);
36
+ transform-origin: bottom;
37
+ }
38
+
39
+ .popover[data-placement="top"][data-open="true"] {
40
+ transform: translateX(-50%) translateY(0) scale(1);
41
+ }
42
+
43
+ .popover[data-placement="bottom"] {
44
+ top: calc(100% + var(--popover-offset, 8px));
45
+ left: 50%;
46
+ transform: translateX(-50%) translateY(-4px) scale(0.96);
47
+ transform-origin: top;
48
+ }
49
+
50
+ .popover[data-placement="bottom"][data-open="true"] {
51
+ transform: translateX(-50%) translateY(0) scale(1);
52
+ }
53
+
54
+ .popover[data-placement="left"] {
55
+ right: calc(100% + var(--popover-offset, 8px));
56
+ top: 50%;
57
+ transform: translateX(4px) translateY(-50%) scale(0.96);
58
+ transform-origin: right;
59
+ }
60
+
61
+ .popover[data-placement="left"][data-open="true"] {
62
+ transform: translateX(0) translateY(-50%) scale(1);
63
+ }
64
+
65
+ .popover[data-placement="right"] {
66
+ left: calc(100% + var(--popover-offset, 8px));
67
+ top: 50%;
68
+ transform: translateX(-4px) translateY(-50%) scale(0.96);
69
+ transform-origin: left;
70
+ }
71
+
72
+ .popover[data-placement="right"][data-open="true"] {
73
+ transform: translateX(0) translateY(-50%) scale(1);
74
+ }
75
+
76
+ .popover__dialog {
77
+ padding: 1rem;
78
+ outline: none;
79
+ }
80
+
81
+ .popover__heading {
82
+ font-weight: 600;
83
+ }
84
+
85
+ .popover__trigger {
86
+ display: inline-flex;
87
+ cursor: pointer;
88
+ }
89
+
90
+ .popover__trigger:focus-visible,
91
+ .popover__trigger[data-focus-visible="true"] {
92
+ outline: 2px solid var(--color-accent);
93
+ outline-offset: 2px;
94
+ border-radius: var(--radius-field, 0.375rem);
95
+ }
96
+
97
+ .popover__arrow {
98
+ position: absolute;
99
+ color: var(--color-overlay, var(--color-base-100));
100
+ }
101
+
102
+ .popover[data-placement="top"] .popover__arrow {
103
+ top: calc(100% - 1px);
104
+ left: 50%;
105
+ transform: translateX(-50%);
106
+ }
107
+
108
+ .popover[data-placement="bottom"] .popover__arrow {
109
+ bottom: calc(100% - 1px);
110
+ left: 50%;
111
+ transform: translateX(-50%) rotate(180deg);
112
+ }
113
+
114
+ .popover[data-placement="left"] .popover__arrow {
115
+ left: calc(100% - 1px);
116
+ top: 50%;
117
+ transform: translateY(-50%) rotate(-90deg);
118
+ }
119
+
120
+ .popover[data-placement="right"] .popover__arrow {
121
+ right: calc(100% - 1px);
122
+ top: 50%;
123
+ transform: translateY(-50%) rotate(90deg);
124
+ }
125
+ }