@torpor/ui 1.0.0 → 1.0.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.
@@ -53,6 +53,7 @@ export default function ChartXAxis($props?: ChartXAxisProps) {
53
53
  @if (!horizontal()) {
54
54
  @if (title()) {
55
55
  <text
56
+ fill="currentcolor"
56
57
  text-anchor="middle"
57
58
  dominant-baseline="text-after-edge"
58
59
  x={layout.calculatedWidth - (layout.calculatedWidth - layout.chartLeft) / 2}
@@ -63,6 +64,7 @@ export default function ChartXAxis($props?: ChartXAxisProps) {
63
64
  }
64
65
  @for (let [i, label] of layout.labels.entries()) {
65
66
  <text
67
+ fill="currentcolor"
66
68
  text-anchor="middle"
67
69
  dominant-baseline="text-after-edge"
68
70
  x={layout.chartLeft + layout.itemWidth * i + layout.itemWidth / 2}
@@ -74,6 +74,7 @@ export default function ChartYAxis($props?: ChartYAxisProps) {
74
74
  @if (horizontal()) {
75
75
  @for (let [i, label] of layout.labels.entries()) {
76
76
  <text
77
+ fill="currentcolor"
77
78
  text-anchor="end"
78
79
  dominant-baseline="middle"
79
80
  x={layout.chartLeft - layout.textHeight / 4}
@@ -85,6 +86,7 @@ export default function ChartYAxis($props?: ChartYAxisProps) {
85
86
  } else {
86
87
  @if (side() === "left" && title()) {
87
88
  <text
89
+ fill="currentcolor"
88
90
  text-anchor="middle"
89
91
  dominant-baseline="hanging"
90
92
  x={0}
@@ -30,6 +30,7 @@ export default function XAxis($props: XAxisProps) {
30
30
  }
31
31
  @if ($props.xLabel) {
32
32
  <text
33
+ fill="currentcolor"
33
34
  text-anchor="middle"
34
35
  dominant-baseline="text-after-edge"
35
36
  x={$props.width - ($props.width - $props.chartLeft) / 2}
@@ -41,6 +42,7 @@ export default function XAxis($props: XAxisProps) {
41
42
  @if ($props.stepLabels.length && $props.stepValue) {
42
43
  @for (let [i, label] of $props.stepLabels.entries()) {
43
44
  <text
45
+ fill="currentcolor"
44
46
  text-anchor="middle"
45
47
  dominant-baseline="text-after-edge"
46
48
  x={$props.chartLeft + i * $props.stepValue * $props.itemWidth}
@@ -52,6 +54,7 @@ export default function XAxis($props: XAxisProps) {
52
54
  } else {
53
55
  @for (let [i, label] of $props.labels.entries()) {
54
56
  <text
57
+ fill="currentcolor"
55
58
  text-anchor="middle"
56
59
  dominant-baseline="text-after-edge"
57
60
  x={$props.chartLeft + $props.itemWidth * i + $props.itemWidth / 2}
@@ -23,6 +23,7 @@ export default function YAxis($props: YAxisProps) {
23
23
  }
24
24
  @if ($props.yLabel) {
25
25
  <text
26
+ fill="currentcolor"
26
27
  text-anchor="middle"
27
28
  dominant-baseline="hanging"
28
29
  x={0}
@@ -34,6 +35,7 @@ export default function YAxis($props: YAxisProps) {
34
35
  }
35
36
  @for (let [i, label] of $props.stepLabels.entries()) {
36
37
  <text
38
+ fill="currentcolor"
37
39
  text-anchor="end"
38
40
  dominant-baseline="middle"
39
41
  x={$props.chartLeft - $props.textHeight / 4}
@@ -61,8 +61,16 @@ export default function ComboBoxContent($props: ComboBoxContentProps | undefined
61
61
 
62
62
  function handleDocumentClick(e: MouseEvent) {
63
63
  // Don't close if the click is inside the content div OR inside the
64
- // ComboBox root (which contains the input/trigger)
65
- if (closeOnClick && div && !div.contains(e.target as HTMLElement) && !div.parentElement?.contains(e.target as HTMLElement)) {
64
+ // ComboBox root (which contains the input/trigger). A re-rendered
65
+ // (detached) target came from inside the content -- see DateRangePicker
66
+ const target = e.target as HTMLElement;
67
+ if (
68
+ closeOnClick &&
69
+ div &&
70
+ target.isConnected &&
71
+ !div.contains(target) &&
72
+ !div.parentElement?.contains(target)
73
+ ) {
66
74
  e.preventDefault();
67
75
  context.handleClickOutside!(e);
68
76
  }
@@ -15,6 +15,8 @@ interface ComboBoxInputProps {
15
15
  name?: string;
16
16
  /** The value displayed in the input */
17
17
  value?: any;
18
+ /** The text to display in the input (e.g. the selected item's label), instead of the raw value */
19
+ text?: string;
18
20
  /** Text to display when the input value is empty */
19
21
  placeholder?: string;
20
22
  /** Whether the input's value is required */
@@ -50,6 +52,20 @@ export default function ComboBoxInput($props: ComboBoxInputProps | undefined) {
50
52
  input.focus();
51
53
  }
52
54
 
55
+ // The text shown in the input: the consumer-supplied label for the
56
+ // selected value if given, otherwise the raw value itself. One-way: what
57
+ // the user types is search text, not the value (that's updated on select)
58
+ function displayValue(): string {
59
+ if ($props?.text !== undefined) {
60
+ return $props.text;
61
+ }
62
+ const value = $state.value;
63
+ if (value === undefined || value === null || value === "") {
64
+ return "";
65
+ }
66
+ return Array.isArray(value) ? value.join(", ") : String(value);
67
+ }
68
+
53
69
  function handleClick() {
54
70
  $state.visible = true;
55
71
  }
@@ -122,7 +138,7 @@ export default function ComboBoxInput($props: ComboBoxInputProps | undefined) {
122
138
  class={["torp-combo-box-input", $props?.class]}
123
139
  {$props?.style}
124
140
  name={$props?.name !== undefined ? $props.name : context.name}
125
- &value={Array.isArray($state.value) ? $state.value.join(", ") : $state.value}
141
+ value={displayValue()}
126
142
  placeholder={$props?.placeholder !== undefined ? $props.placeholder : context.placeholder}
127
143
  required={$props?.required !== undefined ? $props.required : context.required}
128
144
  aria-readonly
@@ -103,6 +103,8 @@ interface ComboBoxInputProps {
103
103
  name?: string;
104
104
  /** The value displayed in the input */
105
105
  value?: any;
106
+ /** The text to display in the input (e.g. the selected item's label), instead of the raw value */
107
+ text?: string;
106
108
  /** Text to display when the input value is empty */
107
109
  placeholder?: string;
108
110
  /** Whether the input's value is required */
@@ -70,6 +70,9 @@ export default function CommandPalette($props: CommandPaletteProps | undefined)
70
70
  if (input) {
71
71
  input.value = "";
72
72
  }
73
+ } else {
74
+ // Focus the input once the modal content has rendered
75
+ setTimeout(() => input?.focus());
73
76
  }
74
77
  });
75
78
 
@@ -214,7 +214,11 @@ export default function DateRangePicker($props: DateRangePickerProps | undefined
214
214
  }
215
215
 
216
216
  function handleDocumentClick(e: MouseEvent) {
217
- if (closeOnClick && content && !content.contains(e.target as HTMLElement)) {
217
+ const target = e.target as HTMLElement;
218
+ // A click can re-render the clicked element (e.g. selecting a date
219
+ // changes its state), detaching it before the event reaches the
220
+ // document. A detached target must have come from inside the content
221
+ if (closeOnClick && content && target.isConnected && !content.contains(target)) {
218
222
  e.preventDefault();
219
223
  setVisible(false);
220
224
  }
@@ -76,7 +76,10 @@ export default function DrawerContent($props: DrawerContentProps | undefined) {
76
76
  }
77
77
 
78
78
  function handleDocumentClick(e: MouseEvent) {
79
- if (closeOnClick && drawer && !drawer.contains(e.target as HTMLElement)) {
79
+ const target = e.target as HTMLElement;
80
+ // A re-rendered (detached) target came from inside the drawer -- see
81
+ // DateRangePicker
82
+ if (closeOnClick && drawer && target.isConnected && !drawer.contains(target)) {
80
83
  e.preventDefault();
81
84
  context.handleClickOutside!(e);
82
85
  }
@@ -206,7 +206,7 @@ export default function Rating($props: RatingProps | undefined) {
206
206
  }}
207
207
  >
208
208
  <slot item={{ value: value, filled: value <= getDisplayValue() }}>
209
- <span aria-hidden="true">{value <= getDisplayValue() ? "★" : "☆"}</span>
209
+ <span aria-hidden="true">★</span>
210
210
  </slot>
211
211
  </button>
212
212
  }
@@ -29,12 +29,14 @@ export default function SelectBoxContent($props: SelectBoxContentProps | undefin
29
29
  let $state = context.state;
30
30
 
31
31
  $run(() => {
32
- if (!$state.visible) {
32
+ if ($state.visible) {
33
+ show();
34
+ } else {
33
35
  hide();
34
36
  }
35
37
  });
36
38
 
37
- function show(_: HTMLElement) {
39
+ function show() {
38
40
  shown = true;
39
41
 
40
42
  // HACK: Because this SelectBox could be shown with a click, we need to wait for another mousedown
@@ -56,7 +58,10 @@ export default function SelectBoxContent($props: SelectBoxContentProps | undefin
56
58
  }
57
59
 
58
60
  function handleDocumentClick(e: MouseEvent) {
59
- if (closeOnClick && div && !div.contains(e.target as HTMLElement)) {
61
+ const target = e.target as HTMLElement;
62
+ // See DateRangePicker: a re-rendered (detached) target came from
63
+ // inside the content
64
+ if (closeOnClick && div && target.isConnected && !div.contains(target)) {
60
65
  e.preventDefault();
61
66
  context.handleClickOutside!(e);
62
67
  }
@@ -71,7 +76,6 @@ export default function SelectBoxContent($props: SelectBoxContentProps | undefin
71
76
  {$props?.style}
72
77
  aria-hidden={$state.visible ? undefined : "true"}
73
78
  &ref={div}
74
- onmount={show}
75
79
  >
76
80
  <slot>
77
81
  @if (context.getLoadedItems) {
@@ -212,7 +212,7 @@ export default function Slider($props: SliderProps | undefined) {
212
212
  <div class="torp-slider-fill" style={`${getOrientation() === "vertical" ? "height" : "width"}: ${getPct()}%;`} />
213
213
  <div
214
214
  class="torp-slider-thumb"
215
- style={`${getOrientation() === "vertical" ? "top" : "left"}: ${getPct()}%;`}
215
+ style={`position: absolute; transform: translate(-50%, -50%); ${getOrientation() === "vertical" ? `top: ${getPct()}%; left: 50%` : `left: ${getPct()}%; top: 50%`};`}
216
216
  role="slider"
217
217
  tabindex={getDisabled() ? -1 : 0}
218
218
  aria-orientation={getOrientation()}
@@ -234,15 +234,12 @@ export default function Slider($props: SliderProps | undefined) {
234
234
  }
235
235
 
236
236
  @style {
237
- /* Headless: positioning only, so the thumb sits at the value along
238
- the track. All appearance is up to the consuming theme */
237
+ /* Headless: all positioning is done with inline styles (so that theme
238
+ CSS can't dislodge the thumb from the track). All appearance is up
239
+ to the consuming theme */
239
240
  .torp-slider {
240
241
  position: relative;
241
242
  touch-action: none;
242
243
  }
243
- .torp-slider-thumb {
244
- position: absolute;
245
- transform: translateX(-50%);
246
- }
247
244
  }
248
245
  }
@@ -22,11 +22,9 @@ function measure(el, fn) {
22
22
  document.body.appendChild(el);
23
23
  let result = fn(el);
24
24
  el.parentNode.removeChild(el);
25
- if (oldParent !== null) {
26
- oldParent.insertBefore(el, oldBefore);
27
- el.style.visibility = oldVisibility;
28
- el.style.position = oldPosition;
29
- }
25
+ el.style.visibility = oldVisibility;
26
+ el.style.position = oldPosition;
27
+ if (oldParent !== null) oldParent.insertBefore(el, oldBefore);
30
28
  return result;
31
29
  }
32
30
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/motion/fade.ts","../../src/motion/measure.ts","../../src/motion/grow.ts","../../src/motion/slide.ts"],"sourcesContent":["import { type Animation } from \"@torpor/view\";\n\nexport default function fade(\n\t_el: HTMLElement,\n\toptions?: number | KeyframeAnimationOptions,\n): Animation {\n\tconst keyframes = [\n\t\t{\n\t\t\topacity: 0,\n\t\t},\n\t\t{\n\t\t\topacity: 1,\n\t\t},\n\t];\n\treturn { keyframes, options };\n}\n","/**\n * Measures an element before it is added to the DOM\n * @param el The element to measure\n * @param fn The function to use to get the desired measurement (e.g. el.offsetHeight)\n */\nexport default function measure(el: HTMLElement, fn: (_el: HTMLElement) => number): number {\n\t// From https://stackoverflow.com/a/46707458\n\tlet oldVisibility = el.style.visibility;\n\tlet oldPosition = el.style.position;\n\n\tlet oldParent = el.parentNode;\n\tlet oldBefore = el.nextSibling;\n\n\tel.style.visibility = \"hidden\";\n\tel.style.position = \"absolute\";\n\n\tdocument.body.appendChild(el);\n\tlet result = fn(el);\n\tel.parentNode!.removeChild(el);\n\n\tif (oldParent !== null) {\n\t\toldParent.insertBefore(el, oldBefore);\n\t\tel.style.visibility = oldVisibility;\n\t\tel.style.position = oldPosition;\n\t}\n\n\treturn result;\n}\n","import { type Animation } from \"@torpor/view\";\nimport measure from \"./measure\";\n\nexport default function grow(\n\tel: HTMLElement,\n\toptions?: number | KeyframeAnimationOptions,\n): Animation {\n\tconst height = measure(el, (el) => el.clientHeight);\n\tconst keyframes = [\n\t\t{\n\t\t\theight: \"0px\",\n\t\t\toverflow: \"hidden\",\n\t\t\tpaddingTop: \"0px\",\n\t\t\tpaddingBottom: \"0px\",\n\t\t\tmarginTop: \"0px\",\n\t\t\tmarginBottom: \"0px\",\n\t\t},\n\t\t{\n\t\t\theight: height + \"px\",\n\t\t},\n\t];\n\treturn { keyframes, options };\n}\n","import { type Animation } from \"@torpor/view\";\nimport measure from \"./measure\";\n\ninterface Options extends KeyframeAnimationOptions {\n\tside: \"left\" | \"right\" | \"top\" | \"bottom\";\n}\n\nexport default function slide(el: HTMLElement, options?: Options): Animation {\n\tel.style.position = \"fixed\";\n\tswitch (options?.side ?? \"left\") {\n\t\tcase \"left\": {\n\t\t\tel.style.left = \"0px\";\n\t\t\tconst width = measure(el, (el) => el.offsetWidth);\n\t\t\tconst keyframes = [\n\t\t\t\t{ transform: `translateX(-${width}px)` },\n\t\t\t\t{ transform: \"translateX(0px)\" },\n\t\t\t];\n\t\t\treturn { keyframes, options };\n\t\t}\n\t\tcase \"top\": {\n\t\t\tel.style.top = \"0px\";\n\t\t\tconst height = measure(el, (el) => el.offsetHeight);\n\t\t\tconst keyframes = [\n\t\t\t\t{ transform: `translateY(-${height}px)` },\n\t\t\t\t{ transform: \"translateY(0px)\" },\n\t\t\t];\n\t\t\treturn { keyframes, options };\n\t\t}\n\t\tcase \"right\": {\n\t\t\tel.style.right = \"0px\";\n\t\t\tconst width = measure(el, (el) => el.offsetWidth);\n\t\t\tconst keyframes = [{ transform: `translateX(${width}px)` }, { transform: \"translateX(0px)\" }];\n\t\t\treturn { keyframes, options };\n\t\t}\n\t\tcase \"bottom\": {\n\t\t\tel.style.bottom = \"0px\";\n\t\t\tconst height = measure(el, (el) => el.offsetHeight);\n\t\t\tconst keyframes = [\n\t\t\t\t{ transform: `translateY(${height}px)` },\n\t\t\t\t{ transform: \"translateY(0px)\" },\n\t\t\t];\n\t\t\treturn { keyframes, options };\n\t\t}\n\t}\n}\n"],"mappings":";AAEA,SAAwB,KACvB,KACA,SACY;CASZ,OAAO;EAAE,WAAA,CAPR,EACC,SAAS,EACV,GACA,EACC,SAAS,EACV,CAEgB;EAAG;CAAQ;AAC7B;;;;;;;;ACVA,SAAwB,QAAQ,IAAiB,IAA0C;CAE1F,IAAI,gBAAgB,GAAG,MAAM;CAC7B,IAAI,cAAc,GAAG,MAAM;CAE3B,IAAI,YAAY,GAAG;CACnB,IAAI,YAAY,GAAG;CAEnB,GAAG,MAAM,aAAa;CACtB,GAAG,MAAM,WAAW;CAEpB,SAAS,KAAK,YAAY,EAAE;CAC5B,IAAI,SAAS,GAAG,EAAE;CAClB,GAAG,WAAY,YAAY,EAAE;CAE7B,IAAI,cAAc,MAAM;EACvB,UAAU,aAAa,IAAI,SAAS;EACpC,GAAG,MAAM,aAAa;EACtB,GAAG,MAAM,WAAW;CACrB;CAEA,OAAO;AACR;;;ACxBA,SAAwB,KACvB,IACA,SACY;CAeZ,OAAO;EAAE,WAAA,CAZR;GACC,QAAQ;GACR,UAAU;GACV,YAAY;GACZ,eAAe;GACf,WAAW;GACX,cAAc;EACf,GACA,EACC,QAXa,QAAQ,KAAK,OAAO,GAAG,YAWvB,IAAI,KAClB,CAEgB;EAAG;CAAQ;AAC7B;;;ACfA,SAAwB,MAAM,IAAiB,SAA8B;CAC5E,GAAG,MAAM,WAAW;CACpB,QAAQ,SAAS,QAAQ,QAAzB;EACC,KAAK;GACJ,GAAG,MAAM,OAAO;GAMhB,OAAO;IAAE,WAAA,CAHR,EAAE,WAAW,eAFA,QAAQ,KAAK,OAAO,GAAG,WAEJ,EAAE,KAAK,GACvC,EAAE,WAAW,kBAAkB,CAEf;IAAG;GAAQ;EAE7B,KAAK;GACJ,GAAG,MAAM,MAAM;GAMf,OAAO;IAAE,WAAA,CAHR,EAAE,WAAW,eAFC,QAAQ,KAAK,OAAO,GAAG,YAEJ,EAAE,KAAK,GACxC,EAAE,WAAW,kBAAkB,CAEf;IAAG;GAAQ;EAE7B,KAAK;GACJ,GAAG,MAAM,QAAQ;GAGjB,OAAO;IAAE,WAAA,CADU,EAAE,WAAW,cADlB,QAAQ,KAAK,OAAO,GAAG,WACa,EAAE,KAAK,GAAG,EAAE,WAAW,kBAAkB,CAC1E;IAAG;GAAQ;EAE7B,KAAK;GACJ,GAAG,MAAM,SAAS;GAMlB,OAAO;IAAE,WAAA,CAHR,EAAE,WAAW,cAFC,QAAQ,KAAK,OAAO,GAAG,YAEL,EAAE,KAAK,GACvC,EAAE,WAAW,kBAAkB,CAEf;IAAG;GAAQ;CAE9B;AACD"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/motion/fade.ts","../../src/motion/measure.ts","../../src/motion/grow.ts","../../src/motion/slide.ts"],"sourcesContent":["import { type Animation } from \"@torpor/view\";\n\nexport default function fade(\n\t_el: HTMLElement,\n\toptions?: number | KeyframeAnimationOptions,\n): Animation {\n\tconst keyframes = [\n\t\t{\n\t\t\topacity: 0,\n\t\t},\n\t\t{\n\t\t\topacity: 1,\n\t\t},\n\t];\n\treturn { keyframes, options };\n}\n","/**\n * Measures an element before it is added to the DOM\n * @param el The element to measure\n * @param fn The function to use to get the desired measurement (e.g. el.offsetHeight)\n */\nexport default function measure(el: HTMLElement, fn: (_el: HTMLElement) => number): number {\n\t// From https://stackoverflow.com/a/46707458\n\tlet oldVisibility = el.style.visibility;\n\tlet oldPosition = el.style.position;\n\n\tlet oldParent = el.parentNode;\n\tlet oldBefore = el.nextSibling;\n\n\tel.style.visibility = \"hidden\";\n\tel.style.position = \"absolute\";\n\n\tdocument.body.appendChild(el);\n\tlet result = fn(el);\n\tel.parentNode!.removeChild(el);\n\n\t// Restore the styles unconditionally: transition functions call this with\n\t// a newly created element that isn't attached yet (oldParent is null), and\n\t// leaving the measuring styles on it would render it invisible\n\tel.style.visibility = oldVisibility;\n\tel.style.position = oldPosition;\n\n\tif (oldParent !== null) {\n\t\toldParent.insertBefore(el, oldBefore);\n\t}\n\n\treturn result;\n}\n","import { type Animation } from \"@torpor/view\";\nimport measure from \"./measure\";\n\nexport default function grow(\n\tel: HTMLElement,\n\toptions?: number | KeyframeAnimationOptions,\n): Animation {\n\tconst height = measure(el, (el) => el.clientHeight);\n\tconst keyframes = [\n\t\t{\n\t\t\theight: \"0px\",\n\t\t\toverflow: \"hidden\",\n\t\t\tpaddingTop: \"0px\",\n\t\t\tpaddingBottom: \"0px\",\n\t\t\tmarginTop: \"0px\",\n\t\t\tmarginBottom: \"0px\",\n\t\t},\n\t\t{\n\t\t\theight: height + \"px\",\n\t\t},\n\t];\n\treturn { keyframes, options };\n}\n","import { type Animation } from \"@torpor/view\";\nimport measure from \"./measure\";\n\ninterface Options extends KeyframeAnimationOptions {\n\tside: \"left\" | \"right\" | \"top\" | \"bottom\";\n}\n\nexport default function slide(el: HTMLElement, options?: Options): Animation {\n\tel.style.position = \"fixed\";\n\tswitch (options?.side ?? \"left\") {\n\t\tcase \"left\": {\n\t\t\tel.style.left = \"0px\";\n\t\t\tconst width = measure(el, (el) => el.offsetWidth);\n\t\t\tconst keyframes = [\n\t\t\t\t{ transform: `translateX(-${width}px)` },\n\t\t\t\t{ transform: \"translateX(0px)\" },\n\t\t\t];\n\t\t\treturn { keyframes, options };\n\t\t}\n\t\tcase \"top\": {\n\t\t\tel.style.top = \"0px\";\n\t\t\tconst height = measure(el, (el) => el.offsetHeight);\n\t\t\tconst keyframes = [\n\t\t\t\t{ transform: `translateY(-${height}px)` },\n\t\t\t\t{ transform: \"translateY(0px)\" },\n\t\t\t];\n\t\t\treturn { keyframes, options };\n\t\t}\n\t\tcase \"right\": {\n\t\t\tel.style.right = \"0px\";\n\t\t\tconst width = measure(el, (el) => el.offsetWidth);\n\t\t\tconst keyframes = [{ transform: `translateX(${width}px)` }, { transform: \"translateX(0px)\" }];\n\t\t\treturn { keyframes, options };\n\t\t}\n\t\tcase \"bottom\": {\n\t\t\tel.style.bottom = \"0px\";\n\t\t\tconst height = measure(el, (el) => el.offsetHeight);\n\t\t\tconst keyframes = [\n\t\t\t\t{ transform: `translateY(${height}px)` },\n\t\t\t\t{ transform: \"translateY(0px)\" },\n\t\t\t];\n\t\t\treturn { keyframes, options };\n\t\t}\n\t}\n}\n"],"mappings":";AAEA,SAAwB,KACvB,KACA,SACY;CASZ,OAAO;EAAE,WAAA,CAPR,EACC,SAAS,EACV,GACA,EACC,SAAS,EACV,CAEgB;EAAG;CAAQ;AAC7B;;;;;;;;ACVA,SAAwB,QAAQ,IAAiB,IAA0C;CAE1F,IAAI,gBAAgB,GAAG,MAAM;CAC7B,IAAI,cAAc,GAAG,MAAM;CAE3B,IAAI,YAAY,GAAG;CACnB,IAAI,YAAY,GAAG;CAEnB,GAAG,MAAM,aAAa;CACtB,GAAG,MAAM,WAAW;CAEpB,SAAS,KAAK,YAAY,EAAE;CAC5B,IAAI,SAAS,GAAG,EAAE;CAClB,GAAG,WAAY,YAAY,EAAE;CAK7B,GAAG,MAAM,aAAa;CACtB,GAAG,MAAM,WAAW;CAEpB,IAAI,cAAc,MACjB,UAAU,aAAa,IAAI,SAAS;CAGrC,OAAO;AACR;;;AC5BA,SAAwB,KACvB,IACA,SACY;CAeZ,OAAO;EAAE,WAAA,CAZR;GACC,QAAQ;GACR,UAAU;GACV,YAAY;GACZ,eAAe;GACf,WAAW;GACX,cAAc;EACf,GACA,EACC,QAXa,QAAQ,KAAK,OAAO,GAAG,YAWvB,IAAI,KAClB,CAEgB;EAAG;CAAQ;AAC7B;;;ACfA,SAAwB,MAAM,IAAiB,SAA8B;CAC5E,GAAG,MAAM,WAAW;CACpB,QAAQ,SAAS,QAAQ,QAAzB;EACC,KAAK;GACJ,GAAG,MAAM,OAAO;GAMhB,OAAO;IAAE,WAAA,CAHR,EAAE,WAAW,eAFA,QAAQ,KAAK,OAAO,GAAG,WAEJ,EAAE,KAAK,GACvC,EAAE,WAAW,kBAAkB,CAEf;IAAG;GAAQ;EAE7B,KAAK;GACJ,GAAG,MAAM,MAAM;GAMf,OAAO;IAAE,WAAA,CAHR,EAAE,WAAW,eAFC,QAAQ,KAAK,OAAO,GAAG,YAEJ,EAAE,KAAK,GACxC,EAAE,WAAW,kBAAkB,CAEf;IAAG;GAAQ;EAE7B,KAAK;GACJ,GAAG,MAAM,QAAQ;GAGjB,OAAO;IAAE,WAAA,CADU,EAAE,WAAW,cADlB,QAAQ,KAAK,OAAO,GAAG,WACa,EAAE,KAAK,GAAG,EAAE,WAAW,kBAAkB,CAC1E;IAAG;GAAQ;EAE7B,KAAK;GACJ,GAAG,MAAM,SAAS;GAMlB,OAAO;IAAE,WAAA,CAHR,EAAE,WAAW,cAFC,QAAQ,KAAK,OAAO,GAAG,YAEL,EAAE,KAAK,GACvC,EAAE,WAAW,kBAAkB,CAEf;IAAG;GAAQ;CAE9B;AACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@torpor/ui",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Accessible, unstyled components for use in your Torpor front-end",
5
5
  "type": "module",
6
6
  "exports": {
@@ -179,8 +179,8 @@
179
179
  "author": "",
180
180
  "license": "ISC",
181
181
  "dependencies": {
182
- "@torpor/unplugin": "^1.0.0",
183
- "@torpor/view": "^1.0.0"
182
+ "@torpor/unplugin": "^1.0.1",
183
+ "@torpor/view": "^1.0.1"
184
184
  },
185
185
  "devDependencies": {
186
186
  "@testing-library/dom": "^10.4.1",
@@ -196,8 +196,8 @@
196
196
  "vite": "npm:@voidzero-dev/vite-plus-core@0.2.7",
197
197
  "vite-plus": "0.2.7",
198
198
  "zod": "^4.4.3",
199
- "@torpor/prettier": "^1.0.0",
200
- "@torpor/check": "^1.0.0"
199
+ "@torpor/prettier": "^1.0.1",
200
+ "@torpor/check": "^1.0.1"
201
201
  },
202
202
  "scripts": {
203
203
  "build": "tsgo --noEmit && vp pack",