@octans/ui 1.2.0 → 1.4.0

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/dist/ui.js CHANGED
@@ -5004,6 +5004,7 @@ var cs = {
5004
5004
  props: {
5005
5005
  label: { type: String },
5006
5006
  helpText: { type: String },
5007
+ content: { type: Function },
5007
5008
  disabled: {
5008
5009
  type: Boolean,
5009
5010
  default: !1
@@ -5029,7 +5030,7 @@ var cs = {
5029
5030
  return e.icon && t.push(w(Y, {
5030
5031
  icon: e.icon,
5031
5032
  style: "margin-right: 10px"
5032
- })), e.helpText ? t.push(w("div", [w("div", e.label), w(ms, { props: { type: "subdued" } }, { default: () => e.helpText })])) : t.push(w("div", e.label)), e.dropdown && t.push(w(Y, {
5033
+ })), e.content ? t.push(w("div", [e.content()])) : e.helpText ? t.push(w("div", [w("div", e.label), w(ms, { props: { type: "subdued" } }, { default: () => e.helpText })])) : t.push(w("div", e.label)), e.dropdown && t.push(w(Y, {
5033
5034
  icon: "mdi:menu-right",
5034
5035
  style: "margin-left: 10px"
5035
5036
  })), t;
@@ -5082,6 +5083,7 @@ var cs = {
5082
5083
  tooltip: t.tooltip,
5083
5084
  "tooltip-position": t.tooltipPosition,
5084
5085
  helpText: t.helpText,
5086
+ content: t.content,
5085
5087
  dropdown: ""
5086
5088
  }, null, 8, [
5087
5089
  "icon",
@@ -5089,7 +5091,8 @@ var cs = {
5089
5091
  "disabled",
5090
5092
  "tooltip",
5091
5093
  "tooltip-position",
5092
- "helpText"
5094
+ "helpText",
5095
+ "content"
5093
5096
  ]))]),
5094
5097
  _: 2
5095
5098
  }, 1032, [
@@ -5105,6 +5108,7 @@ var cs = {
5105
5108
  tooltip: t.tooltip,
5106
5109
  "tooltip-position": t.tooltipPosition,
5107
5110
  helpText: t.helpText,
5111
+ content: t.content,
5108
5112
  url: t.url,
5109
5113
  external: t.external,
5110
5114
  onClick: (e) => o(t)
@@ -5115,6 +5119,7 @@ var cs = {
5115
5119
  "tooltip",
5116
5120
  "tooltip-position",
5117
5121
  "helpText",
5122
+ "content",
5118
5123
  "url",
5119
5124
  "external",
5120
5125
  "onClick"
@@ -9599,18 +9604,18 @@ var bm = ["aria-label", "data-ui-tooltip"], xm = /*#__PURE__*/ J(/* @__PURE__ */
9599
9604
  };
9600
9605
  }
9601
9606
  }), [["__cssModules", { $style: {
9602
- Badge: "_Badge_bo5dp_1",
9603
- pip: "_pip_bo5dp_12",
9604
- statusInfo: "_statusInfo_bo5dp_24",
9605
- statusSuccess: "_statusSuccess_bo5dp_32",
9606
- statusWarning: "_statusWarning_bo5dp_40",
9607
- statusAttention: "_statusAttention_bo5dp_41",
9608
- statusError: "_statusError_bo5dp_50",
9609
- statusNew: "_statusNew_bo5dp_58",
9610
- progressIncomplete: "_progressIncomplete_bo5dp_68",
9611
- progressPartiallyComplete: "_progressPartiallyComplete_bo5dp_72",
9612
- progressComplete: "_progressComplete_bo5dp_76",
9613
- sizeSmall: "_sizeSmall_bo5dp_80"
9607
+ Badge: "_Badge_1n011_2",
9608
+ pip: "_pip_1n011_13",
9609
+ statusInfo: "_statusInfo_1n011_35",
9610
+ statusSuccess: "_statusSuccess_1n011_43",
9611
+ statusWarning: "_statusWarning_1n011_51",
9612
+ statusAttention: "_statusAttention_1n011_52",
9613
+ statusError: "_statusError_1n011_61",
9614
+ statusNew: "_statusNew_1n011_69",
9615
+ progressIncomplete: "_progressIncomplete_1n011_79",
9616
+ progressPartiallyComplete: "_progressPartiallyComplete_1n011_83",
9617
+ progressComplete: "_progressComplete_1n011_87",
9618
+ sizeSmall: "_sizeSmall_1n011_91"
9614
9619
  } }]]), wm = y({
9615
9620
  components: {
9616
9621
  Icon: Y,
@@ -9631,18 +9636,18 @@ var bm = ["aria-label", "data-ui-tooltip"], xm = /*#__PURE__*/ J(/* @__PURE__ */
9631
9636
  this.$emit("close");
9632
9637
  } }
9633
9638
  }), Tm = {
9634
- Banner: "_Banner_1y5e8_1",
9635
- Icon: "_Icon_1y5e8_8",
9636
- content: "_content_1y5e8_13",
9637
- title: "_title_1y5e8_22",
9638
- close: "_close_1y5e8_27",
9639
- "status-default": "_status-default_1y5e8_35",
9640
- "status-info": "_status-info_1y5e8_41",
9641
- "status-success": "_status-success_1y5e8_47",
9642
- "status-warning": "_status-warning_1y5e8_53",
9643
- "status-attention": "_status-attention_1y5e8_54",
9644
- "status-error": "_status-error_1y5e8_60",
9645
- "status-new": "_status-new_1y5e8_66"
9639
+ Banner: "_Banner_1615y_2",
9640
+ Icon: "_Icon_1615y_9",
9641
+ content: "_content_1615y_14",
9642
+ title: "_title_1615y_23",
9643
+ close: "_close_1615y_28",
9644
+ "status-default": "_status-default_1615y_48",
9645
+ "status-info": "_status-info_1615y_54",
9646
+ "status-success": "_status-success_1615y_60",
9647
+ "status-warning": "_status-warning_1615y_66",
9648
+ "status-attention": "_status-attention_1615y_67",
9649
+ "status-error": "_status-error_1615y_73",
9650
+ "status-new": "_status-new_1615y_79"
9646
9651
  };
