@nordhealth/components 4.26.2 → 5.0.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/custom-elements.json +51620 -18552
- package/lib/Accordion.js +2 -0
- package/lib/Accordion.js.map +1 -0
- package/lib/AccordionHeader.js +2 -0
- package/lib/AccordionHeader.js.map +1 -0
- package/lib/AccordionItem.js +2 -0
- package/lib/AccordionItem.js.map +1 -0
- package/lib/AccordionPanel.js +2 -0
- package/lib/AccordionPanel.js.map +1 -0
- package/lib/AccordionTrigger.js +2 -0
- package/lib/AccordionTrigger.js.map +1 -0
- package/lib/ActiveDescendantController-BnMqM79O.js +2 -0
- package/lib/ActiveDescendantController-BnMqM79O.js.map +1 -0
- package/lib/Aside.js +5 -7
- package/lib/Aside.js.map +1 -1
- package/lib/AsideDrawer.js +7 -11
- package/lib/AsideDrawer.js.map +1 -1
- package/lib/AsideTrigger.js +3 -4
- package/lib/AsideTrigger.js.map +1 -1
- package/lib/Autocomplete.js +2 -0
- package/lib/Autocomplete.js.map +1 -0
- package/lib/Avatar.js +1 -1
- package/lib/Avatar.js.map +1 -1
- package/lib/Badge.js +1 -1
- package/lib/Badge.js.map +1 -1
- package/lib/Banner.js +1 -1
- package/lib/Banner.js.map +1 -1
- package/lib/Button.js +7 -12
- package/lib/Button.js.map +1 -1
- package/lib/ButtonGroup.js +1 -1
- package/lib/ButtonGroup.js.map +1 -1
- package/lib/Calendar-D47b20IT.js +2 -0
- package/lib/Calendar-D47b20IT.js.map +1 -0
- package/lib/Calendar.js +1 -1
- package/lib/Card.js +1 -1
- package/lib/Card.js.map +1 -1
- package/lib/Checkbox.js +1 -1
- package/lib/Checkbox.js.map +1 -1
- package/lib/CollapseController-BtKNFNyJ.js +2 -0
- package/lib/CollapseController-BtKNFNyJ.js.map +1 -0
- package/lib/Collapsible.js +2 -0
- package/lib/Collapsible.js.map +1 -0
- package/lib/CollapsiblePanel.js +2 -0
- package/lib/CollapsiblePanel.js.map +1 -0
- package/lib/CollapsibleTrigger.js +2 -0
- package/lib/CollapsibleTrigger.js.map +1 -0
- package/lib/Combobox-DBxXlbY7.js +2 -0
- package/lib/Combobox-DBxXlbY7.js.map +1 -0
- package/lib/Combobox.js +2 -0
- package/lib/Combobox.js.map +1 -0
- package/lib/ComboboxBase.js +2 -0
- package/lib/ComboboxBase.js.map +1 -0
- package/lib/ComboboxEvents.js +2 -0
- package/lib/ComboboxEvents.js.map +1 -0
- package/lib/ComboboxGroup.js +2 -0
- package/lib/ComboboxGroup.js.map +1 -0
- package/lib/ComboboxOption.js +2 -0
- package/lib/ComboboxOption.js.map +1 -0
- package/lib/CommandMenu.js +1 -1
- package/lib/CommandMenu.js.map +1 -1
- package/lib/CommandMenuAction.js +1 -1
- package/lib/CommandMenuAction.js.map +1 -1
- package/lib/Component-BJ5O5n8k.js +2 -0
- package/lib/Component-BJ5O5n8k.js.map +1 -0
- package/lib/DatePicker.js +1 -1
- package/lib/DatePicker.js.map +1 -1
- package/lib/DateRangeChangeEvent.js +2 -0
- package/lib/DateRangeChangeEvent.js.map +1 -0
- package/lib/DateRangePicker.js +2 -0
- package/lib/DateRangePicker.js.map +1 -0
- package/lib/DateRangeSelectEvent.js +2 -0
- package/lib/DateRangeSelectEvent.js.map +1 -0
- package/lib/Divider.js +1 -1
- package/lib/Divider.js.map +1 -1
- package/lib/DraftComponentMixin-4qug5Rky.js +2 -0
- package/lib/DraftComponentMixin-4qug5Rky.js.map +1 -0
- package/lib/Drawer.js +1 -1
- package/lib/Drawer.js.map +1 -1
- package/lib/Dropdown.js +1 -1
- package/lib/Dropdown.js.map +1 -1
- package/lib/DropdownGroup.js +1 -1
- package/lib/DropdownGroup.js.map +1 -1
- package/lib/DropdownItem-BYbOLth6.js +2 -0
- package/lib/DropdownItem-BYbOLth6.js.map +1 -0
- package/lib/DropdownItem.js +1 -1
- package/lib/DropdownItem.js.map +1 -1
- package/lib/DropdownSubmenu.js +1 -1
- package/lib/DropdownSubmenu.js.map +1 -1
- package/lib/EmptyState.js +1 -1
- package/lib/EmptyState.js.map +1 -1
- package/lib/Field.js +2 -0
- package/lib/Field.js.map +1 -0
- package/lib/FieldContent.js +2 -0
- package/lib/FieldContent.js.map +1 -0
- package/lib/FieldControlMixin-BXNZJXu9.js +2 -0
- package/lib/FieldControlMixin-BXNZJXu9.js.map +1 -0
- package/lib/FieldDescription.js +2 -0
- package/lib/FieldDescription.js.map +1 -0
- package/lib/FieldError.js +2 -0
- package/lib/FieldError.js.map +1 -0
- package/lib/FieldGroup.js +2 -0
- package/lib/FieldGroup.js.map +1 -0
- package/lib/FieldLabel.js +2 -0
- package/lib/FieldLabel.js.map +1 -0
- package/lib/FieldLegend.js +2 -0
- package/lib/FieldLegend.js.map +1 -0
- package/lib/FieldSeparator.js +2 -0
- package/lib/FieldSeparator.js.map +1 -0
- package/lib/FieldSet.js +2 -0
- package/lib/FieldSet.js.map +1 -0
- package/lib/FieldTitle.js +2 -0
- package/lib/FieldTitle.js.map +1 -0
- package/lib/Fieldset2.js +2 -0
- package/lib/Fieldset2.js.map +1 -0
- package/lib/FilterAddButton.js +2 -0
- package/lib/FilterAddButton.js.map +1 -0
- package/lib/FilterAddButtonEvents.js +2 -0
- package/lib/FilterAddButtonEvents.js.map +1 -0
- package/lib/FilterBar.js +2 -0
- package/lib/FilterBar.js.map +1 -0
- package/lib/FilterDateRange.js +2 -0
- package/lib/FilterDateRange.js.map +1 -0
- package/lib/FilterDateRangeEvents.js +2 -0
- package/lib/FilterDateRangeEvents.js.map +1 -0
- package/lib/FilterDropdown.js +2 -0
- package/lib/FilterDropdown.js.map +1 -0
- package/lib/FilterDropdownEvents.js +2 -0
- package/lib/FilterDropdownEvents.js.map +1 -0
- package/lib/FilterField.js +2 -0
- package/lib/FilterField.js.map +1 -0
- package/lib/FilterFieldEvents.js +2 -0
- package/lib/FilterFieldEvents.js.map +1 -0
- package/lib/FilterInput.js +2 -0
- package/lib/FilterInput.js.map +1 -0
- package/lib/FilterResetButton.js +2 -0
- package/lib/FilterResetButton.js.map +1 -0
- package/lib/FocusableWhenDisabledController-C_Mn1mfN.js +2 -0
- package/lib/FocusableWhenDisabledController-C_Mn1mfN.js.map +1 -0
- package/lib/Footer.js +1 -1
- package/lib/Footer.js.map +1 -1
- package/lib/FormAssociatedMixin-D9aPREgv.js +2 -0
- package/lib/FormAssociatedMixin-D9aPREgv.js.map +1 -0
- package/lib/FormField-CMgEFZCK.js +2 -0
- package/lib/FormField-CMgEFZCK.js.map +1 -0
- package/lib/Header.js +1 -1
- package/lib/Header.js.map +1 -1
- package/lib/Icon.js +1 -1
- package/lib/Icon.js.map +1 -1
- package/lib/Input.js +1 -1
- package/lib/Input.js.map +1 -1
- package/lib/Item.js +2 -0
- package/lib/Item.js.map +1 -0
- package/lib/ItemActions.js +2 -0
- package/lib/ItemActions.js.map +1 -0
- package/lib/ItemContent.js +2 -0
- package/lib/ItemContent.js.map +1 -0
- package/lib/ItemDescription.js +2 -0
- package/lib/ItemDescription.js.map +1 -0
- package/lib/ItemFooter.js +2 -0
- package/lib/ItemFooter.js.map +1 -0
- package/lib/ItemGroup.js +2 -0
- package/lib/ItemGroup.js.map +1 -0
- package/lib/ItemHeader.js +2 -0
- package/lib/ItemHeader.js.map +1 -0
- package/lib/ItemMedia.js +2 -0
- package/lib/ItemMedia.js.map +1 -0
- package/lib/ItemSeparator.js +2 -0
- package/lib/ItemSeparator.js.map +1 -0
- package/lib/ItemTitle.js +2 -0
- package/lib/ItemTitle.js.map +1 -0
- package/lib/Kbd.js +2 -0
- package/lib/Kbd.js.map +1 -0
- package/lib/KbdGroup.js +2 -0
- package/lib/KbdGroup.js.map +1 -0
- package/lib/KeyboardController.js +1 -1
- package/lib/KeyboardController.js.map +1 -1
- package/lib/Layout.js +1 -3
- package/lib/Layout.js.map +1 -1
- package/lib/{LightDismissController-4pH8cdko.js → LightDismissController-wcL1ziJa.js} +2 -2
- package/lib/{LightDismissController-4pH8cdko.js.map → LightDismissController-wcL1ziJa.js.map} +1 -1
- package/lib/LocalizeController.js +1 -1
- package/lib/LocalizeController.js.map +1 -1
- package/lib/Message.js +1 -1
- package/lib/Message.js.map +1 -1
- package/lib/Meter.js +2 -0
- package/lib/Meter.js.map +1 -0
- package/lib/Modal.js +1 -1
- package/lib/Modal.js.map +1 -1
- package/lib/ModalController.js +1 -1
- package/lib/ModalController.js.map +1 -1
- package/lib/NavGroup.js +1 -1
- package/lib/NavGroup.js.map +1 -1
- package/lib/NavItem.js +1 -1
- package/lib/NavItem.js.map +1 -1
- package/lib/NavToggle-BY83xpx0.js +2 -0
- package/lib/NavToggle-BY83xpx0.js.map +1 -0
- package/lib/NavToggle.js +1 -1
- package/lib/Navigation.js +1 -1
- package/lib/Navigation.js.map +1 -1
- package/lib/Notification.js +1 -1
- package/lib/Notification.js.map +1 -1
- package/lib/NotificationGroup.js +1 -1
- package/lib/NotificationGroup.js.map +1 -1
- package/lib/NumberField.js +2 -0
- package/lib/NumberField.js.map +1 -0
- package/lib/NumberFieldEvents.js +2 -0
- package/lib/NumberFieldEvents.js.map +1 -0
- package/lib/OpenStateController-CCnZ7up6.js +2 -0
- package/lib/OpenStateController-CCnZ7up6.js.map +1 -0
- package/lib/OtpField.js +2 -0
- package/lib/OtpField.js.map +1 -0
- package/lib/OtpFieldEvents.js +2 -0
- package/lib/OtpFieldEvents.js.map +1 -0
- package/lib/Outline.js +2 -0
- package/lib/Outline.js.map +1 -0
- package/lib/OutlineItem.js +2 -0
- package/lib/OutlineItem.js.map +1 -0
- package/lib/Pagination.js +2 -0
- package/lib/Pagination.js.map +1 -0
- package/lib/PaginationContent.js +2 -0
- package/lib/PaginationContent.js.map +1 -0
- package/lib/PaginationEllipsis.js +2 -0
- package/lib/PaginationEllipsis.js.map +1 -0
- package/lib/PaginationItem.js +2 -0
- package/lib/PaginationItem.js.map +1 -0
- package/lib/PaginationLink.js +2 -0
- package/lib/PaginationLink.js.map +1 -0
- package/lib/PaginationNext.js +2 -0
- package/lib/PaginationNext.js.map +1 -0
- package/lib/PaginationPrevious.js +2 -0
- package/lib/PaginationPrevious.js.map +1 -0
- package/lib/Popout-CFtFoCaA.js +2 -0
- package/lib/Popout-CFtFoCaA.js.map +1 -0
- package/lib/Popout.js +1 -1
- package/lib/Progress.js +1 -1
- package/lib/Progress.js.map +1 -1
- package/lib/ProgressBar.js +1 -1
- package/lib/ProgressBar.js.map +1 -1
- package/lib/Qrcode.js +2 -2
- package/lib/Qrcode.js.map +1 -1
- package/lib/Radio.js +1 -1
- package/lib/Radio.js.map +1 -1
- package/lib/Range.js +1 -1
- package/lib/Range.js.map +1 -1
- package/lib/ReadonlyMixin-BdJPGtQ3.js +2 -0
- package/lib/ReadonlyMixin-BdJPGtQ3.js.map +1 -0
- package/lib/ResizeController-14PUwRQy.js +2 -0
- package/lib/ResizeController-14PUwRQy.js.map +1 -0
- package/lib/ScrollArea.js +2 -0
- package/lib/ScrollArea.js.map +1 -0
- package/lib/SegmentedControl.js +1 -1
- package/lib/SegmentedControl.js.map +1 -1
- package/lib/SegmentedControlItem.js +23 -40
- package/lib/SegmentedControlItem.js.map +1 -1
- package/lib/Select.js +1 -1
- package/lib/Select.js.map +1 -1
- package/lib/ShortcutController-CV5b0BZl.js +2 -0
- package/lib/ShortcutController-CV5b0BZl.js.map +1 -0
- package/lib/Skeleton.js +1 -1
- package/lib/Skeleton.js.map +1 -1
- package/lib/Spinner.js +1 -1
- package/lib/Spinner.js.map +1 -1
- package/lib/Stack.js +1 -1
- package/lib/Stack.js.map +1 -1
- package/lib/StateAttributesController-BIh96sXZ.js +2 -0
- package/lib/StateAttributesController-BIh96sXZ.js.map +1 -0
- package/lib/Sticky-CZImMrGj.js +2 -0
- package/lib/Sticky-CZImMrGj.js.map +1 -0
- package/lib/Tab.js +1 -1
- package/lib/Tab.js.map +1 -1
- package/lib/TabGroup.js +1 -1
- package/lib/TabGroup.js.map +1 -1
- package/lib/TabPanel.js +1 -1
- package/lib/TabPanel.js.map +1 -1
- package/lib/Table.js +1 -1
- package/lib/Table.js.map +1 -1
- package/lib/Tag.js +1 -1
- package/lib/Tag.js.map +1 -1
- package/lib/TagGroup.js +1 -1
- package/lib/TagGroup.js.map +1 -1
- package/lib/TextField-CSKvieoG.js +2 -0
- package/lib/TextField-CSKvieoG.js.map +1 -0
- package/lib/TextSelectableMixin-Cfv__lHS.js.map +1 -1
- package/lib/Textarea.js +1 -1
- package/lib/Textarea.js.map +1 -1
- package/lib/TimePicker.js +2 -0
- package/lib/TimePicker.js.map +1 -0
- package/lib/Toast.js +1 -1
- package/lib/Toast.js.map +1 -1
- package/lib/ToastGroup.js +1 -1
- package/lib/ToastGroup.js.map +1 -1
- package/lib/Toggle.js +1 -1
- package/lib/Toggle.js.map +1 -1
- package/lib/Tooltip.js +1 -1
- package/lib/Tooltip.js.map +1 -1
- package/lib/TopBar.js +1 -1
- package/lib/TopBar.js.map +1 -1
- package/lib/Truncate.js +1 -1
- package/lib/Truncate.js.map +1 -1
- package/lib/VisuallyHidden.js +1 -1
- package/lib/VisuallyHidden.js.map +1 -1
- package/lib/bundle.js +91 -91
- package/lib/bundle.js.map +1 -1
- package/lib/combobox-context.js +2 -0
- package/lib/combobox-context.js.map +1 -0
- package/lib/context-consumer-BJVUulGf.js +7 -0
- package/lib/context-consumer-BJVUulGf.js.map +1 -0
- package/lib/context-provider-D8lrPLVi.js +12 -0
- package/lib/context-provider-D8lrPLVi.js.map +1 -0
- package/lib/context-request-event-CCRlXoeR.js +7 -0
- package/lib/context-request-event-CCRlXoeR.js.map +1 -0
- package/lib/create-context-CJ69ntlY.js +7 -0
- package/lib/create-context-CJ69ntlY.js.map +1 -0
- package/lib/currency.js +2 -0
- package/lib/currency.js.map +1 -0
- package/lib/date-adapter.js +1 -1
- package/lib/dates-C-ZvzXaC.js +2 -0
- package/lib/dates-C-ZvzXaC.js.map +1 -0
- package/lib/dates.js +2 -0
- package/lib/dates.js.map +1 -0
- package/lib/dismiss.js +2 -0
- package/lib/dismiss.js.map +1 -0
- package/lib/en-us.js +1 -1
- package/lib/en-us.js.map +1 -1
- package/lib/fi-fi.js +1 -1
- package/lib/fi-fi.js.map +1 -1
- package/lib/field-context.js +2 -0
- package/lib/field-context.js.map +1 -0
- package/lib/filter-chip-C97zd4PT.js +2 -0
- package/lib/filter-chip-C97zd4PT.js.map +1 -0
- package/lib/format.js +2 -0
- package/lib/format.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/interface-add-small-B-hv2v9J.js +2 -0
- package/lib/interface-add-small-B-hv2v9J.js.map +1 -0
- package/lib/interface-calendar-Cw2bJfbS.js +2 -0
- package/lib/interface-calendar-Cw2bJfbS.js.map +1 -0
- package/lib/interface-close-BvKnv9eh.js +2 -0
- package/lib/interface-close-BvKnv9eh.js.map +1 -0
- package/lib/interface-dropdown-small-CYvgxudU.js +2 -0
- package/lib/interface-dropdown-small-CYvgxudU.js.map +1 -0
- package/lib/interface-filter-CCsx9-u6.js +2 -0
- package/lib/interface-filter-CCsx9-u6.js.map +1 -0
- package/lib/interface-remove-small-DUaWSs90.js +2 -0
- package/lib/interface-remove-small-DUaWSs90.js.map +1 -0
- package/lib/light-dom-styles-DXsbiKU9.js +2 -0
- package/lib/light-dom-styles-DXsbiKU9.js.map +1 -0
- package/lib/localization.js +1 -1
- package/lib/localization.js.map +1 -1
- package/lib/localization10.js +2 -0
- package/lib/localization10.js.map +1 -0
- package/lib/localization11.js +2 -0
- package/lib/localization11.js.map +1 -0
- package/lib/localization12.js +2 -0
- package/lib/localization12.js.map +1 -0
- package/lib/localization13.js +2 -0
- package/lib/localization13.js.map +1 -0
- package/lib/localization14.js +2 -0
- package/lib/localization14.js.map +1 -0
- package/lib/localization15.js +2 -0
- package/lib/localization15.js.map +1 -0
- package/lib/localization16.js +2 -0
- package/lib/localization16.js.map +1 -0
- package/lib/localization17.js +2 -0
- package/lib/localization17.js.map +1 -0
- package/lib/localization18.js +2 -0
- package/lib/localization18.js.map +1 -0
- package/lib/localization19.js +2 -0
- package/lib/localization19.js.map +1 -0
- package/lib/localization2.js +1 -1
- package/lib/localization2.js.map +1 -1
- package/lib/localization20.js +2 -0
- package/lib/localization20.js.map +1 -0
- package/lib/localization21.js +2 -0
- package/lib/localization21.js.map +1 -0
- package/lib/localization22.js +2 -0
- package/lib/localization22.js.map +1 -0
- package/lib/localization23.js +2 -0
- package/lib/localization23.js.map +1 -0
- package/lib/localization3.js +1 -1
- package/lib/localization3.js.map +1 -1
- package/lib/localization4.js +1 -1
- package/lib/localization4.js.map +1 -1
- package/lib/localization5.js +1 -1
- package/lib/localization5.js.map +1 -1
- package/lib/localization6.js +1 -1
- package/lib/localization6.js.map +1 -1
- package/lib/localization7.js +1 -1
- package/lib/localization7.js.map +1 -1
- package/lib/localization8.js +1 -1
- package/lib/localization8.js.map +1 -1
- package/lib/localization9.js +1 -1
- package/lib/localization9.js.map +1 -1
- package/lib/navigation-search-CBbIGzo2.js +2 -0
- package/lib/navigation-search-CBbIGzo2.js.map +1 -0
- package/lib/paginate.js +2 -0
- package/lib/paginate.js.map +1 -0
- package/lib/parse.js +2 -0
- package/lib/parse.js.map +1 -0
- package/lib/primitives-Dj0vyf1-.js +2 -0
- package/lib/primitives-Dj0vyf1-.js.map +1 -0
- package/lib/react.d.ts +520 -0
- package/lib/src/accordion/Accordion.d.ts +121 -0
- package/lib/src/accordion/AccordionHeader.d.ts +28 -0
- package/lib/src/accordion/AccordionItem.d.ts +68 -0
- package/lib/src/accordion/AccordionPanel.d.ts +35 -0
- package/lib/src/accordion/AccordionTrigger.d.ts +48 -0
- package/lib/src/aside/Aside.d.ts +1 -1
- package/lib/src/aside-drawer/AsideDrawer.d.ts +3 -1
- package/lib/src/aside-trigger/AsideTrigger.d.ts +2 -0
- package/lib/src/autocomplete/Autocomplete.d.ts +190 -0
- package/lib/src/autocomplete/localization.d.ts +5 -0
- package/lib/src/avatar/Avatar.d.ts +1 -1
- package/lib/src/badge/Badge.d.ts +1 -1
- package/lib/src/banner/Banner.d.ts +3 -0
- package/lib/src/button-group/ButtonGroup.d.ts +1 -1
- package/lib/src/calendar/Calendar.d.ts +45 -1
- package/lib/src/calendar/DateRangeSelectEvent.d.ts +16 -0
- package/lib/src/card/Card.d.ts +1 -1
- package/lib/src/collapsible/Collapsible.d.ts +69 -0
- package/lib/src/collapsible/CollapsiblePanel.d.ts +35 -0
- package/lib/src/collapsible/CollapsibleTrigger.d.ts +38 -0
- package/lib/src/combobox/Combobox.d.ts +131 -0
- package/lib/src/combobox/ComboboxBase.d.ts +421 -0
- package/lib/src/combobox/ComboboxEvents.d.ts +25 -0
- package/lib/src/combobox/ComboboxGroup.d.ts +34 -0
- package/lib/src/combobox/ComboboxOption.d.ts +47 -0
- package/lib/src/combobox/combobox-context.d.ts +18 -0
- package/lib/src/combobox/localization.d.ts +6 -0
- package/lib/src/common/controllers/ActiveDescendantController.d.ts +45 -0
- package/lib/src/common/controllers/CollapseController.d.ts +50 -0
- package/lib/src/common/controllers/FocusableWhenDisabledController.d.ts +29 -0
- package/lib/src/common/controllers/OpenStateController.d.ts +58 -0
- package/lib/src/common/controllers/RovingFocusController.d.ts +40 -0
- package/lib/src/common/controllers/ShortcutController.d.ts +5 -5
- package/lib/src/common/controllers/StateAttributesController.d.ts +47 -0
- package/lib/src/common/controllers/TransitionStatusController.d.ts +48 -0
- package/lib/src/common/dates.d.ts +13 -0
- package/lib/src/common/light-dom-styles.d.ts +17 -0
- package/lib/src/common/mixins/FieldControlMixin.d.ts +60 -0
- package/lib/src/common/mixins/FormAssociatedMixin.d.ts +8 -25
- package/lib/src/common/mixins/TextSelectableMixin.d.ts +1 -0
- package/lib/src/common/prefers-reduced-motion.d.ts +7 -0
- package/lib/src/date-picker/DatePicker.d.ts +2 -0
- package/lib/src/date-range-picker/DateRangeChangeEvent.d.ts +27 -0
- package/lib/src/date-range-picker/DateRangePicker.d.ts +307 -0
- package/lib/src/date-range-picker/localization.d.ts +42 -0
- package/lib/src/divider/Divider.d.ts +1 -1
- package/lib/src/drawer/Drawer.d.ts +1 -1
- package/lib/src/dropdown/Dropdown.d.ts +1 -1
- package/lib/src/dropdown-group/DropdownGroup.d.ts +3 -1
- package/lib/src/dropdown-item/DropdownItem.d.ts +3 -1
- package/lib/src/dropdown-submenu/DropdownSubmenu.d.ts +2 -0
- package/lib/src/field/Field.d.ts +102 -0
- package/lib/src/field/FieldContent.d.ts +22 -0
- package/lib/src/field/FieldDescription.d.ts +21 -0
- package/lib/src/field/FieldError.d.ts +25 -0
- package/lib/src/field/FieldGroup.d.ts +25 -0
- package/lib/src/field/FieldLabel.d.ts +41 -0
- package/lib/src/field/FieldLegend.d.ts +20 -0
- package/lib/src/field/FieldSeparator.d.ts +21 -0
- package/lib/src/field/FieldSet.d.ts +28 -0
- package/lib/src/field/FieldTitle.d.ts +21 -0
- package/lib/src/field/field-context.d.ts +47 -0
- package/lib/src/fieldset/Fieldset.d.ts +12 -4
- package/lib/src/filter-add-button/FilterAddButton.d.ts +91 -0
- package/lib/src/filter-add-button/FilterAddButtonEvents.d.ts +17 -0
- package/lib/src/filter-add-button/localization.d.ts +4 -0
- package/lib/src/filter-bar/FilterBar.d.ts +37 -0
- package/lib/src/filter-date-range/FilterDateRange.d.ts +96 -0
- package/lib/src/filter-date-range/FilterDateRangeEvents.d.ts +37 -0
- package/lib/src/filter-date-range/localization.d.ts +11 -0
- package/lib/src/filter-dropdown/FilterDropdown.d.ts +247 -0
- package/lib/src/filter-dropdown/FilterDropdownEvents.d.ts +57 -0
- package/lib/src/filter-dropdown/localization.d.ts +14 -0
- package/lib/src/filter-field/FilterField.d.ts +89 -0
- package/lib/src/filter-field/FilterFieldEvents.d.ts +18 -0
- package/lib/src/filter-field/localization.d.ts +8 -0
- package/lib/src/filter-input/FilterInput.d.ts +102 -0
- package/lib/src/filter-input/localization.d.ts +5 -0
- package/lib/src/filter-reset-button/FilterResetButton.d.ts +50 -0
- package/lib/src/filter-reset-button/localization.d.ts +4 -0
- package/lib/src/footer/Footer.d.ts +1 -1
- package/lib/src/header/Header.d.ts +1 -1
- package/lib/src/icon/Icon.d.ts +1 -1
- package/lib/src/index.d.ts +61 -0
- package/lib/src/input/Input.d.ts +2 -1
- package/lib/src/item/Item.d.ts +44 -0
- package/lib/src/item/ItemActions.d.ts +20 -0
- package/lib/src/item/ItemContent.d.ts +22 -0
- package/lib/src/item/ItemDescription.d.ts +20 -0
- package/lib/src/item/ItemFooter.d.ts +20 -0
- package/lib/src/item/ItemGroup.d.ts +22 -0
- package/lib/src/item/ItemHeader.d.ts +20 -0
- package/lib/src/item/ItemMedia.d.ts +28 -0
- package/lib/src/item/ItemSeparator.d.ts +21 -0
- package/lib/src/item/ItemTitle.d.ts +19 -0
- package/lib/src/kbd/Kbd.d.ts +54 -0
- package/lib/src/kbd/KbdGroup.d.ts +22 -0
- package/lib/src/layout/Layout.d.ts +3 -3
- package/lib/src/localization/en-us.d.ts +88 -0
- package/lib/src/localization/translation.d.ts +88 -0
- package/lib/src/meter/Meter.d.ts +76 -0
- package/lib/src/nav-group/NavGroup.d.ts +2 -0
- package/lib/src/nav-item/NavItem.d.ts +2 -0
- package/lib/src/nav-toggle/NavToggle.d.ts +3 -1
- package/lib/src/notification-group/NotificationGroup.d.ts +2 -0
- package/lib/src/number-field/NumberField.d.ts +377 -0
- package/lib/src/number-field/NumberFieldEvents.d.ts +37 -0
- package/lib/src/number-field/currency.d.ts +24 -0
- package/lib/src/number-field/format.d.ts +8 -0
- package/lib/src/number-field/localization.d.ts +6 -0
- package/lib/src/number-field/parse.d.ts +44 -0
- package/lib/src/number-field/validate.d.ts +24 -0
- package/lib/src/otp-field/OtpField.d.ts +188 -0
- package/lib/src/otp-field/OtpFieldEvents.d.ts +38 -0
- package/lib/src/otp-field/localization.d.ts +4 -0
- package/lib/src/outline/Outline.d.ts +111 -0
- package/lib/src/outline/OutlineItem.d.ts +42 -0
- package/lib/src/outline/localization.d.ts +4 -0
- package/lib/src/pagination/Pagination.d.ts +51 -0
- package/lib/src/pagination/PaginationContent.d.ts +27 -0
- package/lib/src/pagination/PaginationEllipsis.d.ts +27 -0
- package/lib/src/pagination/PaginationItem.d.ts +24 -0
- package/lib/src/pagination/PaginationLink.d.ts +30 -0
- package/lib/src/pagination/PaginationNext.d.ts +24 -0
- package/lib/src/pagination/PaginationPrevious.d.ts +24 -0
- package/lib/src/pagination/localization.d.ts +4 -0
- package/lib/src/pagination/paginate.d.ts +20 -0
- package/lib/src/popout/Popout.d.ts +9 -0
- package/lib/src/qrcode/Qrcode.d.ts +1 -1
- package/lib/src/scroll-area/ScrollArea.d.ts +101 -0
- package/lib/src/segmented-control-item/SegmentedControlItem.d.ts +2 -0
- package/lib/src/stack/Stack.d.ts +1 -1
- package/lib/src/storybook-utils/dates.d.ts +2 -0
- package/lib/src/storybook-utils/dismiss.d.ts +1 -0
- package/lib/src/storybook-utils/story-descriptions.d.ts +2 -0
- package/lib/src/tab-group/TabGroup.d.ts +2 -0
- package/lib/src/tab-panel/TabPanel.d.ts +2 -0
- package/lib/src/tag/Tag.d.ts +1 -1
- package/lib/src/tag-group/TagGroup.d.ts +3 -1
- package/lib/src/time-picker/TimePicker.d.ts +105 -0
- package/lib/src/time-picker/localization.d.ts +4 -0
- package/lib/src/toast-group/ToastGroup.d.ts +11 -0
- package/lib/src/top-bar/TopBar.d.ts +1 -1
- package/lib/src/truncate/Truncate.d.ts +1 -1
- package/lib/src/visually-hidden/VisuallyHidden.d.ts +1 -1
- package/lib/story-descriptions.js +2 -0
- package/lib/story-descriptions.js.map +1 -0
- package/lib/tinykeys-DwvDXsEb.js +2 -0
- package/lib/tinykeys-DwvDXsEb.js.map +1 -0
- package/lib/translation.js +1 -1
- package/lib/translation.js.map +1 -1
- package/lib/validate.js +2 -0
- package/lib/validate.js.map +1 -0
- package/lib/vue.d.ts +418 -0
- package/package.json +10 -13
- package/lib/Calendar-ChNZdVRO.js +0 -2
- package/lib/Calendar-ChNZdVRO.js.map +0 -1
- package/lib/Component-DSU3Qp0O.js +0 -2
- package/lib/Component-DSU3Qp0O.js.map +0 -1
- package/lib/DropdownItem-Cb-7cHMg.js +0 -2
- package/lib/DropdownItem-Cb-7cHMg.js.map +0 -1
- package/lib/Fieldset.js +0 -2
- package/lib/Fieldset.js.map +0 -1
- package/lib/FormAssociatedMixin-B4Qj-CQN.js +0 -2
- package/lib/FormAssociatedMixin-B4Qj-CQN.js.map +0 -1
- package/lib/FormField-BFaVzUjk.js +0 -2
- package/lib/FormField-BFaVzUjk.js.map +0 -1
- package/lib/NavToggle-DzKbd-El.js +0 -2
- package/lib/NavToggle-DzKbd-El.js.map +0 -1
- package/lib/Popout-CYqn_dZu.js +0 -2
- package/lib/Popout-CYqn_dZu.js.map +0 -1
- package/lib/ShortcutController-BIb3WGzH.js +0 -2
- package/lib/ShortcutController-BIb3WGzH.js.map +0 -1
- package/lib/Sticky-DqnqENYN.js +0 -2
- package/lib/Sticky-DqnqENYN.js.map +0 -1
- package/lib/TextField-B955GOhe.js +0 -2
- package/lib/TextField-B955GOhe.js.map +0 -1
- package/lib/dates-CAAlPKZi.js +0 -2
- package/lib/dates-CAAlPKZi.js.map +0 -1
- package/lib/tinykeys.module-_6MZt7MP.js +0 -2
- package/lib/tinykeys.module-_6MZt7MP.js.map +0 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
declare const PaginationPrevious_base: typeof LitElement;
|
|
3
|
+
/**
|
|
4
|
+
* The "previous page" control in a composed [Pagination](/components/pagination/).
|
|
5
|
+
* A layout wrapper around your own interactive element — provide an `<a>`
|
|
6
|
+
* (e.g. a framework `<Link>`) or a `nord-button` with its own icon, label and
|
|
7
|
+
* navigation, and disable it when there is no previous page.
|
|
8
|
+
*
|
|
9
|
+
* @status draft
|
|
10
|
+
* @category navigation
|
|
11
|
+
* @lightDom true
|
|
12
|
+
*
|
|
13
|
+
* @slot - Default slot for the previous-page link or button.
|
|
14
|
+
*/
|
|
15
|
+
export default class PaginationPrevious extends PaginationPrevious_base {
|
|
16
|
+
connectedCallback(): void;
|
|
17
|
+
protected createRenderRoot(): this;
|
|
18
|
+
}
|
|
19
|
+
declare global {
|
|
20
|
+
interface HTMLElementTagNameMap {
|
|
21
|
+
'nord-pagination-previous': PaginationPrevious;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ellipsis marker returned by {@link paginate} in place of a page number.
|
|
3
|
+
*/
|
|
4
|
+
export declare const ELLIPSIS: "…";
|
|
5
|
+
export type PaginationToken = number | typeof ELLIPSIS;
|
|
6
|
+
/**
|
|
7
|
+
* Builds the sequence of page numbers (and ellipsis markers) to render for a
|
|
8
|
+
* numbered pager, keeping the window centred on the current page and collapsing
|
|
9
|
+
* long gaps into a single {@link ELLIPSIS}.
|
|
10
|
+
*
|
|
11
|
+
* Ported from the Provet Cloud frontend `paginate()` util (which is itself based
|
|
12
|
+
* on https://gist.github.com/kottenator/9d936eb3e4e3c3e02598), with the lodash
|
|
13
|
+
* `clamp`/`range` dependencies inlined.
|
|
14
|
+
*
|
|
15
|
+
* @param currentPage 1-based current page.
|
|
16
|
+
* @param pageCount Total number of pages.
|
|
17
|
+
* @param pagesShown Maximum number of page tokens to show (min 7).
|
|
18
|
+
* @returns An array of 1-based page numbers interleaved with `ELLIPSIS`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function paginate(currentPage: number, pageCount: number, pagesShown?: number): PaginationToken[];
|
|
@@ -37,6 +37,15 @@ export default class Popout extends Popout_base {
|
|
|
37
37
|
* Set to true to always display the popout as a floating overlay, even on smaller viewports.
|
|
38
38
|
*/
|
|
39
39
|
alwaysFloating: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Set to true when the consuming component owns the `open` state and drives
|
|
42
|
+
* the popout itself (e.g. via its own trigger `@click` and `show()`/`hide()`).
|
|
43
|
+
* The popout stays presentational — positioning, top layer, light dismiss and
|
|
44
|
+
* transitions all still work — but it does NOT attach its own click-to-toggle
|
|
45
|
+
* listener to the `aria-controls` trigger, avoiding a competing second toggle
|
|
46
|
+
* on the same click.
|
|
47
|
+
*/
|
|
48
|
+
controlled: boolean;
|
|
40
49
|
/**
|
|
41
50
|
* Show the popout.
|
|
42
51
|
* A promise that resolves to a `TransitionEvent` when the popout's show animation ends or is cancelled.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
declare const ScrollArea_base: typeof LitElement;
|
|
3
|
+
/**
|
|
4
|
+
* Scroll Area is a container that wraps overflowing content in a custom scroll
|
|
5
|
+
* viewport with consistently-styled scrollbars. Native scrollbars are hidden and
|
|
6
|
+
* replaced with a thin overlay thumb that appears on hover or while scrolling.
|
|
7
|
+
*
|
|
8
|
+
* It also exposes the distance from each edge as CSS custom properties
|
|
9
|
+
* (`--scroll-area-overflow-*`), which can drive an edge-fade mask on
|
|
10
|
+
* `::part(viewport)` — see the docs example.
|
|
11
|
+
*
|
|
12
|
+
* The scroll machinery lives in shadow DOM; slot your content directly inside.
|
|
13
|
+
*
|
|
14
|
+
* @status draft
|
|
15
|
+
* @category layout
|
|
16
|
+
*
|
|
17
|
+
* @slot - The scrollable content.
|
|
18
|
+
*
|
|
19
|
+
* @csspart viewport - The scrolling container that holds the slotted content.
|
|
20
|
+
* @csspart scrollbar-block - The scrollbar track for the block (vertical) axis.
|
|
21
|
+
* @csspart scrollbar-inline - The scrollbar track for the inline (horizontal) axis.
|
|
22
|
+
* @csspart thumb-block - The draggable thumb of the block-axis scrollbar.
|
|
23
|
+
* @csspart thumb-inline - The draggable thumb of the inline-axis scrollbar.
|
|
24
|
+
* @csspart corner - The square where the two scrollbars meet (when `axis="both"`).
|
|
25
|
+
*
|
|
26
|
+
* @cssprop [--n-scroll-area-fade-size=24px] - Depth of the edge fade (when `fade` is set).
|
|
27
|
+
* @cssprop [--n-scroll-area-scrollbar-size=10px] - Thickness of the scrollbar track and thumb.
|
|
28
|
+
* @cssprop [--n-scroll-area-scrollbar-inset=2px] - Inset of the scrollbar from the viewport edge.
|
|
29
|
+
* @cssprop [--n-scroll-area-thumb-color] - Thumb fill (defaults to the border token).
|
|
30
|
+
* @cssprop [--n-scroll-area-thumb-color-hover] - Thumb fill on hover (defaults to the strong border token).
|
|
31
|
+
* @cssprop [--scroll-area-overflow-y-start] - Read-only: pixels scrolled past the block start edge.
|
|
32
|
+
* @cssprop [--scroll-area-overflow-y-end] - Read-only: pixels remaining to the block end edge.
|
|
33
|
+
* @cssprop [--scroll-area-overflow-x-start] - Read-only: pixels scrolled past the inline start edge.
|
|
34
|
+
* @cssprop [--scroll-area-overflow-x-end] - Read-only: pixels remaining to the inline end edge.
|
|
35
|
+
*/
|
|
36
|
+
export default class ScrollArea extends ScrollArea_base {
|
|
37
|
+
static styles: import("lit").CSSResult[];
|
|
38
|
+
/**
|
|
39
|
+
* Which scrollbars to render. `block` is vertical, `inline` is horizontal.
|
|
40
|
+
* @default "block"
|
|
41
|
+
*/
|
|
42
|
+
axis: 'block' | 'inline' | 'both';
|
|
43
|
+
/**
|
|
44
|
+
* Distance in pixels past an edge before the matching `data-overflow-*` state
|
|
45
|
+
* (and edge-fade variable) is considered active.
|
|
46
|
+
* @default 0
|
|
47
|
+
*/
|
|
48
|
+
overflowEdgeThreshold: number;
|
|
49
|
+
/**
|
|
50
|
+
* Fades the content in and out at the scroll edges with a mask, signalling
|
|
51
|
+
* there is more content beyond the edge.
|
|
52
|
+
* @default false
|
|
53
|
+
*/
|
|
54
|
+
fade: boolean;
|
|
55
|
+
/** Always display the scrollbar instead of hiding it when idle. */
|
|
56
|
+
alwaysShowScrollbar: boolean;
|
|
57
|
+
private viewport;
|
|
58
|
+
private scrollbarBlock?;
|
|
59
|
+
private thumbBlock?;
|
|
60
|
+
private scrollbarInline?;
|
|
61
|
+
private thumbInline?;
|
|
62
|
+
private hasBlockOverflow;
|
|
63
|
+
private hasInlineOverflow;
|
|
64
|
+
private resizeObserver?;
|
|
65
|
+
private coarsePointer?;
|
|
66
|
+
private scrollTimeout?;
|
|
67
|
+
private dragOrientation;
|
|
68
|
+
private dragStart;
|
|
69
|
+
private dragStartScroll;
|
|
70
|
+
private get hasBlock();
|
|
71
|
+
private get hasInline();
|
|
72
|
+
connectedCallback(): void;
|
|
73
|
+
disconnectedCallback(): void;
|
|
74
|
+
firstUpdated(): void;
|
|
75
|
+
protected updated(): void;
|
|
76
|
+
private handleSlotChange;
|
|
77
|
+
private handleCoarseChange;
|
|
78
|
+
private handlePointerOver;
|
|
79
|
+
private handlePointerLeave;
|
|
80
|
+
/** Marks the area as actively scrolling, clearing the flag after a quiet period. */
|
|
81
|
+
private flagScrolling;
|
|
82
|
+
private handleScroll;
|
|
83
|
+
/**
|
|
84
|
+
* Measures overflow and positions/sizes the thumbs. Ported from Base UI's
|
|
85
|
+
* `ScrollAreaViewport#computeThumbPosition`.
|
|
86
|
+
*/
|
|
87
|
+
private measure;
|
|
88
|
+
private handleThumbPointerDown;
|
|
89
|
+
private handleThumbPointerMove;
|
|
90
|
+
private handleThumbPointerUp;
|
|
91
|
+
private handleTrackPointerDown;
|
|
92
|
+
/** Scrolling over a scrollbar track scrolls the viewport. */
|
|
93
|
+
private handleScrollbarWheel;
|
|
94
|
+
render(): import("lit").TemplateResult<1>;
|
|
95
|
+
}
|
|
96
|
+
declare global {
|
|
97
|
+
interface HTMLElementTagNameMap {
|
|
98
|
+
'nord-scroll-area': ScrollArea;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
export {};
|
|
@@ -21,6 +21,8 @@ declare const SegmentedControlItem_base: (new (...args: any[]) => import("../com
|
|
|
21
21
|
* @cssprop [--n-segmented-control-item-font-weight=var(--n-font-weight)] - Controls the weight of the text within the item, using our [font tokens](/tokens/#font).
|
|
22
22
|
* @cssprop [--n-segmented-control-item-min-block-size=calc(var(--n-space-xl) - 2px)] - Controls the minimum block size, or height, of the item using our [spacing tokens](/tokens/#space).
|
|
23
23
|
* @cssprop [--n-segmented-control-item-inline-size=auto] - Controls the inline size of the item.
|
|
24
|
+
*
|
|
25
|
+
* @parent SegmentedControl
|
|
24
26
|
*/
|
|
25
27
|
export default class SegmentedControlItem extends SegmentedControlItem_base {
|
|
26
28
|
static styles: import("lit").CSSResult[];
|
package/lib/src/stack/Stack.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { LitElement } from 'lit';
|
|
|
4
4
|
* vertical or horizontal axis with optional spacing between each child.
|
|
5
5
|
*
|
|
6
6
|
* @status ready
|
|
7
|
-
* @category
|
|
7
|
+
* @category layout
|
|
8
8
|
* @slot - The stack content.
|
|
9
9
|
*
|
|
10
10
|
* @cssprop [--n-stack-gap=var(--n-space-m)] - Controls the spacing between items, using our [spacing tokens](/tokens/#space).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function removeDismissedElement(event: Event): void;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const STANDALONE_STORY_DESCRIPTION = "Used on its own, providing its own label and hint via attributes. The Field story shows the same control composed inside a `nord-field` instead.";
|
|
2
|
+
export declare const FIELD_STORY_DESCRIPTION = "Composed inside a `nord-field` with separate label and description elements, for layout the built-in label cannot give \u2014 horizontal orientation, custom label markup, or grouping. The Standalone story shows the same control providing its own label instead.";
|
|
@@ -9,6 +9,8 @@ import { LitElement } from 'lit';
|
|
|
9
9
|
* @slot tab - The element which contains all tabs to reveal tabbed content.
|
|
10
10
|
*
|
|
11
11
|
* @cssprop [--n-tab-group-padding=0] - Controls the padding around the tab group (including the tab list), using our [spacing tokens](/tokens/#space).
|
|
12
|
+
*
|
|
13
|
+
* @parent Tab
|
|
12
14
|
*/
|
|
13
15
|
export default class TabGroup extends LitElement {
|
|
14
16
|
static styles: import("lit").CSSResult[];
|
package/lib/src/tag/Tag.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ declare const Tag_base: (new (...args: any[]) => import("../common/mixins/InputM
|
|
|
6
6
|
* and organize objects. Commonly used to signify the attributes of an object.
|
|
7
7
|
*
|
|
8
8
|
* @status new
|
|
9
|
-
* @category
|
|
9
|
+
* @category content
|
|
10
10
|
* @slot - The tag content.
|
|
11
11
|
*
|
|
12
12
|
* @localization removeLabel - Accessible label for the remove button.
|
|
@@ -3,7 +3,7 @@ import { LitElement } from 'lit';
|
|
|
3
3
|
* Tag groups are designed to bring together selectable tags that are of a similar nature. For example categories you can filter by.
|
|
4
4
|
*
|
|
5
5
|
* @status new
|
|
6
|
-
* @category
|
|
6
|
+
* @category content
|
|
7
7
|
* @slot - The tag group content
|
|
8
8
|
*
|
|
9
9
|
* @fires {NordEvent} change - Fired whenever a tag has been checked or unchecked via user interaction.
|
|
@@ -11,6 +11,8 @@ import { LitElement } from 'lit';
|
|
|
11
11
|
*
|
|
12
12
|
* @cssprop [--n-tag-group-border-radius=var(--n-border-radius-s)] - Controls the rounded corners of the tag group, using [border radius tokens](/tokens/#border-radius). Only relevant for the default variant.
|
|
13
13
|
* @cssprop [--n-tag-group-box-shadow=var(--n-box-shadow)] - Controls the surrounding shadow, using [box shadow tokens](/tokens/#box-shadow). Only relevant for the default variant.
|
|
14
|
+
*
|
|
15
|
+
* @parent Tag
|
|
14
16
|
*/
|
|
15
17
|
export default class TagGroup extends LitElement {
|
|
16
18
|
static styles: import("lit").CSSResult[];
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import '../input/Input.js';
|
|
3
|
+
import '../dropdown/Dropdown.js';
|
|
4
|
+
import '../dropdown-item/DropdownItem.js';
|
|
5
|
+
import '../button/Button.js';
|
|
6
|
+
import '../icon/Icon.js';
|
|
7
|
+
declare const TimePicker_base: typeof LitElement;
|
|
8
|
+
/**
|
|
9
|
+
* Time Picker pairs the browser's native time field with a dropdown of quick
|
|
10
|
+
* options, generated at a configurable `interval` between `start` and `end`.
|
|
11
|
+
* The native field handles typing, locale-aware display and validation; the
|
|
12
|
+
* dropdown is a shortcut for common times.
|
|
13
|
+
*
|
|
14
|
+
* The value is held in ISO `HH:mm` format.
|
|
15
|
+
*
|
|
16
|
+
* Like a native input, Time Picker is a control only — it has no built-in
|
|
17
|
+
* label, hint or error. Compose it inside a [Field](/components/field/) (with a
|
|
18
|
+
* [Field Label](/components/field-label/), [Field Description](/components/field-description/)
|
|
19
|
+
* and [Field Error](/components/field-error/)) to label it and add help or error text.
|
|
20
|
+
*
|
|
21
|
+
* @status draft
|
|
22
|
+
* @category form
|
|
23
|
+
*
|
|
24
|
+
* @fires change - Fired when the selected time changes.
|
|
25
|
+
*
|
|
26
|
+
* @localization chooseTime - Accessible label for the dropdown toggle button.
|
|
27
|
+
*/
|
|
28
|
+
export default class TimePicker extends TimePicker_base {
|
|
29
|
+
static styles: import("lit").CSSResult[];
|
|
30
|
+
private localize;
|
|
31
|
+
private ariaObserver?;
|
|
32
|
+
/** The selected time, in ISO `HH:mm` format. */
|
|
33
|
+
value?: string;
|
|
34
|
+
/** Name submitted with the form. */
|
|
35
|
+
name?: string;
|
|
36
|
+
/** Earliest time offered in the dropdown, ISO `HH:mm`. @default "09:00" */
|
|
37
|
+
start: string;
|
|
38
|
+
/** Latest time offered in the dropdown, ISO `HH:mm`. @default "17:00" */
|
|
39
|
+
end: string;
|
|
40
|
+
/** Minutes between each option in the dropdown. @default 30 */
|
|
41
|
+
interval: number;
|
|
42
|
+
/** When set, a typed time is rounded to the nearest interval option; otherwise any time is accepted. */
|
|
43
|
+
roundToInterval: boolean;
|
|
44
|
+
/** Display dropdown times in 12-hour (AM/PM) or 24-hour format; omit to use the locale default. */
|
|
45
|
+
hourFormat?: '12h' | '24h';
|
|
46
|
+
/** Earliest time the field will accept, ISO `HH:mm`. */
|
|
47
|
+
min?: string;
|
|
48
|
+
/** Latest time the field will accept, ISO `HH:mm`. */
|
|
49
|
+
max?: string;
|
|
50
|
+
/** Size of the field. @default "m" */
|
|
51
|
+
size: 's' | 'm' | 'l';
|
|
52
|
+
/** Whether the field expands to fill its container. */
|
|
53
|
+
expand: boolean;
|
|
54
|
+
/** Whether the field is disabled. */
|
|
55
|
+
disabled: boolean;
|
|
56
|
+
/** Whether the field is read-only. */
|
|
57
|
+
readonly: boolean;
|
|
58
|
+
/** Whether a value is required when submitting a form. */
|
|
59
|
+
required: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Label for the control. Rendered by the inner input when used standalone;
|
|
62
|
+
* ignored when wrapped in a `<nord-field>` (the Field provides the label).
|
|
63
|
+
*/
|
|
64
|
+
label?: string;
|
|
65
|
+
/** Optional hint text. Ignored inside a `<nord-field>`. */
|
|
66
|
+
hint?: string;
|
|
67
|
+
/** Optional error text. Ignored inside a `<nord-field>`. */
|
|
68
|
+
error?: string;
|
|
69
|
+
/** Visually hide the label, but keep it for assistive technology. */
|
|
70
|
+
hideLabel: boolean;
|
|
71
|
+
/** Render the hint below the control instead of below the label. */
|
|
72
|
+
hintBelow: boolean;
|
|
73
|
+
/** Visually hide the required indicator, but keep the required state for AT. */
|
|
74
|
+
hideRequired: boolean;
|
|
75
|
+
private input?;
|
|
76
|
+
private dropdown?;
|
|
77
|
+
connectedCallback(): void;
|
|
78
|
+
disconnectedCallback(): void;
|
|
79
|
+
/** Move focus to the field, so a Field Label's click-to-focus works. */
|
|
80
|
+
focus(): void;
|
|
81
|
+
private get clampedInterval();
|
|
82
|
+
/**
|
|
83
|
+
* Accessible name from a consumer-set host `aria-label` / `aria-labelledby`,
|
|
84
|
+
* forwarded to the inner input as `aria-label` (an external `aria-labelledby`
|
|
85
|
+
* can't cross the shadow boundary). Inside a `<nord-field>` the inner input
|
|
86
|
+
* takes its name from the field context instead.
|
|
87
|
+
*/
|
|
88
|
+
private get hostAccessibleName();
|
|
89
|
+
/** Locale-aware label for a `HH:mm` value (matches how the native field reads). */
|
|
90
|
+
private formatLabel;
|
|
91
|
+
/** Generated dropdown options between `start` and `end`. */
|
|
92
|
+
private get options();
|
|
93
|
+
/** Round a `HH:mm` value to the nearest interval option, clamped within `start`/`end`. */
|
|
94
|
+
private roundToNearestInterval;
|
|
95
|
+
private setValue;
|
|
96
|
+
private handleFieldChange;
|
|
97
|
+
private handleSelect;
|
|
98
|
+
render(): import("lit").TemplateResult<1>;
|
|
99
|
+
}
|
|
100
|
+
declare global {
|
|
101
|
+
interface HTMLElementTagNameMap {
|
|
102
|
+
'nord-time-picker': TimePicker;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export {};
|
|
@@ -9,10 +9,21 @@ type ToastOptions = Partial<Pick<Toast, 'variant' | 'autoDismiss'>>;
|
|
|
9
9
|
* @slot - Default slot in which to place toasts.
|
|
10
10
|
*
|
|
11
11
|
* @fires {NordEvent} dismiss - Fired when a toast is dismissed (via user action or auto-dismiss), and its exit animation has completed. This event should be used to remove the dismissed toast from the DOM.
|
|
12
|
+
*
|
|
13
|
+
* @parent Toast
|
|
12
14
|
*/
|
|
13
15
|
export default class ToastGroup extends LitElement {
|
|
14
16
|
static styles: import("lit").CSSResult[];
|
|
17
|
+
disconnectedCallback(): void;
|
|
15
18
|
render(): import("lit").TemplateResult<1>;
|
|
19
|
+
private handleSlotChange;
|
|
20
|
+
/**
|
|
21
|
+
* Place the group in the top layer via the Popover API so that toasts render
|
|
22
|
+
* above modals, drawers and other content regardless of stacking contexts
|
|
23
|
+
* created by container queries, transforms or other containing block ancestors.
|
|
24
|
+
*/
|
|
25
|
+
private enterTopLayer;
|
|
26
|
+
private leaveTopLayer;
|
|
16
27
|
/**
|
|
17
28
|
* Convenience method for creating and adding a toast to the group.
|
|
18
29
|
* @param {string} text - The text/message of the toast.
|
|
@@ -3,7 +3,7 @@ import { LitElement } from 'lit';
|
|
|
3
3
|
* Top bar is a header component that is always visible at the top of the interface. Top bar allows functionality such as search and contextual menus to be placed at the top of the interface.
|
|
4
4
|
*
|
|
5
5
|
* @status ready
|
|
6
|
-
* @category
|
|
6
|
+
* @category layout
|
|
7
7
|
* @slot - Used for the main content of the top bar. We recommend placing your application’s global search functionality into this slot.
|
|
8
8
|
* @slot end - Optional slot for menus, buttons, toggles, etc.
|
|
9
9
|
*/
|
|
@@ -5,7 +5,7 @@ import '../tooltip/Tooltip.js';
|
|
|
5
5
|
* Truncate clips text with a single- or multi-line ellipsis and reveals a tooltip with the full text when the content overflows.
|
|
6
6
|
*
|
|
7
7
|
* @status ready
|
|
8
|
-
* @category
|
|
8
|
+
* @category content
|
|
9
9
|
* @slot - The full text content. Plain text is recommended; rich markup is
|
|
10
10
|
* not supported (only `textContent` is read for truncation).
|
|
11
11
|
*/
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const o="Used on its own, providing its own label and hint via attributes. The Field story shows the same control composed inside a `nord-field` instead.",e="Composed inside a `nord-field` with separate label and description elements, for layout the built-in label cannot give — horizontal orientation, custom label markup, or grouping. The Standalone story shows the same control providing its own label instead.";export{e as FIELD_STORY_DESCRIPTION,o as STANDALONE_STORY_DESCRIPTION};
|
|
2
|
+
//# sourceMappingURL=story-descriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"story-descriptions.js","sources":["../src/storybook-utils/story-descriptions.ts"],"sourcesContent":["// Shared docs descriptions for the paired \"Standalone\" and \"Field\" stories that\n// most form controls provide. Both stories render the same control; only the\n// labelling approach differs, so the copy is identical across components.\n\nexport const STANDALONE_STORY_DESCRIPTION\n = 'Used on its own, providing its own label and hint via attributes. The Field story shows the same control composed inside a `nord-field` instead.'\n\nexport const FIELD_STORY_DESCRIPTION\n = 'Composed inside a `nord-field` with separate label and description elements, for layout the built-in label cannot give — horizontal orientation, custom label markup, or grouping. The Standalone story shows the same control providing its own label instead.'\n"],"names":["STANDALONE_STORY_DESCRIPTION","FIELD_STORY_DESCRIPTION"],"mappings":"AAIO,MAAMA,EACT,mJAESC,EACT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
let e=["Shift","Meta","Alt","Control"],t=1e3,n="object"==typeof navigator?navigator.platform:"",o=/Mac|iPod|iPhone|iPad/.test(n)?"Meta":"Control",r="Win32"===n?["Control","Alt"]:["Alt"];function i(e){let t=e.target;return e.repeat||e.isComposing||t!==e.currentTarget&&t.matches("[contenteditable],input,select,textarea")}function a(e,t){return"function"==typeof e.getModifierState&&(e.getModifierState(t)||r.includes(t)&&e.getModifierState("AltGraph"))}function l(t,[n,o,i]){const l=n.includes("AltGraph");return!((i instanceof RegExp?!i.test(t.key)&&!i.test(t.code):i.toUpperCase()!==t.key.toUpperCase()&&i!==t.code)||n.find((e=>!a(t,e)))||e.find((e=>!n.includes(e)&&!o.includes(e)&&i!==e&&a(t,e)&&!(l&&r.includes(e)))))}function c(e,n={}){let r=n.timeout??t,c=n.ignore??i,s=Object.keys(e).map((t=>{return[t,(n=t,n.trim().split(" ").map((e=>{let t=e.split(/(?<=\w|\])\+/),n=t.pop(),r=n.match(/^\((.+)\)$/),i=r?new RegExp(`^(?:${r[1]})$`,"iv"):n,a=[],l=[];for(const e of t){let t=e.match(/^\[(.*)\]$/),n=t?.[1]??e;n="$mod"===n?o:n,t?l.push(n):a.push(n)}return[a,l,i]}))),e[t]];var n})),u=new Map,f=null;return e=>{if(!function(e){return!!(e.key&&e.code&&e.getModifierState)}(e)||c(e))return;let t=[];for(let[n,o,r]of s){let i=u.get(n),[c,...s]=i||o;if(l(e,c))if(s.length>0)u.set(n,s),t.push(n);else{if(u.delete(n),!t.length){r(e);break}console.warn(`tinykeys: Conflict found, "${n}" did not fire, waiting for:`,t)}else a(e,e.key)||u.delete(n)}f&&clearTimeout(f),f=setTimeout((()=>u.clear()),r)}}function s(e,t,n={}){let o=n.event??"keydown",r=c(t,n);return e.addEventListener(o,r,n.capture),()=>{e.removeEventListener(o,r,n.capture)}}export{c,s as t};
|
|
2
|
+
//# sourceMappingURL=tinykeys-DwvDXsEb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tinykeys-DwvDXsEb.js","sources":["../../../node_modules/.pnpm/tinykeys@4.0.0/node_modules/tinykeys/dist/tinykeys.mjs"],"sourcesContent":["//#region src/tinykeys.ts\n/**\n* These are the modifier keys that change the meaning of keybindings.\n*\n* Note: Ignoring \"AltGraph\" because it is covered by the others.\n*/\nlet KEYBINDING_MODIFIER_KEYS = [\n\t\"Shift\",\n\t\"Meta\",\n\t\"Alt\",\n\t\"Control\"\n];\n/**\n* Keybinding sequences should timeout if individual key presses are more than\n* 1s apart by default.\n*/\nlet DEFAULT_TIMEOUT = 1e3;\n/**\n* Keybinding sequences should bind to this event by default.\n*/\nlet DEFAULT_EVENT = \"keydown\";\n/**\n* Platform detection code.\n* @see https://github.com/jamiebuilds/tinykeys/issues/184\n*/\nlet PLATFORM = typeof navigator === \"object\" ? navigator.platform : \"\";\n/**\n* An alias for creating platform-specific keybinding aliases.\n*/\nlet MOD = /Mac|iPod|iPhone|iPad/.test(PLATFORM) ? \"Meta\" : \"Control\";\n/**\n* Meaning of `AltGraph`, from MDN:\n* - Windows: Both Alt and Ctrl keys are pressed, or AltGr key is pressed\n* - Mac: ⌥ Option key pressed\n* - Linux: Level 3 Shift key (or Level 5 Shift key) pressed\n* - Android: Not supported\n* @see https://github.com/jamiebuilds/tinykeys/issues/185\n*/\nlet ALT_GRAPH_ALIASES = PLATFORM === \"Win32\" ? [\"Control\", \"Alt\"] : [\"Alt\"];\n/**\n* Ensure and stop any event that isn't a full keyboard event.\n* Autocomplete option navigation and selection would fire an Event,\n* instead of the expected KeyboardEvent\n*/\nfunction isKeyboardEvent(event) {\n\treturn !!(event.key && event.code && event.getModifierState);\n}\n/**\n* Ignores keyboard events from contenteditable and form elements unless they\n* are the current target.\n*/\nfunction defaultKeybindingsHandlerIgnore(event) {\n\tlet target = event.target;\n\treturn event.repeat || event.isComposing || target !== event.currentTarget && target.matches(\"[contenteditable],input,select,textarea\");\n}\n/**\n* There's a bug in Chrome that causes event.getModifierState not to exist on\n* KeyboardEvent's for F1/F2/etc keys.\n*/\nfunction getModifierState(event, mod) {\n\treturn typeof event.getModifierState === \"function\" ? event.getModifierState(mod) || ALT_GRAPH_ALIASES.includes(mod) && event.getModifierState(\"AltGraph\") : false;\n}\n/**\n* Parses a keybinding string into its parts.\n*\n* ```\n* grammar = `<sequence>`\n* <sequence> = `<press> <press> <press> ...`\n* <press> = `<key>` or `<mods>+<key>`\n* <mods> = `<mod>+<mod>+...`\n* <mod> = `<modifier>` (required) or `[<modifier>]` (optional)\n* <key> = `<KeyboardEvent.key>` or `<KeyboardEvent.code>` (case-insensitive)\n* <key> = `(<regex>)` -> `/^(?:<regex>)$/iy` (case-insensitive)\n* ```\n*/\nfunction parseKeybinding(str) {\n\treturn str.trim().split(\" \").map((press) => {\n\t\tlet parts = press.split(/(?<=\\w|\\])\\+/);\n\t\tlet last = parts.pop();\n\t\tlet regex = last.match(/^\\((.+)\\)$/);\n\t\tlet key = regex ? new RegExp(`^(?:${regex[1]})$`, \"iv\") : last;\n\t\tlet requiredModifiers = [];\n\t\tlet optionalModifiers = [];\n\t\tfor (const part of parts) {\n\t\t\tlet optional = part.match(/^\\[(.*)\\]$/);\n\t\t\tlet mod = optional?.[1] ?? part;\n\t\t\tmod = mod === \"$mod\" ? MOD : mod;\n\t\t\tif (optional) optionalModifiers.push(mod);\n\t\t\telse requiredModifiers.push(mod);\n\t\t}\n\t\treturn [\n\t\t\trequiredModifiers,\n\t\t\toptionalModifiers,\n\t\t\tkey\n\t\t];\n\t});\n}\n/**\n* This tells us if a single keyboard event matches a single keybinding press.\n*/\nfunction matchKeybindingPress(event, [requiredModifiers, optionalModifiers, key]) {\n\tconst hasAltGraph = requiredModifiers.includes(\"AltGraph\");\n\treturn !((key instanceof RegExp ? !(key.test(event.key) || key.test(event.code)) : key.toUpperCase() !== event.key.toUpperCase() && key !== event.code) || requiredModifiers.find((mod) => {\n\t\treturn !getModifierState(event, mod);\n\t}) || KEYBINDING_MODIFIER_KEYS.find((mod) => {\n\t\treturn !requiredModifiers.includes(mod) && !optionalModifiers.includes(mod) && key !== mod && getModifierState(event, mod) && !(hasAltGraph && ALT_GRAPH_ALIASES.includes(mod));\n\t}));\n}\n/**\n* Creates an event listener for handling keybindings.\n*\n* @example\n* ```js\n* import { createKeybindingsHandler } from \"../src/keybindings\"\n*\n* let handler = createKeybindingsHandler({\n* \t\"Shift+d\": () => {\n* \t\talert(\"The 'Shift' and 'd' keys were pressed at the same time\")\n* \t},\n* \t\"y e e t\": () => {\n* \t\talert(\"The keys 'y', 'e', 'e', and 't' were pressed in order\")\n* \t},\n* \t\"$mod+d\": () => {\n* \t\talert(\"Either 'Control+d' or 'Meta+d' were pressed\")\n* \t},\n* })\n*\n* window.addEventListener(\"keydown\", handler)\n* ```\n*/\nfunction createKeybindingsHandler(keybindingsMap, options = {}) {\n\tlet timeout = options.timeout ?? DEFAULT_TIMEOUT;\n\tlet ignore = options.ignore ?? defaultKeybindingsHandlerIgnore;\n\tlet keybindings = Object.keys(keybindingsMap).map((input) => {\n\t\treturn [\n\t\t\tinput,\n\t\t\tparseKeybinding(input),\n\t\t\tkeybindingsMap[input]\n\t\t];\n\t});\n\tlet pending = /* @__PURE__ */ new Map();\n\tlet timer = null;\n\treturn (event) => {\n\t\tif (!isKeyboardEvent(event) || ignore(event)) return;\n\t\tlet conflicts = [];\n\t\tfor (let [input, sequence, handler] of keybindings) {\n\t\t\tlet prev = pending.get(input);\n\t\t\tlet [current, ...rest] = prev ? prev : sequence;\n\t\t\tif (!matchKeybindingPress(event, current)) {\n\t\t\t\tif (!getModifierState(event, event.key)) pending.delete(input);\n\t\t\t} else if (rest.length > 0) {\n\t\t\t\tpending.set(input, rest);\n\t\t\t\tconflicts.push(input);\n\t\t\t} else {\n\t\t\t\tpending.delete(input);\n\t\t\t\tif (conflicts.length) console.warn(`tinykeys: Conflict found, \"${input}\" did not fire, waiting for:`, conflicts);\n\t\t\t\telse {\n\t\t\t\t\thandler(event);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (timer) clearTimeout(timer);\n\t\ttimer = setTimeout(() => pending.clear(), timeout);\n\t};\n}\n/**\n* Subscribes to keybindings.\n*\n* Returns an unsubscribe method.\n*\n* @example\n* ```js\n* import { tinykeys } from \"../src/tinykeys\"\n*\n* tinykeys(window, {\n* \t\"Shift+d\": () => {\n* \t\talert(\"The 'Shift' and 'd' keys were pressed at the same time\")\n* \t},\n* \t\"y e e t\": () => {\n* \t\talert(\"The keys 'y', 'e', 'e', and 't' were pressed in order\")\n* \t},\n* \t\"$mod+d\": () => {\n* \t\talert(\"Either 'Control+d' or 'Meta+d' were pressed\")\n* \t},\n* })\n* ```\n*/\nfunction tinykeys(target, keybindingMap, options = {}) {\n\tlet event = options.event ?? DEFAULT_EVENT;\n\tlet onKeyEvent = createKeybindingsHandler(keybindingMap, options);\n\ttarget.addEventListener(event, onKeyEvent, options.capture);\n\treturn () => {\n\t\ttarget.removeEventListener(event, onKeyEvent, options.capture);\n\t};\n}\n//#endregion\nexport { createKeybindingsHandler, defaultKeybindingsHandlerIgnore, matchKeybindingPress, parseKeybinding, tinykeys };\n\n//# sourceMappingURL=tinykeys.mjs.map"],"names":["KEYBINDING_MODIFIER_KEYS","DEFAULT_TIMEOUT","PLATFORM","navigator","platform","MOD","test","ALT_GRAPH_ALIASES","defaultKeybindingsHandlerIgnore","event","target","repeat","isComposing","currentTarget","matches","getModifierState","mod","includes","matchKeybindingPress","requiredModifiers","optionalModifiers","key","hasAltGraph","RegExp","code","toUpperCase","find","createKeybindingsHandler","keybindingsMap","options","timeout","ignore","keybindings","Object","keys","map","input","str","trim","split","press","parts","last","pop","regex","match","part","optional","push","pending","Map","timer","isKeyboardEvent","conflicts","sequence","handler","prev","get","current","rest","length","set","delete","console","warn","clearTimeout","setTimeout","clear","tinykeys","keybindingMap","onKeyEvent","addEventListener","capture","removeEventListener"],"mappings":"AAMA,IAAIA,EAA2B,CAC9B,QACA,OACA,MACA,WAMGC,EAAkB,IASlBC,EAAgC,iBAAdC,UAAyBA,UAAUC,SAAW,GAIhEC,EAAM,uBAAuBC,KAAKJ,GAAY,OAAS,UASvDK,EAAiC,UAAbL,EAAuB,CAAC,UAAW,OAAS,CAAC,OAarE,SAASM,EAAgCC,GACxC,IAAIC,EAASD,EAAMC,OACnB,OAAOD,EAAME,QAAUF,EAAMG,aAAeF,IAAWD,EAAMI,eAAiBH,EAAOI,QAAQ,0CAC9F,CAKA,SAASC,EAAiBN,EAAOO,GAChC,MAAyC,mBAA3BP,EAAMM,mBAAkCN,EAAMM,iBAAiBC,IAAQT,EAAkBU,SAASD,IAAQP,EAAMM,iBAAiB,YAChJ,CAuCA,SAASG,EAAqBT,GAAQU,EAAmBC,EAAmBC,IAC3E,MAAMC,EAAcH,EAAkBF,SAAS,YAC/C,SAAUI,aAAeE,QAAWF,EAAIf,KAAKG,EAAMY,OAAQA,EAAIf,KAAKG,EAAMe,MAASH,EAAII,gBAAkBhB,EAAMY,IAAII,eAAiBJ,IAAQZ,EAAMe,OAASL,EAAkBO,MAAMV,IAC1KD,EAAiBN,EAAOO,MAC3BhB,EAAyB0B,MAAMV,IAC5BG,EAAkBF,SAASD,KAASI,EAAkBH,SAASD,IAAQK,IAAQL,GAAOD,EAAiBN,EAAOO,MAAUM,GAAef,EAAkBU,SAASD,MAE5K,CAuBA,SAASW,EAAyBC,EAAgBC,EAAU,IAC3D,IAAIC,EAAUD,EAAQC,SAAW7B,EAC7B8B,EAASF,EAAQE,QAAUvB,EAC3BwB,EAAcC,OAAOC,KAAKN,GAAgBO,KAAKC,IAClD,MAAO,CACNA,GA5DsBC,EA6DND,EA5DXC,EAAIC,OAAOC,MAAM,KAAKJ,KAAKK,IACjC,IAAIC,EAAQD,EAAMD,MAAM,gBACpBG,EAAOD,EAAME,MACbC,EAAQF,EAAKG,MAAM,cACnBxB,EAAMuB,EAAQ,IAAIrB,OAAO,OAAOqB,EAAM,OAAQ,MAAQF,EACtDvB,EAAoB,GACpBC,EAAoB,GACxB,IAAK,MAAM0B,KAAQL,EAAO,CACzB,IAAIM,EAAWD,EAAKD,MAAM,cACtB7B,EAAM+B,IAAW,IAAMD,EAC3B9B,EAAc,SAARA,EAAiBX,EAAMW,EACzB+B,EAAU3B,EAAkB4B,KAAKhC,GAChCG,EAAkB6B,KAAKhC,EAC5B,CACD,MAAO,CACNG,EACAC,EACAC,EACA,KA2CAO,EAAeQ,IA9DlB,IAAyBC,CA+DtB,IAEEY,EAA0B,IAAIC,IAC9BC,EAAQ,KACZ,OAAQ1C,IACP,IAnGF,SAAyBA,GACxB,SAAUA,EAAMY,KAAOZ,EAAMe,MAAQf,EAAMM,iBAC5C,CAiGOqC,CAAgB3C,IAAUsB,EAAOtB,GAAQ,OAC9C,IAAI4C,EAAY,GAChB,IAAK,IAAKjB,EAAOkB,EAAUC,KAAYvB,EAAa,CACnD,IAAIwB,EAAOP,EAAQQ,IAAIrB,IAClBsB,KAAYC,GAAQH,GAAcF,EACvC,GAAKpC,EAAqBT,EAAOiD,GAE1B,GAAIC,EAAKC,OAAS,EACxBX,EAAQY,IAAIzB,EAAOuB,GACnBN,EAAUL,KAAKZ,OACT,CAEN,GADAa,EAAQa,OAAO1B,IACXiB,EAAUO,OACT,CACJL,EAAQ9C,GACR,KACA,CAJqBsD,QAAQC,KAAK,8BAA8B5B,gCAAqCiB,EAKtG,MAXKtC,EAAiBN,EAAOA,EAAMY,MAAM4B,EAAQa,OAAO1B,EAYzD,CACGe,GAAOc,aAAad,GACxBA,EAAQe,YAAW,IAAMjB,EAAQkB,SAASrC,EAAQ,CAEpD,CAuBA,SAASsC,EAAS1D,EAAQ2D,EAAexC,EAAU,CAAA,GAClD,IAAIpB,EAAQoB,EAAQpB,OAzKD,UA0Kf6D,EAAa3C,EAAyB0C,EAAexC,GAEzD,OADAnB,EAAO6D,iBAAiB9D,EAAO6D,EAAYzC,EAAQ2C,SAC5C,KACN9D,EAAO+D,oBAAoBhE,EAAO6D,EAAYzC,EAAQ2C,QAAQ,CAEhE","x_google_ignoreList":[0]}
|
package/lib/translation.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{isServer as
|
|
1
|
+
import{isServer as o}from"lit";import t from"./en-us.js";import"./localization.js";import"./localization2.js";import"./localization3.js";import"./localization4.js";import"./localization5.js";import"./localization6.js";import"./localization7.js";import"./localization8.js";import"./localization9.js";import"./localization10.js";import"./localization11.js";import"./localization12.js";import"./localization13.js";import"./localization14.js";import"./localization15.js";import"./localization16.js";import"./localization17.js";import"./localization18.js";import"./localization19.js";import"./localization20.js";import"./localization21.js";import"./localization22.js";import"./localization23.js";const i=new Set,n=new Set,a=new Map;function r(o,t){if(!l(t))return t;if(!l(o))return t;const i={...o};for(const o in t){const n=t[o],a=i[o];l(n)&&l(a)?i[o]=r(a,n):i[o]=n}return i}function l(o){return null!==o&&"object"==typeof o&&!Array.isArray(o)}if(!o){new MutationObserver((function(){for(const o of i)o()})).observe(document.documentElement,{attributes:!0,attributeFilter:["lang"]})}function c(){a.clear()}function e(...o){o.forEach((o=>{const t=o.$lang.toLowerCase(),i=a.get(t),n=i?r(i,o):o;a.set(t,n)})),function(){for(const o of n)o()}()}function s(o){return i.add(o),()=>i.delete(o)}function m(o){return n.add(o),()=>n.delete(o)}function p(o){return a.has(o)}function j(o){const i=o.toLowerCase(),[n]=i.split("-");return a.get(i)||a.get(n)||t}export{c as clearTranslations,t as fallback,p as isTranslationRegistered,e as registerTranslation,j as resolveTranslation,s as subscribeToDocumentLang,m as subscribeToTranslationRegistration};
|
|
2
2
|
//# sourceMappingURL=translation.js.map
|
package/lib/translation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation.js","sources":["../src/localization/translation.ts"],"sourcesContent":["import { isServer } from 'lit'\nimport en from './en-us.js'\n\n// gets list of properties beginning prefix\ntype PickStartsWith<T, Prefix extends string> = T extends `${Prefix}${string}` ? T : never\n\n// Recursively make all properties optional\ntype DeepPartial<T> = T extends object\n ? {\n [P in keyof T]?: DeepPartial<T[P]>\n }\n : T\n\nexport type Translation = typeof en\nexport type PartialTranslation = {\n $lang: string\n $name?: string\n $dir?: 'ltr' | 'rtl'\n} & DeepPartial<Omit<Translation, '$lang' | '$name' | '$dir'>>\nexport type WellKnownKeys = PickStartsWith<keyof Translation, '$'>\n\nconst documentLangSubscribers = new Set<() => void>()\nconst translationRegistrationSubscribers = new Set<() => void>()\nconst translations = new Map<string, Translation>()\n\nfunction notifyDocumentLangChange() {\n for (const subscriber of documentLangSubscribers) {\n subscriber()\n }\n}\n\nfunction notifyTranslationRegistration() {\n for (const subscriber of translationRegistrationSubscribers) {\n subscriber()\n }\n}\n\nfunction deepMerge(target: unknown, source: unknown): unknown {\n if (!isObject(source))\n return source\n\n if (!isObject(target))\n return source\n\n const result = { ...target }\n\n for (const key in source) {\n const sourceValue = (source as Record<string, unknown>)[key]\n const targetValue = result[key]\n\n if (isObject(sourceValue) && isObject(targetValue)) {\n result[key] = deepMerge(targetValue, sourceValue)\n }\n else {\n result[key] = sourceValue\n }\n }\n\n return result\n}\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n}\n\n// observe changes to the document's lang\nif (!isServer) {\n const observer = new MutationObserver(notifyDocumentLangChange)\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['lang'],\n })\n}\n\n/**\n * Removes all registered translations\n */\nexport function clearTranslations() {\n translations.clear()\n}\n\n/**\n * Registers one or more translations. If a translation for the same language\n * already exists, the new translation will be deep-merged with the existing one.\n * Translations can be partial — only the fields you provide will override existing values.\n */\nexport function registerTranslation(...translation: (Translation | PartialTranslation)[]) {\n translation.forEach((t) => {\n const lang = t.$lang.toLowerCase()\n const existing = translations.get(lang)\n\n // Deep merge: keep existing keys, override with new ones\n const merged = existing ? (deepMerge(existing, t) as Translation) : (t as Translation)\n translations.set(lang, merged)\n })\n\n notifyTranslationRegistration()\n}\n\n/**\n * subscribe to document language changes\n * @param onChange callback for when document `lang` attr changes\n * @returns cleanup function\n */\nexport function subscribeToDocumentLang(onChange: () => void): () => void {\n documentLangSubscribers.add(onChange)\n return () => documentLangSubscribers.delete(onChange)\n}\n\n/**\n * subscribe to translation registration changes\n * @param onChange callback for when new translations are registered\n * @returns cleanup function\n */\nexport function subscribeToTranslationRegistration(onChange: () => void): () => void {\n translationRegistrationSubscribers.add(onChange)\n return () => translationRegistrationSubscribers.delete(onChange)\n}\n\n/**\n * Check whether there is a translation registered for the given lang\n * @param lang the lang code e.g. \"en\" or \"en-GB\"\n */\nexport function isTranslationRegistered(lang: string) {\n return translations.has(lang)\n}\n\n/**\n * Picks the most appropriate translation for the given language, from most specific to least specific.\n * First tries lang + region, then lang only, then fallback.\n */\nexport function resolveTranslation(langCode: string) {\n const lang = langCode.toLowerCase()\n const [langOnly] = lang.split('-')\n\n return translations.get(lang) || translations.get(langOnly) || en\n}\n\nexport { en as fallback }\n"],"names":["documentLangSubscribers","Set","translationRegistrationSubscribers","translations","Map","deepMerge","target","source","isObject","result","key","sourceValue","targetValue","value","Array","isArray","isServer","MutationObserver","subscriber","observe","document","documentElement","attributes","attributeFilter","clearTranslations","clear","registerTranslation","translation","forEach","t","lang","$lang","toLowerCase","existing","get","merged","set","notifyTranslationRegistration","subscribeToDocumentLang","onChange","add","delete","subscribeToTranslationRegistration","isTranslationRegistered","has","resolveTranslation","langCode","langOnly","split","en"],"mappings":"
|
|
1
|
+
{"version":3,"file":"translation.js","sources":["../src/localization/translation.ts"],"sourcesContent":["import { isServer } from 'lit'\nimport en from './en-us.js'\n\n// gets list of properties beginning prefix\ntype PickStartsWith<T, Prefix extends string> = T extends `${Prefix}${string}` ? T : never\n\n// Recursively make all properties optional\ntype DeepPartial<T> = T extends object\n ? {\n [P in keyof T]?: DeepPartial<T[P]>\n }\n : T\n\nexport type Translation = typeof en\nexport type PartialTranslation = {\n $lang: string\n $name?: string\n $dir?: 'ltr' | 'rtl'\n} & DeepPartial<Omit<Translation, '$lang' | '$name' | '$dir'>>\nexport type WellKnownKeys = PickStartsWith<keyof Translation, '$'>\n\nconst documentLangSubscribers = new Set<() => void>()\nconst translationRegistrationSubscribers = new Set<() => void>()\nconst translations = new Map<string, Translation>()\n\nfunction notifyDocumentLangChange() {\n for (const subscriber of documentLangSubscribers) {\n subscriber()\n }\n}\n\nfunction notifyTranslationRegistration() {\n for (const subscriber of translationRegistrationSubscribers) {\n subscriber()\n }\n}\n\nfunction deepMerge(target: unknown, source: unknown): unknown {\n if (!isObject(source))\n return source\n\n if (!isObject(target))\n return source\n\n const result = { ...target }\n\n for (const key in source) {\n const sourceValue = (source as Record<string, unknown>)[key]\n const targetValue = result[key]\n\n if (isObject(sourceValue) && isObject(targetValue)) {\n result[key] = deepMerge(targetValue, sourceValue)\n }\n else {\n result[key] = sourceValue\n }\n }\n\n return result\n}\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n}\n\n// observe changes to the document's lang\nif (!isServer) {\n const observer = new MutationObserver(notifyDocumentLangChange)\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['lang'],\n })\n}\n\n/**\n * Removes all registered translations\n */\nexport function clearTranslations() {\n translations.clear()\n}\n\n/**\n * Registers one or more translations. If a translation for the same language\n * already exists, the new translation will be deep-merged with the existing one.\n * Translations can be partial — only the fields you provide will override existing values.\n */\nexport function registerTranslation(...translation: (Translation | PartialTranslation)[]) {\n translation.forEach((t) => {\n const lang = t.$lang.toLowerCase()\n const existing = translations.get(lang)\n\n // Deep merge: keep existing keys, override with new ones\n const merged = existing ? (deepMerge(existing, t) as Translation) : (t as Translation)\n translations.set(lang, merged)\n })\n\n notifyTranslationRegistration()\n}\n\n/**\n * subscribe to document language changes\n * @param onChange callback for when document `lang` attr changes\n * @returns cleanup function\n */\nexport function subscribeToDocumentLang(onChange: () => void): () => void {\n documentLangSubscribers.add(onChange)\n return () => documentLangSubscribers.delete(onChange)\n}\n\n/**\n * subscribe to translation registration changes\n * @param onChange callback for when new translations are registered\n * @returns cleanup function\n */\nexport function subscribeToTranslationRegistration(onChange: () => void): () => void {\n translationRegistrationSubscribers.add(onChange)\n return () => translationRegistrationSubscribers.delete(onChange)\n}\n\n/**\n * Check whether there is a translation registered for the given lang\n * @param lang the lang code e.g. \"en\" or \"en-GB\"\n */\nexport function isTranslationRegistered(lang: string) {\n return translations.has(lang)\n}\n\n/**\n * Picks the most appropriate translation for the given language, from most specific to least specific.\n * First tries lang + region, then lang only, then fallback.\n */\nexport function resolveTranslation(langCode: string) {\n const lang = langCode.toLowerCase()\n const [langOnly] = lang.split('-')\n\n return translations.get(lang) || translations.get(langOnly) || en\n}\n\nexport { en as fallback }\n"],"names":["documentLangSubscribers","Set","translationRegistrationSubscribers","translations","Map","deepMerge","target","source","isObject","result","key","sourceValue","targetValue","value","Array","isArray","isServer","MutationObserver","subscriber","observe","document","documentElement","attributes","attributeFilter","clearTranslations","clear","registerTranslation","translation","forEach","t","lang","$lang","toLowerCase","existing","get","merged","set","notifyTranslationRegistration","subscribeToDocumentLang","onChange","add","delete","subscribeToTranslationRegistration","isTranslationRegistered","has","resolveTranslation","langCode","langOnly","split","en"],"mappings":"mrBAqBA,MAAMA,EAA0B,IAAIC,IAC9BC,EAAqC,IAAID,IACzCE,EAAe,IAAIC,IAczB,SAASC,EAAUC,EAAiBC,GAClC,IAAKC,EAASD,GACZ,OAAOA,EAET,IAAKC,EAASF,GACZ,OAAOC,EAET,MAAME,EAAS,IAAKH,GAEpB,IAAK,MAAMI,KAAOH,EAAQ,CACxB,MAAMI,EAAeJ,EAAmCG,GAClDE,EAAcH,EAAOC,GAEvBF,EAASG,IAAgBH,EAASI,GACpCH,EAAOC,GAAOL,EAAUO,EAAaD,GAGrCF,EAAOC,GAAOC,CAEjB,CAED,OAAOF,CACT,CAEA,SAASD,EAASK,GAChB,OAAiB,OAAVA,GAAmC,iBAAVA,IAAuBC,MAAMC,QAAQF,EACvE,CAGA,IAAKG,EAAU,CACI,IAAIC,kBA1CvB,WACE,IAAK,MAAMC,KAAclB,EACvBkB,GAEJ,IAwCWC,QAAQC,SAASC,gBAAiB,CACzCC,YAAY,EACZC,gBAAiB,CAAC,SAEtB,UAKgBC,IACdrB,EAAasB,OACf,CAOgB,SAAAC,KAAuBC,GACrCA,EAAYC,SAASC,IACnB,MAAMC,EAAOD,EAAEE,MAAMC,cACfC,EAAW9B,EAAa+B,IAAIJ,GAG5BK,EAASF,EAAY5B,EAAU4B,EAAUJ,GAAsBA,EACrE1B,EAAaiC,IAAIN,EAAMK,EAAO,IA/DlC,WACE,IAAK,MAAMjB,KAAchB,EACvBgB,GAEJ,CA8DEmB,EACF,CAOM,SAAUC,EAAwBC,GAEtC,OADAvC,EAAwBwC,IAAID,GACrB,IAAMvC,EAAwByC,OAAOF,EAC9C,CAOM,SAAUG,EAAmCH,GAEjD,OADArC,EAAmCsC,IAAID,GAChC,IAAMrC,EAAmCuC,OAAOF,EACzD,CAMM,SAAUI,EAAwBb,GACtC,OAAO3B,EAAayC,IAAId,EAC1B,CAMM,SAAUe,EAAmBC,GACjC,MAAMhB,EAAOgB,EAASd,eACfe,GAAYjB,EAAKkB,MAAM,KAE9B,OAAO7C,EAAa+B,IAAIJ,IAAS3B,EAAa+B,IAAIa,IAAaE,CACjE"}
|
package/lib/validate.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{getFormatter as n}from"./format.js";import{parseNumber as i}from"./parse.js";const t=1e-10,r=3;function u(n,i=Number.MIN_SAFE_INTEGER,t=Number.MAX_SAFE_INTEGER){return Math.max(i,Math.min(n,t))}function o(n){return null!=(null==n?void 0:n.maximumFractionDigits)||null!=(null==n?void 0:n.minimumFractionDigits)||null!=(null==n?void 0:n.maximumSignificantDigits)||null!=(null==n?void 0:n.minimumSignificantDigits)||null!=(null==n?void 0:n.roundingIncrement)||null!=(null==n?void 0:n.roundingMode)||null!=(null==n?void 0:n.roundingPriority)}function l(t,u){if(!Number.isFinite(t))return t;if(!o(u))return Number(t.toFixed(r));const l=n("en-US",{...u,signDisplay:"auto",currencySign:"standard",notation:"compact"===u.notation?"standard":u.notation,useGrouping:!1}),a=l.format(t),e=i(a,"en-US",u);return null===e?t:l.format(e)===a?e:t}function a(n,{step:i,minWithDefault:r,maxWithDefault:o,minWithZeroDefault:a,format:e,snapOnStep:m,small:s,clamp:c}){if(null===n)return n;let f=n;if(null!=i&&m&&0!==i){f=function(n,i,r,u="directional"){const o=Math.abs(r),l=Math.sign(r),a=n-i+o*t*l;return"nearest"===u?i+Math.round(a/r)*r:i+(l>0?Math.floor(a/o):Math.ceil(a/o))*o}(f,s||r===Number.MIN_SAFE_INTEGER?a:r,i,s?"nearest":"directional")}c&&(f=u(f,r,o));const d=l(f,e);return c?u(d,r,o):d}export{u as clamp,o as hasNumberFormatRoundingOptions,l as removeFloatingPointErrors,a as toValidatedNumber};
|
|
2
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sources":["../src/number-field/validate.ts"],"sourcesContent":["/**\n * Numeric validation/clamping/snapping, ported from Base UI's\n * `number-field/utils/validate.ts`. Snapping happens BEFORE clamping so\n * non-step-aligned boundaries stay reachable.\n */\n\nimport { getFormatter } from './format.js'\nimport { parseNumber } from './parse.js'\n\nconst STEP_EPSILON_FACTOR = 1e-10\n// Matches Intl.NumberFormat's decimal maximumFractionDigits default.\nconst DEFAULT_DIGITS = 3\n\n// Model NumberFormat v3 rounding options locally (es2022 Intl types omit them).\ntype NumberFormatOptionsWithRounding = Intl.NumberFormatOptions & {\n roundingIncrement?: number | undefined\n roundingMode?: string | undefined\n roundingPriority?: string | undefined\n}\n\nexport function clamp(\n val: number,\n min: number = Number.MIN_SAFE_INTEGER,\n max: number = Number.MAX_SAFE_INTEGER,\n): number {\n return Math.max(min, Math.min(val, max))\n}\n\nexport function hasNumberFormatRoundingOptions(\n format?: NumberFormatOptionsWithRounding,\n): format is NumberFormatOptionsWithRounding {\n return (\n format?.maximumFractionDigits != null\n || format?.minimumFractionDigits != null\n || format?.maximumSignificantDigits != null\n || format?.minimumSignificantDigits != null\n || format?.roundingIncrement != null\n || format?.roundingMode != null\n || format?.roundingPriority != null\n )\n}\n\nexport function removeFloatingPointErrors(value: number, format?: NumberFormatOptionsWithRounding) {\n if (!Number.isFinite(value)) {\n return value\n }\n\n if (!hasNumberFormatRoundingOptions(format)) {\n return Number(value.toFixed(DEFAULT_DIGITS))\n }\n\n const formatter = getFormatter('en-US', {\n ...format,\n // These options alter only display decoration, not numeric rounding.\n signDisplay: 'auto',\n currencySign: 'standard',\n notation: format.notation === 'compact' ? 'standard' : format.notation,\n useGrouping: false,\n } as NumberFormatOptionsWithRounding)\n const roundedText = formatter.format(value)\n const roundedValue = parseNumber(roundedText, 'en-US', format)\n\n if (roundedValue === null) {\n return value\n }\n\n return formatter.format(roundedValue) === roundedText ? roundedValue : value\n}\n\nfunction snapToStep(\n value: number,\n base: number,\n step: number,\n mode: 'directional' | 'nearest' = 'directional',\n) {\n const stepSize = Math.abs(step)\n const direction = Math.sign(step)\n const tolerance = stepSize * STEP_EPSILON_FACTOR * direction\n const rawSteps = value - base + tolerance\n\n if (mode === 'nearest') {\n return base + Math.round(rawSteps / step) * step\n }\n\n const snappedSteps\n = direction > 0 ? Math.floor(rawSteps / stepSize) : Math.ceil(rawSteps / stepSize)\n return base + snappedSteps * stepSize\n}\n\nexport function toValidatedNumber(\n value: number | null,\n {\n step,\n minWithDefault,\n maxWithDefault,\n minWithZeroDefault,\n format,\n snapOnStep,\n small,\n clamp: shouldClamp,\n }: {\n step: number | undefined\n minWithDefault: number\n maxWithDefault: number\n minWithZeroDefault: number\n format: NumberFormatOptionsWithRounding | undefined\n snapOnStep: boolean\n small: boolean\n clamp: boolean\n },\n): number | null {\n if (value === null) {\n return value\n }\n\n let nextValue = value\n\n if (step != null && snapOnStep && step !== 0) {\n const base\n = small || minWithDefault === Number.MIN_SAFE_INTEGER ? minWithZeroDefault : minWithDefault\n\n // Snap before clamping so non-step-aligned boundaries stay reachable.\n nextValue = snapToStep(nextValue, base, step, small ? 'nearest' : 'directional')\n }\n\n if (shouldClamp) {\n nextValue = clamp(nextValue, minWithDefault, maxWithDefault)\n }\n\n const roundedValue = removeFloatingPointErrors(nextValue, format)\n return shouldClamp ? clamp(roundedValue, minWithDefault, maxWithDefault) : roundedValue\n}\n"],"names":["STEP_EPSILON_FACTOR","DEFAULT_DIGITS","clamp","val","min","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","hasNumberFormatRoundingOptions","format","maximumFractionDigits","minimumFractionDigits","maximumSignificantDigits","minimumSignificantDigits","roundingIncrement","roundingMode","roundingPriority","removeFloatingPointErrors","value","isFinite","toFixed","formatter","getFormatter","signDisplay","currencySign","notation","useGrouping","roundedText","roundedValue","parseNumber","toValidatedNumber","step","minWithDefault","maxWithDefault","minWithZeroDefault","snapOnStep","small","shouldClamp","nextValue","base","mode","stepSize","abs","direction","sign","rawSteps","round","floor","ceil","snapToStep"],"mappings":"oFASA,MAAMA,EAAsB,MAEtBC,EAAiB,EASP,SAAAC,EACdC,EACAC,EAAcC,OAAOC,iBACrBC,EAAcF,OAAOG,kBAErB,OAAOC,KAAKF,IAAIH,EAAKK,KAAKL,IAAID,EAAKI,GACrC,CAEM,SAAUG,EACdC,GAEA,OACmC,OAAjCA,eAAAA,EAAQC,wBAC4B,OAAjCD,aAAM,EAANA,EAAQE,wBAC4B,OAApCF,aAAM,EAANA,EAAQG,2BAC4B,OAApCH,aAAM,EAANA,EAAQI,2BACqB,OAA7BJ,aAAM,EAANA,EAAQK,oBACgB,OAAxBL,aAAM,EAANA,EAAQM,eACoB,OAA5BN,aAAA,EAAAA,EAAQO,iBAEf,CAEgB,SAAAC,EAA0BC,EAAeT,GACvD,IAAKN,OAAOgB,SAASD,GACnB,OAAOA,EAGT,IAAKV,EAA+BC,GAClC,OAAON,OAAOe,EAAME,QAAQrB,IAG9B,MAAMsB,EAAYC,EAAa,QAAS,IACnCb,EAEHc,YAAa,OACbC,aAAc,WACdC,SAA8B,YAApBhB,EAAOgB,SAAyB,WAAahB,EAAOgB,SAC9DC,aAAa,IAETC,EAAcN,EAAUZ,OAAOS,GAC/BU,EAAeC,EAAYF,EAAa,QAASlB,GAEvD,OAAqB,OAAjBmB,EACKV,EAGFG,EAAUZ,OAAOmB,KAAkBD,EAAcC,EAAeV,CACzE,CAsBM,SAAUY,EACdZ,GACAa,KACEA,EAAIC,eACJA,EAAcC,eACdA,EAAcC,mBACdA,EAAkBzB,OAClBA,EAAM0B,WACNA,EAAUC,MACVA,EACApC,MAAOqC,IAYT,GAAc,OAAVnB,EACF,OAAOA,EAGT,IAAIoB,EAAYpB,EAEhB,GAAY,MAARa,GAAgBI,GAAuB,IAATJ,EAAY,CAK5CO,EArDJ,SACEpB,EACAqB,EACAR,EACAS,EAAkC,eAElC,MAAMC,EAAWlC,KAAKmC,IAAIX,GACpBY,EAAYpC,KAAKqC,KAAKb,GAEtBc,EAAW3B,EAAQqB,EADPE,EAAW3C,EAAsB6C,EAGnD,MAAa,YAATH,EACKD,EAAOhC,KAAKuC,MAAMD,EAAWd,GAAQA,EAKvCQ,GADHI,EAAY,EAAIpC,KAAKwC,MAAMF,EAAWJ,GAAYlC,KAAKyC,KAAKH,EAAWJ,IAC9CA,CAC/B,CAmCgBQ,CAAWX,EAHnBF,GAASJ,IAAmB7B,OAAOC,iBAAmB8B,EAAqBF,EAGvCD,EAAMK,EAAQ,UAAY,cACnE,CAEGC,IACFC,EAAYtC,EAAMsC,EAAWN,EAAgBC,IAG/C,MAAML,EAAeX,EAA0BqB,EAAW7B,GAC1D,OAAO4B,EAAcrC,EAAM4B,EAAcI,EAAgBC,GAAkBL,CAC7E"}
|