@lilydesignsystem/angular-picker-bar 0.1.0 → 0.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"lilydesignsystem-angular-picker-bar.mjs","sources":["../../picker-bar.component.ts","../../lilydesignsystem-angular-picker-bar.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model, output } from \"@angular/core\";\n\nimport { ThemePicker } from \"@lilydesignsystem/angular-theme-picker\";\nimport { LocalePicker } from \"@lilydesignsystem/angular-locale-picker\";\nimport { TextSizePicker } from \"@lilydesignsystem/angular-text-size-picker\";\nimport {\n SharePicker,\n type ShareEvent,\n type ShareStrategy,\n type ShareTarget,\n} from \"@lilydesignsystem/angular-share-picker\";\n\n/**\n * All 45 Lily reference theme slugs (see `themes/` at the repo root),\n * sorted alphabetically except the United Kingdom and United States\n * government/public-sector themes, which sort last as one alphabetical\n * group of their own. Mirrors `theme-picker`'s own title-casing of each\n * slug, so no `themeLabels` override is needed for these to read well.\n */\nexport const DEFAULT_THEMES: string[] = [\n \"abyss\",\n \"acid\",\n \"adobe-spectrum\",\n \"aqua\",\n \"autumn\",\n \"black\",\n \"bumblebee\",\n \"business\",\n \"caramellatte\",\n \"cmyk\",\n \"coffee\",\n \"corporate\",\n \"cupcake\",\n \"cyberpunk\",\n \"dark\",\n \"dim\",\n \"dracula\",\n \"emerald\",\n \"fantasy\",\n \"forest\",\n \"garden\",\n \"halloween\",\n \"lemonade\",\n \"light\",\n \"lofi\",\n \"luxury\",\n \"mozilla-protocol\",\n \"night\",\n \"nord\",\n \"pastel\",\n \"retro\",\n \"silk\",\n \"sunset\",\n \"synthwave\",\n \"valentine\",\n \"winter\",\n \"wireframe\",\n \"united-kingdom-government-digital-service\",\n \"united-kingdom-national-health-service-england-for-patients\",\n \"united-kingdom-national-health-service-england-for-practitioners\",\n \"united-kingdom-national-health-service-scotland-for-patients\",\n \"united-kingdom-national-health-service-scotland-for-practitioners\",\n \"united-kingdom-national-health-service-wales-for-patients\",\n \"united-kingdom-national-health-service-wales-for-practitioners\",\n \"united-states-web-design-system\",\n];\n\n/**\n * The seven-step text-size scale. Each slug title-cases to exactly the\n * requested label (\"largest\" → \"Largest\", …) via `text-size-picker`'s\n * own default `labelFor`, so no `sizeLabels` override is needed either.\n */\nexport const DEFAULT_SIZES: string[] = [\n \"largest\",\n \"larger\",\n \"large\",\n \"normal\",\n \"small\",\n \"smaller\",\n \"smallest\",\n];\n\n/** Accessible names for the four pickers. Required — no English default. */\nexport type PickerBarLabels = {\n /** Accessible name for the theme picker's button and listbox. */\n theme: string;\n /** Accessible name for the locale picker's button and listbox. */\n locale: string;\n /** Accessible name for the text-size picker's button and listbox. */\n textSize: string;\n /** Accessible name for the share picker's button and list. */\n share: string;\n};\n\n/**\n * PickerBar — composes theme-picker, locale-picker, text-size-picker,\n * and share-picker into one page-header row.\n *\n * A thin wrapper: it renders the four picker components, each imported\n * as a real npm dependency from its own published package, unmodified.\n * It pre-wires two catalog-specific defaults (`DEFAULT_THEMES`,\n * `DEFAULT_SIZES`) and flattens each wrapped picker's most commonly\n * needed optional props onto its own inputs — Angular has no spread\n * binding for component inputs, so unlike the canonical Svelte\n * contract's `*Props` bag, overrides here are named inputs rather than\n * an object spread. `motion-picker` and `date-time-picker` are\n * deliberately not included — see `spec/index.md` §1.\n */\n@Component({\n selector: \"lily-picker-bar\",\n standalone: true,\n imports: [ThemePicker, LocalePicker, TextSizePicker, SharePicker],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"picker-bar {{ className() }}\">\n <lily-theme-picker\n [label]=\"labels().theme\"\n [themesUrl]=\"themesUrl()\"\n [themes]=\"themes()\"\n [(value)]=\"themeValue\"\n [defaultValue]=\"themeDefaultValue()\"\n [storageKey]=\"themeStorageKey()\"\n [detectFromSystem]=\"themeDetectFromSystem()\"\n [name]=\"themeName()\"\n [target]=\"themeTarget()\"\n [themeLabels]=\"themeLabels()\"\n />\n <lily-locale-picker\n [label]=\"labels().locale\"\n [locales]=\"locales()\"\n [(value)]=\"localeValue\"\n [defaultValue]=\"localeDefaultValue()\"\n [storageKey]=\"localeStorageKey()\"\n [detectFromNavigator]=\"localeDetectFromNavigator()\"\n [name]=\"localeName()\"\n [target]=\"localeTarget()\"\n [applyDir]=\"localeApplyDir()\"\n [localeLabels]=\"localeLabels()\"\n />\n <lily-text-size-picker\n [label]=\"labels().textSize\"\n [sizes]=\"sizes()\"\n [(value)]=\"textSizeValue\"\n [defaultValue]=\"textSizeDefaultValue()\"\n [storageKey]=\"textSizeStorageKey()\"\n [name]=\"textSizeName()\"\n [target]=\"textSizeTarget()\"\n [sizeLabels]=\"textSizeLabels()\"\n />\n <lily-share-picker\n [label]=\"labels().share\"\n [targets]=\"shareTargets()\"\n [url]=\"shareUrl()\"\n [title]=\"shareTitle()\"\n [text]=\"shareText()\"\n [copyLabel]=\"copyLabel()\"\n [copiedLabel]=\"copiedLabel()\"\n [copyFailedLabel]=\"copyFailedLabel()\"\n [strategy]=\"shareStrategy()\"\n (share)=\"share.emit($event)\"\n (copy)=\"copy.emit($event)\"\n (nativeShare)=\"nativeShare.emit($event)\"\n />\n </div>\n `,\n})\nexport class PickerBar {\n /** Accessible names for each picker. */\n readonly labels = input.required<PickerBarLabels>();\n\n // --- theme-picker ---\n /** Base URL of the themes directory, forwarded to ThemePicker. */\n readonly themesUrl = input.required<string>();\n /** Available theme slugs. Defaults to {@link DEFAULT_THEMES}. */\n readonly themes = input<string[]>(DEFAULT_THEMES);\n /** Two-way bindable current theme slug. */\n readonly themeValue = model<string>(\"\");\n readonly themeDefaultValue = input<string>(\"\");\n readonly themeStorageKey = input<string>(\"\");\n readonly themeDetectFromSystem = input<boolean>(false);\n readonly themeName = input<string>(\"theme\");\n readonly themeTarget = input<HTMLElement | null>(null);\n readonly themeLabels = input<Record<string, string>>({});\n\n // --- locale-picker ---\n /** Available locale codes. No catalog default exists — supply the set you support. */\n readonly locales = input.required<string[]>();\n /** Two-way bindable current locale code. */\n readonly localeValue = model<string>(\"\");\n readonly localeDefaultValue = input<string>(\"\");\n readonly localeStorageKey = input<string>(\"\");\n readonly localeDetectFromNavigator = input<boolean>(false);\n readonly localeName = input<string>(\"locale\");\n readonly localeTarget = input<HTMLElement | null>(null);\n readonly localeApplyDir = input<boolean>(true);\n readonly localeLabels = input<Record<string, string>>({});\n\n // --- text-size-picker ---\n /** Available size slugs. Defaults to {@link DEFAULT_SIZES}. */\n readonly sizes = input<string[]>(DEFAULT_SIZES);\n /** Two-way bindable current size slug. */\n readonly textSizeValue = model<string>(\"\");\n /**\n * `text-size-picker`'s own fallback (\"medium\", else `sizes[0]`) does\n * not fit the seven-slug scale — \"medium\" is not one of the seven,\n * and `sizes[0]` would silently start every consumer on \"Largest\".\n */\n readonly textSizeDefaultValue = input<string>(\"normal\");\n readonly textSizeStorageKey = input<string>(\"\");\n readonly textSizeName = input<string>(\"text-size\");\n readonly textSizeTarget = input<HTMLElement | null>(null);\n readonly textSizeLabels = input<Record<string, string>>({});\n\n // --- share-picker ---\n /** Destinations offered by the share picker. Empty is valid if `copyLabel` is set. */\n readonly shareTargets = input<ShareTarget[]>([]);\n readonly shareUrl = input<string>(\"\");\n readonly shareTitle = input<string>(\"\");\n readonly shareText = input<string>(\"\");\n readonly copyLabel = input<string>(\"\");\n readonly copiedLabel = input<string>(\"\");\n readonly copyFailedLabel = input<string>(\"\");\n readonly shareStrategy = input<ShareStrategy>(\"auto\");\n /** Fires after a share destination is chosen. */\n readonly share = output<ShareEvent>();\n /** Fires after the URL is copied. */\n readonly copy = output<string>();\n /** Fires when the native share sheet was used instead of the list. */\n readonly nativeShare = output<string>();\n\n /** Extra CSS class on the root. */\n readonly className = input<string>(\"\");\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lilydesignsystem-angular-picker-bar.mjs","names":[],"sources":["../../picker-bar.component.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model, output } from \"@angular/core\";\n\nimport {\n LinkPicker,\n type LinkItem,\n type LinkNavigatedEvent,\n} from \"@lilydesignsystem/angular-link-picker\";\nimport { ThemePicker } from \"@lilydesignsystem/angular-theme-picker\";\nimport { LocalePicker } from \"@lilydesignsystem/angular-locale-picker\";\nimport { TextSizePicker } from \"@lilydesignsystem/angular-text-size-picker\";\nimport {\n SharePicker,\n type ShareEvent,\n type ShareStrategy,\n type ShareTarget,\n} from \"@lilydesignsystem/angular-share-picker\";\nimport {\n SearchPicker,\n type SearchEvent,\n} from \"@lilydesignsystem/angular-search-picker\";\n\n/**\n * All 45 Lily reference theme slugs (see `themes/` at the repo root),\n * sorted alphabetically except the United Kingdom and United States\n * government/public-sector themes, which sort last as one alphabetical\n * group of their own. Mirrors `theme-picker`'s own title-casing of each\n * slug, so no `themeLabels` override is needed for these to read well.\n */\nexport const DEFAULT_THEMES: string[] = [\n \"abyss\",\n \"acid\",\n \"adobe-spectrum\",\n \"aqua\",\n \"autumn\",\n \"black\",\n \"bumblebee\",\n \"business\",\n \"caramellatte\",\n \"cmyk\",\n \"coffee\",\n \"corporate\",\n \"cupcake\",\n \"cyberpunk\",\n \"dark\",\n \"dim\",\n \"dracula\",\n \"emerald\",\n \"fantasy\",\n \"forest\",\n \"garden\",\n \"halloween\",\n \"lemonade\",\n \"light\",\n \"lofi\",\n \"luxury\",\n \"mozilla-protocol\",\n \"night\",\n \"nord\",\n \"pastel\",\n \"retro\",\n \"silk\",\n \"sunset\",\n \"synthwave\",\n \"valentine\",\n \"winter\",\n \"wireframe\",\n \"united-kingdom-government-digital-service\",\n \"united-kingdom-national-health-service-england-for-patients\",\n \"united-kingdom-national-health-service-england-for-practitioners\",\n \"united-kingdom-national-health-service-scotland-for-patients\",\n \"united-kingdom-national-health-service-scotland-for-practitioners\",\n \"united-kingdom-national-health-service-wales-for-patients\",\n \"united-kingdom-national-health-service-wales-for-practitioners\",\n \"united-states-web-design-system\",\n];\n\n/**\n * The seven-step text-size scale. Each slug title-cases to exactly the\n * requested label (\"largest\" → \"Largest\", …) via `text-size-picker`'s\n * own default `labelFor`, so no `sizeLabels` override is needed either.\n */\nexport const DEFAULT_SIZES: string[] = [\n \"largest\",\n \"larger\",\n \"large\",\n \"normal\",\n \"small\",\n \"smaller\",\n \"smallest\",\n];\n\n/** Accessible names for the pickers. Required — no English default (`link` only when `links` is given). */\nexport type PickerBarLabels = {\n /**\n * Accessible name for the link picker's button and list. Needed only when `links` is\n * supplied; the link picker renders only when both are present.\n */\n link?: string;\n /** Accessible name for the search picker's button and search landmark. */\n search: string;\n /** Accessible name for the search picker's text field. */\n searchInput: string;\n /** Accessible name for the search picker's ⏎ submit button. */\n searchSubmit: string;\n /** Accessible name for the theme picker's button and listbox. */\n theme: string;\n /** Accessible name for the locale picker's button and listbox. */\n locale: string;\n /** Accessible name for the text-size picker's button and listbox. */\n textSize: string;\n /** Accessible name for the share picker's button and list. */\n share: string;\n};\n\n/**\n * PickerBar — composes search-picker, theme-picker, locale-picker,\n * text-size-picker, and share-picker into one page-header row.\n *\n * A thin wrapper: it renders the five picker components, each imported\n * as a real npm dependency from its own published package, unmodified.\n * It pre-wires two catalog-specific defaults (`DEFAULT_THEMES`,\n * `DEFAULT_SIZES`) and flattens each wrapped picker's most commonly\n * needed optional props onto its own inputs — Angular has no spread\n * binding for component inputs, so unlike the canonical Svelte\n * contract's `*Props` bag, overrides here are named inputs rather than\n * an object spread. `motion-picker` and `date-time-picker` are\n * deliberately not included — see `spec/index.md` §1.\n */\n@Component({\n selector: \"lily-picker-bar\",\n standalone: true,\n imports: [LinkPicker, SearchPicker, ThemePicker, LocalePicker, TextSizePicker, SharePicker],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"picker-bar {{ className() }}\">\n @if (links().length > 0 && labels().link) {\n <lily-link-picker\n [label]=\"labels().link!\"\n [links]=\"links()\"\n [navigate]=\"linkNavigate()\"\n (navigated)=\"linkNavigated.emit($event)\"\n />\n }\n <lily-search-picker\n [label]=\"labels().search\"\n [inputLabel]=\"labels().searchInput\"\n [submitLabel]=\"labels().searchSubmit\"\n [placeholder]=\"searchPlaceholder()\"\n [(value)]=\"searchValue\"\n [action]=\"searchAction()\"\n [navigate]=\"searchNavigate()\"\n (searched)=\"searched.emit($event)\"\n />\n <lily-theme-picker\n [label]=\"labels().theme\"\n [themesUrl]=\"themesUrl()\"\n [themes]=\"themes()\"\n [(value)]=\"themeValue\"\n [defaultValue]=\"themeDefaultValue()\"\n [storageKey]=\"themeStorageKey()\"\n [detectFromSystem]=\"themeDetectFromSystem()\"\n [name]=\"themeName()\"\n [target]=\"themeTarget()\"\n [themeLabels]=\"themeLabels()\"\n />\n <lily-locale-picker\n [label]=\"labels().locale\"\n [locales]=\"locales()\"\n [(value)]=\"localeValue\"\n [defaultValue]=\"localeDefaultValue()\"\n [storageKey]=\"localeStorageKey()\"\n [detectFromNavigator]=\"localeDetectFromNavigator()\"\n [name]=\"localeName()\"\n [target]=\"localeTarget()\"\n [applyDir]=\"localeApplyDir()\"\n [localeLabels]=\"localeLabels()\"\n />\n <lily-text-size-picker\n [label]=\"labels().textSize\"\n [sizes]=\"sizes()\"\n [(value)]=\"textSizeValue\"\n [defaultValue]=\"textSizeDefaultValue()\"\n [storageKey]=\"textSizeStorageKey()\"\n [name]=\"textSizeName()\"\n [target]=\"textSizeTarget()\"\n [sizeLabels]=\"textSizeLabels()\"\n />\n <lily-share-picker\n [label]=\"labels().share\"\n [targets]=\"shareTargets()\"\n [url]=\"shareUrl()\"\n [title]=\"shareTitle()\"\n [text]=\"shareText()\"\n [copyLabel]=\"copyLabel()\"\n [copiedLabel]=\"copiedLabel()\"\n [copyFailedLabel]=\"copyFailedLabel()\"\n [strategy]=\"shareStrategy()\"\n (share)=\"share.emit($event)\"\n (copy)=\"copy.emit($event)\"\n (nativeShare)=\"nativeShare.emit($event)\"\n />\n </div>\n `,\n})\nexport class PickerBar {\n /** Accessible names for each picker. */\n readonly labels = input.required<PickerBarLabels>();\n\n // --- link-picker ---\n /**\n * Page links for the link picker (a home icon), which renders FIRST — leftmost. Defined by the\n * app; omitted or empty means no link picker (and `labels().link` is then unused).\n */\n readonly links = input<LinkItem[]>([]);\n /** Client-side navigation hook for the links, e.g. a router's `navigateByUrl`. */\n readonly linkNavigate = input<((href: string) => void) | undefined>(undefined);\n /** Fires after a page link is chosen. */\n readonly linkNavigated = output<LinkNavigatedEvent>();\n\n // --- search-picker ---\n /** Placeholder for the search field. No default (it would be English). */\n readonly searchPlaceholder = input<string | undefined>(undefined);\n /** Two-way bindable search text. */\n readonly searchValue = model<string>(\"\");\n /** Path the query is appended to (`${searchAction}?${query}`). */\n readonly searchAction = input<string>(\"/\");\n /** Performs the search navigation. Defaults to `location.assign(href)`. */\n readonly searchNavigate = input<((href: string) => void) | undefined>(undefined);\n /** Fires with the trimmed query and destination, before navigating. */\n readonly searched = output<SearchEvent>();\n\n // --- theme-picker ---\n /** Base URL of the themes directory, forwarded to ThemePicker. */\n readonly themesUrl = input.required<string>();\n /** Available theme slugs. Defaults to {@link DEFAULT_THEMES}. */\n readonly themes = input<string[]>(DEFAULT_THEMES);\n /** Two-way bindable current theme slug. */\n readonly themeValue = model<string>(\"\");\n readonly themeDefaultValue = input<string>(\"\");\n readonly themeStorageKey = input<string>(\"\");\n readonly themeDetectFromSystem = input<boolean>(false);\n readonly themeName = input<string>(\"theme\");\n readonly themeTarget = input<HTMLElement | null>(null);\n readonly themeLabels = input<Record<string, string>>({});\n\n // --- locale-picker ---\n /** Available locale codes. No catalog default exists — supply the set you support. */\n readonly locales = input.required<string[]>();\n /** Two-way bindable current locale code. */\n readonly localeValue = model<string>(\"\");\n readonly localeDefaultValue = input<string>(\"\");\n readonly localeStorageKey = input<string>(\"\");\n readonly localeDetectFromNavigator = input<boolean>(false);\n readonly localeName = input<string>(\"locale\");\n readonly localeTarget = input<HTMLElement | null>(null);\n readonly localeApplyDir = input<boolean>(true);\n readonly localeLabels = input<Record<string, string>>({});\n\n // --- text-size-picker ---\n /** Available size slugs. Defaults to {@link DEFAULT_SIZES}. */\n readonly sizes = input<string[]>(DEFAULT_SIZES);\n /** Two-way bindable current size slug. */\n readonly textSizeValue = model<string>(\"\");\n /**\n * `text-size-picker`'s own fallback (\"medium\", else `sizes[0]`) does\n * not fit the seven-slug scale — \"medium\" is not one of the seven,\n * and `sizes[0]` would silently start every consumer on \"Largest\".\n */\n readonly textSizeDefaultValue = input<string>(\"normal\");\n readonly textSizeStorageKey = input<string>(\"\");\n readonly textSizeName = input<string>(\"text-size\");\n readonly textSizeTarget = input<HTMLElement | null>(null);\n readonly textSizeLabels = input<Record<string, string>>({});\n\n // --- share-picker ---\n /** Destinations offered by the share picker. Empty is valid if `copyLabel` is set. */\n readonly shareTargets = input<ShareTarget[]>([]);\n readonly shareUrl = input<string>(\"\");\n readonly shareTitle = input<string>(\"\");\n readonly shareText = input<string>(\"\");\n readonly copyLabel = input<string>(\"\");\n readonly copiedLabel = input<string>(\"\");\n readonly copyFailedLabel = input<string>(\"\");\n readonly shareStrategy = input<ShareStrategy>(\"auto\");\n /** Fires after a share destination is chosen. */\n readonly share = output<ShareEvent>();\n /** Fires after the URL is copied. */\n readonly copy = output<string>();\n /** Fires when the native share sheet was used instead of the list. */\n readonly nativeShare = output<string>();\n\n /** Extra CSS class on the root. */\n readonly className = input<string>(\"\");\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,19 +1,21 @@
1
1
  {
2
2
  "name": "@lilydesignsystem/angular-picker-bar",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "engines": {
5
5
  "node": "=26"
6
6
  },
7
- "description": "Lily Design System Angular 20 picker bar: composes theme-picker, locale-picker, text-size-picker, and share-picker into one page-header row. Headless, SSR-safe, no CSS.",
7
+ "description": "Lily Design System Angular picker bar: composes link-picker (optional), search-picker, theme-picker, locale-picker, text-size-picker, and share-picker into one page-header row. Headless, SSR-safe, no CSS.",
8
8
  "peerDependencies": {
9
9
  "@angular/core": ">=20.0.0 <23.0.0",
10
10
  "@angular/common": ">=20.0.0 <23.0.0"
11
11
  },
12
12
  "dependencies": {
13
- "@lilydesignsystem/angular-theme-picker": "^0.1.0",
14
- "@lilydesignsystem/angular-locale-picker": "^0.1.0",
15
- "@lilydesignsystem/angular-text-size-picker": "^0.1.0",
16
- "@lilydesignsystem/angular-share-picker": "^0.1.0",
13
+ "@lilydesignsystem/angular-link-picker": "^0.1.0",
14
+ "@lilydesignsystem/angular-search-picker": "^0.1.0",
15
+ "@lilydesignsystem/angular-theme-picker": "^0.2.0",
16
+ "@lilydesignsystem/angular-locale-picker": "^0.2.0",
17
+ "@lilydesignsystem/angular-text-size-picker": "^0.2.0",
18
+ "@lilydesignsystem/angular-share-picker": "^0.2.0",
17
19
  "tslib": "^2.3.0"
18
20
  },
19
21
  "sideEffects": false,
@@ -24,6 +26,7 @@
24
26
  "angular",
25
27
  "picker",
26
28
  "picker-bar",
29
+ "search",
27
30
  "theme",
28
31
  "locale",
29
32
  "text-size",
@@ -1,6 +1,7 @@
1
- import * as _angular_core from '@angular/core';
2
- import { ShareTarget, ShareStrategy, ShareEvent } from '@lilydesignsystem/angular-share-picker';
3
-
1
+ import { LinkItem, LinkNavigatedEvent } from "@lilydesignsystem/angular-link-picker";
2
+ import { ShareEvent, ShareStrategy, ShareTarget } from "@lilydesignsystem/angular-share-picker";
3
+ import { SearchEvent } from "@lilydesignsystem/angular-search-picker";
4
+ import * as i0 from "@angular/core";
4
5
  /**
5
6
  * All 45 Lily reference theme slugs (see `themes/` at the repo root),
6
7
  * sorted alphabetically except the United Kingdom and United States
@@ -8,29 +9,40 @@ import { ShareTarget, ShareStrategy, ShareEvent } from '@lilydesignsystem/angula
8
9
  * group of their own. Mirrors `theme-picker`'s own title-casing of each
9
10
  * slug, so no `themeLabels` override is needed for these to read well.
10
11
  */
11
- declare const DEFAULT_THEMES: string[];
12
+ export declare const DEFAULT_THEMES: string[];
12
13
  /**
13
14
  * The seven-step text-size scale. Each slug title-cases to exactly the
14
15
  * requested label ("largest" → "Largest", …) via `text-size-picker`'s
15
16
  * own default `labelFor`, so no `sizeLabels` override is needed either.
16
17
  */
17
- declare const DEFAULT_SIZES: string[];
18
- /** Accessible names for the four pickers. Required — no English default. */
18
+ export declare const DEFAULT_SIZES: string[];
19
+ /** Accessible names for the pickers. Required — no English default (`link` only when `links` is given). */
19
20
  type PickerBarLabels = {
20
- /** Accessible name for the theme picker's button and listbox. */
21
- theme: string;
22
- /** Accessible name for the locale picker's button and listbox. */
23
- locale: string;
24
- /** Accessible name for the text-size picker's button and listbox. */
25
- textSize: string;
26
- /** Accessible name for the share picker's button and list. */
27
- share: string;
21
+ /**
22
+ * Accessible name for the link picker's button and list. Needed only when `links` is
23
+ * supplied; the link picker renders only when both are present.
24
+ */
25
+ link?: string;
26
+ /** Accessible name for the search picker's button and search landmark. */
27
+ search: string;
28
+ /** Accessible name for the search picker's text field. */
29
+ searchInput: string;
30
+ /** Accessible name for the search picker's ⏎ submit button. */
31
+ searchSubmit: string;
32
+ /** Accessible name for the theme picker's button and listbox. */
33
+ theme: string;
34
+ /** Accessible name for the locale picker's button and listbox. */
35
+ locale: string;
36
+ /** Accessible name for the text-size picker's button and listbox. */
37
+ textSize: string;
38
+ /** Accessible name for the share picker's button and list. */
39
+ share: string;
28
40
  };
29
41
  /**
30
- * PickerBar — composes theme-picker, locale-picker, text-size-picker,
31
- * and share-picker into one page-header row.
42
+ * PickerBar — composes search-picker, theme-picker, locale-picker,
43
+ * text-size-picker, and share-picker into one page-header row.
32
44
  *
33
- * A thin wrapper: it renders the four picker components, each imported
45
+ * A thin wrapper: it renders the five picker components, each imported
34
46
  * as a real npm dependency from its own published package, unmodified.
35
47
  * It pre-wires two catalog-specific defaults (`DEFAULT_THEMES`,
36
48
  * `DEFAULT_SIZES`) and flattens each wrapped picker's most commonly
@@ -40,67 +52,300 @@ type PickerBarLabels = {
40
52
  * an object spread. `motion-picker` and `date-time-picker` are
41
53
  * deliberately not included — see `spec/index.md` §1.
42
54
  */
43
- declare class PickerBar {
44
- /** Accessible names for each picker. */
45
- readonly labels: _angular_core.InputSignal<PickerBarLabels>;
46
- /** Base URL of the themes directory, forwarded to ThemePicker. */
47
- readonly themesUrl: _angular_core.InputSignal<string>;
48
- /** Available theme slugs. Defaults to {@link DEFAULT_THEMES}. */
49
- readonly themes: _angular_core.InputSignal<string[]>;
50
- /** Two-way bindable current theme slug. */
51
- readonly themeValue: _angular_core.ModelSignal<string>;
52
- readonly themeDefaultValue: _angular_core.InputSignal<string>;
53
- readonly themeStorageKey: _angular_core.InputSignal<string>;
54
- readonly themeDetectFromSystem: _angular_core.InputSignal<boolean>;
55
- readonly themeName: _angular_core.InputSignal<string>;
56
- readonly themeTarget: _angular_core.InputSignal<HTMLElement | null>;
57
- readonly themeLabels: _angular_core.InputSignal<Record<string, string>>;
58
- /** Available locale codes. No catalog default exists — supply the set you support. */
59
- readonly locales: _angular_core.InputSignal<string[]>;
60
- /** Two-way bindable current locale code. */
61
- readonly localeValue: _angular_core.ModelSignal<string>;
62
- readonly localeDefaultValue: _angular_core.InputSignal<string>;
63
- readonly localeStorageKey: _angular_core.InputSignal<string>;
64
- readonly localeDetectFromNavigator: _angular_core.InputSignal<boolean>;
65
- readonly localeName: _angular_core.InputSignal<string>;
66
- readonly localeTarget: _angular_core.InputSignal<HTMLElement | null>;
67
- readonly localeApplyDir: _angular_core.InputSignal<boolean>;
68
- readonly localeLabels: _angular_core.InputSignal<Record<string, string>>;
69
- /** Available size slugs. Defaults to {@link DEFAULT_SIZES}. */
70
- readonly sizes: _angular_core.InputSignal<string[]>;
71
- /** Two-way bindable current size slug. */
72
- readonly textSizeValue: _angular_core.ModelSignal<string>;
73
- /**
74
- * `text-size-picker`'s own fallback ("medium", else `sizes[0]`) does
75
- * not fit the seven-slug scale — "medium" is not one of the seven,
76
- * and `sizes[0]` would silently start every consumer on "Largest".
77
- */
78
- readonly textSizeDefaultValue: _angular_core.InputSignal<string>;
79
- readonly textSizeStorageKey: _angular_core.InputSignal<string>;
80
- readonly textSizeName: _angular_core.InputSignal<string>;
81
- readonly textSizeTarget: _angular_core.InputSignal<HTMLElement | null>;
82
- readonly textSizeLabels: _angular_core.InputSignal<Record<string, string>>;
83
- /** Destinations offered by the share picker. Empty is valid if `copyLabel` is set. */
84
- readonly shareTargets: _angular_core.InputSignal<ShareTarget[]>;
85
- readonly shareUrl: _angular_core.InputSignal<string>;
86
- readonly shareTitle: _angular_core.InputSignal<string>;
87
- readonly shareText: _angular_core.InputSignal<string>;
88
- readonly copyLabel: _angular_core.InputSignal<string>;
89
- readonly copiedLabel: _angular_core.InputSignal<string>;
90
- readonly copyFailedLabel: _angular_core.InputSignal<string>;
91
- readonly shareStrategy: _angular_core.InputSignal<ShareStrategy>;
92
- /** Fires after a share destination is chosen. */
93
- readonly share: _angular_core.OutputEmitterRef<ShareEvent>;
94
- /** Fires after the URL is copied. */
95
- readonly copy: _angular_core.OutputEmitterRef<string>;
96
- /** Fires when the native share sheet was used instead of the list. */
97
- readonly nativeShare: _angular_core.OutputEmitterRef<string>;
98
- /** Extra CSS class on the root. */
99
- readonly className: _angular_core.InputSignal<string>;
100
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<PickerBar, never>;
101
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PickerBar, "lily-picker-bar", never, { "labels": { "alias": "labels"; "required": true; "isSignal": true; }; "themesUrl": { "alias": "themesUrl"; "required": true; "isSignal": true; }; "themes": { "alias": "themes"; "required": false; "isSignal": true; }; "themeValue": { "alias": "themeValue"; "required": false; "isSignal": true; }; "themeDefaultValue": { "alias": "themeDefaultValue"; "required": false; "isSignal": true; }; "themeStorageKey": { "alias": "themeStorageKey"; "required": false; "isSignal": true; }; "themeDetectFromSystem": { "alias": "themeDetectFromSystem"; "required": false; "isSignal": true; }; "themeName": { "alias": "themeName"; "required": false; "isSignal": true; }; "themeTarget": { "alias": "themeTarget"; "required": false; "isSignal": true; }; "themeLabels": { "alias": "themeLabels"; "required": false; "isSignal": true; }; "locales": { "alias": "locales"; "required": true; "isSignal": true; }; "localeValue": { "alias": "localeValue"; "required": false; "isSignal": true; }; "localeDefaultValue": { "alias": "localeDefaultValue"; "required": false; "isSignal": true; }; "localeStorageKey": { "alias": "localeStorageKey"; "required": false; "isSignal": true; }; "localeDetectFromNavigator": { "alias": "localeDetectFromNavigator"; "required": false; "isSignal": true; }; "localeName": { "alias": "localeName"; "required": false; "isSignal": true; }; "localeTarget": { "alias": "localeTarget"; "required": false; "isSignal": true; }; "localeApplyDir": { "alias": "localeApplyDir"; "required": false; "isSignal": true; }; "localeLabels": { "alias": "localeLabels"; "required": false; "isSignal": true; }; "sizes": { "alias": "sizes"; "required": false; "isSignal": true; }; "textSizeValue": { "alias": "textSizeValue"; "required": false; "isSignal": true; }; "textSizeDefaultValue": { "alias": "textSizeDefaultValue"; "required": false; "isSignal": true; }; "textSizeStorageKey": { "alias": "textSizeStorageKey"; "required": false; "isSignal": true; }; "textSizeName": { "alias": "textSizeName"; "required": false; "isSignal": true; }; "textSizeTarget": { "alias": "textSizeTarget"; "required": false; "isSignal": true; }; "textSizeLabels": { "alias": "textSizeLabels"; "required": false; "isSignal": true; }; "shareTargets": { "alias": "shareTargets"; "required": false; "isSignal": true; }; "shareUrl": { "alias": "shareUrl"; "required": false; "isSignal": true; }; "shareTitle": { "alias": "shareTitle"; "required": false; "isSignal": true; }; "shareText": { "alias": "shareText"; "required": false; "isSignal": true; }; "copyLabel": { "alias": "copyLabel"; "required": false; "isSignal": true; }; "copiedLabel": { "alias": "copiedLabel"; "required": false; "isSignal": true; }; "copyFailedLabel": { "alias": "copyFailedLabel"; "required": false; "isSignal": true; }; "shareStrategy": { "alias": "shareStrategy"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "themeValue": "themeValueChange"; "localeValue": "localeValueChange"; "textSizeValue": "textSizeValueChange"; "share": "share"; "copy": "copy"; "nativeShare": "nativeShare"; }, never, never, true, never>;
55
+ export declare class PickerBar {
56
+ /** Accessible names for each picker. */
57
+ readonly labels: import("@angular/core").InputSignal<PickerBarLabels>;
58
+ /**
59
+ * Page links for the link picker (a home icon), which renders FIRST — leftmost. Defined by the
60
+ * app; omitted or empty means no link picker (and `labels().link` is then unused).
61
+ */
62
+ readonly links: import("@angular/core").InputSignal<LinkItem[]>;
63
+ /** Client-side navigation hook for the links, e.g. a router's `navigateByUrl`. */
64
+ readonly linkNavigate: import("@angular/core").InputSignal<((href: string) => void) | undefined>;
65
+ /** Fires after a page link is chosen. */
66
+ readonly linkNavigated: import("@angular/core").OutputEmitterRef<LinkNavigatedEvent>;
67
+ /** Placeholder for the search field. No default (it would be English). */
68
+ readonly searchPlaceholder: import("@angular/core").InputSignal<string | undefined>;
69
+ /** Two-way bindable search text. */
70
+ readonly searchValue: import("@angular/core").ModelSignal<string>;
71
+ /** Path the query is appended to (`${searchAction}?${query}`). */
72
+ readonly searchAction: import("@angular/core").InputSignal<string>;
73
+ /** Performs the search navigation. Defaults to `location.assign(href)`. */
74
+ readonly searchNavigate: import("@angular/core").InputSignal<((href: string) => void) | undefined>;
75
+ /** Fires with the trimmed query and destination, before navigating. */
76
+ readonly searched: import("@angular/core").OutputEmitterRef<SearchEvent>;
77
+ /** Base URL of the themes directory, forwarded to ThemePicker. */
78
+ readonly themesUrl: import("@angular/core").InputSignal<string>;
79
+ /** Available theme slugs. Defaults to {@link DEFAULT_THEMES}. */
80
+ readonly themes: import("@angular/core").InputSignal<string[]>;
81
+ /** Two-way bindable current theme slug. */
82
+ readonly themeValue: import("@angular/core").ModelSignal<string>;
83
+ readonly themeDefaultValue: import("@angular/core").InputSignal<string>;
84
+ readonly themeStorageKey: import("@angular/core").InputSignal<string>;
85
+ readonly themeDetectFromSystem: import("@angular/core").InputSignal<boolean>;
86
+ readonly themeName: import("@angular/core").InputSignal<string>;
87
+ readonly themeTarget: import("@angular/core").InputSignal<HTMLElement | null>;
88
+ readonly themeLabels: import("@angular/core").InputSignal<Record<string, string>>;
89
+ /** Available locale codes. No catalog default exists — supply the set you support. */
90
+ readonly locales: import("@angular/core").InputSignal<string[]>;
91
+ /** Two-way bindable current locale code. */
92
+ readonly localeValue: import("@angular/core").ModelSignal<string>;
93
+ readonly localeDefaultValue: import("@angular/core").InputSignal<string>;
94
+ readonly localeStorageKey: import("@angular/core").InputSignal<string>;
95
+ readonly localeDetectFromNavigator: import("@angular/core").InputSignal<boolean>;
96
+ readonly localeName: import("@angular/core").InputSignal<string>;
97
+ readonly localeTarget: import("@angular/core").InputSignal<HTMLElement | null>;
98
+ readonly localeApplyDir: import("@angular/core").InputSignal<boolean>;
99
+ readonly localeLabels: import("@angular/core").InputSignal<Record<string, string>>;
100
+ /** Available size slugs. Defaults to {@link DEFAULT_SIZES}. */
101
+ readonly sizes: import("@angular/core").InputSignal<string[]>;
102
+ /** Two-way bindable current size slug. */
103
+ readonly textSizeValue: import("@angular/core").ModelSignal<string>;
104
+ /**
105
+ * `text-size-picker`'s own fallback ("medium", else `sizes[0]`) does
106
+ * not fit the seven-slug scale — "medium" is not one of the seven,
107
+ * and `sizes[0]` would silently start every consumer on "Largest".
108
+ */
109
+ readonly textSizeDefaultValue: import("@angular/core").InputSignal<string>;
110
+ readonly textSizeStorageKey: import("@angular/core").InputSignal<string>;
111
+ readonly textSizeName: import("@angular/core").InputSignal<string>;
112
+ readonly textSizeTarget: import("@angular/core").InputSignal<HTMLElement | null>;
113
+ readonly textSizeLabels: import("@angular/core").InputSignal<Record<string, string>>;
114
+ /** Destinations offered by the share picker. Empty is valid if `copyLabel` is set. */
115
+ readonly shareTargets: import("@angular/core").InputSignal<ShareTarget[]>;
116
+ readonly shareUrl: import("@angular/core").InputSignal<string>;
117
+ readonly shareTitle: import("@angular/core").InputSignal<string>;
118
+ readonly shareText: import("@angular/core").InputSignal<string>;
119
+ readonly copyLabel: import("@angular/core").InputSignal<string>;
120
+ readonly copiedLabel: import("@angular/core").InputSignal<string>;
121
+ readonly copyFailedLabel: import("@angular/core").InputSignal<string>;
122
+ readonly shareStrategy: import("@angular/core").InputSignal<ShareStrategy>;
123
+ /** Fires after a share destination is chosen. */
124
+ readonly share: import("@angular/core").OutputEmitterRef<ShareEvent>;
125
+ /** Fires after the URL is copied. */
126
+ readonly copy: import("@angular/core").OutputEmitterRef<string>;
127
+ /** Fires when the native share sheet was used instead of the list. */
128
+ readonly nativeShare: import("@angular/core").OutputEmitterRef<string>;
129
+ /** Extra CSS class on the root. */
130
+ readonly className: import("@angular/core").InputSignal<string>;
131
+ static ɵfac: i0.ɵɵFactoryDeclaration<PickerBar, never>;
132
+ static ɵcmp: i0.ɵɵComponentDeclaration<PickerBar, "lily-picker-bar", never, {
133
+ "labels": {
134
+ "alias": "labels";
135
+ "required": true;
136
+ "isSignal": true;
137
+ };
138
+ "links": {
139
+ "alias": "links";
140
+ "required": false;
141
+ "isSignal": true;
142
+ };
143
+ "linkNavigate": {
144
+ "alias": "linkNavigate";
145
+ "required": false;
146
+ "isSignal": true;
147
+ };
148
+ "searchPlaceholder": {
149
+ "alias": "searchPlaceholder";
150
+ "required": false;
151
+ "isSignal": true;
152
+ };
153
+ "searchValue": {
154
+ "alias": "searchValue";
155
+ "required": false;
156
+ "isSignal": true;
157
+ };
158
+ "searchAction": {
159
+ "alias": "searchAction";
160
+ "required": false;
161
+ "isSignal": true;
162
+ };
163
+ "searchNavigate": {
164
+ "alias": "searchNavigate";
165
+ "required": false;
166
+ "isSignal": true;
167
+ };
168
+ "themesUrl": {
169
+ "alias": "themesUrl";
170
+ "required": true;
171
+ "isSignal": true;
172
+ };
173
+ "themes": {
174
+ "alias": "themes";
175
+ "required": false;
176
+ "isSignal": true;
177
+ };
178
+ "themeValue": {
179
+ "alias": "themeValue";
180
+ "required": false;
181
+ "isSignal": true;
182
+ };
183
+ "themeDefaultValue": {
184
+ "alias": "themeDefaultValue";
185
+ "required": false;
186
+ "isSignal": true;
187
+ };
188
+ "themeStorageKey": {
189
+ "alias": "themeStorageKey";
190
+ "required": false;
191
+ "isSignal": true;
192
+ };
193
+ "themeDetectFromSystem": {
194
+ "alias": "themeDetectFromSystem";
195
+ "required": false;
196
+ "isSignal": true;
197
+ };
198
+ "themeName": {
199
+ "alias": "themeName";
200
+ "required": false;
201
+ "isSignal": true;
202
+ };
203
+ "themeTarget": {
204
+ "alias": "themeTarget";
205
+ "required": false;
206
+ "isSignal": true;
207
+ };
208
+ "themeLabels": {
209
+ "alias": "themeLabels";
210
+ "required": false;
211
+ "isSignal": true;
212
+ };
213
+ "locales": {
214
+ "alias": "locales";
215
+ "required": true;
216
+ "isSignal": true;
217
+ };
218
+ "localeValue": {
219
+ "alias": "localeValue";
220
+ "required": false;
221
+ "isSignal": true;
222
+ };
223
+ "localeDefaultValue": {
224
+ "alias": "localeDefaultValue";
225
+ "required": false;
226
+ "isSignal": true;
227
+ };
228
+ "localeStorageKey": {
229
+ "alias": "localeStorageKey";
230
+ "required": false;
231
+ "isSignal": true;
232
+ };
233
+ "localeDetectFromNavigator": {
234
+ "alias": "localeDetectFromNavigator";
235
+ "required": false;
236
+ "isSignal": true;
237
+ };
238
+ "localeName": {
239
+ "alias": "localeName";
240
+ "required": false;
241
+ "isSignal": true;
242
+ };
243
+ "localeTarget": {
244
+ "alias": "localeTarget";
245
+ "required": false;
246
+ "isSignal": true;
247
+ };
248
+ "localeApplyDir": {
249
+ "alias": "localeApplyDir";
250
+ "required": false;
251
+ "isSignal": true;
252
+ };
253
+ "localeLabels": {
254
+ "alias": "localeLabels";
255
+ "required": false;
256
+ "isSignal": true;
257
+ };
258
+ "sizes": {
259
+ "alias": "sizes";
260
+ "required": false;
261
+ "isSignal": true;
262
+ };
263
+ "textSizeValue": {
264
+ "alias": "textSizeValue";
265
+ "required": false;
266
+ "isSignal": true;
267
+ };
268
+ "textSizeDefaultValue": {
269
+ "alias": "textSizeDefaultValue";
270
+ "required": false;
271
+ "isSignal": true;
272
+ };
273
+ "textSizeStorageKey": {
274
+ "alias": "textSizeStorageKey";
275
+ "required": false;
276
+ "isSignal": true;
277
+ };
278
+ "textSizeName": {
279
+ "alias": "textSizeName";
280
+ "required": false;
281
+ "isSignal": true;
282
+ };
283
+ "textSizeTarget": {
284
+ "alias": "textSizeTarget";
285
+ "required": false;
286
+ "isSignal": true;
287
+ };
288
+ "textSizeLabels": {
289
+ "alias": "textSizeLabels";
290
+ "required": false;
291
+ "isSignal": true;
292
+ };
293
+ "shareTargets": {
294
+ "alias": "shareTargets";
295
+ "required": false;
296
+ "isSignal": true;
297
+ };
298
+ "shareUrl": {
299
+ "alias": "shareUrl";
300
+ "required": false;
301
+ "isSignal": true;
302
+ };
303
+ "shareTitle": {
304
+ "alias": "shareTitle";
305
+ "required": false;
306
+ "isSignal": true;
307
+ };
308
+ "shareText": {
309
+ "alias": "shareText";
310
+ "required": false;
311
+ "isSignal": true;
312
+ };
313
+ "copyLabel": {
314
+ "alias": "copyLabel";
315
+ "required": false;
316
+ "isSignal": true;
317
+ };
318
+ "copiedLabel": {
319
+ "alias": "copiedLabel";
320
+ "required": false;
321
+ "isSignal": true;
322
+ };
323
+ "copyFailedLabel": {
324
+ "alias": "copyFailedLabel";
325
+ "required": false;
326
+ "isSignal": true;
327
+ };
328
+ "shareStrategy": {
329
+ "alias": "shareStrategy";
330
+ "required": false;
331
+ "isSignal": true;
332
+ };
333
+ "className": {
334
+ "alias": "className";
335
+ "required": false;
336
+ "isSignal": true;
337
+ };
338
+ }, {
339
+ "linkNavigated": "linkNavigated";
340
+ "searchValue": "searchValueChange";
341
+ "searched": "searched";
342
+ "themeValue": "themeValueChange";
343
+ "localeValue": "localeValueChange";
344
+ "textSizeValue": "textSizeValueChange";
345
+ "share": "share";
346
+ "copy": "copy";
347
+ "nativeShare": "nativeShare";
348
+ }, never, never, true, never>;
102
349
  }
103
-
104
- export { DEFAULT_SIZES, DEFAULT_THEMES, PickerBar };
105
350
  export type { PickerBarLabels };
106
- //# sourceMappingURL=lilydesignsystem-angular-picker-bar.d.ts.map
351
+ //# sourceMappingURL=lilydesignsystem-angular-picker-bar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lilydesignsystem-angular-picker-bar.d.ts","sources":["../../picker-bar.component.ts"],"mappings":";;;AAYA;;;;;;AAMG;AACH,cAAa,cAAc;AAgD3B;;;;AAIG;AACH,cAAa,aAAa;AAU1B;AACM,KAAM,eAAe;;;;;;;;;;AAW3B;;;;;;;;;;;;;AAaG;AACH,cA0Da,SAAS;;qBAEL,aAAA,CAAA,WAAA,CAAA,eAAA;;wBAIG,aAAA,CAAA,WAAA;;qBAEH,aAAA,CAAA,WAAA;;yBAEI,aAAA,CAAA,WAAA;gCACO,aAAA,CAAA,WAAA;8BACF,aAAA,CAAA,WAAA;oCACM,aAAA,CAAA,WAAA;wBACZ,aAAA,CAAA,WAAA;0BACE,aAAA,CAAA,WAAA,CAAA,WAAA;0BACA,aAAA,CAAA,WAAA,CAAA,MAAA;;sBAIJ,aAAA,CAAA,WAAA;;0BAEI,aAAA,CAAA,WAAA;iCACO,aAAA,CAAA,WAAA;+BACF,aAAA,CAAA,WAAA;wCACS,aAAA,CAAA,WAAA;yBACf,aAAA,CAAA,WAAA;2BACE,aAAA,CAAA,WAAA,CAAA,WAAA;6BACE,aAAA,CAAA,WAAA;2BACF,aAAA,CAAA,WAAA,CAAA,MAAA;;oBAIP,aAAA,CAAA,WAAA;;4BAEQ,aAAA,CAAA,WAAA;AACtB;;;;AAIG;mCAC0B,aAAA,CAAA,WAAA;iCACF,aAAA,CAAA,WAAA;2BACN,aAAA,CAAA,WAAA;6BACE,aAAA,CAAA,WAAA,CAAA,WAAA;6BACA,aAAA,CAAA,WAAA,CAAA,MAAA;;2BAIF,aAAA,CAAA,WAAA,CAAA,WAAA;uBACJ,aAAA,CAAA,WAAA;yBACE,aAAA,CAAA,WAAA;wBACD,aAAA,CAAA,WAAA;wBACA,aAAA,CAAA,WAAA;0BACE,aAAA,CAAA,WAAA;8BACI,aAAA,CAAA,WAAA;4BACF,aAAA,CAAA,WAAA,CAAA,aAAA;;oBAER,aAAA,CAAA,gBAAA,CAAA,UAAA;;mBAED,aAAA,CAAA,gBAAA;;0BAEO,aAAA,CAAA,gBAAA;;wBAGF,aAAA,CAAA,WAAA;oDAjEP,SAAS;sDAAT,SAAS;AAkErB;;","names":[]}
1
+ {"version":3,"file":"lilydesignsystem-angular-picker-bar.d.ts","names":[],"sources":["../../picker-bar.component.ts"],"mappings":";;;;;;;;;;;qBA4Ba;;;;;;qBAqDA;;KAWD;;;;;EAKV;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;;;;;;;;;;;qBA6FW;;WAEF,gCAAM,YAAA;;;;;WAON,+BAAK,YAAA;;WAEL,sCAAY,cAAA;;WAEZ,uCAAa,iBAAA;;WAIb,2CAAiB;;WAEjB,qCAAW;;WAEX,sCAAY;;WAEZ,wCAAc,cAAA;;WAEd,kCAAQ,iBAAA;;WAIR,mCAAS;;WAET,gCAAM;;WAEN,oCAAU;WACV,2CAAiB;WACjB,yCAAe;WACf,+CAAqB;WACrB,mCAAS;WACT,qCAAW,YAAA;WACX,qCAAW,YAAA;;WAIX,iCAAO;;WAEP,qCAAW;WACX,4CAAkB;WAClB,0CAAgB;WAChB,mDAAyB;WACzB,oCAAU;WACV,sCAAY,YAAA;WACZ,wCAAc;WACd,sCAAY,YAAA;;WAIZ,+BAAK;;WAEL,uCAAa;;;;;;WAMb,8CAAoB;WACpB,4CAAkB;WAClB,sCAAY;WACZ,wCAAc,YAAA;WACd,wCAAc,YAAA;;WAId,sCAAY,YAAA;WACZ,kCAAQ;WACR,oCAAU;WACV,mCAAS;WACT,mCAAS;WACT,qCAAW;WACX,yCAAe;WACf,uCAAa,YAAA;;WAEb,+BAAK,iBAAA;;WAEL,8BAAI;;WAEJ,qCAAW;;WAGX,mCAAS;SAxFP,MAAA,GAAA,qBAAA;SAAA,MAAA,GAAA,uBAAA;IAAS;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;IAAA;MAAA;MAAA;MAAA;;;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA"}