sinho 0.3.3 → 0.3.4

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sinho",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
4
4
  "description": "A lightweight signal-based library for building web components with a React-like API.",
5
5
  "keywords": [
6
6
  "ui",
package/src/component.ts CHANGED
@@ -348,7 +348,7 @@ declare abstract class ComponentInner<M extends Metadata> {
348
348
 
349
349
  export type Component<M extends Metadata = {}> = {
350
350
  -readonly [K in keyof Props<M>]: Props<M>[K] extends Signal<infer T>
351
- ? T
351
+ ? T | undefined
352
352
  : never;
353
353
  } & ComponentInner<M> &
354
354
  HTMLElement;
@@ -528,7 +528,14 @@ export const Component: ((tagName?: string) => ComponentConstructor<{}>) &
528
528
 
529
529
  Object.defineProperty(this, name, {
530
530
  get: getter.peek,
531
- set: (value) => setter(() => value, { force: true }),
531
+ set: (value) =>
532
+ setter(
533
+ () =>
534
+ !context && value === undefined
535
+ ? meta._defaultOrContext
536
+ : value,
537
+ { force: true },
538
+ ),
532
539
  });
533
540
  } else if (meta._tag == "e" && name.startsWith("on")) {
534
541
  const eventName = jsxPropNameToEventName(name as `on${string}`);
@@ -588,9 +595,7 @@ export const Component: ((tagName?: string) => ComponentConstructor<{}>) &
588
595
  this[prop.name as keyof this] =
589
596
  value != null
590
597
  ? prop.meta.attribute.transform.call(this, value)
591
- : isContext(prop.meta._defaultOrContext)
592
- ? undefined
593
- : prop.meta._defaultOrContext;
598
+ : undefined;
594
599
  }
595
600
  }
596
601
 
package/src/dom.ts CHANGED
@@ -30,7 +30,6 @@ import {
30
30
  type MaybeSignal,
31
31
  type RefSignalSetter,
32
32
  } from "./mod.js";
33
- import { isComponent } from "./component.js";
34
33
 
35
34
  const IS_NON_DIMENSIONAL =
36
35
  /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
@@ -555,10 +554,10 @@ interface HtmlProps<in E> extends DomProps<E> {
555
554
  }
556
555
 
