@bluevolt-tech/lumen 2.0.1 → 2.2.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.
Files changed (56) hide show
  1. package/README.md +37 -23
  2. package/dist/components/_shared/adopt-styles.d.ts +8 -0
  3. package/dist/components/_shared/date-range-validator.d.ts +86 -0
  4. package/dist/components/_shared/dropdown-controller.d.ts +60 -0
  5. package/dist/components/_shared/selectable-card.d.ts +10 -0
  6. package/dist/components/bv-alert-banner/bv-alert-banner.js +19 -17
  7. package/dist/components/bv-avatar/bv-avatar.js +19 -11
  8. package/dist/components/bv-badge/bv-badge.js +19 -11
  9. package/dist/components/bv-button/bv-button.js +18 -16
  10. package/dist/components/bv-category-pill/bv-category-pill.js +18 -16
  11. package/dist/components/bv-checkbox/bv-checkbox.js +19 -11
  12. package/dist/components/bv-chip/bv-chip.js +19 -11
  13. package/dist/components/bv-course-detail/bv-course-detail.js +20 -34
  14. package/dist/components/bv-course-detail-modal/bv-course-detail-modal.js +24 -90
  15. package/dist/components/bv-course-grid-card/bv-course-grid-card.d.ts +2 -6
  16. package/dist/components/bv-course-grid-card/bv-course-grid-card.js +98 -105
  17. package/dist/components/bv-course-list-card/bv-course-list-card.d.ts +2 -6
  18. package/dist/components/bv-course-list-card/bv-course-list-card.js +98 -105
  19. package/dist/components/bv-course-outline/bv-course-outline.js +19 -11
  20. package/dist/components/bv-date-range-input/bv-date-range-input.d.ts +10 -6
  21. package/dist/components/bv-date-range-input/bv-date-range-input.js +602 -125
  22. package/dist/components/bv-date-range-picker/bv-date-range-picker.d.ts +71 -4
  23. package/dist/components/bv-date-range-picker/bv-date-range-picker.js +441 -76
  24. package/dist/components/bv-empty-state/bv-empty-state.js +20 -28
  25. package/dist/components/bv-filter-dropdown/bv-filter-dropdown.d.ts +1 -4
  26. package/dist/components/bv-filter-dropdown/bv-filter-dropdown.js +80 -53
  27. package/dist/components/bv-filter-panel/bv-filter-panel.js +20 -22
  28. package/dist/components/bv-icon/bv-icon.js +19 -11
  29. package/dist/components/bv-input/bv-input.js +18 -16
  30. package/dist/components/bv-input-dropdown/bv-input-dropdown.d.ts +1 -4
  31. package/dist/components/bv-input-dropdown/bv-input-dropdown.js +79 -78
  32. package/dist/components/bv-modal/bv-modal.js +19 -11
  33. package/dist/components/bv-page-title/bv-page-title.js +19 -6
  34. package/dist/components/bv-pagination/bv-pagination.d.ts +1 -0
  35. package/dist/components/bv-pagination/bv-pagination.js +23 -186
  36. package/dist/components/bv-portal-header/bv-portal-header.js +25 -83
  37. package/dist/components/bv-portal-layout/bv-portal-layout.js +19 -11
  38. package/dist/components/bv-progress-bar/bv-progress-bar.js +19 -11
  39. package/dist/components/bv-promo-banner/bv-promo-banner.js +19 -11
  40. package/dist/components/bv-radio/bv-radio.js +19 -11
  41. package/dist/components/bv-searchbox/bv-searchbox.js +19 -11
  42. package/dist/components/bv-segmented-control/bv-segmented-control.js +18 -16
  43. package/dist/components/bv-select/bv-select.d.ts +1 -4
  44. package/dist/components/bv-select/bv-select.js +78 -44
  45. package/dist/components/bv-split-button/bv-split-button.d.ts +1 -4
  46. package/dist/components/bv-split-button/bv-split-button.js +78 -42
  47. package/dist/components/bv-star-rating/bv-star-rating.js +19 -11
  48. package/dist/components/bv-table/bv-table.d.ts +5 -0
  49. package/dist/components/bv-table/bv-table.js +70 -19
  50. package/dist/components/bv-toggle/bv-toggle.js +19 -11
  51. package/dist/components/bv-tooltip/bv-tooltip.js +20 -17
  52. package/dist/components/bv-user-row/bv-user-row.js +22 -50
  53. package/dist/components/bv-view-switcher/bv-view-switcher.js +19 -11
  54. package/dist/themes/base.css +1 -1
  55. package/package.json +8 -1
  56. package/themes/base.css +1 -1
@@ -6,7 +6,7 @@ export interface DateRangeChangeDetail {
6
6
  preset: string;
7
7
  }
