@jackcrane/ui 0.1.25 → 0.1.26

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.
@@ -8,8 +8,10 @@
8
8
  * @param {string} props.variant
9
9
  * @param {string} props.size
10
10
  * @param {boolean} props.disabled
11
+ * @param {string} props.label
12
+ * @param {string} props.id
11
13
  */
12
- export default function SelectInput({ options, value, onValueChange, variant, size, disabled, chamfer, loading, }: {
14
+ export default function SelectInput({ options, value, onValueChange, variant, size, disabled, chamfer, loading, label, id, }: {
13
15
  options: Array<{
14
16
  value: string;
15
17
  label: string;
@@ -20,4 +22,6 @@ export default function SelectInput({ options, value, onValueChange, variant, si
20
22
  variant: string;
21
23
  size: string;
22
24
  disabled: boolean;
25
+ label: string;
26
+ id: string;
23
27
  }): import("react/jsx-runtime").JSX.Element;
package/dist/jcui.cjs.js CHANGED
@@ -1046,7 +1046,7 @@ div.jcui_chamfer:not(.jcui_disabled):focus-within {
1046
1046
  inherits: true;
1047
1047
  initial-value: transparent;
1048
1048
  }
1049
- ._trigger_dqtrb_7 {
1049
+ ._trigger_1m0ut_7 {
1050
1050
  display: inline-flex;
1051
1051
  align-items: center;
1052
1052
  justify-content: space-between;
@@ -1058,104 +1058,111 @@ div.jcui_chamfer:not(.jcui_disabled):focus-within {
1058
1058
  border: var(--border-thickness) solid var(--border-color);
1059
1059
  cursor: pointer;
1060
1060
  }
1061
- ._trigger_dqtrb_7:hover {
1061
+ ._trigger_1m0ut_7:hover {
1062
1062
  --select-bg: var(--secondary-color-100);
1063
1063
  }
1064
- ._trigger_dqtrb_7:active {
1064
+ ._trigger_1m0ut_7:active {
1065
1065
  --select-bg: var(--secondary-color-200);
1066
1066
  }
1067
- ._large_dqtrb_31 {
1067
+ ._large_1m0ut_31 {
1068
1068
  font-size: 1.25rem;
1069
1069
  padding: 0.75rem 1.25rem;
1070
1070
  }
1071
- ._small_dqtrb_36 {
1071
+ ._small_1m0ut_36 {
1072
1072
  font-size: 0.75rem;
1073
1073
  padding: 0.25rem 0.5rem;
1074
1074
  }
1075
- ._disabled_dqtrb_41 {
1075
+ ._disabled_1m0ut_41 {
1076
1076
  opacity: 0.5;
1077
1077
  cursor: not-allowed;
1078
1078
  }
1079
- ._icon_dqtrb_46 {
1079
+ ._icon_1m0ut_46 {
1080
1080
  opacity: 0.7;
1081
1081
  }
1082
1082
  /* Dropdown */
1083
- ._content_dqtrb_52 {
1083
+ ._content_1m0ut_52 {
1084
1084
  background-color: var(--body-bg);
1085
1085
  border: var(--border-thickness) solid var(--border-color);
1086
1086
  z-index: 110;
1087
1087
  }
1088
- ._item_dqtrb_58 {
1088
+ ._item_1m0ut_58 {
1089
1089
  padding: 0.4rem 0.6rem;
1090
1090
  font-size: 0.875rem;
1091
1091
  cursor: pointer;
1092
1092
  outline: none;
1093
1093
  }
1094
- ._item_dqtrb_58[data-highlighted] {
1094
+ ._item_1m0ut_58[data-highlighted] {
1095
1095
  background-color: var(--secondary-color-100);
1096
1096
  }
1097
- ._item_dqtrb_58[data-state="checked"] {
1097
+ ._item_1m0ut_58[data-state="checked"] {
1098
1098
  background-color: var(--secondary-color-200);
1099
1099
  }
1100
- ._item_dqtrb_58[data-disabled] {
1100
+ ._item_1m0ut_58[data-disabled] {
1101
1101
  opacity: 0.4;
1102
1102
  pointer-events: none;
1103
1103
  }
1104
1104
  /* Variants (match Button) */
1105
- ._primary_dqtrb_80 {
1105
+ ._primary_1m0ut_80 {
1106
1106
  --select-bg: var(--primary-color-100);
1107
1107
  --border-color: var(--primary-color-300);
1108
1108
  --button-color: var(--primary-color-800);
1109
1109
  --border-accent-color: var(--primary-color-600);
1110
1110
  }
1111
- ._primary_dqtrb_80:hover {
1111
+ ._primary_1m0ut_80:hover {
1112
1112
  --select-bg: var(--primary-color-200);
1113
1113
  }
1114
- ._success_dqtrb_90 {
1114
+ ._success_1m0ut_90 {
1115
1115
  --select-bg: var(--success-color-100);
1116
1116
  --border-color: var(--success-color-300);
1117
1117
  --button-color: var(--success-color-800);
1118
1118
  --border-accent-color: var(--success-color-600);
1119
1119
  }
1120
- ._success_dqtrb_90:hover {
1120
+ ._success_1m0ut_90:hover {
1121
1121
  --select-bg: var(--success-color-200);
1122
1122
  }
1123
- ._warning_dqtrb_100 {
1123
+ ._warning_1m0ut_100 {
1124
1124
  --select-bg: var(--warning-color-100);
1125
1125
  --border-color: var(--warning-color-300);
1126
1126
  --button-color: var(--warning-color-800);
1127
1127
  --border-accent-color: var(--warning-color-600);
1128
1128
  }
1129
- ._warning_dqtrb_100:hover {
1129
+ ._warning_1m0ut_100:hover {
1130
1130
  --select-bg: var(--warning-color-200);
1131
1131
  }
1132
- ._danger_dqtrb_110 {
1132
+ ._danger_1m0ut_110 {
1133
1133
  --select-bg: var(--danger-color-100);
1134
1134
  --border-color: var(--danger-color-300);
1135
1135
  --button-color: var(--danger-color-800);
1136
1136
  --border-accent-color: var(--danger-color-600);
1137
1137
  }
1138
- ._danger_dqtrb_110:hover {
1138
+ ._danger_1m0ut_110:hover {
1139
1139
  --select-bg: var(--danger-color-200);
1140
1140
  }
1141
- ._info_dqtrb_120 {
1141
+ ._info_1m0ut_120 {
1142
1142
  --select-bg: var(--info-color-100);
1143
1143
  --border-color: var(--info-color-300);
1144
1144
  --button-color: var(--info-color-800);
1145
1145
  --border-accent-color: var(--info-color-600);
1146
1146
  }
1147
- ._info_dqtrb_120:hover {
1147
+ ._info_1m0ut_120:hover {
1148
1148
  --select-bg: var(--info-color-200);
1149
1149
  }
1150
- ._secondary_dqtrb_130 {
1150
+ ._secondary_1m0ut_130 {
1151
1151
  --select-bg: var(--secondary-color-100);
1152
1152
  --border-color: var(--secondary-color-300);
1153
1153
  --button-color: var(--secondary-color-800);
1154
1154
  --border-accent-color: var(--secondary-color-600);
1155
1155
  }
1156
- ._secondary_dqtrb_130:hover {
1156
+ ._secondary_1m0ut_130:hover {
1157
1157
  --select-bg: var(--secondary-color-200);
1158
1158
  }
1159
+ ._field_1m0ut_140 {
1160
+ display: flex;
1161
+ flex-direction: column;
1162
+ gap: 0.5rem;
1163
+ }
1164
+ ._label_1m0ut_146 {
1165
+ }
1159
1166
  @property --segment-bg {
1160
1167
  syntax: "<color>";
1161
1168
  inherits: true;
@@ -3546,7 +3553,7 @@ const indicator$1 = "_indicator_178xv_76";
3546
3553
  const large$6 = "_large_178xv_94";
3547
3554
  const small$6 = "_small_178xv_99";
3548
3555
  const disabledBox = "_disabledBox_178xv_104";
3549
- const label$3 = "_label_178xv_109";
3556
+ const label$4 = "_label_178xv_109";
3550
3557
  const primary$8 = "_primary_178xv_117";
3551
3558
  const secondary$8 = "_secondary_178xv_126";
3552
3559
  const success$8 = "_success_178xv_135";
@@ -3561,7 +3568,7 @@ const styles$a = {
3561
3568
  large: large$6,
3562
3569
  small: small$6,
3563
3570
  disabledBox,
3564
- label: label$3,
3571
+ label: label$4,
3565
3572
  primary: primary$8,
3566
3573
  secondary: secondary$8,
3567
3574
  success: success$8,
@@ -12051,7 +12058,7 @@ function isBigIntType(type) {
12051
12058
  const reindex = /* @__PURE__ */ Symbol("reindex");
12052
12059
  function valueof(data, value, type) {
12053
12060
  const valueType = typeof value;
12054
- return valueType === "string" ? isArrowTable(data) ? maybeTypedArrowify(data.getChild(value), type) : maybeTypedMap(data, field$1(value), type) : valueType === "function" ? maybeTypedMap(data, value, type) : valueType === "number" || value instanceof Date || valueType === "boolean" ? map(data, constant(value), type) : typeof value?.transform === "function" ? maybeTypedArrayify(value.transform(data), type) : maybeTake(maybeTypedArrayify(value, type), data?.[reindex]);
12061
+ return valueType === "string" ? isArrowTable(data) ? maybeTypedArrowify(data.getChild(value), type) : maybeTypedMap(data, field$2(value), type) : valueType === "function" ? maybeTypedMap(data, value, type) : valueType === "number" || value instanceof Date || valueType === "boolean" ? map(data, constant(value), type) : typeof value?.transform === "function" ? maybeTypedArrayify(value.transform(data), type) : maybeTake(maybeTypedArrayify(value, type), data?.[reindex]);
12055
12062
  }
12056
12063
  function maybeTake(values2, index2) {
12057
12064
  return values2 != null && index2 ? take(values2, index2) : values2;
@@ -12069,7 +12076,7 @@ function vectorToArray(vector) {
12069
12076
  return vector.nullCount ? vector.toJSON() : vector.toArray();
12070
12077
  }
12071
12078
  const singleton = [null];
12072
- const field$1 = (name) => (d2) => {
12079
+ const field$2 = (name) => (d2) => {
12073
12080
  const v2 = d2[name];
12074
12081
  return v2 === void 0 && d2.type === "Feature" ? d2.properties?.[name] : v2;
12075
12082
  };
@@ -17038,7 +17045,7 @@ function maybeOrder(order, offset2, ky2) {
17038
17045
  case "inside-out":
17039
17046
  return orderInsideOut(compare);
17040
17047
  }
17041
- return orderAccessor(field$1(order));
17048
+ return orderAccessor(field$2(order));
17042
17049
  }
17043
17050
  if (typeof order === "function") return (order.length === 1 ? orderAccessor : orderComparator)(order);
17044
17051
  if (isArray(order)) return orderGiven(order);
@@ -19868,8 +19875,8 @@ const warning$7 = "_warning_1ymvl_72";
19868
19875
  const danger$7 = "_danger_1ymvl_80";
19869
19876
  const info$7 = "_info_1ymvl_88";
19870
19877
  const secondary$7 = "_secondary_1ymvl_97";
19871
- const field = "_field_1ymvl_106";
19872
- const label$2 = "_label_1ymvl_112";
19878
+ const field$1 = "_field_1ymvl_106";
19879
+ const label$3 = "_label_1ymvl_112";
19873
19880
  const styles$8 = {
19874
19881
  input: input$1,
19875
19882
  pageBackground: pageBackground$2,
@@ -19882,8 +19889,8 @@ const styles$8 = {
19882
19889
  danger: danger$7,
19883
19890
  info: info$7,
19884
19891
  secondary: secondary$7,
19885
- field,
19886
- label: label$2
19892
+ field: field$1,
19893
+ label: label$3
19887
19894
  };
19888
19895
  function Input({
19889
19896
  variant,
@@ -19931,7 +19938,7 @@ function Input({
19931
19938
  ] });
19932
19939
  }
19933
19940
  const root$2 = "_root_i158m_7";
19934
- const label$1 = "_label_i158m_14";
19941
+ const label$2 = "_label_i158m_14";
19935
19942
  const dropzone = "_dropzone_i158m_18";
19936
19943
  const pageBackground$1 = "_pageBackground_i158m_42";
19937
19944
  const input = "_input_i158m_54";
@@ -19967,7 +19974,7 @@ const info$6 = "_info_i158m_333";
19967
19974
  const secondary$6 = "_secondary_i158m_345";
19968
19975
  const styles$7 = {
19969
19976
  root: root$2,
19970
- label: label$1,
19977
+ label: label$2,
19971
19978
  dropzone,
19972
19979
  pageBackground: pageBackground$1,
19973
19980
  input,
@@ -21012,7 +21019,7 @@ const dot = "_dot_hpxu6_81";
21012
21019
  const large$3 = "_large_hpxu6_88";
21013
21020
  const small$3 = "_small_hpxu6_93";
21014
21021
  const disabledDot = "_disabledDot_hpxu6_98";
21015
- const label = "_label_hpxu6_102";
21022
+ const label$1 = "_label_hpxu6_102";
21016
21023
  const chamfer = "_chamfer_hpxu6_107";
21017
21024
  const primary$5 = "_primary_hpxu6_112";
21018
21025
  const secondary$5 = "_secondary_hpxu6_121";
@@ -21030,7 +21037,7 @@ const styles$6 = {
21030
21037
  large: large$3,
21031
21038
  small: small$3,
21032
21039
  disabledDot,
21033
- label,
21040
+ label: label$1,
21034
21041
  chamfer,
21035
21042
  primary: primary$5,
21036
21043
  secondary: secondary$5,
@@ -25630,19 +25637,21 @@ var Content2$2 = SelectContent;
25630
25637
  var Viewport = SelectViewport;
25631
25638
  var Item = SelectItem;
25632
25639
  var ItemText = SelectItemText;
25633
- const trigger$1 = "_trigger_dqtrb_7";
25634
- const large$2 = "_large_dqtrb_31";
25635
- const small$2 = "_small_dqtrb_36";
25636
- const disabled$2 = "_disabled_dqtrb_41";
25637
- const icon$1 = "_icon_dqtrb_46";
25638
- const content$3 = "_content_dqtrb_52";
25639
- const item$2 = "_item_dqtrb_58";
25640
- const primary$4 = "_primary_dqtrb_80";
25641
- const success$4 = "_success_dqtrb_90";
25642
- const warning$4 = "_warning_dqtrb_100";
25643
- const danger$4 = "_danger_dqtrb_110";
25644
- const info$4 = "_info_dqtrb_120";
25645
- const secondary$4 = "_secondary_dqtrb_130";
25640
+ const trigger$1 = "_trigger_1m0ut_7";
25641
+ const large$2 = "_large_1m0ut_31";
25642
+ const small$2 = "_small_1m0ut_36";
25643
+ const disabled$2 = "_disabled_1m0ut_41";
25644
+ const icon$1 = "_icon_1m0ut_46";
25645
+ const content$3 = "_content_1m0ut_52";
25646
+ const item$2 = "_item_1m0ut_58";
25647
+ const primary$4 = "_primary_1m0ut_80";
25648
+ const success$4 = "_success_1m0ut_90";
25649
+ const warning$4 = "_warning_1m0ut_100";
25650
+ const danger$4 = "_danger_1m0ut_110";
25651
+ const info$4 = "_info_1m0ut_120";
25652
+ const secondary$4 = "_secondary_1m0ut_130";
25653
+ const field = "_field_1m0ut_140";
25654
+ const label = "_label_1m0ut_146";
25646
25655
  const styles$5 = {
25647
25656
  trigger: trigger$1,
25648
25657
  large: large$2,
@@ -25656,7 +25665,9 @@ const styles$5 = {
25656
25665
  warning: warning$4,
25657
25666
  danger: danger$4,
25658
25667
  info: info$4,
25659
- secondary: secondary$4
25668
+ secondary: secondary$4,
25669
+ field,
25670
+ label
25660
25671
  };
25661
25672
  function SelectInput({
25662
25673
  options,
@@ -25666,57 +25677,65 @@ function SelectInput({
25666
25677
  size: size2,
25667
25678
  disabled: disabled2,
25668
25679
  chamfer: chamfer2 = true,
25669
- loading = false
25680
+ loading = false,
25681
+ label: label2,
25682
+ id: id2
25670
25683
  }) {
25671
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
25672
- Root2$2,
25673
- {
25674
- value,
25675
- onValueChange,
25676
- disabled: disabled2 || loading,
25677
- children: [
25678
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
25679
- Trigger$2,
25680
- {
25681
- className: clsx(
25682
- styles$5.trigger,
25683
- styles$5[variant],
25684
- chamfer2 && chamferStyles.chamfer,
25685
- size2 === "large" && styles$5.large,
25686
- size2 === "small" && styles$5.small,
25687
- disabled2 && styles$5.disabled,
25688
- disabled2 && hatchStyles.hatch
25689
- // loading && styles.disabled
25690
- ),
25691
- children: [
25692
- /* @__PURE__ */ jsxRuntimeExports.jsx(Value, {}),
25693
- loading ? /* @__PURE__ */ jsxRuntimeExports.jsx(Loader, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { className: styles$5.icon, children: "▾" })
25694
- ]
25695
- }
25696
- ),
25697
- /* @__PURE__ */ jsxRuntimeExports.jsx(Portal$2, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
25698
- Content2$2,
25699
- {
25700
- className: classNames(
25701
- styles$5.content,
25702
- chamfer2 && chamferStyles.chamfer
25703
- ),
25704
- sideOffset: 6,
25705
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Viewport, { children: options.map((opt) => /* @__PURE__ */ jsxRuntimeExports.jsx(
25706
- Item,
25707
- {
25708
- value: opt.value,
25709
- disabled: opt.disabled,
25710
- className: styles$5.item,
25711
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(ItemText, { children: opt.label })
25712
- },
25713
- opt.value
25714
- )) })
25715
- }
25716
- ) })
25717
- ]
25718
- }
25719
- );
25684
+ const generatedId = React.useId();
25685
+ const triggerId = id2 ?? generatedId;
25686
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$5.field, children: [
25687
+ label2 && /* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: styles$5.label, htmlFor: triggerId, children: label2 }),
25688
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
25689
+ Root2$2,
25690
+ {
25691
+ value,
25692
+ onValueChange,
25693
+ disabled: disabled2 || loading,
25694
+ children: [
25695
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
25696
+ Trigger$2,
25697
+ {
25698
+ id: triggerId,
25699
+ className: clsx(
25700
+ styles$5.trigger,
25701
+ styles$5[variant],
25702
+ chamfer2 && chamferStyles.chamfer,
25703
+ size2 === "large" && styles$5.large,
25704
+ size2 === "small" && styles$5.small,
25705
+ disabled2 && styles$5.disabled,
25706
+ disabled2 && hatchStyles.hatch
25707
+ // loading && styles.disabled
25708
+ ),
25709
+ children: [
25710
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Value, {}),
25711
+ loading ? /* @__PURE__ */ jsxRuntimeExports.jsx(Loader, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { className: styles$5.icon, children: "▾" })
25712
+ ]
25713
+ }
25714
+ ),
25715
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Portal$2, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
25716
+ Content2$2,
25717
+ {
25718
+ className: classNames(
25719
+ styles$5.content,
25720
+ chamfer2 && chamferStyles.chamfer
25721
+ ),
25722
+ sideOffset: 6,
25723
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Viewport, { children: options.map((opt) => /* @__PURE__ */ jsxRuntimeExports.jsx(
25724
+ Item,
25725
+ {
25726
+ value: opt.value,
25727
+ disabled: opt.disabled,
25728
+ className: styles$5.item,
25729
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ItemText, { children: opt.label })
25730
+ },
25731
+ opt.value
25732
+ )) })
25733
+ }
25734
+ ) })
25735
+ ]
25736
+ }
25737
+ )
25738
+ ] });
25720
25739
  }
25721
25740
  var NAME = "Toggle";
25722
25741
  var Toggle = React__namespace.forwardRef((props, forwardedRef) => {
package/dist/jcui.es.js CHANGED
@@ -1046,7 +1046,7 @@ div.jcui_chamfer:not(.jcui_disabled):focus-within {
1046
1046
  inherits: true;
1047
1047
  initial-value: transparent;
1048
1048
  }
1049
- ._trigger_dqtrb_7 {
1049
+ ._trigger_1m0ut_7 {
1050
1050
  display: inline-flex;
1051
1051
  align-items: center;
1052
1052
  justify-content: space-between;
@@ -1058,104 +1058,111 @@ div.jcui_chamfer:not(.jcui_disabled):focus-within {
1058
1058
  border: var(--border-thickness) solid var(--border-color);
1059
1059
  cursor: pointer;
1060
1060
  }
1061
- ._trigger_dqtrb_7:hover {
1061
+ ._trigger_1m0ut_7:hover {
1062
1062
  --select-bg: var(--secondary-color-100);
1063
1063
  }
1064
- ._trigger_dqtrb_7:active {
1064
+ ._trigger_1m0ut_7:active {
1065
1065
  --select-bg: var(--secondary-color-200);
1066
1066
  }
1067
- ._large_dqtrb_31 {
1067
+ ._large_1m0ut_31 {
1068
1068
  font-size: 1.25rem;
1069
1069
  padding: 0.75rem 1.25rem;
1070
1070
  }
1071
- ._small_dqtrb_36 {
1071
+ ._small_1m0ut_36 {
1072
1072
  font-size: 0.75rem;
1073
1073
  padding: 0.25rem 0.5rem;
1074
1074
  }
1075
- ._disabled_dqtrb_41 {
1075
+ ._disabled_1m0ut_41 {
1076
1076
  opacity: 0.5;
1077
1077
  cursor: not-allowed;
1078
1078
  }
1079
- ._icon_dqtrb_46 {
1079
+ ._icon_1m0ut_46 {
1080
1080
  opacity: 0.7;
1081
1081
  }
1082
1082
  /* Dropdown */
1083
- ._content_dqtrb_52 {
1083
+ ._content_1m0ut_52 {
1084
1084
  background-color: var(--body-bg);
1085
1085
  border: var(--border-thickness) solid var(--border-color);
1086
1086
  z-index: 110;
1087
1087
  }
1088
- ._item_dqtrb_58 {
1088
+ ._item_1m0ut_58 {
1089
1089
  padding: 0.4rem 0.6rem;
1090
1090
  font-size: 0.875rem;
1091
1091
  cursor: pointer;
1092
1092
  outline: none;
1093
1093
  }
1094
- ._item_dqtrb_58[data-highlighted] {
1094
+ ._item_1m0ut_58[data-highlighted] {
1095
1095
  background-color: var(--secondary-color-100);
1096
1096
  }
1097
- ._item_dqtrb_58[data-state="checked"] {
1097
+ ._item_1m0ut_58[data-state="checked"] {
1098
1098
  background-color: var(--secondary-color-200);
1099
1099
  }
1100
- ._item_dqtrb_58[data-disabled] {
1100
+ ._item_1m0ut_58[data-disabled] {
1101
1101
  opacity: 0.4;
1102
1102
  pointer-events: none;
1103
1103
  }
1104
1104
  /* Variants (match Button) */
1105
- ._primary_dqtrb_80 {
1105
+ ._primary_1m0ut_80 {
1106
1106
  --select-bg: var(--primary-color-100);
1107
1107
  --border-color: var(--primary-color-300);
1108
1108
  --button-color: var(--primary-color-800);
1109
1109
  --border-accent-color: var(--primary-color-600);
1110
1110
  }
1111
- ._primary_dqtrb_80:hover {
1111
+ ._primary_1m0ut_80:hover {
1112
1112
  --select-bg: var(--primary-color-200);
1113
1113
  }
1114
- ._success_dqtrb_90 {
1114
+ ._success_1m0ut_90 {
1115
1115
  --select-bg: var(--success-color-100);
1116
1116
  --border-color: var(--success-color-300);
1117
1117
  --button-color: var(--success-color-800);
1118
1118
  --border-accent-color: var(--success-color-600);
1119
1119
  }
1120
- ._success_dqtrb_90:hover {
1120
+ ._success_1m0ut_90:hover {
1121
1121
  --select-bg: var(--success-color-200);
1122
1122
  }
1123
- ._warning_dqtrb_100 {
1123
+ ._warning_1m0ut_100 {
1124
1124
  --select-bg: var(--warning-color-100);
1125
1125
  --border-color: var(--warning-color-300);
1126
1126
  --button-color: var(--warning-color-800);
1127
1127
  --border-accent-color: var(--warning-color-600);
1128
1128
  }
1129
- ._warning_dqtrb_100:hover {
1129
+ ._warning_1m0ut_100:hover {
1130
1130
  --select-bg: var(--warning-color-200);
1131
1131
  }
1132
- ._danger_dqtrb_110 {
1132
+ ._danger_1m0ut_110 {
1133
1133
  --select-bg: var(--danger-color-100);
1134
1134
  --border-color: var(--danger-color-300);
1135
1135
  --button-color: var(--danger-color-800);
1136
1136
  --border-accent-color: var(--danger-color-600);
1137
1137
  }
1138
- ._danger_dqtrb_110:hover {
1138
+ ._danger_1m0ut_110:hover {
1139
1139
  --select-bg: var(--danger-color-200);
1140
1140
  }
1141
- ._info_dqtrb_120 {
1141
+ ._info_1m0ut_120 {
1142
1142
  --select-bg: var(--info-color-100);
1143
1143
  --border-color: var(--info-color-300);
1144
1144
  --button-color: var(--info-color-800);
1145
1145
  --border-accent-color: var(--info-color-600);
1146
1146
  }
1147
- ._info_dqtrb_120:hover {
1147
+ ._info_1m0ut_120:hover {
1148
1148
  --select-bg: var(--info-color-200);
1149
1149
  }
1150
- ._secondary_dqtrb_130 {
1150
+ ._secondary_1m0ut_130 {
1151
1151
  --select-bg: var(--secondary-color-100);
1152
1152
  --border-color: var(--secondary-color-300);
1153
1153
  --button-color: var(--secondary-color-800);
1154
1154
  --border-accent-color: var(--secondary-color-600);
1155
1155
  }
1156
- ._secondary_dqtrb_130:hover {
1156
+ ._secondary_1m0ut_130:hover {
1157
1157
  --select-bg: var(--secondary-color-200);
1158
1158
  }
1159
+ ._field_1m0ut_140 {
1160
+ display: flex;
1161
+ flex-direction: column;
1162
+ gap: 0.5rem;
1163
+ }
1164
+ ._label_1m0ut_146 {
1165
+ }
1159
1166
  @property --segment-bg {
1160
1167
  syntax: "<color>";
1161
1168
  inherits: true;
@@ -3528,7 +3535,7 @@ const indicator$1 = "_indicator_178xv_76";
3528
3535
  const large$6 = "_large_178xv_94";
3529
3536
  const small$6 = "_small_178xv_99";
3530
3537
  const disabledBox = "_disabledBox_178xv_104";
3531
- const label$3 = "_label_178xv_109";
3538
+ const label$4 = "_label_178xv_109";
3532
3539
  const primary$8 = "_primary_178xv_117";
3533
3540
  const secondary$8 = "_secondary_178xv_126";
3534
3541
  const success$8 = "_success_178xv_135";
@@ -3543,7 +3550,7 @@ const styles$a = {
3543
3550
  large: large$6,
3544
3551
  small: small$6,
3545
3552
  disabledBox,
3546
- label: label$3,
3553
+ label: label$4,
3547
3554
  primary: primary$8,
3548
3555
  secondary: secondary$8,
3549
3556
  success: success$8,
@@ -12033,7 +12040,7 @@ function isBigIntType(type) {
12033
12040
  const reindex = /* @__PURE__ */ Symbol("reindex");
12034
12041
  function valueof(data, value, type) {
12035
12042
  const valueType = typeof value;
12036
- return valueType === "string" ? isArrowTable(data) ? maybeTypedArrowify(data.getChild(value), type) : maybeTypedMap(data, field$1(value), type) : valueType === "function" ? maybeTypedMap(data, value, type) : valueType === "number" || value instanceof Date || valueType === "boolean" ? map(data, constant(value), type) : typeof value?.transform === "function" ? maybeTypedArrayify(value.transform(data), type) : maybeTake(maybeTypedArrayify(value, type), data?.[reindex]);
12043
+ return valueType === "string" ? isArrowTable(data) ? maybeTypedArrowify(data.getChild(value), type) : maybeTypedMap(data, field$2(value), type) : valueType === "function" ? maybeTypedMap(data, value, type) : valueType === "number" || value instanceof Date || valueType === "boolean" ? map(data, constant(value), type) : typeof value?.transform === "function" ? maybeTypedArrayify(value.transform(data), type) : maybeTake(maybeTypedArrayify(value, type), data?.[reindex]);
12037
12044
  }
12038
12045
  function maybeTake(values2, index2) {
12039
12046
  return values2 != null && index2 ? take(values2, index2) : values2;
@@ -12051,7 +12058,7 @@ function vectorToArray(vector) {
12051
12058
  return vector.nullCount ? vector.toJSON() : vector.toArray();
12052
12059
  }
12053
12060
  const singleton = [null];
12054
- const field$1 = (name) => (d2) => {
12061
+ const field$2 = (name) => (d2) => {
12055
12062
  const v2 = d2[name];
12056
12063
  return v2 === void 0 && d2.type === "Feature" ? d2.properties?.[name] : v2;
12057
12064
  };
@@ -17020,7 +17027,7 @@ function maybeOrder(order, offset2, ky2) {
17020
17027
  case "inside-out":
17021
17028
  return orderInsideOut(compare);
17022
17029
  }
17023
- return orderAccessor(field$1(order));
17030
+ return orderAccessor(field$2(order));
17024
17031
  }
17025
17032
  if (typeof order === "function") return (order.length === 1 ? orderAccessor : orderComparator)(order);
17026
17033
  if (isArray(order)) return orderGiven(order);
@@ -19850,8 +19857,8 @@ const warning$7 = "_warning_1ymvl_72";
19850
19857
  const danger$7 = "_danger_1ymvl_80";
19851
19858
  const info$7 = "_info_1ymvl_88";
19852
19859
  const secondary$7 = "_secondary_1ymvl_97";
19853
- const field = "_field_1ymvl_106";
19854
- const label$2 = "_label_1ymvl_112";
19860
+ const field$1 = "_field_1ymvl_106";
19861
+ const label$3 = "_label_1ymvl_112";
19855
19862
  const styles$8 = {
19856
19863
  input: input$1,
19857
19864
  pageBackground: pageBackground$2,
@@ -19864,8 +19871,8 @@ const styles$8 = {
19864
19871
  danger: danger$7,
19865
19872
  info: info$7,
19866
19873
  secondary: secondary$7,
19867
- field,
19868
- label: label$2
19874
+ field: field$1,
19875
+ label: label$3
19869
19876
  };
19870
19877
  function Input({
19871
19878
  variant,
@@ -19913,7 +19920,7 @@ function Input({
19913
19920
  ] });
19914
19921
  }
19915
19922
  const root$2 = "_root_i158m_7";
19916
- const label$1 = "_label_i158m_14";
19923
+ const label$2 = "_label_i158m_14";
19917
19924
  const dropzone = "_dropzone_i158m_18";
19918
19925
  const pageBackground$1 = "_pageBackground_i158m_42";
19919
19926
  const input = "_input_i158m_54";
@@ -19949,7 +19956,7 @@ const info$6 = "_info_i158m_333";
19949
19956
  const secondary$6 = "_secondary_i158m_345";
19950
19957
  const styles$7 = {
19951
19958
  root: root$2,
19952
- label: label$1,
19959
+ label: label$2,
19953
19960
  dropzone,
19954
19961
  pageBackground: pageBackground$1,
19955
19962
  input,
@@ -20994,7 +21001,7 @@ const dot = "_dot_hpxu6_81";
20994
21001
  const large$3 = "_large_hpxu6_88";
20995
21002
  const small$3 = "_small_hpxu6_93";
20996
21003
  const disabledDot = "_disabledDot_hpxu6_98";
20997
- const label = "_label_hpxu6_102";
21004
+ const label$1 = "_label_hpxu6_102";
20998
21005
  const chamfer = "_chamfer_hpxu6_107";
20999
21006
  const primary$5 = "_primary_hpxu6_112";
21000
21007
  const secondary$5 = "_secondary_hpxu6_121";
@@ -21012,7 +21019,7 @@ const styles$6 = {
21012
21019
  large: large$3,
21013
21020
  small: small$3,
21014
21021
  disabledDot,
21015
- label,
21022
+ label: label$1,
21016
21023
  chamfer,
21017
21024
  primary: primary$5,
21018
21025
  secondary: secondary$5,
@@ -25612,19 +25619,21 @@ var Content2$2 = SelectContent;
25612
25619
  var Viewport = SelectViewport;
25613
25620
  var Item = SelectItem;
25614
25621
  var ItemText = SelectItemText;
25615
- const trigger$1 = "_trigger_dqtrb_7";
25616
- const large$2 = "_large_dqtrb_31";
25617
- const small$2 = "_small_dqtrb_36";
25618
- const disabled$2 = "_disabled_dqtrb_41";
25619
- const icon$1 = "_icon_dqtrb_46";
25620
- const content$3 = "_content_dqtrb_52";
25621
- const item$2 = "_item_dqtrb_58";
25622
- const primary$4 = "_primary_dqtrb_80";
25623
- const success$4 = "_success_dqtrb_90";
25624
- const warning$4 = "_warning_dqtrb_100";
25625
- const danger$4 = "_danger_dqtrb_110";
25626
- const info$4 = "_info_dqtrb_120";
25627
- const secondary$4 = "_secondary_dqtrb_130";
25622
+ const trigger$1 = "_trigger_1m0ut_7";
25623
+ const large$2 = "_large_1m0ut_31";
25624
+ const small$2 = "_small_1m0ut_36";
25625
+ const disabled$2 = "_disabled_1m0ut_41";
25626
+ const icon$1 = "_icon_1m0ut_46";
25627
+ const content$3 = "_content_1m0ut_52";
25628
+ const item$2 = "_item_1m0ut_58";
25629
+ const primary$4 = "_primary_1m0ut_80";
25630
+ const success$4 = "_success_1m0ut_90";
25631
+ const warning$4 = "_warning_1m0ut_100";
25632
+ const danger$4 = "_danger_1m0ut_110";
25633
+ const info$4 = "_info_1m0ut_120";
25634
+ const secondary$4 = "_secondary_1m0ut_130";
25635
+ const field = "_field_1m0ut_140";
25636
+ const label = "_label_1m0ut_146";
25628
25637
  const styles$5 = {
25629
25638
  trigger: trigger$1,
25630
25639
  large: large$2,
@@ -25638,7 +25647,9 @@ const styles$5 = {
25638
25647
  warning: warning$4,
25639
25648
  danger: danger$4,
25640
25649
  info: info$4,
25641
- secondary: secondary$4
25650
+ secondary: secondary$4,
25651
+ field,
25652
+ label
25642
25653
  };
25643
25654
  function SelectInput({
25644
25655
  options,
@@ -25648,57 +25659,65 @@ function SelectInput({
25648
25659
  size: size2,
25649
25660
  disabled: disabled2,
25650
25661
  chamfer: chamfer2 = true,
25651
- loading = false
25662
+ loading = false,
25663
+ label: label2,
25664
+ id: id2
25652
25665
  }) {
25653
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
25654
- Root2$2,
25655
- {
25656
- value,
25657
- onValueChange,
25658
- disabled: disabled2 || loading,
25659
- children: [
25660
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
25661
- Trigger$2,
25662
- {
25663
- className: clsx(
25664
- styles$5.trigger,
25665
- styles$5[variant],
25666
- chamfer2 && chamferStyles.chamfer,
25667
- size2 === "large" && styles$5.large,
25668
- size2 === "small" && styles$5.small,
25669
- disabled2 && styles$5.disabled,
25670
- disabled2 && hatchStyles.hatch
25671
- // loading && styles.disabled
25672
- ),
25673
- children: [
25674
- /* @__PURE__ */ jsxRuntimeExports.jsx(Value, {}),
25675
- loading ? /* @__PURE__ */ jsxRuntimeExports.jsx(Loader, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { className: styles$5.icon, children: "▾" })
25676
- ]
25677
- }
25678
- ),
25679
- /* @__PURE__ */ jsxRuntimeExports.jsx(Portal$2, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
25680
- Content2$2,
25681
- {
25682
- className: classNames(
25683
- styles$5.content,
25684
- chamfer2 && chamferStyles.chamfer
25685
- ),
25686
- sideOffset: 6,
25687
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Viewport, { children: options.map((opt) => /* @__PURE__ */ jsxRuntimeExports.jsx(
25688
- Item,
25689
- {
25690
- value: opt.value,
25691
- disabled: opt.disabled,
25692
- className: styles$5.item,
25693
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(ItemText, { children: opt.label })
25694
- },
25695
- opt.value
25696
- )) })
25697
- }
25698
- ) })
25699
- ]
25700
- }
25701
- );
25666
+ const generatedId = useId$1();
25667
+ const triggerId = id2 ?? generatedId;
25668
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$5.field, children: [
25669
+ label2 && /* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: styles$5.label, htmlFor: triggerId, children: label2 }),
25670
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
25671
+ Root2$2,
25672
+ {
25673
+ value,
25674
+ onValueChange,
25675
+ disabled: disabled2 || loading,
25676
+ children: [
25677
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
25678
+ Trigger$2,
25679
+ {
25680
+ id: triggerId,
25681
+ className: clsx(
25682
+ styles$5.trigger,
25683
+ styles$5[variant],
25684
+ chamfer2 && chamferStyles.chamfer,
25685
+ size2 === "large" && styles$5.large,
25686
+ size2 === "small" && styles$5.small,
25687
+ disabled2 && styles$5.disabled,
25688
+ disabled2 && hatchStyles.hatch
25689
+ // loading && styles.disabled
25690
+ ),
25691
+ children: [
25692
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Value, {}),
25693
+ loading ? /* @__PURE__ */ jsxRuntimeExports.jsx(Loader, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { className: styles$5.icon, children: "▾" })
25694
+ ]
25695
+ }
25696
+ ),
25697
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Portal$2, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
25698
+ Content2$2,
25699
+ {
25700
+ className: classNames(
25701
+ styles$5.content,
25702
+ chamfer2 && chamferStyles.chamfer
25703
+ ),
25704
+ sideOffset: 6,
25705
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Viewport, { children: options.map((opt) => /* @__PURE__ */ jsxRuntimeExports.jsx(
25706
+ Item,
25707
+ {
25708
+ value: opt.value,
25709
+ disabled: opt.disabled,
25710
+ className: styles$5.item,
25711
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(ItemText, { children: opt.label })
25712
+ },
25713
+ opt.value
25714
+ )) })
25715
+ }
25716
+ ) })
25717
+ ]
25718
+ }
25719
+ )
25720
+ ] });
25702
25721
  }
25703
25722
  var NAME = "Toggle";
25704
25723
  var Toggle = React.forwardRef((props, forwardedRef) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jackcrane/ui",
3
- "version": "0.1.25",
3
+ "version": "0.1.26",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "dist/jcui.cjs.js",