stimeo-ui 0.5.0 → 0.6.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/CHANGELOG.md +116 -0
- package/dist/controllers/aspect_ratio_controller.d.ts +1 -3
- package/dist/controllers/aspect_ratio_controller.js +19 -11
- package/dist/controllers/aspect_ratio_controller.js.map +1 -1
- package/dist/controllers/avatar_controller.d.ts +36 -15
- package/dist/controllers/avatar_controller.js +195 -40
- package/dist/controllers/avatar_controller.js.map +1 -1
- package/dist/controllers/carousel_controller.d.ts +12 -3
- package/dist/controllers/carousel_controller.js +85 -9
- package/dist/controllers/carousel_controller.js.map +1 -1
- package/dist/controllers/checkbox_controller.d.ts +31 -5
- package/dist/controllers/checkbox_controller.js +136 -25
- package/dist/controllers/checkbox_controller.js.map +1 -1
- package/dist/controllers/color_picker_controller.d.ts +7 -1
- package/dist/controllers/color_picker_controller.js +35 -9
- package/dist/controllers/color_picker_controller.js.map +1 -1
- package/dist/controllers/date_range_picker_controller.d.ts +23 -4
- package/dist/controllers/date_range_picker_controller.js +157 -30
- package/dist/controllers/date_range_picker_controller.js.map +1 -1
- package/dist/controllers/file_dropzone_controller.d.ts +7 -1
- package/dist/controllers/file_dropzone_controller.js +26 -3
- package/dist/controllers/file_dropzone_controller.js.map +1 -1
- package/dist/controllers/focus_controller.d.ts +2 -3
- package/dist/controllers/focus_controller.js.map +1 -1
- package/dist/controllers/hover_card_controller.d.ts +2 -2
- package/dist/controllers/hover_card_controller.js.map +1 -1
- package/dist/controllers/idle_controller.d.ts +3 -3
- package/dist/controllers/idle_controller.js +27 -5
- package/dist/controllers/idle_controller.js.map +1 -1
- package/dist/controllers/menubar_controller.js +5 -3
- package/dist/controllers/menubar_controller.js.map +1 -1
- package/dist/controllers/multi_select_controller.d.ts +46 -12
- package/dist/controllers/multi_select_controller.js +460 -151
- package/dist/controllers/multi_select_controller.js.map +1 -1
- package/dist/controllers/number_input_controller.d.ts +24 -6
- package/dist/controllers/number_input_controller.js +275 -51
- package/dist/controllers/number_input_controller.js.map +1 -1
- package/dist/controllers/overflow_menu_controller.js +4 -0
- package/dist/controllers/overflow_menu_controller.js.map +1 -1
- package/dist/controllers/pagination_controller.js +33 -0
- package/dist/controllers/pagination_controller.js.map +1 -1
- package/dist/controllers/password_strength_controller.d.ts +3 -3
- package/dist/controllers/password_strength_controller.js +20 -2
- package/dist/controllers/password_strength_controller.js.map +1 -1
- package/dist/controllers/persist_controller.d.ts +4 -4
- package/dist/controllers/persist_controller.js +24 -5
- package/dist/controllers/persist_controller.js.map +1 -1
- package/dist/controllers/popover_controller.d.ts +2 -2
- package/dist/controllers/popover_controller.js.map +1 -1
- package/dist/controllers/portal_controller.d.ts +1 -2
- package/dist/controllers/portal_controller.js.map +1 -1
- package/dist/controllers/radio_group_controller.d.ts +41 -15
- package/dist/controllers/radio_group_controller.js +540 -56
- package/dist/controllers/radio_group_controller.js.map +1 -1
- package/dist/controllers/rating_controller.d.ts +36 -31
- package/dist/controllers/rating_controller.js +272 -89
- package/dist/controllers/rating_controller.js.map +1 -1
- package/dist/controllers/resizable_controller.js +33 -0
- package/dist/controllers/resizable_controller.js.map +1 -1
- package/dist/controllers/roving_controller.d.ts +4 -0
- package/dist/controllers/roving_controller.js +60 -5
- package/dist/controllers/roving_controller.js.map +1 -1
- package/dist/controllers/scroll_area_controller.d.ts +6 -0
- package/dist/controllers/scroll_area_controller.js +154 -22
- package/dist/controllers/scroll_area_controller.js.map +1 -1
- package/dist/controllers/scroll_visibility_controller.js +33 -0
- package/dist/controllers/scroll_visibility_controller.js.map +1 -1
- package/dist/controllers/tags_input_controller.d.ts +41 -11
- package/dist/controllers/tags_input_controller.js +356 -120
- package/dist/controllers/tags_input_controller.js.map +1 -1
- package/dist/controllers/time_picker_controller.d.ts +42 -13
- package/dist/controllers/time_picker_controller.js +296 -107
- package/dist/controllers/time_picker_controller.js.map +1 -1
- package/dist/controllers/toggle_group_controller.d.ts +39 -13
- package/dist/controllers/toggle_group_controller.js +378 -55
- package/dist/controllers/toggle_group_controller.js.map +1 -1
- package/dist/controllers/toolbar_controller.js +5 -3
- package/dist/controllers/toolbar_controller.js.map +1 -1
- package/dist/controllers/tooltip_controller.d.ts +2 -2
- package/dist/controllers/tooltip_controller.js.map +1 -1
- package/dist/controllers/transition_controller.d.ts +2 -3
- package/dist/controllers/transition_controller.js.map +1 -1
- package/dist/controllers/tree_view_controller.js +5 -3
- package/dist/controllers/tree_view_controller.js.map +1 -1
- package/dist/index.js +2637 -781
- package/dist/index.js.map +1 -1
- package/dist/inspector/cli.d.ts +16 -3
- package/dist/inspector/cli.js +22 -6
- package/dist/inspector/cli.js.map +1 -1
- package/dist/inspector/cli_bin.js +22 -6
- package/dist/inspector/cli_bin.js.map +1 -1
- package/dist/inspector/examples.json +8 -8
- package/dist/inspector/manifest.json +169 -37
- package/dist/positioning/index.d.ts +2 -2
- package/dist/positioning/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -969,6 +969,12 @@ var DIAGNOSTIC_CODES = [
|
|
|
969
969
|
];
|
|
970
970
|
|
|
971
971
|
// src/inspector/check.ts
|
|
972
|
+
function isInside(node, ancestor) {
|
|
973
|
+
for (let current = node.parent; current; current = current.parent) {
|
|
974
|
+
if (current === ancestor) return true;
|
|
975
|
+
}
|
|
976
|
+
return false;
|
|
977
|
+
}
|
|
972
978
|
function checkSource(source, manifest) {
|
|
973
979
|
const diagnostics = [];
|
|
974
980
|
const tree = parseHtml(neutralizeErb(source), erbElements(source));
|
|
@@ -1366,13 +1372,16 @@ function checkSource(source, manifest) {
|
|
|
1366
1372
|
const present = presence.get(node)?.get(identifier) ?? /* @__PURE__ */ new Set();
|
|
1367
1373
|
for (const rule of controller.conditionalTargets) {
|
|
1368
1374
|
if (!present.has(rule.whenPresent)) continue;
|
|
1369
|
-
const
|
|
1375
|
+
const nodesOf = (target) => targetNodes.get(node)?.get(identifier)?.get(target) ?? [];
|
|
1376
|
+
const owners = nodesOf(rule.whenPresent);
|
|
1377
|
+
const satisfied = (target) => rule.requireInside ? nodesOf(target).some((el) => owners.some((owner) => isInside(el, owner))) : present.has(target);
|
|
1378
|
+
const missing = rule.require.filter((target) => !satisfied(target));
|
|
1370
1379
|
if (missing.length === 0) continue;
|
|
1371
1380
|
report(
|
|
1372
1381
|
node,
|
|
1373
1382
|
"missing-conditional-target",
|
|
1374
1383
|
complete ? "error" : "warning",
|
|
1375
|
-
`"${identifier}" has a "${rule.whenPresent}" target, which also requires ${list(missing)}.`,
|
|
1384
|
+
rule.requireInside ? `"${identifier}" requires ${list(missing)} inside its "${rule.whenPresent}".` : `"${identifier}" has a "${rule.whenPresent}" target, which also requires ${list(missing)}.`,
|
|
1376
1385
|
node,
|
|
1377
1386
|
complete ? rule.suggestion : UNRESOLVED_TARGET_HINT
|
|
1378
1387
|
);
|
|
@@ -1390,7 +1399,7 @@ function checkSource(source, manifest) {
|
|
|
1390
1399
|
if (!hasReadableMarkup(el)) continue;
|
|
1391
1400
|
if (!contentHolds(node, identifier, el, req.whenContains)) continue;
|
|
1392
1401
|
if (!elementHolds(el, req.whenElement)) continue;
|
|
1393
|
-
checkA11y(report, el, identifier, req, severity);
|
|
1402
|
+
checkA11y(report, el, identifier, req, severity, isDynamicValue);
|
|
1394
1403
|
}
|
|
1395
1404
|
}
|
|
1396
1405
|
}
|
|
@@ -1684,6 +1693,7 @@ function valueSatisfiesConstraint(raw, constraint) {
|
|
|
1684
1693
|
if (Number.isNaN(value)) return false;
|
|
1685
1694
|
if (constraint.finite && !Number.isFinite(value)) return false;
|
|
1686
1695
|
if (constraint.greaterThan !== void 0 && !(value > constraint.greaterThan)) return false;
|
|
1696
|
+
if (constraint.integer && !Number.isInteger(value)) return false;
|
|
1687
1697
|
return true;
|
|
1688
1698
|
}
|
|
1689
1699
|
function decodeNumericValue(raw) {
|
|
@@ -1694,6 +1704,7 @@ function describeValueConstraint(constraint) {
|
|
|
1694
1704
|
if (constraint.greaterThan !== void 0) {
|
|
1695
1705
|
parts.push(`greater than ${constraint.greaterThan}`);
|
|
1696
1706
|
}
|
|
1707
|
+
if (constraint.integer) parts.push("with no fractional part");
|
|
1697
1708
|
return parts.join(" ");
|
|
1698
1709
|
}
|
|
1699
1710
|
var UNRESOLVED_TARGET_HINT = "Part of this scope is rendered by a helper or a non-literal data: hash, so the target may exist at runtime.";
|
|
@@ -1701,7 +1712,7 @@ var UNRESOLVED_HOST_HINT = "An enclosing helper's data: option is not a literal
|
|
|
1701
1712
|
function hasReadableMarkup(el) {
|
|
1702
1713
|
return el.origin === "markup";
|
|
1703
1714
|
}
|
|
1704
|
-
function checkA11y(report, el, identifier, req, severity) {
|
|
1715
|
+
function checkA11y(report, el, identifier, req, severity, isDynamicValue) {
|
|
1705
1716
|
const groups = [
|
|
1706
1717
|
{ attrs: req.attrs, values: req.values },
|
|
1707
1718
|
...req.or ?? []
|
|
@@ -1721,9 +1732,14 @@ function checkA11y(report, el, identifier, req, severity) {
|
|
|
1721
1732
|
}
|
|
1722
1733
|
const invalid = [];
|
|
1723
1734
|
let anyPresent = false;
|
|
1735
|
+
let blank;
|
|
1724
1736
|
for (const [name, allowed] of allowedByAttr) {
|
|
1725
1737
|
const attr = el.attrs.find((a) => a.name === name);
|
|
1726
1738
|
if (!attr) continue;
|
|
1739
|
+
if (allowed.anyValue && attr.value.trim() === "" && !isDynamicValue(attr)) {
|
|
1740
|
+
blank ??= attr;
|
|
1741
|
+
continue;
|
|
1742
|
+
}
|
|
1727
1743
|
anyPresent = true;
|
|
1728
1744
|
if (!allowed.anyValue && !allowed.values.has(attr.value.trim())) {
|
|
1729
1745
|
invalid.push({ attr, values: [...allowed.values] });
|
|
@@ -1735,8 +1751,8 @@ function checkA11y(report, el, identifier, req, severity) {
|
|
|
1735
1751
|
el,
|
|
1736
1752
|
"missing-aria",
|
|
1737
1753
|
severity,
|
|
1738
|
-
`"${identifier}" ${verb} ${describeAttrs([...allowedByAttr.keys()])} on its ${where}.`,
|
|
1739
|
-
el,
|
|
1754
|
+
blank ? `${blank.name} is empty on the ${where} of "${identifier}", which ${verb} a value there.` : `"${identifier}" ${verb} ${describeAttrs([...allowedByAttr.keys()])} on its ${where}.`,
|
|
1755
|
+
blank ?? el,
|
|
1740
1756
|
req.suggestion
|
|
1741
1757
|
);
|
|
1742
1758
|
return;
|