9647
9652
  //#endregion
9648
9653
  //#region src/components/Banner/Banner.vue
@@ -14294,10 +14299,10 @@ var M_ = /*#__PURE__*/ J(/* @__PURE__ */ y({
14294
14299
  }, [_(U(Y), { icon: "mdi:close" })], 10, P_)], 10, N_));
14295
14300
  }
14296
14301
  }), [["__cssModules", { $style: {
14297
- Tag: "_Tag_1nh5i_1",
14298
- Tag__isRequired: "_Tag__isRequired_1nh5i_13",
14299
- Tag_button: "_Tag_button_1nh5i_13",
14300
- Tag_text: "_Tag_text_1nh5i_18"
14302
+ Tag: "_Tag_8pqn7_1",
14303
+ Tag__isRequired: "_Tag__isRequired_8pqn7_13",
14304
+ Tag_button: "_Tag_button_8pqn7_13",
14305
+ Tag_text: "_Tag_text_8pqn7_18"
14301
14306
  } }]]), I_ = y({
14302
14307
  methods: { $t: Q },
14303
14308
  components: {
@@ -14711,12 +14716,20 @@ var $_ = y({
14711
14716
  onDragEnd(e) {
14712
14717
  let t = this.isDragArmed;
14713
14718
  if (this.endDragTracking(), !t || !this.isOpen) return;
14719
+ if (this.searchAtPoint(e.clientX, e.clientY)) {
14720
+ this.ignoreNextDocClick = !0, this.$refs.searchInput?.focus();
14721
+ return;
14722
+ }
14714
14723
  let n = this.optionAtPoint(e.clientX, e.clientY);
14715
14724
  !n || n.disabled || (this.multiple && (this.ignoreNextDocClick = !0), this.toggleOption(n));
14716
14725
  },
14717
14726
  endDragTracking() {
14718
14727
  document.removeEventListener("mousemove", this.onDragMove), document.removeEventListener("mouseup", this.onDragEnd), this.dragOrigin = null, this.isDragArmed = !1;
14719
14728
  },
14729
+ searchAtPoint(e, t) {
14730
+ let n = document.elementFromPoint?.(e, t);
14731
+ return !!(n && n.closest("[data-select-search]"));
14732
+ },
14720
14733
  optionAtPoint(e, t) {
14721
14734
  let n = document.elementFromPoint?.(e, t), r = n && n.closest("[data-option-index]");
14722
14735
  if (!r) return;
@@ -14847,40 +14860,40 @@ function tv(e) {
14847
14860
  return e === " " || e >= "0" && e <= "9" || e >= "a" && e <= "z";
14848
14861
  }
14849
14862
  var nv = {
14850
- Select: "_Select_17yri_1",
14851
- isReadonly: "_isReadonly_17yri_5",
14852
- control: "_control_17yri_9",
14853
- isDisabled: "_isDisabled_17yri_14",
14854
- hasError: "_hasError_17yri_35",
14855
- isOpen: "_isOpen_17yri_48",
14856
- popperPlacement_top: "_popperPlacement_top_17yri_52",
14857
- popperPlacement_bottom: "_popperPlacement_bottom_17yri_58",
14858
- DisplayText: "_DisplayText_17yri_68",
14859
- isEmpty: "_isEmpty_17yri_72",
14860
- more: "_more_17yri_76",
14861
- caret: "_caret_17yri_80",
14862
- showDescription: "_showDescription_17yri_87",
14863
- DisplayText_label: "_DisplayText_label_17yri_95",
14864
- DisplayText_desc: "_DisplayText_desc_17yri_100",
14865
- ClearButton: "_ClearButton_17yri_111",
14866
- Dropdown: "_Dropdown_17yri_120",
14867
- Dropdown__minWidthSet: "_Dropdown__minWidthSet_17yri_146",
14868
- Dropdown_search: "_Dropdown_search_17yri_153",
14869
- Dropdown_searchIcon: "_Dropdown_searchIcon_17yri_160",
14870
- Dropdown_searchCloseIcon: "_Dropdown_searchCloseIcon_17yri_166",
14871
- Dropdown_searchInput: "_Dropdown_searchInput_17yri_176",
14872
- Dropdown_content: "_Dropdown_content_17yri_190",
14873
- NoResults: "_NoResults_17yri_195",
14874
- OptionGroup: "_OptionGroup_17yri_201",
14875
- OptionGroup_title: "_OptionGroup_title_17yri_205",
14876
- Option: "_Option_17yri_201",
14877
- ToggleAll: "_ToggleAll_17yri_214",
14878
- Option_check: "_Option_check_17yri_225",
14879
- Option_desc: "_Option_desc_17yri_231",
14880
- Option__disabled: "_Option__disabled_17yri_238",
14881
- Option__active: "_Option__active_17yri_243",
14882
- Tags: "_Tags_17yri_254",
14883
- Tag: "_Tag_17yri_254"
14863
+ Select: "_Select_1ft2q_1",
14864
+ isReadonly: "_isReadonly_1ft2q_5",
14865
+ control: "_control_1ft2q_9",
14866
+ isDisabled: "_isDisabled_1ft2q_14",
14867
+ hasError: "_hasError_1ft2q_35",
14868
+ isOpen: "_isOpen_1ft2q_48",
14869
+ popperPlacement_top: "_popperPlacement_top_1ft2q_52",
14870
+ popperPlacement_bottom: "_popperPlacement_bottom_1ft2q_58",
14871
+ DisplayText: "_DisplayText_1ft2q_68",
14872
+ isEmpty: "_isEmpty_1ft2q_72",
14873
+ more: "_more_1ft2q_76",
14874
+ caret: "_caret_1ft2q_80",
14875
+ showDescription: "_showDescription_1ft2q_96",
14876
+ DisplayText_label: "_DisplayText_label_1ft2q_104",
14877
+ DisplayText_desc: "_DisplayText_desc_1ft2q_109",
14878
+ ClearButton: "_ClearButton_1ft2q_120",
14879
+ Dropdown: "_Dropdown_1ft2q_129",
14880
+ Dropdown__minWidthSet: "_Dropdown__minWidthSet_1ft2q_155",
14881
+ Dropdown_search: "_Dropdown_search_1ft2q_162",
14882
+ Dropdown_searchIcon: "_Dropdown_searchIcon_1ft2q_169",
14883
+ Dropdown_searchCloseIcon: "_Dropdown_searchCloseIcon_1ft2q_175",
14884
+ Dropdown_searchInput: "_Dropdown_searchInput_1ft2q_185",
14885
+ Dropdown_content: "_Dropdown_content_1ft2q_199",
14886
+ NoResults: "_NoResults_1ft2q_204",
14887
+ OptionGroup: "_OptionGroup_1ft2q_210",
14888
+ OptionGroup_title: "_OptionGroup_title_1ft2q_214",
14889
+ Option: "_Option_1ft2q_210",
14890
+ ToggleAll: "_ToggleAll_1ft2q_223",
14891
+ Option_check: "_Option_check_1ft2q_234",
14892
+ Option_desc: "_Option_desc_1ft2q_240",
14893
+ Option__disabled: "_Option__disabled_1ft2q_247",
14894
+ Option__active: "_Option__active_1ft2q_252",
14895
+ Tags: "_Tags_1ft2q_263",
14896
+ Tag: "_Tag_1ft2q_263"
14884
14897
  }, rv = ["tabindex", "aria-required"], iv = ["innerHTML"], av = [
14885
14898
  "data-option-index",
14886
14899
  "onMousedown",
@@ -14888,14 +14901,14 @@ var nv = {
14888
14901
  ];
14889
14902
  function ov(e, t, r, i, a, o) {
14890
14903
  let s = V("Spinner"), c = V("Icon"), l = V("Tag"), u = V("CheckboxControl"), h = V("ScrollPane"), v = V("MaybeMountingPortal"), y = V("Labelled");
14891
- return L(), d(y, {
14904
+ return L(), d(y, k(e.$attrs, {
14892
14905
  label: e.label,
14893
14906
  error: e.error,
14894
14907
  "help-text": e.helpText,
14895
14908
  "help-text-html": e.helpTextHtml,
14896
14909
  "help-link": e.helpLink,
14897
14910
  required: e.required
14898
- }, {
14911
+ }), {
14899
14912
  default: K(() => [m("div", { class: j(["UIElement", [
14900
14913
  e.$style.Select,
14901
14914
  e.error && e.$style.hasError,
@@ -14934,7 +14947,8 @@ function ov(e, t, r, i, a, o) {
14934
14947
  e.loading ? f("", !0) : (L(), d(c, {
14935
14948
  key: 2,
14936
14949
  class: j(e.$style.caret),
14937
- icon: "mdi:menu-down"
14950
+ icon: "mdi:menu-down",
14951
+ size: "20px"
14938
14952
  }, null, 8, ["class"]))
14939
14953
  ], 42, rv),
14940
14954
  e.multiple && e.tags && e.selectedOptions.length > 0 ? (L(), p("div", {
@@ -14968,7 +14982,8 @@ function ov(e, t, r, i, a, o) {
14968
14982
  }, [
14969
14983
  e.showSearch ? (L(), p("div", {
14970
14984
  key: 0,
14971
- class: j(e.$style.Dropdown_search)
14985
+ class: j(e.$style.Dropdown_search),
14986
+ "data-select-search": ""
14972
14987
  }, [
14973
14988
  _(c, {
14974
14989
  class: j(e.$style.Dropdown_searchIcon),
@@ -15058,7 +15073,7 @@ function ov(e, t, r, i, a, o) {
15058
15073
  }, 8, ["teleport"])) : f("", !0)
15059
15074
  ], 2)]),
15060
15075
  _: 3
15061
- }, 8, [
15076
+ }, 16, [
15062
15077
  "label",
15063
15078
  "error",
15064
15079
  "help-text",
@@ -17931,101 +17946,108 @@ var fy = /*#__PURE__*/ J(cy, [["render", dy], ["__cssModules", { $style: ly }]])
17931
17946
  props: {
17932
17947
  selected: {},
17933
17948
  tabs: { default: () => [] },
17934
- theme: { default: "blue" }
17949
+ indicator: {}
17935
17950
  },
17936
17951
  emits: ["update:selected"],
17937
17952
  setup(e, { emit: t }) {
17938
- let r = e, i = t, a = R({}), o = R(), s = R([]), c = R(null), u = l(() => r.tabs.filter((e) => a.value[e.value])), h = l(() => u.value.map((e) => ({
17953
+ let r = e, i = t, a = ge(), o = W(), s = {
17954
+ underline: "indicatorUnderline",
17955
+ bar: "indicatorBar"
17956
+ }, c = l(() => r.indicator ? o[s[r.indicator]] : null), u = R({}), h = R(), v = R([]), b = R(null), x = l(() => r.tabs.filter((e) => u.value[e.value]));
17957
+ function S(e) {
17958
+ return a.tab ? a.tab({ tab: e }) : [e.label, e.badge ? w(Cm, {
17959
+ status: e.badgeStatus,
17960
+ progress: e.badgeProgress,
17961
+ class: o.Tab_badge
17962
+ }, () => e.badge) : null];
17963
+ }
17964
+ let C = y({
17965
+ props: { tab: {
17966
+ type: Object,
17967
+ required: !0
17968
+ } },
17969
+ setup: (e) => () => S(e.tab)
17970
+ }), T = l(() => x.value.map((e) => ({
17939
17971
  label: e.label,
17940
17972
  icon: e.value === r.selected ? "mdi:check" : null,
17941
17973
  disabled: e.disabled,
17942
- onAction: () => b(e)
17943
- }))), v = l(() => u.value.some((e) => e.value === r.selected)), y = l(() => {
17974
+ content: () => S(e),
17975
+ onAction: () => O(e)
17976
+ }))), E = l(() => x.value.some((e) => e.value === r.selected)), D = l(() => {
17944
17977
  let e = r.tabs.find((e) => e.value === r.selected);
17945
- return v.value && e?.label || "";
17978
+ return E.value && e?.label || "";
17946
17979
  });
17947
- function b(e) {
17980
+ function O(e) {
17948
17981
  e.disabled || i("update:selected", e.value, e);
17949
17982
  }
17950
- function x() {
17951
- let e = {}, t = o.value?.getBoundingClientRect().width, n = 150;
17952
- s.value.forEach((i, a) => {
17983
+ function k() {
17984
+ let e = {}, t = h.value?.getBoundingClientRect().width, n = 150;
17985
+ v.value.forEach((i, a) => {
17953
17986
  let o = r.tabs[a], s = i.offsetWidth;
17954
17987
  n += s, e[o.value] = n >= (t || 0);
17955
- }), a.value = e;
17988
+ }), u.value = e;
17956
17989
  }
17957
17990
  return F(() => {
17958
- o.value && (c.value = new ResizeObserver(pm(x, 100, {
17991
+ h.value && (b.value = new ResizeObserver(pm(k, 100, {
17959
17992
  leading: !0,
17960
17993
  trailing: !0
17961
- })), c.value.observe(o.value));
17994
+ })), b.value.observe(h.value));
17962
17995
  }), P(() => {
17963
- c.value &&= (c.value.disconnect(), null);
17996
+ b.value &&= (b.value.disconnect(), null);
17964
17997
  }), (t, r) => (L(), p("div", { class: j([
17965
17998
  "UIElement",
17966
- t.$style.Tabs,
17967
- e.theme === "purple" && t.$style.Purple
17999
+ U(o).Tabs,
18000
+ c.value
17968
18001
  ]) }, [m("div", {
17969
- class: j(t.$style.Tab_container),
18002
+ class: j(U(o).Tab_container),
17970
18003
  ref_key: "tabContainer",
17971
- ref: o
17972
- }, [(L(!0), p(n, null, z(e.tabs, (n) => (L(), p("button", {
17973
- key: n.value,
18004
+ ref: h
18005
+ }, [(L(!0), p(n, null, z(e.tabs, (t) => (L(), p("button", {
18006
+ key: t.value,
17974
18007
  type: "button",
17975
18008
  class: j([
17976
- t.$style.Tab,
17977
- n.disabled && t.$style.Tab__disabled,
17978
- e.selected === n.value && t.$style.Tab__selected
18009
+ U(o).Tab,
18010
+ t.disabled && U(o).Tab__disabled,
18011
+ e.selected === t.value && U(o).Tab__selected
17979
18012
  ]),
17980
- onClick: (e) => b(n),
18013
+ onClick: (e) => O(t),
17981
18014
  onMouseup: r[0] ||= (e) => e.currentTarget?.blur(),
17982
18015
  ref_for: !0,
17983
18016
  ref_key: "tabElements",
17984
- ref: s,
18017
+ ref: v,
17985
18018
  style: N({
17986
- visibility: a.value[n.value] ? "hidden" : "visible",
17987
- position: a.value[n.value] ? "absolute" : "relative"
18019
+ visibility: u.value[t.value] ? "hidden" : "visible",
18020
+ position: u.value[t.value] ? "absolute" : "relative"
17988
18021
  })
17989
- }, [m("div", { class: j(t.$style.Tab_title) }, [B(t.$slots, "tab", { tab: n }, () => [g(H(n.label) + " ", 1), n.badge ? (L(), d(U(Cm), {
18022
+ }, [m("div", { class: j(U(o).Tab_title) }, [_(U(C), { tab: t }, null, 8, ["tab"])], 2), m("div", { class: j(U(o).Tab_bar) }, null, 2)], 46, ky))), 128)), T.value.length > 0 ? (L(), d(U(vs), {
17990
18023
  key: 0,
17991
- status: n.badgeStatus,
17992
- progress: n.badgeProgress,
17993
- class: j(t.$style.Tab_badge)
17994
- }, {
17995
- default: K(() => [g(H(n.badge), 1)]),
17996
- _: 2
17997
- }, 1032, [
17998
- "status",
17999
- "progress",
18000
- "class"
18001
- ])) : f("", !0)])], 2), m("div", { class: j(t.$style.Tab_bar) }, null, 2)], 46, ky))), 128)), h.value.length > 0 ? (L(), d(U(vs), {
18002
- key: 0,
18003
- items: h.value,
18024
+ items: T.value,
18004
18025
  placement: "bottom-end",
18005
- class: j([t.$style.TruncatedTabsButton, v.value && t.$style.selected])
18026
+ class: j([U(o).TruncatedTabsButton, E.value && U(o).selected])
18006
18027
  }, {
18007
18028
  default: K(() => [_(U(Z), {
18008
18029
  type: "link",
18009
- icon: y.value ? "" : "mdi:dots-horizontal",
18010
- dropdown: !!y.value
18030
+ icon: D.value ? "" : "mdi:dots-horizontal",
18031
+ dropdown: !!D.value
18011
18032
  }, {
18012
- default: K(() => [g(H(y.value), 1)]),
18033
+ default: K(() => [g(H(D.value), 1)]),
18013
18034
  _: 1
18014
18035
  }, 8, ["icon", "dropdown"])]),
18015
18036
  _: 1
18016
18037
  }, 8, ["items", "class"])) : f("", !0)], 2)], 2));
18017
18038
  }
18018
18039
  }), [["__cssModules", { $style: {
18019
- Purple: "_Purple_16dei_1",
18020
- Tab_container: "_Tab_container_16dei_1",
18021
- Tab: "_Tab_16dei_1",
18022
- Tab__disabled: "_Tab__disabled_16dei_7",
18023
- Tab_title: "_Tab_title_16dei_10",
18024
- Tab_bar: "_Tab_bar_16dei_18",
18025
- Tab__selected: "_Tab__selected_16dei_26",
18026
- TruncatedTabsButton: "_TruncatedTabsButton_16dei_36",
18027
- selected: "_selected_16dei_42",
18028
- Tab_badge: "_Tab_badge_16dei_107"
18040
+ indicatorUnderline: "_indicatorUnderline_1pw24_10",
18041
+ indicatorBar: "_indicatorBar_1pw24_17",
18042
+ Tab_container: "_Tab_container_1pw24_24",
18043
+ Tab: "_Tab_1pw24_24",
18044
+ Tab__disabled: "_Tab__disabled_1pw24_44",
18045
+ Tab_title: "_Tab_title_1pw24_44",
18046
+ Tab_bar: "_Tab_bar_1pw24_53",
18047
+ Tab__selected: "_Tab__selected_1pw24_63",
18048
+ Tab_badge: "_Tab_badge_1pw24_93",
18049
+ TruncatedTabsButton: "_TruncatedTabsButton_1pw24_100",
18050
+ selected: "_selected_1pw24_107"
18029
18051
  } }]]), jy = { TextContainer: "_TextContainer_rpyk3_1" }, My = {};
18030
18052
  function Ny(e, t) {
18031
18053
  return L(), p("div", { class: j(["UIElement", e.$style.TextContainer]) }, [B(e.$slots, "default")], 2);
@@ -20025,6 +20047,7 @@ var Kx = [
20025
20047
  $("surface", "Cards, panels, the default background"),
20026
20048
  Yx("surface-raised", "Menus, popovers, modals — above the surface"),
20027
20049
  $("surface-sunken", "Table headers, wells, code blocks"),
20050
+ $("surface-neutral", "Neutral chips on a surface — Badge, Tag"),
20028
20051
  $("surface-app", "The application background behind cards"),
20029
20052
  Yx("surface-hover", "Hover wash over a surface"),
20030
20053
  Yx("surface-selected", "Selected rows and items — the primary's soft tint"),
@@ -20155,6 +20178,100 @@ var Kx = [
20155
20178
  }
20156
20179
  ]
20157
20180
  },
20181
+ {
20182
+ title: "Badge & Banner",
20183
+ tier: "semantic",
20184
+ description: "How strongly a status Badge or Banner tints itself with its role colour. Two dials rather than one, because a badge is a small object that has to hold its own against the card it sits on and a banner is a large panel where the same strength stops being a background. The four surfaces under each are DERIVED from that component’s dial — move the dial and all four follow; set one directly only to make a single status sit apart.",
20185
+ tokens: [
20186
+ {
20187
+ name: "badge-surface-strength",
20188
+ kind: "percent",
20189
+ description: "How much role colour a status Badge mixes in"
20190
+ },
20191
+ {
20192
+ name: "banner-surface-strength",
20193
+ kind: "percent",
20194
+ description: "How much role colour a status Banner mixes in"
20195
+ },
20196
+ {
20197
+ name: "badge-ink",
20198
+ kind: "color",
20199
+ description: "Forces one label colour on every status Badge. Unset = each status keeps its own text colour"
20200
+ },
20201
+ {
20202
+ name: "banner-ink",
20203
+ kind: "color",
20204
+ description: "Forces one label colour on every status Banner. Unset = each status keeps its own text colour"
20205
+ },
20206
+ {
20207
+ name: "badge-info-surface",
20208
+ kind: "color",
20209
+ description: "Derived from the Badge dial"
20210
+ },
20211
+ {
20212
+ name: "badge-success-surface",
20213
+ kind: "color",
20214
+ description: "Derived from the Badge dial"
20215
+ },
20216
+ {
20217
+ name: "badge-warning-surface",
20218
+ kind: "color",
20219
+ description: "Derived from the Badge dial"
20220
+ },
20221
+ {
20222
+ name: "badge-error-surface",
20223
+ kind: "color",
20224
+ description: "Derived from the Badge dial"
20225
+ },
20226
+ {
20227
+ name: "banner-info-surface",
20228
+ kind: "color",
20229
+ description: "Derived from the Banner dial"
20230
+ },
20231
+ {
20232
+ name: "banner-success-surface",
20233
+ kind: "color",
20234
+ description: "Derived from the Banner dial"
20235
+ },
20236
+ {
20237
+ name: "banner-warning-surface",
20238
+ kind: "color",
20239
+ description: "Derived from the Banner dial"
20240
+ },
20241
+ {
20242
+ name: "banner-error-surface",
20243
+ kind: "color",
20244
+ description: "Derived from the Banner dial"
20245
+ }
20246
+ ]
20247
+ },
20248
+ {
20249
+ title: "Tabs",
20250
+ tier: "semantic",
20251
+ description: "The mark under the selected tab — the one part of a component that lives in the theme, so a product can carry the choice rather than set it in code. The defaults draw an underline; a rounded bar sitting on the divider is the same mark with different numbers (5px / rounded / offset -2px / gap 8px).",
20252
+ tokens: [
20253
+ {
20254
+ name: "tabs-indicator-height",
20255
+ kind: "length",
20256
+ description: "Thickness of the mark"
20257
+ },
20258
+ {
20259
+ name: "tabs-indicator-radius",
20260
+ kind: "radius",
20261
+ description: "Rounding of the mark — 0 is a square rule"
20262
+ },
20263
+ {
20264
+ name: "tabs-indicator-offset",
20265
+ kind: "length",
20266
+ description: "Vertical shift; negative drops it onto the divider"
20267
+ },
20268
+ {
20269
+ name: "tabs-label-gap",
20270
+ kind: "length",
20271
+ description: "Space between the label and the mark"
20272
+ }
20273
+ ]
20274
+ },
20158
20275
  {
20159
20276
  title: "Typography",
20160
20277
  tier: "semantic",