8
8
  export declare class BvDateRangePicker extends HTMLElement {
9
- static readonly observedAttributes: readonly ["start", "end", "preset"];
9
+ static readonly observedAttributes: readonly ["start", "end", "preset", "min", "max", "max-range-years", "validate-order", "validate-format", "show-range-limit-banner", "error-min", "error-max", "error-order", "error-format", "range-limit-message", "range-limit-heading", "error-min-severity", "error-max-severity", "error-format-severity", "error-order-severity", "range-limit-severity"];
10
10
  private _rendered;
11
11
  private _today;
12
12
  private _start;
@@ -16,6 +16,9 @@ export declare class BvDateRangePicker extends HTMLElement {
16
16
  private _hover;
17
17
  private _leftYear;
18
18
  private _leftMonth;
19
+ private _startRawInvalid;
20
+ private _endRawInvalid;
21
+ private _validity;
19
22
  private _leftGrid;
20
23
  private _rightGrid;
21
24
  private _leftTitle;
@@ -23,9 +26,22 @@ export declare class BvDateRangePicker extends HTMLElement {
23
26
  private _startInput;
24
27
  private _endInput;
25
28
  private _applyBtn;
26
- private _bannerEl;
29
+ /**
30
+ * Unified alert banner (BTN-10312). Shows AT MOST ONE error at a time. When
31
+ * multiple errors are simultaneously active, the banner reflects the
32
+ * most-recently-edited field (see `_lastEditedField`).
33
+ */
34
+ private _alertBannerEl;
27
35
  private _leftDayMap;
28
36
  private _rightDayMap;
37
+ /**
38
+ * BTN-10312 — tracks which field the user most-recently interacted with.
39
+ * When both `startError` and `endError` are active, the banner shows the
40
+ * error corresponding to this field. Set to `null` when no field has been
41
+ * touched (initial render, or external attribute set); the resolver falls
42
+ * back to a stable precedence in that case.
43
+ */
44
+ private _lastEditedField;
29
45
  constructor();
30
46
  get start(): string;
31
47
  set start(v: string);
@@ -35,6 +51,16 @@ export declare class BvDateRangePicker extends HTMLElement {
35
51
  set preset(v: string);
36
52
  connectedCallback(): void;
37
53
  attributeChangedCallback(name: string, _old: string | null, val: string | null): void;
54
+ /**
55
+ * BTN-10312 — public reset of the picker's internal draft state to the
56
+ * currently committed `start` / `end` / `preset` attributes. Called by
57
+ * `bv-date-range-input` when the popup closes without Apply (Cancel,
58
+ * Escape, outside-click) so the next open shows the last-committed value
59
+ * cleanly, with no leftover error banners from the discarded edit.
60
+ *
61
+ * The external value is not modified — this only clears the draft.
62
+ */
63
+ resetDraft(): void;
38
64
  private _render;
39
65
  private _buildCalendarShell;
40
66
  private _navigate;
@@ -49,8 +75,49 @@ export declare class BvDateRangePicker extends HTMLElement {
49
75
  private _onInputBlur;
50
76
  private _syncInputs;
51
77
  private _syncPresets;
52
- private _syncApply;
53
- private _syncBanner;
78
+ private _syncValidity;
79
+ private _readConfig;
80
+ /**
81
+ * BTN-10312 — apply the `.invalid` + `aria-invalid` state to input fields
82
+ * whose field-level error is currently blocking (severity `'error'`).
83
+ * Non-blocking severities (warning/primary/success) do not paint the input
84
+ * red so the visual matches the semantic ("not a fatal error").
85
+ */
86
+ private _paintInputInvalidState;
87
+ private _paintOne;
88
+ /**
89
+ * BTN-10312 — single alert banner. Picks the "active" error following the
90
+ * precedence:
91
+ *
92
+ * 1. If a form error is active, show it (form errors don't coexist with
93
+ * field errors by validator design).
94
+ * 2. If both field errors are active, show the one for
95
+ * `_lastEditedField` (falling back to `start` if `null`).
96
+ * 3. Else show whichever single field error is active.
97
+ * 4. Else hide the banner.
98
+ *
99
+ * `show-range-limit-banner="false"` still suppresses the range-limit
100
+ * banner specifically (existing consumer contract from BTN-10191).
101
+ */
102
+ private _applyAlertBanner;
103
+ /**
104
+ * Pick which error the banner should reflect. See `_applyAlertBanner` for
105
+ * the precedence rules.
106
+ */
107
+ private _resolveActiveError;
108
+ private _resolveFieldError;
109
+ /**
110
+ * BTN-10312 — interpolate `{field}` (always lowercase) and `{Field}` (always
111
+ * capitalized) in a user-provided template. Before this change, the historical
112
+ * behavior was that `{field}` in custom copy resolved lowercase while the
113
+ * built-in defaults capitalized inline — inconsistent. Now the split is
114
+ * explicit: `{field}` = lowercase, `{Field}` = capitalized.
115
+ */
116
+ private _interpolateField;
117
+ private _resolveOrderError;
118
+ private _applyApplyState;
119
+ private _applyCalendarDisabledState;
120
+ private _resetDayDisabled;
54
121
  private _setupDateMask;
55
122
  private _apply;
56
123
  }