@besaitech/ng-design-system 0.0.60 → 0.0.62

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/index.d.ts CHANGED
@@ -596,14 +596,41 @@ type SdsLocalizedInputSize = 'sm' | 'md' | 'lg';
596
596
  * first accepted language — so the field "opens on the language you are working in". Empty translations are
597
597
  * pruned from the emitted value, keeping the stored map clean.
598
598
  *
599
+ * Mark a must-fill language (a store's main language) with `[requiredLanguages]`, show a per-language
600
+ * `[maxLength]` counter, and an `[error]` like `sds-input`.
601
+ *
599
602
  * Implements ControlValueAccessor over the map — use with reactive forms or `[(ngModel)]`:
600
603
  * `<sds-localized-input [languages]="['fr','nl','en']" [(ngModel)]="title" />`.
601
604
  */
602
605
  declare class SdsLocalizedInput implements ControlValueAccessor {
603
- readonly inputId: string;
606
+ private readonly autoId;
607
+ /** The native field's id; a generated one when empty (set it to pair an external `<label for>`). */
608
+ readonly inputId: _angular_core.InputSignal<string>;
609
+ /** The native field's id: {@link inputId} or the generated one. */
610
+ protected readonly fieldId: _angular_core.Signal<string>;
604
611
  readonly label: _angular_core.InputSignal<string>;
612
+ /** Accessible name when there is no visible {@link label} (a dense row in a table or list). */
613
+ readonly ariaLabel: _angular_core.InputSignal<string>;
605
614
  readonly hint: _angular_core.InputSignal<string>;
615
+ /** Error message under the field (danger frame + `aria-invalid`); replaces the hint. */
616
+ readonly error: _angular_core.InputSignal<string>;
617
+ /** Mark the field invalid (danger frame + `aria-invalid`) without showing an [error] message. */
618
+ readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
619
+ /**
620
+ * Mark the field required: an asterisk after the [label] and `aria-required`. It does not validate — keep your
621
+ * own validator (e.g. "the main language is filled").
622
+ */
623
+ readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
624
+ /**
625
+ * Languages that must be filled (e.g. a store's main language): while empty, their switcher dot shows in the
626
+ * danger colour and its title says {@link requiredLanguageLabel}. Display only — validate in the form.
627
+ */
628
+ readonly requiredLanguages: _angular_core.InputSignal<string[]>;
606
629
  readonly placeholder: _angular_core.InputSignal<string>;
630
+ /** Maximum characters per language (native `maxlength` on the field). 0 = no limit. */
631
+ readonly maxLength: _angular_core.InputSignalWithTransform<number, unknown>;
632
+ /** Show a character counter (of the language being edited) under the field; implied by {@link maxLength}. */
633
+ readonly showCount: _angular_core.InputSignalWithTransform<boolean, unknown>;
607
634
  /** The accepted language codes, in display order (e.g. `['fr','nl','en']`). */
608
635
  readonly languages: _angular_core.InputSignal<string[]>;
609
636
  /** Language to pre-select; used when it is one of {@link languages}, else the first accepted language. */
@@ -619,16 +646,22 @@ declare class SdsLocalizedInput implements ControlValueAccessor {
619
646
  */
620
647
  readonly languageSwitcherLabel: _angular_core.InputSignal<string>;
621
648
  readonly untranslatedLabel: _angular_core.InputSignal<string>;
649
+ /** Title suffix of a required language that is still empty (see {@link requiredLanguages}). */
650
+ readonly requiredLanguageLabel: _angular_core.InputSignal<string>;
622
651
  private readonly valueMap;
623
652
  /** Language chosen via the switcher; null means "follow currentLanguage / the first language". */
624
653
  private readonly manual;
625
654
  private readonly cvaDisabled;
626
655
  protected readonly isDisabled: _angular_core.Signal<boolean>;
627
656
  protected readonly wrapperClasses: _angular_core.Signal<string>;
657
+ protected readonly hasCounter: _angular_core.Signal<boolean>;
658
+ protected readonly describedBy: _angular_core.Signal<string | null>;
628
659
  /** The language currently being edited. */
629
660
  protected readonly activeLang: _angular_core.Signal<string>;
630
661
  protected readonly current: _angular_core.Signal<string>;
631
662
  protected filled(lang: string): boolean;
663
+ /** A required language (see {@link requiredLanguages}) that is still empty. */
664
+ protected mustFill(lang: string): boolean;
632
665
  protected fieldPlaceholder(): string;
633
666
  protected select(lang: string): void;
634
667
  protected write(event: Event): void;
@@ -639,7 +672,7 @@ declare class SdsLocalizedInput implements ControlValueAccessor {
639
672
  registerOnTouched(fn: () => void): void;
640
673
  setDisabledState(isDisabled: boolean): void;
641
674
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdsLocalizedInput, never>;
642
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdsLocalizedInput, "sds-localized-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "languages": { "alias": "languages"; "required": false; "isSignal": true; }; "currentLanguage": { "alias": "currentLanguage"; "required": false; "isSignal": true; }; "multiline": { "alias": "multiline"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "languageSwitcherLabel": { "alias": "languageSwitcherLabel"; "required": false; "isSignal": true; }; "untranslatedLabel": { "alias": "untranslatedLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
675
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdsLocalizedInput, "sds-localized-input", never, { "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "requiredLanguages": { "alias": "requiredLanguages"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "showCount": { "alias": "showCount"; "required": false; "isSignal": true; }; "languages": { "alias": "languages"; "required": false; "isSignal": true; }; "currentLanguage": { "alias": "currentLanguage"; "required": false; "isSignal": true; }; "multiline": { "alias": "multiline"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "languageSwitcherLabel": { "alias": "languageSwitcherLabel"; "required": false; "isSignal": true; }; "untranslatedLabel": { "alias": "untranslatedLabel"; "required": false; "isSignal": true; }; "requiredLanguageLabel": { "alias": "requiredLanguageLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
643
676
  }
644
677
 
645
678
  type SdsOtpInputSize = 'md' | 'lg';
@@ -4817,5 +4850,36 @@ declare class SdsLanguageSwitcher implements OnDestroy {
4817
4850
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdsLanguageSwitcher, "sds-language-switcher", never, { "languages": { "alias": "languages"; "required": false; "isSignal": true; }; "current": { "alias": "current"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "menuLabel": { "alias": "menuLabel"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; }, { "current": "currentChange"; "openChange": "openChange"; }, never, never, true, never>;
4818
4851
  }
4819
4852
 
4820
- export { SDS_ALLERGENS, SDS_ALLERGEN_ICONS, SDS_ALLERGEN_LABELS_EN, SDS_ICONS, SDS_PHONE_COUNTRIES, SDS_THEME_STORAGE_KEY, SDS_UI_PREF_LANG_PARAM, SDS_UI_PREF_THEME_PARAM, SdsAccordion, SdsAccordionContent, SdsAccordionHeader, SdsAccordionPanel, SdsAccordionStore, SdsAddressAutocomplete, SdsAddressExtra, SdsAllergenIcon, SdsAvatar, SdsBadge, SdsBulkBar, SdsButton, SdsCalendar, SdsCard, SdsCheckbox, SdsChecklistRow, SdsChip, SdsChipGroup, SdsDatePicker, SdsFileDrop, SdsIcon, SdsImageCropper, SdsInput, SdsInputNumber, SdsLanguageSwitcher, SdsLocalizedInput, SdsMenu, SdsMenuItem, SdsMenuTrigger, SdsMultiSelect, SdsNavGroup, SdsNavItem, SdsOtpInput, SdsPaginator, SdsPhoneInput, SdsRadio, SdsScore, SdsSearchCommand, SdsSegmented, SdsSelect, SdsSelectEmpty, SdsSelectFooter, SdsSelectOption, SdsShell, SdsSidebar, SdsSortableHandle, SdsSortableItem, SdsSortableList, SdsStatusTile, SdsTab, SdsTabList, SdsTabPanel, SdsTabPanels, SdsTable, SdsTableCell, SdsTableEmpty, SdsTableHeader, SdsTableRowExpansion, SdsTabs, SdsTabsStore, SdsTextarea, SdsThemeService, SdsThemeToggle, SdsTimeInput, SdsToastHost, SdsToastService, SdsToggleSwitch, SdsTopbar, SdsTriStateChip, SdsUserMenu, SidebarStore, addDays, addMonths, addMonthsKeepDay, appendUiPrefs, formatDdMmYyyy, formatHhMm, isOutOfRange, isSameDay, isSdsThemeMode, isoDay, pad2, readUiPrefs, sdsFileMatchesAccept, sdsFormatBytes, sdsFormatNational, sdsMatchDialCode, sdsNormalizeSignificant, startOfDay, startOfMonth, stripUiPrefs };
4821
- export type { SdsAccordionActive, SdsAccordionValue, SdsAddressAutocompleteAppearance, SdsAddressAutocompleteShape, SdsAddressAutocompleteSize, SdsAddressExtraContext, SdsAddressExtraPosition, SdsAddressLocateFn, SdsAddressSearchFn, SdsAddressSuggestion, SdsAllergen, SdsAvatarShape, SdsAvatarStatus, SdsBadgeSize, SdsBadgeVariant, SdsBulkBarPosition, SdsButtonShape, SdsButtonSize, SdsButtonVariant, SdsCardVariant, SdsCheckboxSize, SdsChecklistStatus, SdsChipOption, SdsChipSize, SdsCropRect, SdsDatePickerSize, SdsFileDropAppearance, SdsFileRejection, SdsFileRejectionReason, SdsIconName, SdsIconSize, SdsImageCropperBlobOptions, SdsImageCropperShape, SdsInputAppearance, SdsInputNumberAppearance, SdsInputNumberButtonLayout, SdsInputNumberCurrencyDisplay, SdsInputNumberMode, SdsInputNumberSize, SdsInputShape, SdsInputSize, SdsInputType, SdsLanguageOption, SdsLanguageSwitcherAlign, SdsLanguageSwitcherAppearance, SdsLanguageSwitcherDirection, SdsLocalizedInputSize, SdsLocalizedValue, SdsMenuAction, SdsMenuAlign, SdsMenuEntry, SdsMenuItemTone, SdsMenuSeparator, SdsMultiSelectDisplay, SdsMultiSelectSize, SdsNavItemBadgeTone, SdsOtpInputSize, SdsPaginatorSize, SdsPaginatorState, SdsPhoneCountry, SdsPhoneInputSize, SdsPhoneValue, SdsRadioSize, SdsScoreSize, SdsScoreTier, SdsScoreVariant, SdsSearchAppearance, SdsSearchItem, SdsSegmentedOption, SdsSegmentedSize, SdsSelectAppearance, SdsSelectEmptyContext, SdsSelectFooterContext, SdsSelectOptionContext, SdsSelectSize, SdsShellBackground, SdsSidebarAppearance, SdsSortOrder, SdsSortableAppearance, SdsSortableItemContext, SdsSortableReorderEvent, SdsStatusTileState, SdsTabValue, SdsTableCellCommitEvent, SdsTableCellContext, SdsTableCellErrors, SdsTableColumn, SdsTableEditTrigger, SdsTableEditor, SdsTableEmptyContext, SdsTableHeaderContext, SdsTableLazyEvent, SdsTableRowExpansionContext, SdsTableSelectOption, SdsTableSize, SdsTableSortEvent, SdsTextareaAppearance, SdsTextareaResize, SdsTextareaSize, SdsTheme, SdsThemeMode, SdsThemeToggleAppearance, SdsTimeInputAppearance, SdsTimeInputSize, SdsToast, SdsToastKind, SdsToggleSwitchSize, SdsTopbarAppearance, SdsTriState, SdsTriStateChipSize, SdsUiPrefs, SdsUserMenuAlign, SdsUserMenuAppearance };
4853
+ /** Build environment a marker is shown for. Only `dev` and `test` render; `prod` (or anything else) shows nothing. */
4854
+ type SdsEnvBannerEnv = 'dev' | 'test' | 'prod' | (string & {});
4855
+ interface Marker {
4856
+ label: 'DEV' | 'TEST';
4857
+ /** Tailwind classes for the 3px rule and the tab — one fixed hue each, identical in light & dark. */
4858
+ bar: string;
4859
+ tab: string;
4860
+ variant: 'dev' | 'test';
4861
+ }
4862
+ /**
4863
+ * Non-production environment marker: a 3px rule pinned across the very top of the viewport with a small tab
4864
+ * hanging from its centre — sky **DEV** or amber **TEST**, nothing in production. Fixed and click-through,
4865
+ * above all app chrome, so a dev or test environment is never mistaken for the live one.
4866
+ *
4867
+ * Presentation only, no i18n or environment dependency: the host app supplies the resolved `[env]` (from its
4868
+ * `environment.env`, or — for an SSR app — from the request host) and, optionally, the translated
4869
+ * screen-reader sentences. Render it once from the app's root component.
4870
+ */
4871
+ declare class SdsEnvBanner {
4872
+ /** The resolved build environment. Only `dev` and `test` show a marker; `prod`/anything else shows nothing. */
4873
+ readonly env: _angular_core.InputSignal<SdsEnvBannerEnv | undefined>;
4874
+ /** Screen-reader sentence for the DEV marker (pass a translated string; English default). */
4875
+ readonly devSrLabel: _angular_core.InputSignal<string>;
4876
+ /** Screen-reader sentence for the TEST marker (pass a translated string; English default). */
4877
+ readonly testSrLabel: _angular_core.InputSignal<string>;
4878
+ protected readonly marker: _angular_core.Signal<Marker | null>;
4879
+ protected readonly srLabel: _angular_core.Signal<string>;
4880
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdsEnvBanner, never>;
4881
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdsEnvBanner, "sds-env-banner", never, { "env": { "alias": "env"; "required": false; "isSignal": true; }; "devSrLabel": { "alias": "devSrLabel"; "required": false; "isSignal": true; }; "testSrLabel": { "alias": "testSrLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4882
+ }
4883
+
4884
+ export { SDS_ALLERGENS, SDS_ALLERGEN_ICONS, SDS_ALLERGEN_LABELS_EN, SDS_ICONS, SDS_PHONE_COUNTRIES, SDS_THEME_STORAGE_KEY, SDS_UI_PREF_LANG_PARAM, SDS_UI_PREF_THEME_PARAM, SdsAccordion, SdsAccordionContent, SdsAccordionHeader, SdsAccordionPanel, SdsAccordionStore, SdsAddressAutocomplete, SdsAddressExtra, SdsAllergenIcon, SdsAvatar, SdsBadge, SdsBulkBar, SdsButton, SdsCalendar, SdsCard, SdsCheckbox, SdsChecklistRow, SdsChip, SdsChipGroup, SdsDatePicker, SdsEnvBanner, SdsFileDrop, SdsIcon, SdsImageCropper, SdsInput, SdsInputNumber, SdsLanguageSwitcher, SdsLocalizedInput, SdsMenu, SdsMenuItem, SdsMenuTrigger, SdsMultiSelect, SdsNavGroup, SdsNavItem, SdsOtpInput, SdsPaginator, SdsPhoneInput, SdsRadio, SdsScore, SdsSearchCommand, SdsSegmented, SdsSelect, SdsSelectEmpty, SdsSelectFooter, SdsSelectOption, SdsShell, SdsSidebar, SdsSortableHandle, SdsSortableItem, SdsSortableList, SdsStatusTile, SdsTab, SdsTabList, SdsTabPanel, SdsTabPanels, SdsTable, SdsTableCell, SdsTableEmpty, SdsTableHeader, SdsTableRowExpansion, SdsTabs, SdsTabsStore, SdsTextarea, SdsThemeService, SdsThemeToggle, SdsTimeInput, SdsToastHost, SdsToastService, SdsToggleSwitch, SdsTopbar, SdsTriStateChip, SdsUserMenu, SidebarStore, addDays, addMonths, addMonthsKeepDay, appendUiPrefs, formatDdMmYyyy, formatHhMm, isOutOfRange, isSameDay, isSdsThemeMode, isoDay, pad2, readUiPrefs, sdsFileMatchesAccept, sdsFormatBytes, sdsFormatNational, sdsMatchDialCode, sdsNormalizeSignificant, startOfDay, startOfMonth, stripUiPrefs };
4885
+ export type { SdsAccordionActive, SdsAccordionValue, SdsAddressAutocompleteAppearance, SdsAddressAutocompleteShape, SdsAddressAutocompleteSize, SdsAddressExtraContext, SdsAddressExtraPosition, SdsAddressLocateFn, SdsAddressSearchFn, SdsAddressSuggestion, SdsAllergen, SdsAvatarShape, SdsAvatarStatus, SdsBadgeSize, SdsBadgeVariant, SdsBulkBarPosition, SdsButtonShape, SdsButtonSize, SdsButtonVariant, SdsCardVariant, SdsCheckboxSize, SdsChecklistStatus, SdsChipOption, SdsChipSize, SdsCropRect, SdsDatePickerSize, SdsEnvBannerEnv, SdsFileDropAppearance, SdsFileRejection, SdsFileRejectionReason, SdsIconName, SdsIconSize, SdsImageCropperBlobOptions, SdsImageCropperShape, SdsInputAppearance, SdsInputNumberAppearance, SdsInputNumberButtonLayout, SdsInputNumberCurrencyDisplay, SdsInputNumberMode, SdsInputNumberSize, SdsInputShape, SdsInputSize, SdsInputType, SdsLanguageOption, SdsLanguageSwitcherAlign, SdsLanguageSwitcherAppearance, SdsLanguageSwitcherDirection, SdsLocalizedInputSize, SdsLocalizedValue, SdsMenuAction, SdsMenuAlign, SdsMenuEntry, SdsMenuItemTone, SdsMenuSeparator, SdsMultiSelectDisplay, SdsMultiSelectSize, SdsNavItemBadgeTone, SdsOtpInputSize, SdsPaginatorSize, SdsPaginatorState, SdsPhoneCountry, SdsPhoneInputSize, SdsPhoneValue, SdsRadioSize, SdsScoreSize, SdsScoreTier, SdsScoreVariant, SdsSearchAppearance, SdsSearchItem, SdsSegmentedOption, SdsSegmentedSize, SdsSelectAppearance, SdsSelectEmptyContext, SdsSelectFooterContext, SdsSelectOptionContext, SdsSelectSize, SdsShellBackground, SdsSidebarAppearance, SdsSortOrder, SdsSortableAppearance, SdsSortableItemContext, SdsSortableReorderEvent, SdsStatusTileState, SdsTabValue, SdsTableCellCommitEvent, SdsTableCellContext, SdsTableCellErrors, SdsTableColumn, SdsTableEditTrigger, SdsTableEditor, SdsTableEmptyContext, SdsTableHeaderContext, SdsTableLazyEvent, SdsTableRowExpansionContext, SdsTableSelectOption, SdsTableSize, SdsTableSortEvent, SdsTextareaAppearance, SdsTextareaResize, SdsTextareaSize, SdsTheme, SdsThemeMode, SdsThemeToggleAppearance, SdsTimeInputAppearance, SdsTimeInputSize, SdsToast, SdsToastKind, SdsToggleSwitchSize, SdsTopbarAppearance, SdsTriState, SdsTriStateChipSize, SdsUiPrefs, SdsUserMenuAlign, SdsUserMenuAppearance };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@besaitech/ng-design-system",
3
- "version": "0.0.60",
3
+ "version": "0.0.62",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/",
6
6
  "access": "public"