rei-kit 2.17.0 → 2.18.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/README.md CHANGED
@@ -124,7 +124,7 @@ Each claim here is enforced by something that fails, not by a promise.
124
124
 
125
125
  ## Status
126
126
 
127
- **v2.17.0 — three consumers.**
127
+ **v2.18.0 — three consumers.**
128
128
 
129
129
  | | |
130
130
  | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -549,6 +549,21 @@ git push --follow-tags
549
549
  Then write the release into `PATCHNOTES.md` — what a consumer gains, and what
550
550
  they have to do to take it.
551
551
 
552
+ ## Taking part
553
+
554
+ | File | What it answers |
555
+ | -------------------------------------- | ------------------------------------------------------------------------ |
556
+ | [CONTRIBUTING.md](CONTRIBUTING.md) | How to set it up, the one command CI runs, and what a new component needs |
557
+ | [ROADMAP.md](ROADMAP.md) | What is next, what is being weighed up, and what this will never do |
558
+ | [SECURITY.md](SECURITY.md) | How to report a vulnerability, and what the package does and does not do |
559
+ | [AGENTS.md](AGENTS.md) | The design document: which part to reach for, and the mistakes that compile |
560
+ | [CHANGELOG.md](CHANGELOG.md) | Why each change was made |
561
+ | [PATCHNOTES.md](PATCHNOTES.md) | What you gain per release, and what you have to do to take it |
562
+
563
+ The most useful issue you can open is the one that says what you tried to
564
+ build and what you ended up writing by hand: a control hand-written in a file
565
+ that already imports the kit's version of it is a bug in the kit, every time.
566
+
552
567
  ## Author
553
568
 