557
556
  interface SvgProps<in E> extends HtmlProps<E> {
558
- accentHeight?: MaybeSignal<number | string | undefined>;
557
+ "accent-height"?: MaybeSignal<number | string | undefined>;
559
558
  accumulate?: MaybeSignal<"none" | "sum" | undefined>;
560
559
  additive?: MaybeSignal<"replace" | "sum" | undefined>;
561
- alignmentBaseline?: MaybeSignal<
560
+ "alignment-baseline"?: MaybeSignal<
562
561
  | "auto"
563
562
  | "baseline"
564
563
  | "before-edge"
@@ -574,36 +573,35 @@ interface SvgProps<in E> extends HtmlProps<E> {
574
573
  | "inherit"
575
574
  | undefined
576
575
  >;
577
- allowReorder?: MaybeSignal<"no" | "yes" | undefined>;
576
+ "allow-reorder"?: MaybeSignal<"no" | "yes" | undefined>;
578
577
  alphabetic?: MaybeSignal<number | string | undefined>;
579
578
  amplitude?: MaybeSignal<number | string | undefined>;
580
- arabicForm?: MaybeSignal<
579
+ "arabic-form"?: MaybeSignal<
581
580
  "initial" | "medial" | "terminal" | "isolated" | undefined
582
581
  >;
583
582
  ascent?: MaybeSignal<number | string | undefined>;
584
583
  attributeName?: MaybeSignal<string | undefined>;
585
584
  attributeType?: MaybeSignal<string | undefined>;
586
- autoReverse?: MaybeSignal<number | string | undefined>;
587
585
  azimuth?: MaybeSignal<number | string | undefined>;
588
586
  baseFrequency?: MaybeSignal<number | string | undefined>;
589
- baselineShift?: MaybeSignal<number | string | undefined>;
587
+ "baseline-shift"?: MaybeSignal<number | string | undefined>;
590
588
  baseProfile?: MaybeSignal<number | string | undefined>;
591
589
  bbox?: MaybeSignal<number | string | undefined>;
592
590
  begin?: MaybeSignal<number | string | undefined>;
593
591
  bias?: MaybeSignal<number | string | undefined>;
594
592
  by?: MaybeSignal<number | string | undefined>;
595
593
  calcMode?: MaybeSignal<number | string | undefined>;
596
- capHeight?: MaybeSignal<number | string | undefined>;
594
+ "cap-height"?: MaybeSignal<number | string | undefined>;
597
595
  clip?: MaybeSignal<number | string | undefined>;
598
- clipPath?: MaybeSignal<string | undefined>;
596
+ "clip-path"?: MaybeSignal<string | undefined>;
599
597
  clipPathUnits?: MaybeSignal<number | string | undefined>;
600
- clipRule?: MaybeSignal<number | string | undefined>;
601
- colorInterpolation?: MaybeSignal<number | string | undefined>;
602
- colorInterpolationFilters?: MaybeSignal<
598
+ "clip-rule"?: MaybeSignal<number | string | undefined>;
599
+ "color-interpolation"?: MaybeSignal<number | string | undefined>;
600
+ "color-interpolation-filters"?: MaybeSignal<
603
601
  "auto" | "sRGB" | "linearRGB" | "inherit" | undefined
604
602
  >;
605
- colorProfile?: MaybeSignal<number | string | undefined>;
606
- colorRendering?: MaybeSignal<number | string | undefined>;
603
+ "color-profile"?: MaybeSignal<number | string | undefined>;
604
+ "color-rendering"?: MaybeSignal<number | string | undefined>;
607
605
  contentScriptType?: MaybeSignal<number | string | undefined>;
608
606
  contentStyleType?: MaybeSignal<number | string | undefined>;
609
607
  cursor?: MaybeSignal<number | string | undefined>;
@@ -616,49 +614,49 @@ interface SvgProps<in E> extends HtmlProps<E> {
616
614
  direction?: MaybeSignal<number | string | undefined>;
617
615
  display?: MaybeSignal<number | string | undefined>;
618
616
  divisor?: MaybeSignal<number | string | undefined>;
619
- dominantBaseline?: MaybeSignal<number | string | undefined>;
617
+ "dominant-baseline"?: MaybeSignal<number | string | undefined>;
620
618
  dur?: MaybeSignal<number | string | undefined>;
621
619
  dx?: MaybeSignal<number | string | undefined>;
622
620
  dy?: MaybeSignal<number | string | undefined>;
623
621
  edgeMode?: MaybeSignal<number | string | undefined>;
624
622
  elevation?: MaybeSignal<number | string | undefined>;
625
- enableBackground?: MaybeSignal<number | string | undefined>;
623
+ "enable-background"?: MaybeSignal<number | string | undefined>;
626
624
  end?: MaybeSignal<number | string | undefined>;
627
625
  exponent?: MaybeSignal<number | string | undefined>;
628
626
  externalResourcesRequired?: MaybeSignal<number | string | undefined>;
629
627
  fill?: MaybeSignal<string | undefined>;
630
- fillOpacity?: MaybeSignal<number | string | undefined>;
631
- fillRule?: MaybeSignal<"nonzero" | "evenodd" | "inherit" | undefined>;
628
+ "fill-opacity"?: MaybeSignal<number | string | undefined>;
629
+ "fill-rule"?: MaybeSignal<"nonzero" | "evenodd" | "inherit" | undefined>;
632
630
  filter?: MaybeSignal<string | undefined>;
633
631
  filterRes?: MaybeSignal<number | string | undefined>;
634
632
  filterUnits?: MaybeSignal<number | string | undefined>;
635
- floodColor?: MaybeSignal<number | string | undefined>;
636
- floodOpacity?: MaybeSignal<number | string | undefined>;
633
+ "flood-color"?: MaybeSignal<number | string | undefined>;
634
+ "flood-opacity"?: MaybeSignal<number | string | undefined>;
637
635
  focusable?: MaybeSignal<number | string | undefined>;
638
- fontFamily?: MaybeSignal<string | undefined>;
639
- fontSize?: MaybeSignal<number | string | undefined>;
640
- fontSizeAdjust?: MaybeSignal<number | string | undefined>;
641
- fontStretch?: MaybeSignal<number | string | undefined>;
642
- fontStyle?: MaybeSignal<number | string | undefined>;
643
- fontVariant?: MaybeSignal<number | string | undefined>;
644
- fontWeight?: MaybeSignal<number | string | undefined>;
636
+ "font-family"?: MaybeSignal<string | undefined>;
637
+ "font-size"?: MaybeSignal<number | string | undefined>;
638
+ "font-size-adjust"?: MaybeSignal<number | string | undefined>;
639
+ "font-stretch"?: MaybeSignal<number | string | undefined>;
640
+ "font-style"?: MaybeSignal<number | string | undefined>;
641
+ "font-variant"?: MaybeSignal<number | string | undefined>;
642
+ "font-weight"?: MaybeSignal<number | string | undefined>;
645
643
  format?: MaybeSignal<number | string | undefined>;
646
644
  from?: MaybeSignal<number | string | undefined>;
647
645
  fx?: MaybeSignal<number | string | undefined>;
648
646
  fy?: MaybeSignal<number | string | undefined>;
649
647
  g1?: MaybeSignal<number | string | undefined>;
650
648
  g2?: MaybeSignal<number | string | undefined>;
651
- glyphName?: MaybeSignal<number | string | undefined>;
652
- glyphOrientationHorizontal?: MaybeSignal<number | string | undefined>;
653
- glyphOrientationVertical?: MaybeSignal<number | string | undefined>;
649
+ "glyph-name"?: MaybeSignal<number | string | undefined>;
650
+ "glyph-orientation-horizontal"?: MaybeSignal<number | string | undefined>;
651
+ "glyph-orientation-vertical"?: MaybeSignal<number | string | undefined>;
654
652
  glyphRef?: MaybeSignal<number | string | undefined>;
655
653
  gradientTransform?: MaybeSignal<string | undefined>;
656
654
  gradientUnits?: MaybeSignal<string | undefined>;
657
655
  hanging?: MaybeSignal<number | string | undefined>;
658
- horizAdvX?: MaybeSignal<number | string | undefined>;
659
- horizOriginX?: MaybeSignal<number | string | undefined>;
656
+ "horiz-adv-x"?: MaybeSignal<number | string | undefined>;
657
+ "horiz-origin-x"?: MaybeSignal<number | string | undefined>;
660
658
  ideographic?: MaybeSignal<number | string | undefined>;
661
- imageRendering?: MaybeSignal<number | string | undefined>;
659
+ "image-rendering"?: MaybeSignal<number | string | undefined>;
662
660
  in2?: MaybeSignal<number | string | undefined>;
663
661
  in?: MaybeSignal<string | undefined>;
664
662
  intercept?: MaybeSignal<number | string | undefined>;
@@ -674,14 +672,14 @@ interface SvgProps<in E> extends HtmlProps<E> {
674
672
  keySplines?: MaybeSignal<number | string | undefined>;
675
673
  keyTimes?: MaybeSignal<number | string | undefined>;
676
674
  lengthAdjust?: MaybeSignal<number | string | undefined>;
677
- letterSpacing?: MaybeSignal<number | string | undefined>;
678
- lightingColor?: MaybeSignal<number | string | undefined>;
675
+ "letter-spacing"?: MaybeSignal<number | string | undefined>;
676
+ "lighting-color"?: MaybeSignal<number | string | undefined>;
679
677
  limitingConeAngle?: MaybeSignal<number | string | undefined>;
680
678
  local?: MaybeSignal<number | string | undefined>;
681
- markerEnd?: MaybeSignal<string | undefined>;
679
+ "marker-end"?: MaybeSignal<string | undefined>;
682
680
  markerHeight?: MaybeSignal<number | string | undefined>;
683
- markerMid?: MaybeSignal<string | undefined>;
684
- markerStart?: MaybeSignal<string | undefined>;
681
+ "marker-mid"?: MaybeSignal<string | undefined>;
682
+ "marker-start"?: MaybeSignal<string | undefined>;
685
683
  markerUnits?: MaybeSignal<number | string | undefined>;
686
684
  markerWidth?: MaybeSignal<number | string | undefined>;
687
685
  mask?: MaybeSignal<string | undefined>;
@@ -698,15 +696,15 @@ interface SvgProps<in E> extends HtmlProps<E> {
698
696
  orientation?: MaybeSignal<number | string | undefined>;
699
697
  origin?: MaybeSignal<number | string | undefined>;
700
698
  overflow?: MaybeSignal<number | string | undefined>;
701
- overlinePosition?: MaybeSignal<number | string | undefined>;
702
- overlineThickness?: MaybeSignal<number | string | undefined>;
703
- paintOrder?: MaybeSignal<number | string | undefined>;
704
- panose1?: MaybeSignal<number | string | undefined>;
699
+ "overline-position"?: MaybeSignal<number | string | undefined>;
700
+ "overline-thickness"?: MaybeSignal<number | string | undefined>;
701
+ "paint-order"?: MaybeSignal<number | string | undefined>;
702
+ "panose-1"?: MaybeSignal<number | string | undefined>;
705
703
  pathLength?: MaybeSignal<number | string | undefined>;
706
704
  patternContentUnits?: MaybeSignal<string | undefined>;
707
705
  patternTransform?: MaybeSignal<number | string | undefined>;
708
706
  patternUnits?: MaybeSignal<string | undefined>;
709
- pointerEvents?: MaybeSignal<number | string | undefined>;
707
+ "pointer-events"?: MaybeSignal<number | string | undefined>;
710
708
  points?: MaybeSignal<string | undefined>;
711
709
  pointsAtX?: MaybeSignal<number | string | undefined>;
712
710
  pointsAtY?: MaybeSignal<number | string | undefined>;
@@ -718,7 +716,7 @@ interface SvgProps<in E> extends HtmlProps<E> {
718
716
  radius?: MaybeSignal<number | string | undefined>;
719
717
  refX?: MaybeSignal<number | string | undefined>;
720
718
  refY?: MaybeSignal<number | string | undefined>;
721
- renderingIntent?: MaybeSignal<number | string | undefined>;
719
+ "rendering-intent"?: MaybeSignal<number | string | undefined>;
722
720
  repeatCount?: MaybeSignal<number | string | undefined>;
723
721
  repeatDur?: MaybeSignal<number | string | undefined>;
724
722
  requiredExtensions?: MaybeSignal<number | string | undefined>;
@@ -730,7 +728,7 @@ interface SvgProps<in E> extends HtmlProps<E> {
730
728
  ry?: MaybeSignal<number | string | undefined>;
731
729
  scale?: MaybeSignal<number | string | undefined>;
732
730
  seed?: MaybeSignal<number | string | undefined>;
733
- shapeRendering?: MaybeSignal<number | string | undefined>;
731
+ "shape-rendering"?: MaybeSignal<number | string | undefined>;
734
732
  slope?: MaybeSignal<number | string | undefined>;
735
733
  spacing?: MaybeSignal<number | string | undefined>;
736
734
  specularConstant?: MaybeSignal<number | string | undefined>;
@@ -742,23 +740,23 @@ interface SvgProps<in E> extends HtmlProps<E> {
742
740
  stemh?: MaybeSignal<number | string | undefined>;
743
741
  stemv?: MaybeSignal<number | string | undefined>;
744
742
  stitchTiles?: MaybeSignal<number | string | undefined>;
745
- stopColor?: MaybeSignal<string | undefined>;
746
- stopOpacity?: MaybeSignal<number | string | undefined>;
747
- strikethroughPosition?: MaybeSignal<number | string | undefined>;
748
- strikethroughThickness?: MaybeSignal<number | string | undefined>;
743
+ "stop-color"?: MaybeSignal<string | undefined>;
744
+ "stop-opacity"?: MaybeSignal<number | string | undefined>;
745
+ "strikethrough-position"?: MaybeSignal<number | string | undefined>;
746
+ "strikethrough-thickness"?: MaybeSignal<number | string | undefined>;
749
747
  string?: MaybeSignal<number | string | undefined>;
750
748
  stroke?: MaybeSignal<string | undefined>;
751
- strokeDasharray?: MaybeSignal<number | string | undefined>;
752
- strokeDashoffset?: MaybeSignal<number | string | undefined>;
753
- strokeLinecap?: MaybeSignal<
749
+ "stroke-dasharray"?: MaybeSignal<number | string | undefined>;
750
+ "stroke-dashoffset"?: MaybeSignal<number | string | undefined>;
751
+ "stroke-linecap"?: MaybeSignal<
754
752
  "butt" | "round" | "square" | "inherit" | undefined
755
753
  >;
756
- strokeLinejoin?: MaybeSignal<
754
+ "stroke-linejoin"?: MaybeSignal<
757
755
  "miter" | "round" | "bevel" | "inherit" | undefined
758
756
  >;
759
- strokeMiterlimit?: MaybeSignal<number | string | undefined>;
760
- strokeOpacity?: MaybeSignal<number | string | undefined>;
761
- strokeWidth?: MaybeSignal<number | string | undefined>;
757
+ "stroke-miterlimit"?: MaybeSignal<number | string | undefined>;
758
+ "stroke-opacity"?: MaybeSignal<number | string | undefined>;
759
+ "stroke-width"?: MaybeSignal<number | string | undefined>;
762
760
  surfaceScale?: MaybeSignal<number | string | undefined>;
763
761
  systemLanguage?: MaybeSignal<number | string | undefined>;
764
762
  tableValues?: MaybeSignal<number | string | undefined>;
@@ -770,47 +768,36 @@ interface SvgProps<in E> extends HtmlProps<E> {
770
768
  textRendering?: MaybeSignal<number | string | undefined>;
771
769
  to?: MaybeSignal<number | string | undefined>;
772
770
  transform?: MaybeSignal<string | undefined>;
771
+ "transform-origin"?: MaybeSignal<string | undefined>;
773
772
  u1?: MaybeSignal<number | string | undefined>;
774
773
  u2?: MaybeSignal<number | string | undefined>;
775
- underlinePosition?: MaybeSignal<number | string | undefined>;
776
- underlineThickness?: MaybeSignal<number | string | undefined>;
774
+ "underline-position"?: MaybeSignal<number | string | undefined>;
775
+ "underline-thickness"?: MaybeSignal<number | string | undefined>;
777
776
  unicode?: MaybeSignal<number | string | undefined>;
778
- unicodeBidi?: MaybeSignal<number | string | undefined>;
779
- unicodeRange?: MaybeSignal<number | string | undefined>;
780
- unitsPerEm?: MaybeSignal<number | string | undefined>;
781
- vAlphabetic?: MaybeSignal<number | string | undefined>;
777
+ "unicode-bidi"?: MaybeSignal<number | string | undefined>;
778
+ "unicode-range"?: MaybeSignal<number | string | undefined>;
779
+ "units-per-em"?: MaybeSignal<number | string | undefined>;
780
+ "v-alphabetic"?: MaybeSignal<number | string | undefined>;
782
781
  values?: MaybeSignal<string | undefined>;
783
782
  vectorEffect?: MaybeSignal<number | string | undefined>;
784
783
  version?: MaybeSignal<string | undefined>;
785
- vertAdvY?: MaybeSignal<number | string | undefined>;
786
- vertOriginX?: MaybeSignal<number | string | undefined>;
787
- vertOriginY?: MaybeSignal<number | string | undefined>;
788
- vHanging?: MaybeSignal<number | string | undefined>;
789
- vIdeographic?: MaybeSignal<number | string | undefined>;
784
+ "vert-adv-y"?: MaybeSignal<number | string | undefined>;
785
+ "vert-origin-x"?: MaybeSignal<number | string | undefined>;
786
+ "vert-origin-y"?: MaybeSignal<number | string | undefined>;
787
+ "v-hanging"?: MaybeSignal<number | string | undefined>;
788
+ "v-ideographic"?: MaybeSignal<number | string | undefined>;
790
789
  viewBox?: MaybeSignal<string | undefined>;
791
790
  viewTarget?: MaybeSignal<number | string | undefined>;
792
791
  visibility?: MaybeSignal<number | string | undefined>;
793
- vMathematical?: MaybeSignal<number | string | undefined>;
792
+ "v-mathematical"?: MaybeSignal<number | string | undefined>;
794
793
  widths?: MaybeSignal<number | string | undefined>;
795
- wordSpacing?: MaybeSignal<number | string | undefined>;
794
+ "word-spacing"?: MaybeSignal<number | string | undefined>;
796
795
  writingMode?: MaybeSignal<number | string | undefined>;
797
796
  x1?: MaybeSignal<number | string | undefined>;
798
797
  x2?: MaybeSignal<number | string | undefined>;
799
798
  x?: MaybeSignal<number | string | undefined>;
800
799
  xChannelSelector?: MaybeSignal<string | undefined>;
801
- xHeight?: MaybeSignal<number | string | undefined>;
802
- xlinkActuate?: MaybeSignal<string | undefined>;
803
- xlinkArcrole?: MaybeSignal<string | undefined>;
804
- xlinkHref?: MaybeSignal<string | undefined>;
805
- xlinkRole?: MaybeSignal<string | undefined>;
806
- xlinkShow?: MaybeSignal<string | undefined>;
807
- xlinkTitle?: MaybeSignal<string | undefined>;
808
- xlinkType?: MaybeSignal<string | undefined>;
809
- xmlBase?: MaybeSignal<string | undefined>;
810
- xmlLang?: MaybeSignal<string | undefined>;
811
- xmlns?: MaybeSignal<string | undefined>;
812
- xmlnsXlink?: MaybeSignal<string | undefined>;
813
- xmlSpace?: MaybeSignal<string | undefined>;
800
+ "x-height"?: MaybeSignal<number | string | undefined>;
814
801
  y1?: MaybeSignal<number | string | undefined>;
815
802
  y2?: MaybeSignal<number | string | undefined>;
816
803
  y?: MaybeSignal<number | string | undefined>;
@@ -31,7 +31,8 @@
31
31
  }
32
32
  },
33
33
  "..": {
34
- "version": "0.3.1",
34
+ "name": "sinho",
35
+ "version": "0.3.3",
35
36
  "license": "MIT",
36
37
  "devDependencies": {
37
38
  "@happy-dom/global-registrator": "^20.8.7",
@@ -182,7 +183,6 @@
182
183
  "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.50.0.tgz",
183
184
  "integrity": "sha512-Jc360x4yqb3eEg4OY4KEIdGePBxZogivKI+OGIU8aLXgAYPTECvzeOBc90312yHA1hr3AeRlAFl0rIc8lQaIrQ==",
184
185
  "license": "MIT",
185
- "peer": true,
186
186
  "dependencies": {
187
187
  "@algolia/client-common": "5.50.0",
188
188
  "@algolia/requester-browser-xhr": "5.50.0",
@@ -308,7 +308,6 @@
308
308
  "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
309
309
  "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
310
310
  "license": "MIT",
311
- "peer": true,
312
311
  "dependencies": {
313
312
  "@babel/code-frame": "^7.29.0",
314
313
  "@babel/generator": "^7.29.0",
@@ -2111,7 +2110,6 @@
2111
2110
  }
2112
2111
  ],
2113
2112
  "license": "MIT",
2114
- "peer": true,
2115
2113
  "engines": {
2116
2114
  "node": ">=18"
2117
2115
  },
@@ -2134,7 +2132,6 @@
2134
2132
  }
2135
2133
  ],
2136
2134
  "license": "MIT",
2137
- "peer": true,
2138
2135
  "engines": {
2139
2136
  "node": ">=18"
2140
2137
  }
@@ -2244,7 +2241,6 @@
2244
2241
  "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
2245
2242
  "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
2246
2243
  "license": "MIT",
2247
- "peer": true,
2248
2244
  "dependencies": {
2249
2245
  "cssesc": "^3.0.0",
2250
2246
  "util-deprecate": "^1.0.2"
@@ -2666,7 +2662,6 @@
2666
2662
  "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
2667
2663
  "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
2668
2664
  "license": "MIT",
2669
- "peer": true,
2670
2665
  "dependencies": {
2671
2666
  "cssesc": "^3.0.0",
2672
2667
  "util-deprecate": "^1.0.2"
@@ -3466,7 +3461,6 @@
3466
3461
  "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.9.2.tgz",
3467
3462
  "integrity": "sha512-HbjwKeC+pHUFBfLMNzuSjqFE/58+rLVKmOU3lxQrpsxLBOGosYco/Q0GduBb0/jEMRiyEqjNT/01rRdOMWq5pw==",
3468
3463
  "license": "MIT",
3469
- "peer": true,
3470
3464
  "dependencies": {
3471
3465
  "@docusaurus/babel": "3.9.2",
3472
3466
  "@docusaurus/bundler": "3.9.2",
@@ -3556,7 +3550,6 @@
3556
3550
  "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.9.2.tgz",
3557
3551
  "integrity": "sha512-wiYoGwF9gdd6rev62xDU8AAM8JuLI/hlwOtCzMmYcspEkzecKrP8J8X+KpYnTlACBUUtXNJpSoCwFWJhLRevzQ==",
3558
3552
  "license": "MIT",
3559
- "peer": true,
3560
3553
  "dependencies": {
3561
3554
  "@docusaurus/logger": "3.9.2",
3562
3555
  "@docusaurus/utils": "3.9.2",
@@ -3649,7 +3642,6 @@
3649
3642
  "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz",
3650
3643
  "integrity": "sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==",
3651
3644
  "license": "MIT",
3652
- "peer": true,
3653
3645
  "dependencies": {
3654
3646
  "@docusaurus/core": "3.9.2",
3655
3647
  "@docusaurus/logger": "3.9.2",
@@ -4648,7 +4640,6 @@
4648
4640
  "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz",
4649
4641
  "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==",
4650
4642
  "license": "MIT",
4651
- "peer": true,
4652
4643
  "dependencies": {
4653
4644
  "@types/mdx": "^2.0.0"
4654
4645
  },
@@ -5112,7 +5103,6 @@
5112
5103
  "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz",
5113
5104
  "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
5114
5105
  "license": "MIT",
5115
- "peer": true,
5116
5106
  "dependencies": {
5117
5107
  "@babel/core": "^7.21.3",
5118
5108
  "@svgr/babel-preset": "8.1.0",
@@ -5472,7 +5462,6 @@
5472
5462
  "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
5473
5463
  "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
5474
5464
  "license": "MIT",
5475
- "peer": true,
5476
5465
  "dependencies": {
5477
5466
  "csstype": "^3.2.2"
5478
5467
  }
@@ -5814,7 +5803,6 @@
5814
5803
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
5815
5804
  "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
5816
5805
  "license": "MIT",
5817
- "peer": true,
5818
5806
  "bin": {
5819
5807
  "acorn": "bin/acorn"
5820
5808
  },
@@ -5882,7 +5870,6 @@
5882
5870
  "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
5883
5871
  "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
5884
5872
  "license": "MIT",
5885
- "peer": true,
5886
5873
  "dependencies": {
5887
5874
  "fast-deep-equal": "^3.1.3",
5888
5875
  "fast-uri": "^3.0.1",
@@ -5928,7 +5915,6 @@
5928
5915
  "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.50.0.tgz",
5929
5916
  "integrity": "sha512-yE5I83Q2s8euVou8Y3feXK08wyZInJWLYXgWO6Xti9jBUEZAGUahyeQ7wSZWkifLWVnQVKEz5RAmBlXG5nqxog==",
5930
5917
  "license": "MIT",
5931
- "peer": true,
5932
5918
  "dependencies": {
5933
5919
  "@algolia/abtesting": "1.16.0",
5934
5920
  "@algolia/client-abtesting": "5.50.0",
@@ -6368,9 +6354,9 @@
6368
6354
  }
6369
6355
  },
6370
6356
  "node_modules/brace-expansion": {
6371
- "version": "1.1.12",
6372
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
6373
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
6357
+ "version": "1.1.13",
6358
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
6359
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
6374
6360
  "license": "MIT",
6375
6361
  "dependencies": {
6376
6362
  "balanced-match": "^1.0.0",
@@ -6408,7 +6394,6 @@
6408
6394
  }
6409
6395
  ],
6410
6396
  "license": "MIT",
6411
- "peer": true,
6412
6397
  "dependencies": {
6413
6398
  "baseline-browser-mapping": "^2.9.0",
6414
6399
  "caniuse-lite": "^1.0.30001759",
@@ -7374,7 +7359,6 @@
7374
7359
  "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
7375
7360
  "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
7376
7361
  "license": "MIT",
7377
- "peer": true,
7378
7362
  "dependencies": {
7379
7363
  "cssesc": "^3.0.0",
7380
7364
  "util-deprecate": "^1.0.2"
@@ -8568,9 +8552,9 @@
8568
8552
  "license": "MIT"
8569
8553
  },
8570
8554
  "node_modules/express/node_modules/path-to-regexp": {
8571
- "version": "0.1.12",
8572
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
8573
- "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
8555
+ "version": "0.1.13",
8556
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz",
8557
+ "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==",
8574
8558
  "license": "MIT"
8575
8559
  },
8576
8560
  "node_modules/express/node_modules/range-parser": {
@@ -8739,7 +8723,6 @@
8739
8723
  "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
8740
8724
  "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
8741
8725
  "license": "MIT",
8742
- "peer": true,
8743
8726
  "dependencies": {
8744
8727
  "fast-deep-equal": "^3.1.1",
8745
8728
  "fast-json-stable-stringify": "^2.0.0",
@@ -13006,8 +12989,7 @@
13006
12989
  "version": "0.48.0",
13007
12990
  "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.48.0.tgz",
13008
12991
  "integrity": "sha512-goSDElNqFfw7iDHMg8WDATkfcyeLTNpBHQpO8incK6p5qZt5G/1j41X0xdGzpIkGojGXM+QiRQyLjnfDVvrpwA==",
13009
- "license": "MIT",
13010
- "peer": true
12992
+ "license": "MIT"
13011
12993
  },
13012
12994
  "node_modules/monaco-editor-webpack-plugin": {
13013
12995
  "version": "7.1.1",
@@ -13190,7 +13172,6 @@
13190
13172
  "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
13191
13173
  "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
13192
13174
  "license": "MIT",
13193
- "peer": true,
13194
13175
  "dependencies": {
13195
13176
  "fast-deep-equal": "^3.1.1",
13196
13177
  "fast-json-stable-stringify": "^2.0.0",
@@ -13723,7 +13704,6 @@
13723
13704
  }
13724
13705
  ],
13725
13706
  "license": "MIT",
13726
- "peer": true,
13727
13707
  "dependencies": {
13728
13708
  "nanoid": "^3.3.11",
13729
13709
  "picocolors": "^1.1.1",
@@ -14627,7 +14607,6 @@
14627
14607
  "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
14628
14608
  "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
14629
14609
  "license": "MIT",
14630
- "peer": true,
14631
14610
  "dependencies": {
14632
14611
  "cssesc": "^3.0.0",
14633
14612
  "util-deprecate": "^1.0.2"
@@ -15444,7 +15423,6 @@
15444
15423
  "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
15445
15424
  "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
15446
15425
  "license": "MIT",
15447
- "peer": true,
15448
15426
  "dependencies": {
15449
15427
  "loose-envify": "^1.1.0"
15450
15428
  },
@@ -15457,7 +15435,6 @@
15457
15435
  "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
15458
15436
  "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
15459
15437
  "license": "MIT",
15460
- "peer": true,
15461
15438
  "dependencies": {
15462
15439
  "loose-envify": "^1.1.0",
15463
15440
  "scheduler": "^0.23.2"
@@ -15514,7 +15491,6 @@
15514
15491
  "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz",
15515
15492
  "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==",
15516
15493
  "license": "MIT",
15517
- "peer": true,
15518
15494
  "dependencies": {
15519
15495
  "@types/react": "*"
15520
15496
  },
@@ -15543,7 +15519,6 @@
15543
15519
  "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz",
15544
15520
  "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==",
15545
15521
  "license": "MIT",
15546
- "peer": true,
15547
15522
  "dependencies": {
15548
15523
  "@babel/runtime": "^7.12.13",
15549
15524
  "history": "^4.9.0",
@@ -17311,8 +17286,7 @@
17311
17286
  "version": "2.8.1",
17312
17287
  "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
17313
17288
  "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
17314
- "license": "0BSD",
17315
- "peer": true
17289
+ "license": "0BSD"
17316
17290
  },
17317
17291
  "node_modules/tsyringe": {
17318
17292
  "version": "4.10.0",
@@ -17393,7 +17367,6 @@
17393
17367
  "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
17394
17368
  "devOptional": true,
17395
17369
  "license": "Apache-2.0",
17396
- "peer": true,
17397
17370
  "bin": {
17398
17371
  "tsc": "bin/tsc",
17399
17372
  "tsserver": "bin/tsserver"
@@ -17735,7 +17708,6 @@
17735
17708
  "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
17736
17709
  "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
17737
17710
  "license": "MIT",
17738
- "peer": true,
17739
17711
  "dependencies": {
17740
17712
  "fast-deep-equal": "^3.1.1",
17741
17713
  "fast-json-stable-stringify": "^2.0.0",
@@ -17934,7 +17906,6 @@
17934
17906
  "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.4.tgz",
17935
17907
  "integrity": "sha512-jTywjboN9aHxFlToqb0K0Zs9SbBoW4zRUlGzI2tYNxVYcEi/IPpn+Xi4ye5jTLvX2YeLuic/IvxNot+Q1jMoOw==",
17936
17908
  "license": "MIT",
17937
- "peer": true,
17938
17909
  "dependencies": {
17939
17910
  "@types/eslint-scope": "^3.7.7",
17940
17911
  "@types/estree": "^1.0.8",
@@ -54,7 +54,7 @@ export default function Home(): JSX.Element {
54
54
  <CodeBlock language="tsx">{`\
55
55
  import { Component, useSignal } from "sinho";
56
56
 
57
- class Counter extends Component("x-counter") {
57
+ class MyCounter extends Component() {
58
58
  render() {
59
59
  const [value, setValue] = useSignal(0);
60
60
 
@@ -70,7 +70,7 @@ class Counter extends Component("x-counter") {
70
70
  }
71
71
  }`}</CodeBlock>
72
72
 
73
- <CodeSnippetComponentPlayground componentName="Counter" />
73
+ <CodeSnippetComponentPlayground componentName="MyCounter" />
74
74
  </main>
75
75
  </Layout>
76
76
  );