554
569
  Made by **Ramazan Doğan** — [github.com/ramazandogna](https://github.com/ramazandogna),
package/dist/index.js CHANGED
@@ -4458,7 +4458,7 @@ function createI18nRuntime(options) {
4458
4458
  *
4459
4459
  * The fallback keeps `vitest` and `vite dev` honest, where no define runs.
4460
4460
  */
4461
- var VERSION = "2.17.0";
4461
+ var VERSION = "2.18.0";
4462
4462
  //#endregion
4463
4463
  export { AppError, AvatarStack_default as AvatarStack, BaseAlert_default as BaseAlert, BaseAvatar_default as BaseAvatar, BaseBadge_default as BaseBadge, BaseButton_default as BaseButton, BaseCalendar_default as BaseCalendar, BaseCard_default as BaseCard, BaseCheckbox_default as BaseCheckbox, BaseChip_default as BaseChip, BaseCombobox_default as BaseCombobox, BaseDatePicker_default as BaseDatePicker, BaseInput_default as BaseInput, BaseKbd_default as BaseKbd, BaseLink_default as BaseLink, BaseListbox_default as BaseListbox, BaseMenu_default as BaseMenu, BasePopconfirm_default as BasePopconfirm, BasePopover_default as BasePopover, BaseRadioGroup_default as BaseRadioGroup, BaseRating_default as BaseRating, BaseSelect_default as BaseSelect, BaseSeparator_default as BaseSeparator, BaseSheet_default as BaseSheet, BaseSkeleton_default as BaseSkeleton, BaseSlider_default as BaseSlider, BaseSpinner_default as BaseSpinner, BaseStepper_default as BaseStepper, BaseSwitch_default as BaseSwitch, BaseTable_default as BaseTable, BaseTextarea_default as BaseTextarea, BaseTimeline_default as BaseTimeline, CircularProgress_default as CircularProgress, ColorPicker_default as ColorPicker, CopyButton_default as CopyButton, DescriptionList_default as DescriptionList, EmptyState_default as EmptyState, ErrorBoundary_default as ErrorBoundary, FileDrop_default as FileDrop, FormField_default as FormField, GoogleButton_default as GoogleButton, LocaleLinks_default as LocaleLinks, MATERIALS, NumberInput_default as NumberInput, PALETTES, PageContainer_default as PageContainer, PageHeader_default as PageHeader, PinInput_default as PinInput, PriceCard_default as PriceCard, ProgressBar_default as ProgressBar, SHEET_ROOT_ID, SectionHeading_default as SectionHeading, SegmentedControl_default as SegmentedControl, SettingsGroup_default as SettingsGroup, SettingsRow_default as SettingsRow, SkeletonList_default as SkeletonList, SliderField_default as SliderField, StatCard_default as StatCard, TabBar_default as TabBar, TagsInput_default as TagsInput, TimePicker_default as TimePicker, ToastHost_default as ToastHost, ToggleGroup_default as ToggleGroup, ToneDot_default as ToneDot, VERSION, addDays, applyMaterial, applyPalette, applyTheme, createI18nRuntime, downloadJson, eachDayOfYear, ensureSheetRoot, formatDate, formatNumber, fromDateKey, isApplePortable, isInstalled, isMaterial, isPaletteName, isThemePreference, lastNDays, leadingBlanks, needsIosInstall, readStoredTheme, registerErrorMapper, relativeDayLabel, safeRedirect, setFormatLocale, setMaterialStorageKey, setPaletteStorageKey, setThemeStorageKey, startOfWeek, tapFeedback, toAppError, toDateKey, toRedirectPath, todayKey, useDebouncedCallback, useDragScroll, useMaterial, useMediaQuery, useOnline, usePalette, useTheme, useToast, useToday, useVisualViewport };
4464
4464
 
package/dist/styles.css CHANGED
@@ -2834,7 +2834,7 @@ to {
2834
2834
  color: var(--color-ink-soft);
2835
2835
  }
2836
2836
 
2837
- .rk-command[data-v-cce1dd03] {
2837
+ .rk-command[data-v-f72521e7] {
2838
2838
  position: fixed;
2839
2839
  inset: 0;
2840
2840
  z-index: 90;
@@ -2845,13 +2845,13 @@ to {
2845
2845
  grows downwards into space rather than pushing itself off both edges. */
2846
2846
  padding-top: min(12vh, 6rem);
2847
2847
  }
2848
- .rk-command-scrim[data-v-cce1dd03] {
2848
+ .rk-command-scrim[data-v-f72521e7] {
2849
2849
  position: absolute;
2850
2850
  inset: 0;
2851
2851
  background: color-mix(in oklab, var(--color-ink) 45%, transparent);
2852
2852
  backdrop-filter: blur(2px);
2853
2853
  }
2854
- .rk-command-panel[data-v-cce1dd03] {
2854
+ .rk-command-panel[data-v-f72521e7] {
2855
2855
  position: relative;
2856
2856
  display: flex;
2857
2857
  width: 100%;
@@ -2861,14 +2861,14 @@ to {
2861
2861
  overflow: hidden;
2862
2862
  border-radius: var(--radius-card);
2863
2863
  }
2864
- .rk-command-field[data-v-cce1dd03] {
2864
+ .rk-command-field[data-v-f72521e7] {
2865
2865
  display: flex;
2866
2866
  align-items: center;
2867
2867
  gap: 0.625rem;
2868
2868
  border-bottom: 1px solid var(--surface-border-color);
2869
2869
  padding: 0.875rem 1rem;
2870
2870
  }
2871
- .rk-command-input[data-v-cce1dd03] {
2871
+ .rk-command-input[data-v-f72521e7] {
2872
2872
  min-width: 0;
2873
2873
  flex: 1;
2874
2874
  background: transparent;
@@ -2880,15 +2880,15 @@ to {
2880
2880
  /* The field takes focus the moment this opens, so a full ring around it
2881
2881
  would be on the whole time. The rule under it turns instead: enough to
2882
2882
  say where the keyboard is, quiet enough to live with. */
2883
- .rk-command-field[data-v-cce1dd03]:has(.rk-command-input:focus-visible) {
2883
+ .rk-command-field[data-v-f72521e7]:has(.rk-command-input:focus-visible) {
2884
2884
  border-bottom-color: var(--color-primary);
2885
2885
  box-shadow: inset 0 -1px 0 var(--color-primary);
2886
2886
  }
2887
- .rk-command-list[data-v-cce1dd03] {
2887
+ .rk-command-list[data-v-f72521e7] {
2888
2888
  overflow-y: auto;
2889
2889
  padding: 0.375rem;
2890
2890
  }
2891
- .rk-command-group[data-v-cce1dd03] {
2891
+ .rk-command-group[data-v-f72521e7] {
2892
2892
  padding: 0.5rem 0.625rem 0.25rem;
2893
2893
  font-size: 0.6875rem;
2894
2894
  font-weight: 600;
@@ -2896,7 +2896,7 @@ to {
2896
2896
  text-transform: uppercase;
2897
2897
  color: var(--color-ink-soft);
2898
2898
  }
2899
- .rk-command-item[data-v-cce1dd03] {
2899
+ .rk-command-item[data-v-f72521e7] {
2900
2900
  display: flex;
2901
2901
  cursor: pointer;
2902
2902
  align-items: center;
@@ -2906,35 +2906,35 @@ to {
2906
2906
  font-size: 0.875rem;
2907
2907
  color: var(--color-ink);
2908
2908
  }
2909
- .rk-command-item.is-active[data-v-cce1dd03] {
2909
+ .rk-command-item.is-active[data-v-f72521e7] {
2910
2910
  background: var(--color-muted);
2911
2911
  }
2912
- .rk-command-hint[data-v-cce1dd03] {
2912
+ .rk-command-hint[data-v-f72521e7] {
2913
2913
  margin-left: auto;
2914
2914
  flex-shrink: 0;
2915
2915
  font-size: 0.75rem;
2916
2916
  color: var(--color-ink-soft);
2917
2917
  }
2918
- .rk-command-empty[data-v-cce1dd03] {
2918
+ .rk-command-empty[data-v-f72521e7] {
2919
2919
  padding: 1.5rem 0.625rem;
2920
2920
  text-align: center;
2921
2921
  font-size: 0.875rem;
2922
2922
  color: var(--color-ink-soft);
2923
2923
  }
2924
- .rk-command-enter-active[data-v-cce1dd03],
2925
- .rk-command-leave-active[data-v-cce1dd03] {
2924
+ .rk-command-enter-active[data-v-f72521e7],
2925
+ .rk-command-leave-active[data-v-f72521e7] {
2926
2926
  transition: opacity var(--duration-fast) var(--ease-standard);
2927
2927
  }
2928
- .rk-command-enter-active .rk-command-panel[data-v-cce1dd03],
2929
- .rk-command-leave-active .rk-command-panel[data-v-cce1dd03] {
2928
+ .rk-command-enter-active .rk-command-panel[data-v-f72521e7],
2929
+ .rk-command-leave-active .rk-command-panel[data-v-f72521e7] {
2930
2930
  transition: transform var(--duration-fast) var(--ease-standard);
2931
2931
  }
2932
- .rk-command-enter-from[data-v-cce1dd03],
2933
- .rk-command-leave-to[data-v-cce1dd03] {
2932
+ .rk-command-enter-from[data-v-f72521e7],
2933
+ .rk-command-leave-to[data-v-f72521e7] {
2934
2934
  opacity: 0;
2935
2935
  }
2936
- .rk-command-enter-from .rk-command-panel[data-v-cce1dd03],
2937
- .rk-command-leave-to .rk-command-panel[data-v-cce1dd03] {
2936
+ .rk-command-enter-from .rk-command-panel[data-v-f72521e7],
2937
+ .rk-command-leave-to .rk-command-panel[data-v-f72521e7] {
2938
2938
  transform: translateY(-0.5rem) scale(0.98);
2939
2939
  }
2940
2940
 
package/dist/web.js CHANGED
@@ -454,9 +454,26 @@ var CommandMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
454
454
  const field = useTemplateRef("field");
455
455
  const sheetRoot = ensureSheetRoot();
456
456
  let release = null;
457
+ /**
458
+ * Every word has to appear somewhere, rather than the whole query in one
459
+ * place.
460
+ *
461
+ * Matching the query as a single string means "date picker" finds nothing
462
+ * when the name is `BaseDatePicker` and the word "picker" lives in the
463
+ * keywords beside it — the two halves are in different fields, and a person
464
+ * typing has no way of knowing that. Splitting on spaces is what makes a
465
+ * palette feel like it is reading the request rather than the string.
466
+ *
467
+ * The words may land in any order and in any field, which is why the
468
+ * searchable text is joined first.
469
+ */
457
470
  const matches = computed(() => {
458
- const needle = query.value.trim().toLowerCase();
459
- const keep = (item) => needle === "" || [item.label, ...item.keywords ?? []].some((word) => word.toLowerCase().includes(needle));
471
+ const terms = query.value.trim().toLowerCase().split(/\s+/).filter(Boolean);
472
+ const keep = (item) => {
473
+ if (terms.length === 0) return true;
474
+ const haystack = [item.label, ...item.keywords ?? []].join(" ").toLowerCase();
475
+ return terms.every((term) => haystack.includes(term));
476
+ };
460
477
  return __props.groups.map((group) => ({
461
478
  ...group,
462
479
  items: group.items.filter(keep)
@@ -586,7 +603,7 @@ var CommandMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
586
603
  })], 8, ["to"]);
587
604
  };
588
605
  }
589
- }), [["__scopeId", "data-v-cce1dd03"]]);
606
+ }), [["__scopeId", "data-v-f72521e7"]]);
590
607
  //#endregion
591
608
  //#region src/web/DataTable.vue?vue&type=script&setup=true&lang.ts
592
609
  var _hoisted_1$9 = ["aria-label"];